changeset 57015:afda8f7d266c

Merge
author psadhukhan
date Tue, 05 Nov 2019 11:00:42 +0530
parents f5adbf111424 c41d1303a87c
children ff11b9700a34
files make/GensrcModuleInfo.gmk src/hotspot/share/jfr/recorder/repository/jfrChunkState.cpp src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.c src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.replacements/src/org/graalvm/compiler/api/replacements/MethodSubstitutionRegistry.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/MemoryScheduleVerification.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/ExportingClassLoader.java src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/ModuleSupport.java src/jdk.jfr/share/classes/jdk/jfr/consumer/ChunkParser.java src/jdk.jfr/share/classes/jdk/jfr/consumer/ConstantMap.java src/jdk.jfr/share/classes/jdk/jfr/consumer/EventParser.java src/jdk.jfr/share/classes/jdk/jfr/consumer/LongMap.java src/jdk.jfr/share/classes/jdk/jfr/consumer/ObjectFactory.java src/jdk.jfr/share/classes/jdk/jfr/consumer/Parser.java src/jdk.jfr/share/classes/jdk/jfr/consumer/ParserFactory.java src/jdk.jfr/share/classes/jdk/jfr/consumer/TimeConverter.java src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/RecordingInternals.java test/hotspot/gtest/oops/test_markOop.cpp test/hotspot/jtreg/runtime/Thread/CountStackFramesAtExit.java test/hotspot/jtreg/runtime/cds/appcds/ExtraSymbols.symbols.txt test/hotspot/jtreg/serviceability/jvmti/ClassStatus/ClassStatus.java test/hotspot/jtreg/serviceability/jvmti/ClassStatus/libClassStatus.c test/jdk/ProblemList.txt test/jdk/java/math/BigInteger/DivisionOverflow.java test/jdk/java/math/BigInteger/StringConstructorOverflow.java test/jdk/java/math/BigInteger/SymmetricRangeTests.java test/jdk/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java
diffstat 1992 files changed, 133773 insertions(+), 63487 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Nov 04 10:01:55 2019 -0800
+++ b/.hgtags	Tue Nov 05 11:00:42 2019 +0530
@@ -592,3 +592,5 @@
 5c83830390baafb76a1fbe33443c57620bd45fb9 jdk-14+17
 e84d8379815ba0d3e50fb096d28c25894cb50b8c jdk-14+18
 9b67dd88a9313e982ec5f710a7747161bc8f0c23 jdk-14+19
+54ffb15c48399dd59922ee22bb592d815307e77c jdk-14+20
+c16ac7a2eba4e73cb4f7ee9294dd647860eebff0 jdk-14+21
--- a/doc/building.html	Mon Nov 04 10:01:55 2019 -0800
+++ b/doc/building.html	Tue Nov 05 11:00:42 2019 +0530
@@ -385,10 +385,10 @@
 <p>On Linux you can also get a JDK from the Linux distribution. On apt-based distros (like Debian and Ubuntu), <code>sudo apt-get install openjdk-&lt;VERSION&gt;-jdk</code> is typically enough to install a JDK &lt;VERSION&gt;. On rpm-based distros (like Fedora and Red Hat), try <code>sudo yum install java-&lt;VERSION&gt;-openjdk-devel</code>.</p>
 <h2 id="external-library-requirements">External Library Requirements</h2>
 <p>Different platforms require different external libraries. In general, libraries are not optional - that is, they are either required or not used.</p>
-<p>If a required library is not detected by <code>configure</code>, you need to provide the path to it. There are two forms of the <code>configure</code> arguments to point to an external library: <code>--with-&lt;LIB&gt;=&lt;path&gt;</code> or <code>--with-&lt;LIB&gt;-include=&lt;path to include&gt; --with-&lt;LIB&gt;-lib=&lt;path to lib&gt;</code>. The first variant is more concise, but require the include files an library files to reside in a default hierarchy under this directory. In most cases, it works fine.</p>
+<p>If a required library is not detected by <code>configure</code>, you need to provide the path to it. There are two forms of the <code>configure</code> arguments to point to an external library: <code>--with-&lt;LIB&gt;=&lt;path&gt;</code> or <code>--with-&lt;LIB&gt;-include=&lt;path to include&gt; --with-&lt;LIB&gt;-lib=&lt;path to lib&gt;</code>. The first variant is more concise, but require the include files and library files to reside in a default hierarchy under this directory. In most cases, it works fine.</p>
 <p>As a fallback, the second version allows you to point to the include directory and the lib directory separately.</p>
 <h3 id="freetype">FreeType</h3>
-<p>FreeType2 from <a href="http://www.freetype.org/">The FreeType Project</a> is not required on any platform. The exception is on Unix-based platforms when configuring such that the build artifacts will reference a system installed library, rather than bundling the JDK’s own copy.</p>
+<p>FreeType2 from <a href="http://www.freetype.org/">The FreeType Project</a> is not required on any platform. The exception is on Unix-based platforms when configuring such that the build artifacts will reference a system installed library, rather than bundling the JDK's own copy.</p>
 <ul>
 <li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
 <li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
@@ -449,7 +449,7 @@
 <p>To build the JDK, you need a &quot;configuration&quot;, which consists of a directory where to store the build output, coupled with information about the platform, the specific build machine, and choices that affect how the JDK is built.</p>
 <p>The configuration is created by the <code>configure</code> script. The basic invocation of the <code>configure</code> script looks like this:</p>
 <pre><code>bash configure [options]</code></pre>
-<p>This will create an output directory containing the configuration and setup an area for the build result. This directory typically looks like <code>build/linux-x64-normal-server-release</code>, but the actual name depends on your specific configuration. (It can also be set directly, see <a href="#using-multiple-configurations">Using Multiple Configurations</a>). This directory is referred to as <code>$BUILD</code> in this documentation.</p>
+<p>This will create an output directory containing the configuration and setup an area for the build result. This directory typically looks like <code>build/linux-x64-server-release</code>, but the actual name depends on your specific configuration. (It can also be set directly, see <a href="#using-multiple-configurations">Using Multiple Configurations</a>). This directory is referred to as <code>$BUILD</code> in this documentation.</p>
 <p><code>configure</code> will try to figure out what system you are running on and where all necessary build components are. If you have all prerequisites for building installed, it should find everything. If it fails to detect any component automatically, it will exit and inform you about the problem.</p>
 <p>Some command line examples:</p>
 <ul>
--- a/doc/building.md	Mon Nov 04 10:01:55 2019 -0800
+++ b/doc/building.md	Tue Nov 05 11:00:42 2019 +0530
@@ -473,8 +473,8 @@
 path to it. There are two forms of the `configure` arguments to point to an
 external library: `--with-<LIB>=<path>` or `--with-<LIB>-include=<path to
 include> --with-<LIB>-lib=<path to lib>`. The first variant is more concise,
-but require the include files an library files to reside in a default hierarchy
-under this directory. In most cases, it works fine.
+but require the include files and library files to reside in a default
+hierarchy under this directory. In most cases, it works fine.
 
 As a fallback, the second version allows you to point to the include directory
 and the lib directory separately.
@@ -484,7 +484,7 @@
 FreeType2 from [The FreeType Project](http://www.freetype.org/) is not required
 on any platform. The exception is on Unix-based platforms when configuring such
 that the build artifacts will reference a system installed library,
-rather than bundling the JDK’s own copy.
+rather than bundling the JDK's own copy.
 
   * To install on an apt-based Linux, try running `sudo apt-get install
     libfreetype6-dev`.
@@ -623,8 +623,8 @@
 
 This will create an output directory containing the configuration and setup an
 area for the build result. This directory typically looks like
-`build/linux-x64-normal-server-release`, but the actual name depends on your
-specific configuration. (It can also be set directly, see [Using Multiple
+`build/linux-x64-server-release`, but the actual name depends on your specific
+configuration. (It can also be set directly, see [Using Multiple
 Configurations](#using-multiple-configurations)). This directory is referred to
 as `$BUILD` in this documentation.
 
--- a/make/Bundles.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/Bundles.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -50,6 +50,7 @@
 #     files or directories may contain spaces.
 # BASE_DIRS : Base directories for the root dir in the bundle.
 # SUBDIR : Optional name of root dir in bundle.
+# OUTPUTDIR : Optionally override output dir
 SetupBundleFile = $(NamedParamsMacroTemplate)
 define SetupBundleFileBody
 
@@ -70,8 +71,11 @@
 
   $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
 
-  $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
+  $$(call SetIfEmpty, $1_OUTPUTDIR, $$(BUNDLES_OUTPUTDIR))
+
+  $$($1_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
 	$$(call MakeTargetDir)
+	$$(call LogWarn, Creating $$($1_BUNDLE_NAME))
         # If any of the files contain a space in the file name, FindFiles
         # will have replaced it with ?. Tar does not accept that so need to
         # switch it back.
@@ -137,7 +141,7 @@
           endif
         endif
 
-  $1 += $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME)
+  $1 += $$($1_OUTPUTDIR)/$$($1_BUNDLE_NAME)
 
 endef
 
@@ -165,7 +169,7 @@
 
 ################################################################################
 
-ifneq ($(filter product-bundles legacy-bundles, $(MAKECMDGOALS)), )
+ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
 
   SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
 
@@ -310,6 +314,27 @@
 
 ################################################################################
 
+ifneq ($(filter static-libs-bundles, $(MAKECMDGOALS)), )
+  STATIC_LIBS_BUNDLE_FILES := $(call FindFiles, $(STATIC_LIBS_IMAGE_DIR))
+
+  ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
+    STATIC_LIBS_BUNDLE_SUBDIR := $(JDK_MACOSX_CONTENTS_SUBDIR)/Home
+  else
+    STATIC_LIBS_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)
+  endif
+
+  $(eval $(call SetupBundleFile, BUILD_STATIC_LIBS_BUNDLE, \
+      BUNDLE_NAME := $(STATIC_LIBS_BUNDLE_NAME), \
+      FILES := $(STATIC_LIBS_BUNDLE_FILES), \
+      BASE_DIRS := $(STATIC_LIBS_IMAGE_DIR), \
+      SUBDIR := $(STATIC_LIBS_BUNDLE_SUBDIR), \
+  ))
+
+  STATIC_LIBS_TARGETS += $(BUILD_STATIC_LIBS_BUNDLE)
+endif
+
+################################################################################
+
 # Hook to include the corresponding custom file, if present.
 $(eval $(call IncludeCustomExtension, Bundles.gmk))
 
@@ -319,6 +344,8 @@
 legacy-bundles: $(LEGACY_TARGETS)
 test-bundles: $(TEST_TARGETS)
 docs-bundles: $(DOCS_TARGETS)
+static-libs-bundles: $(STATIC_LIBS_TARGETS)
 jcov-bundles: $(JCOV_TARGETS)
 
-.PHONY: all default product-bundles test-bundles docs-bundles jcov-bundles
+.PHONY: all default product-bundles test-bundles docs-bundles \
+    static-libs-bundles jcov-bundles
--- a/make/CompileInterimLangtools.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/CompileInterimLangtools.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -49,6 +49,13 @@
 TARGETS += $(patsubst %, $(BUILDTOOLS_OUTPUTDIR)/gensrc/%/module-info.java, \
     $(INTERIM_LANGTOOLS_MODULES))
 
+$(eval $(call SetupCopyFiles, COPY_PREVIEW_FEATURES, \
+    FILES := $(TOPDIR)/src/java.base/share/classes/jdk/internal/PreviewFeature.java, \
+    DEST := $(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim/jdk/internal/, \
+))
+
+TARGETS += $(COPY_PREVIEW_FEATURES)
+
 ################################################################################
 # Setup the rules to build interim langtools, which is compiled by the boot
 # javac and can be run on the boot jdk. This will be used to compile the rest of
@@ -72,13 +79,15 @@
       BIN := $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules/$1.interim, \
       ADD_JAVAC_FLAGS := --module-path $(BUILDTOOLS_OUTPUTDIR)/interim_langtools_modules \
           $$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
+          --patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
+          --add-exports java.base/jdk.internal=jdk.compiler.interim \
           -Xlint:-module, \
   ))
 
   $1_DEPS_INTERIM := $$(addsuffix .interim, $$(filter \
       $$(INTERIM_LANGTOOLS_BASE_MODULES), $$(call FindTransitiveDepsForModule, $1)))
 
-  $$(BUILD_$1.interim): $$(foreach d, $$($1_DEPS_INTERIM), $$(BUILD_$$d))
+  $$(BUILD_$1.interim): $$(foreach d, $$($1_DEPS_INTERIM), $$(BUILD_$$d)) $(COPY_PREVIEW_FEATURES)
 
   TARGETS += $$(BUILD_$1.interim)
 endef
--- a/make/CompileToolsJdk.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/CompileToolsJdk.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/Coverage.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/Coverage.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/Docs.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/Docs.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -95,6 +95,7 @@
     -tag see \
     -taglet build.tools.taglet.ExtLink \
     -taglet build.tools.taglet.Incubating \
+    -taglet build.tools.taglet.Preview \
     -tagletpath $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
     $(CUSTOM_JAVADOC_TAGS) \
     #
@@ -137,9 +138,9 @@
 ifeq ($(IS_DRAFT), true)
   DRAFT_MARKER_STR := <br><strong>DRAFT $(VERSION_STRING)</strong>
   ifeq ($(VERSION_BUILD), 0)
-    DRAFT_MARKER_TITLE := [ad-hoc build]
+    DRAFT_MARKER_TITLE := $(SPACE)[ad-hoc build]
   else
-    DRAFT_MARKER_TITLE := [build $(VERSION_BUILD)]
+    DRAFT_MARKER_TITLE := $(SPACE)[build $(VERSION_BUILD)]
   endif
   DRAFT_TEXT := This specification is not final and is subject to change. \
       Use is subject to <a href="$(LICENSE_URL)">license terms</a>.
@@ -191,26 +192,26 @@
 ################################################################################
 # Functions
 
-# Helper function for creating a png file from a dot file generated by the
+# Helper function for creating a svg file from a dot file generated by the
 # GenGraphs tool.
 # param 1: SetupJavadocGeneration namespace ($1)
 # param 2: module name
 #
-define setup_gengraph_dot_to_png
+define setup_gengraph_dot_to_svg
   $1_$2_DOT_SRC :=  $$($1_GENGRAPHS_DIR)/$2.dot
-  $1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2/module-graph.png
+  $1_$2_SVG_TARGET := $$($1_TARGET_DIR)/$2/module-graph.svg
 
-    # For each module needing a graph, create a png file from the dot file
+    # For each module needing a graph, create a svg file from the dot file
     # generated by the GenGraphs tool and store it in the target dir.
-    $$(eval $$(call SetupExecute, gengraphs_png_$1_$2, \
+    $$(eval $$(call SetupExecute, gengraphs_svg_$1_$2, \
         INFO := Running dot for module graphs for $2, \
         DEPS := $$(gengraphs_$1_TARGET), \
-        OUTPUT_FILE := $$($1_$2_PNG_TARGET), \
+        OUTPUT_FILE := $$($1_$2_SVG_TARGET), \
         SUPPORT_DIR := $$($1_GENGRAPHS_DIR), \
-        COMMAND := $$(DOT) -Tpng -o $$($1_$2_PNG_TARGET) $$($1_$2_DOT_SRC), \
+        COMMAND := $$(DOT) -Tsvg -o $$($1_$2_SVG_TARGET) $$($1_$2_DOT_SRC), \
     ))
 
-  $1_MODULEGRAPH_TARGETS += $$($1_$2_PNG_TARGET)
+  $1_MODULEGRAPH_TARGETS += $$($1_$2_SVG_TARGET)
 endef
 
 # Helper function to create the overview.html file to use with the -overview
@@ -281,7 +282,7 @@
 
   ifeq ($$(ENABLE_FULL_DOCS), true)
     # Tell the ModuleGraph taglet to generate html links to soon-to-be-created
-    # png files with module graphs.
+    # svg files with module graphs.
     $1_JAVA_ARGS += -DenableModuleGraph=true
   endif
 
@@ -303,7 +304,7 @@
 
   $1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
       Specification
-  $1_WINDOW_TITLE := $$(subst &amp;,&,$$($1_SHORT_NAME)) $$(DRAFT_MARKER_TITLE)
+  $1_WINDOW_TITLE := $$(subst &amp;,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
   $1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
       $$(DRAFT_MARKER_STR)</div>
 
@@ -361,8 +362,8 @@
   $1_JAVADOC_TARGETS := $$(javadoc_$1_TARGET)
 
   ifeq ($$(ENABLE_FULL_DOCS), true)
-    # We have asked ModuleGraph to generate links to png files. Now we must
-    # produce the png files.
+    # We have asked ModuleGraph to generate links to svg files. Now we must
+    # produce the svg files.
 
     # Locate which modules has the @moduleGraph tag in their module-info.java
     $1_MODULES_NEEDING_GRAPH := $$(strip $$(foreach m, $$($1_ALL_MODULES), \
@@ -387,11 +388,11 @@
             --dot-attributes $$(GENGRAPHS_PROPS), \
     ))
 
-    # For each module needing a graph, create a png file from the dot file
+    # For each module needing a graph, create a svg file from the dot file
     # generated by the GenGraphs tool and store it in the target dir.
     # They will depend on gengraphs_$1_TARGET, and will be added to $1.
     $$(foreach m, $$($1_MODULES_NEEDING_GRAPH), \
-      $$(eval $$(call setup_gengraph_dot_to_png,$1,$$m)) \
+      $$(eval $$(call setup_gengraph_dot_to_svg,$1,$$m)) \
     )
   endif
 endef
--- a/make/GenerateLinkOptData.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/GenerateLinkOptData.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/GensrcModuleInfo.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#
-# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute 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 makes modifications to module-info.java files based on the build
-# configuration.
-#
-# Depending on build platform, imported modules and optional parts of the build
-# being active, some modules need to have extra exports, provides or uses
-# declarations added to them. These optional extras are defined in .extra files:
-#
-# src/<module>/<share,platform>/classes/module-info.java.extra
-#
-# The contents of the .extra files are simply extra lines that could fit into
-# the module-info file.
-#
-# This makefile is called once for each from-module with the variable
-# MODULE naming the from-module.
-#
-# The modified module-info.java files are put in the gensrc directory where
-# they will automatically override the static versions in the src tree.
-#
-################################################################################
-
-default: all
-
-include $(SPEC)
-include MakeBase.gmk
-include Modules.gmk
-
-################################################################################
-# Define this here since jdk/make/Tools.gmk cannot be included from the top
-# make directory. Should probably move some tools away from the jdk repo.
-TOOL_GENMODULEINFOSOURCE = $(JAVA_SMALL) \
-    $(INTERIM_LANGTOOLS_ARGS) \
-    -cp "$(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes" \
-    build.tools.module.GenModuleInfoSource
-
-################################################################################
-
-# Name of modification file.
-MOD_FILENAME := module-info.java.extra
-
-# Construct all possible src directories for the module.
-MODULE_CLASSES_DIRS := $(call FindModuleSrcDirs, $(MODULE))
-
-# Find all the .extra files in the src dirs.
-MOD_FILES := $(wildcard $(foreach f, $(MOD_FILENAME), $(addsuffix /$(f), \
-    $(MODULE_CLASSES_DIRS))))
-
-ifneq ($(MOD_FILES), )
-  # Only make this call if modification files are found for this module
-  ALL_MODULES := $(call FindAllModules)
-
-  $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/module-info.java: \
-      $(firstword $(call FindAllModuleInfos, $(MODULE))) \
-      $(BUILD_TOOLS_JDK) \
-      $(MOD_FILES) \
-      $(call DependOnVariable, ALL_MODULES)
-		$(call MakeTargetDir)
-		$(RM) $@ $@.tmp
-		$(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \
-		    --source-file $< \
-		    --modules $(call CommaList, $(ALL_MODULES)) \
-		    $(MOD_FILES)
-		$(MV) $@.tmp $@
-
-  TARGETS += $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/module-info.java
-
-else
-  # If no modifications are found for this module, remove any module-info.java
-  # created by a previous build since that is no longer valid.
-  ifneq ($(wildcard $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/module-info.java), )
-    $(shell $(RM) $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/module-info.java)
-  endif
-endif
-
-################################################################################
-
-all: $(TARGETS)
--- a/make/Help.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/Help.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -43,7 +43,7 @@
 	$(info $(_) make images            # Create a complete jdk image)
 	$(info $(_)                        # (alias for product-images))
 	$(info $(_) make <name>-image      # Build just the image for any of: )
-	$(info $(_)                        # jdk, test, docs, symbols, legacy-jre)
+	$(info $(_)                        # jdk, test, docs, symbols, legacy-jre, static-libs)
 	$(info $(_) make <phase>           # Build the specified phase and everything it depends on)
 	$(info $(_)                        # (gensrc, java, copy, libs, launchers, gendata, rmic))
 	$(info $(_) make *-only            # Applies to most targets and disables building the)
--- a/make/Main.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/Main.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -77,7 +77,7 @@
 
 interim-cldrconverter:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk)
- 
+
 interim-tzdb:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimTZDB.gmk)
 
@@ -133,7 +133,7 @@
 define DeclareModuleInfoRecipe
   $1-gensrc-moduleinfo:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
-	    -f GensrcModuleInfo.gmk MODULE=$1)
+	    -f gensrc/GensrcModuleInfo.gmk MODULE=$1)
 
   $1-gensrc: $1-gensrc-moduleinfo
 endef
@@ -218,6 +218,21 @@
 ALL_TARGETS += $(LIBS_TARGETS)
 
 ################################################################################
+# Targets for compiling static versions of certain native libraries. These do
+# not end up in the jmods or the normal JDK image, but are instead bundled into
+# a special deliverable.
+$(eval $(call DeclareRecipesForPhase, STATIC_LIBS, \
+    TARGET_SUFFIX := static-libs, \
+    FILE_PREFIX := Lib, \
+    MAKE_SUBDIR := lib, \
+    CHECK_MODULES := $(STATIC_LIBS_MODULES), \
+    USE_WRAPPER := true, \
+    EXTRA_ARGS := STATIC_LIBS=true, \
+))
+
+ALL_TARGETS += $(STATIC_LIBS_TARGETS)
+
+################################################################################
 # Targets for compiling native executables
 $(eval $(call DeclareRecipesForPhase, LAUNCHER, \
     TARGET_SUFFIX := launchers, \
@@ -377,6 +392,9 @@
 symbols-image:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk symbols)
 
+static-libs-image:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f StaticLibsImage.gmk)
+
 mac-jdk-bundle:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk jdk-bundle)
 
@@ -396,7 +414,7 @@
 
 ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
     zip-source jrtfs-jar jdk-image legacy-jre-image \
-    symbols-image mac-jdk-bundle mac-legacy-jre-bundle \
+    symbols-image static-libs-image mac-jdk-bundle mac-legacy-jre-bundle \
     release-file exploded-image-optimize jcov-image
 
 ################################################################################
@@ -614,12 +632,16 @@
 docs-bundles:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
 
+static-libs-bundles:
+	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk static-libs-bundles)
+
 ifeq ($(JCOV_ENABLED), true)
   jcov-bundles:
 	+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk jcov-bundles)
 endif
 
-ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles jcov-bundles
+ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles \
+    static-libs-bundles jcov-bundles
 
 ################################################################################
 # Install targets
@@ -796,6 +818,10 @@
   vscode-project-rtags: compile-commands
   vscode-project-ccls: compile-commands
 
+  # The -static-libs targets depend on -java as well as java.base-copy.
+  $(foreach m, $(filter $(JAVA_MODULES), $(STATIC_LIBS_MODULES)), \
+    $(eval $m-static-libs: $m-java java.base-copy))
+
   # Jmods cannot be created until we have the jmod tool ready to run. During
   # a normal build we run it from the exploded image, but when cross compiling
   # it's run from the buildjdk, which is either created at build time or user
@@ -858,6 +884,8 @@
   legacy-jre-image: jmods release-file
   symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
 
+  static-libs-image: $(STATIC_LIBS_TARGETS)
+
   mac-jdk-bundle: jdk-image
   mac-legacy-jre-bundle: legacy-jre-image
 
@@ -946,6 +974,8 @@
 
   jcov-bundles: jcov-image
 
+  static-libs-bundles: static-libs-image
+
   generate-summary: jmods buildtools-modules
 
   update-x11wrappers: java.base-copy buildtools-jdk
@@ -984,6 +1014,8 @@
 
 libs: $(LIBS_TARGETS)
 
+static-libs: $(STATIC_LIBS_TARGETS)
+
 launchers: $(LAUNCHER_TARGETS)
 
 jmods: $(JMOD_TARGETS)
@@ -1094,10 +1126,10 @@
 all-images: product-images test-image docs-image
 
 # all-bundles packages all our deliverables as tar.gz bundles.
-all-bundles: product-bundles test-bundles docs-bundles
+all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
 
 ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \
-    copy java rmic libs launchers jmods \
+    copy java rmic libs static-libs launchers jmods \
     jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
     exploded-image-base exploded-image \
     create-buildjdk docs-jdk-api docs-javase-api docs-reference-api docs-jdk \
--- a/make/MainSupport.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/MainSupport.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 # 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 @@
 	      $$(addprefix -I, $$(PHASE_MAKEDIRS) \
 	          $$(addsuffix /$$($1_MAKE_SUBDIR), $$(PHASE_MAKEDIRS)) \
 	      ) \
-	      MODULE=$2 MAKEFILE_PREFIX=$$($1_FILE_PREFIX))
+	      MODULE=$2 MAKEFILE_PREFIX=$$($1_FILE_PREFIX) $$($1_EXTRA_ARGS))
         else
 	  +($(CD) $$(dir $$(firstword $$(wildcard $$(addsuffix \
 	      /$$($1_MAKE_SUBDIR)/$$($1_FILE_PREFIX)-$2.gmk, $$(PHASE_MAKEDIRS))))) \
@@ -142,7 +142,7 @@
 	      $$(addprefix -I, $$(PHASE_MAKEDIRS) \
 	          $$(addsuffix /$$($1_MAKE_SUBDIR), $$(PHASE_MAKEDIRS)) \
 	      ) \
-	      MODULE=$2 \
+	      MODULE=$2 $$($1_EXTRA_ARGS) \
 	  )
         endif
 
@@ -182,12 +182,13 @@
 # CHECK_MODULES : List of modules to try
 # MULTIPLE_MAKEFILES : Set to true to handle makefiles for the same module and
 #                      phase in multiple repos
+# EXTRA_ARGS : Add extra make args to each makefile call
 # Exported variables:
 # $1_MODULES : All modules that had rules generated
 # $1_TARGETS : All targets generated
 define DeclareRecipesForPhase
-  $(foreach i,2 3 4 5 6 7, $(if $(strip $($i)),$(strip $1)_$(strip $($i)))$(NEWLINE))
-  $(if $(8),$(error Internal makefile error: Too many arguments to \
+  $(foreach i,2 3 4 5 6 7 8, $(if $(strip $($i)),$(strip $1)_$(strip $($i)))$(NEWLINE))
+  $(if $(9),$(error Internal makefile error: Too many arguments to \
       DeclareRecipesForPhase, please update MakeHelper.gmk))
 
   $$(foreach m, $$($(strip $1)_CHECK_MODULES), \
--- a/make/ModuleWrapper.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/ModuleWrapper.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/RunTests.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/RunTests.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -185,13 +185,13 @@
 	    $$(FIXPATH) $$(JDK_UNDER_TEST)/bin/jaotc \
 	        $$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
 	)
-	$$(call ExecuteWithLog, $$@.check, \
+	$$(call ExecuteWithLog, $$@.check, ( \
 	    $$(FIXPATH) $$(JDK_UNDER_TEST)/bin/java \
 	        $$($1_VM_OPTIONS) -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions \
 	        -XX:+PrintAOT -XX:+UseAOTStrictLoading \
 	        -XX:AOTLibrary=$$@ -version \
 	         > $$@.verify-aot \
-	)
+	))
 
   $1_AOT_OPTIONS += -XX:+UnlockExperimentalVMOptions
   $1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
@@ -593,7 +593,7 @@
 	$$(call LogWarn)
 	$$(call LogWarn, Running test '$$($1_TEST)')
 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
-	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, \
+	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, ( \
 	    $$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
 	        -jdk $(JDK_UNDER_TEST) $$($1_GTEST_FILTER) \
 	        --gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
@@ -602,7 +602,7 @@
 	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
-	)
+	))
 
   $1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt
 
@@ -705,7 +705,7 @@
 	$$(call LogWarn)
 	$$(call LogWarn, Running test '$$($1_TEST)')
 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
-	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, \
+	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, ( \
 	    $$(FIXPATH) $$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) \
 	        -jar $$($1_MICRO_BENCHMARKS_JAR) \
 	        $$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
@@ -715,7 +715,7 @@
 	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/micro.txt) \
 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
-	)
+	))
 
   $1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/micro.txt
 
@@ -928,7 +928,7 @@
 	$$(call LogWarn)
 	$$(call LogWarn, Running test '$$($1_TEST)')
 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
-	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
+	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, ( \
 	    $$(COV_ENVIRONMENT) \
 	    $$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
 	        -Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
@@ -943,7 +943,7 @@
 	        $$($1_TEST_NAME) \
 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
-	)
+	))
 
   $1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/text/stats.txt
 
@@ -1019,12 +1019,12 @@
 	$$(call LogWarn)
 	$$(call LogWarn, Running test '$$($1_TEST)')
 	$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
-	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, \
+	$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, ( \
 	    $$($1_TEST_COMMAND_LINE) \
 	        > >($(TEE) $$($1_TEST_RESULTS_DIR)/test-output.txt) \
 	    && $$(ECHO) $$$$? > $$($1_EXITCODE) \
 	    || $$(ECHO) $$$$? > $$($1_EXITCODE) \
-	)
+	))
 
   $1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt
 
--- a/make/RunTestsPrebuiltSpec.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/RunTestsPrebuiltSpec.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/StaticLibsImage.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute 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 makefile creates an image of the optional static versions of certain JDK
+# libraries.
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include Modules.gmk
+
+################################################################################
+
+TARGETS :=
+
+$(foreach m, $(STATIC_LIBS_MODULES), \
+  $(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
+      FLATTEN := true, \
+      SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
+      DEST := $(STATIC_LIBS_IMAGE_DIR)/lib, \
+      FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
+          $(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
+  )) \
+  $(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
+)
+
+################################################################################
+
+all: $(TARGETS)
+
+.PHONY: all
--- a/make/TestImage.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/TestImage.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/UpdateBuildDocs.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/UpdateBuildDocs.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
 # 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,29 +45,13 @@
 
 DOCS_DIR := $(TOPDIR)/doc
 
-$(eval $(call SetupProcessMarkdown, building, \
-  FILES := $(DOCS_DIR)/building.md, \
+$(eval $(call SetupProcessMarkdown, md_docs, \
+  FILES := $(call FindFiles, $(DOCS_DIR), *.md), \
   DEST := $(DOCS_DIR), \
   CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
   OPTIONS := --toc, \
 ))
-TARGETS += $(building)
-
-$(eval $(call SetupProcessMarkdown, testing, \
-  FILES := $(DOCS_DIR)/testing.md, \
-  DEST := $(DOCS_DIR), \
-  CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
-  OPTIONS := --toc, \
-))
-TARGETS += $(testing)
-
-$(eval $(call SetupProcessMarkdown, ide, \
-  FILES := $(DOCS_DIR)/ide.md, \
-  DEST := $(DOCS_DIR), \
-  CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
-  OPTIONS := --toc, \
-))
-TARGETS += $(ide)
+TARGETS += $(md_docs)
 
 ################################################################################
 
--- a/make/ZipSecurity.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/ZipSecurity.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/autoconf/configure.ac	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/configure.ac	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
-SRC#
-# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+#
+# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/autoconf/flags-cflags.m4	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/flags-cflags.m4	Tue Nov 05 11:00:42 2019 +0530
@@ -170,11 +170,11 @@
       DISABLE_WARNING_PREFIX="-erroff="
       CFLAGS_WARNINGS_ARE_ERRORS="-errwarn=%all"
 
-      WARNINGS_ENABLE_ALL_CFLAGS="-v"
-      WARNINGS_ENABLE_ALL_CXXFLAGS="+w"
+      WARNINGS_ENABLE_ALL_CFLAGS="-v -fd -xtransition"
+      WARNINGS_ENABLE_ALL_CXXFLAGS="+w +w2"
 
-      DISABLED_WARNINGS_C=""
-      DISABLED_WARNINGS_CXX=""
+      DISABLED_WARNINGS_C="E_OLD_STYLE_FUNC_DECL E_OLD_STYLE_FUNC_DEF E_SEMANTICS_OF_OP_CHG_IN_ANSI_C E_NO_REPLACEMENT_IN_STRING E_DECLARATION_IN_CODE"
+      DISABLED_WARNINGS_CXX="inllargeuse inllargeint notused wemptydecl notemsource"
       ;;
 
     gcc)
@@ -597,7 +597,7 @@
     LANGSTD_CFLAGS="-xc99=all,no_lib"
   elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
     # MSVC doesn't support C99/C11 explicitly, unless you compile as C++:
-    # LANGSTD_CFLAGS="/TP"
+    # LANGSTD_CFLAGS="-TP"
     # but that requires numerous changes to the sources files. So we are limited
     # to C89/C90 plus whatever extensions Visual Studio has decided to implement.
     # This is the lowest bar for shared code.
@@ -694,6 +694,20 @@
       OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
     fi
   fi
+
+  # Extra flags needed when building optional static versions of certain
+  # JDK libraries.
+  STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
+  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
+    STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections"
+  fi
+  if test "x$TOOLCHAIN_TYPE" = xgcc; then
+    # Disable relax-relocation to enable compatibility with older linkers
+    RELAX_RELOCATIONS_FLAG="-Xassembler -mrelax-relocations=no"
+    FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${RELAX_RELOCATIONS_FLAG}],
+        IF_TRUE: [STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS ${RELAX_RELOCATIONS_FLAG}"])
+  fi
+  AC_SUBST(STATIC_LIBS_CFLAGS)
 ])
 
 ################################################################################
--- a/make/autoconf/jdk-options.m4	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/jdk-options.m4	Tue Nov 05 11:00:42 2019 +0530
@@ -599,7 +599,14 @@
     AC_MSG_RESULT([yes, forced])
     ENABLE_GENERATE_CLASSLIST="true"
     if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xfalse"; then
-      AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS])
+      if test "x$ENABLE_CDS" = "xfalse"; then
+        # In GenerateLinkOptData.gmk, DumpLoadedClassList is used to generate the
+        # classlist file. It never will work in this case since the VM will report
+        # an error for DumpLoadedClassList when CDS is disabled.
+        AC_MSG_ERROR([Generation of classlist is not possible with enable-cds=false])
+      else
+        AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS])
+      fi
     fi
   elif test "x$enable_generate_classlist" = "xno"; then
     AC_MSG_RESULT([no, forced])
--- a/make/autoconf/jdk-version.m4	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/jdk-version.m4	Tue Nov 05 11:00:42 2019 +0530
@@ -162,7 +162,9 @@
     AC_MSG_ERROR([--with-vendor-vm-bug-url must have a value])
   elif [ ! [[ $with_vendor_vm_bug_url =~ ^[[:print:]]*$ ]] ]; then
     AC_MSG_ERROR([--with-vendor-vm-bug-url contains non-printing characters: $with_vendor_vm_bug_url])
-  else
+  elif test "x$with_vendor_vm_bug_url" != x; then
+    # Only set VENDOR_URL_VM_BUG if '--with-vendor-vm-bug-url' was used and is not empty.
+    # Otherwise we will use the value from "version-numbers" included above.
     VENDOR_URL_VM_BUG="$with_vendor_vm_bug_url"
   fi
   AC_SUBST(VENDOR_URL_VM_BUG)
--- a/make/autoconf/spec.gmk.in	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/spec.gmk.in	Tue Nov 05 11:00:42 2019 +0530
@@ -376,6 +376,8 @@
 LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
 GRAALUNIT_LIB := @GRAALUNIT_LIB@
 
+STATIC_LIBS_CFLAGS := @STATIC_LIBS_CFLAGS@
+
 JMH_CORE_JAR := @JMH_CORE_JAR@
 JMH_GENERATOR_JAR := @JMH_GENERATOR_JAR@
 JMH_JOPT_SIMPLE_JAR := @JMH_JOPT_SIMPLE_JAR@
@@ -892,6 +894,10 @@
 # Output docs directly into image
 DOCS_OUTPUTDIR := $(DOCS_IMAGE_DIR)
 
+# Static libs image
+STATIC_LIBS_IMAGE_SUBDIR := static-libs
+STATIC_LIBS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_IMAGE_SUBDIR)
+
 # Macosx bundles directory definitions
 JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle
 JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle
@@ -920,6 +926,7 @@
 TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz
 TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
 DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
+STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
 JCOV_BUNDLE_NAME := jdk-jcov-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
 
 JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
--- a/make/autoconf/version-numbers	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/autoconf/version-numbers	Tue Nov 05 11:00:42 2019 +0530
@@ -23,7 +23,8 @@
 # questions.
 #
 
-# Default version numbers to use unless overridden by configure
+# Default version, product, and vendor information to use,
+# unless overridden by configure
 
 DEFAULT_VERSION_FEATURE=14
 DEFAULT_VERSION_INTERIM=0
@@ -47,6 +48,7 @@
 HOTSPOT_VM_DISTRO="OpenJDK"
 VENDOR_URL=https://openjdk.java.net/
 VENDOR_URL_BUG=https://bugreport.java.com/bugreport/
+VENDOR_URL_VM_BUG=https://bugreport.java.com/bugreport/crash.jsp
 
 # Might need better names for these
 MACOSX_BUNDLE_NAME_BASE="OpenJDK"
--- a/make/common/JavaCompilation.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/JavaCompilation.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -222,7 +222,7 @@
     ) \
   )
   $$(call MakeDir,$$($1_BIN))
-  # Order src files according to the order of the src dirs. Correct odering is
+  # Order src files according to the order of the src dirs. Correct ordering is
   # needed for correct overriding between different source roots.
   $1_ALL_SRC_RAW := $$(call FindFiles, $$($1_SRC))
   $1_ALL_SRCS := $$($1_EXTRA_FILES) \
--- a/make/common/JdkNativeCompilation.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/JdkNativeCompilation.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
 # 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,8 @@
       $(TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/$(strip $2) \
       $(TOPDIR)/src/$(strip $1)/share/native/$(strip $2)))
 
-# Find a library
+# Find a library. Used for declaring dependencies on libraries in different
+# modules.
 # Param 1 - module name
 # Param 2 - library name
 # Param 3 - optional subdir for library
@@ -69,6 +70,12 @@
   FindLib =
   FindStaticLib =
 endif
+# If building static versions of libraries, make these return empty to avoid
+# declaring dependencies.
+ifeq ($(STATIC_LIBS), true)
+  FindLib =
+  FindStaticLib =
+endif
 
 GetJavaHeaderDir = \
   $(wildcard $(SUPPORT_OUTPUTDIR)/headers/$(strip $1))
--- a/make/common/Modules.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/Modules.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -198,6 +198,21 @@
     jdk.internal.vm.compiler.management \
     #
 
+# The native dynamic libraries in these modules will also get built into static
+# libraries for consumption by downstream projects that need to statically link
+# the JDK libraries. Those static libraries are not part of the main JDK
+# distribution. 
+STATIC_LIBS_MODULES := \
+    java.base \
+    jdk.crypto.ec \
+    jdk.security.auth \
+    java.prefs \
+    java.security.jgss \
+    java.smartcardio \
+    jdk.crypto.cryptoki \
+    jdk.net \
+    #
+
 ################################################################################
 # Some platforms don't have the serviceability agent
 
--- a/make/common/NativeCompilation.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/NativeCompilation.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -453,6 +453,28 @@
     endif
   endif
 
+  $$(call SetIfEmpty, $1_COMPILE_WITH_DEBUG_SYMBOLS, $$(COMPILE_WITH_DEBUG_SYMBOLS))
+
+  # STATIC_LIBS is set from Main.gmk when building static versions of certain
+  # native libraries.
+  ifeq ($(STATIC_LIBS), true)
+    $1_TYPE := STATIC_LIBRARY
+    # The static versions need to be redirected to different output dirs, both
+    # to not interfere with the main build as well as to not end up inside the
+    # jmods.
+    $1_OBJECT_DIR := $$($1_OBJECT_DIR)/static
+    $1_OUTPUT_DIR := $$($1_OBJECT_DIR)
+    # For release builds where debug symbols are configured to be moved to
+    # separate debuginfo files, disable debug symbols for static libs instead.
+    # We don't currently support this configuration and we don't want symbol
+    # information in release builds unless explicitly asked to provide it.
+    ifeq ($(DEBUG_LEVEL), release)
+      ifeq ($(COPY_DEBUG_SYMBOLS), true)
+        $1_COMPILE_WITH_DEBUG_SYMBOLS := false
+      endif
+    endif
+  endif
+
   ifeq ($$($1_TYPE), EXECUTABLE)
     $1_PREFIX :=
     ifeq ($$($1_SUFFIX), )
@@ -592,6 +614,9 @@
     $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
     $1_EXTRA_CFLAGS += $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
   endif
+  ifeq ($(STATIC_LIBS), true)
+    $1_EXTRA_CFLAGS += $$(STATIC_LIBS_CFLAGS)
+  endif
 
   # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
   $1_EXTRA_CXXFLAGS := $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
@@ -605,6 +630,9 @@
     $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
     $1_EXTRA_CXXFLAGS += $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
   endif
+  ifeq ($(STATIC_LIBS), true)
+    $1_EXTRA_CXXFLAGS += $$(STATIC_LIB_CFLAGS)
+  endif
 
   # If no C++ flags are explicitly set, default to using the C flags.
   # After that, we can set additional C++ flags that should not interfere
@@ -616,7 +644,7 @@
     $1_EXTRA_CXXFLAGS := $$($1_EXTRA_CFLAGS)
   endif
 
-  ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
+  ifeq ($$($1_COMPILE_WITH_DEBUG_SYMBOLS), true)
     $1_EXTRA_CFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
     $1_EXTRA_CXXFLAGS += $$(CFLAGS_DEBUG_SYMBOLS)
     $1_EXTRA_ASFLAGS += $$(ASFLAGS_DEBUG_SYMBOLS)
--- a/make/common/ProcessMarkdown.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/ProcessMarkdown.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,4 +1,4 @@
-# Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/common/RMICompilation.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/RMICompilation.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/common/SetupJavaCompilers.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/SetupJavaCompilers.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/common/TestFilesCompilation.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/common/TestFilesCompilation.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -98,7 +98,7 @@
         DISABLED_WARNINGS_gcc := format undef unused-function unused-value, \
         DISABLED_WARNINGS_clang := undef format-nonliteral \
             missing-field-initializers sometimes-uninitialized, \
-        DISABLED_WARNINGS_CXX_solstudio := wvarhidenmem, \
+        DISABLED_WARNINGS_CXX_solstudio := wvarhidenmem doubunder, \
         LIBS := $$($1_LIBS_$$(name)), \
         TOOLCHAIN := $(if $$(filter %.cpp, $$(file)), TOOLCHAIN_LINK_CXX, TOOLCHAIN_DEFAULT), \
         OPTIMIZATION := $$(if $$($1_OPTIMIZATION_$$(name)),$$($1_OPTIMIZATION_$$(name)),LOW), \
--- a/make/conf/jib-profiles.js	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/conf/jib-profiles.js	Tue Nov 05 11:00:42 2019 +0530
@@ -247,7 +247,7 @@
     // These are the base setttings for all the main build profiles.
     common.main_profile_base = {
         dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
-        default_make_targets: ["product-bundles", "test-bundles"],
+        default_make_targets: ["product-bundles", "test-bundles", "static-libs-bundles"],
         configure_args: concat(["--enable-jtreg-failure-handler"],
             "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
             "--disable-manpages",
@@ -320,6 +320,14 @@
                     subdir: jdk_subdir,
                     exploded: "images/jdk"
                 },
+                static_libs: {
+                    local: "bundles/\\(jdk.*bin-static-libs.tar.gz\\)",
+                    remote: [
+                        "bundles/" + pf + "/jdk-" + data.version + "_" + pf + "_bin-static-libs.tar.gz",
+                        "bundles/" + pf + "/\\1"
+                    ],
+                    subdir: jdk_subdir,
+                },
             }
         };
     };
@@ -361,6 +369,14 @@
                     subdir: jdk_subdir,
                     exploded: "images/jdk"
                 },
+                static_libs: {
+                    local: "bundles/\\(jdk.*bin-static-libs-debug.tar.gz\\)",
+                    remote: [
+                        "bundles/" + pf + "/jdk-" + data.version + "_" + pf + "_bin-static-libs-debug.tar.gz",
+                        "bundles/" + pf + "/\\1"
+                    ],
+                    subdir: jdk_subdir,
+                },
             }
         };
     };
@@ -839,13 +855,17 @@
     if (testedProfile == null) {
         testedProfile = input.build_os + "-" + input.build_cpu;
     }
-    var testedProfileJDK = testedProfile + ".jdk";
-    var testedProfileTest = ""
-    if (testedProfile.endsWith("-jcov")) {
-        testedProfileTest = testedProfile.substring(0, testedProfile.length - "-jcov".length) + ".test";
+    var testedProfileJdk = testedProfile + ".jdk";
+    // Make it possible to use the test image from a different profile
+    var testImageProfile;
+    if (input.testImageProfile != null) {
+        testImageProfile = input.testImageProfile;
+    } else if (testedProfile.endsWith("-jcov")) {
+        testImageProfile = testedProfile.substring(0, testedProfile.length - "-jcov".length);
     } else {
-        testedProfileTest = testedProfile + ".test";
+        testImageProfile = testedProfile;
     }
+    var testedProfileTest = testImageProfile + ".test"
     var testOnlyMake = [ "run-test-prebuilt", "LOG_CMDLINES=true", "JTREG_VERBOSE=fail,error,time" ];
     if (testedProfile.endsWith("-gcov")) {
         testOnlyMake = concat(testOnlyMake, "GCOV_ENABLED=true")
@@ -855,14 +875,14 @@
             target_os: input.build_os,
             target_cpu: input.build_cpu,
             dependencies: [
-                "jtreg", "gnumake", "boot_jdk", "devkit", "jib", "jcov", testedProfileJDK,
+                "jtreg", "gnumake", "boot_jdk", "devkit", "jib", "jcov", testedProfileJdk,
                 testedProfileTest
             ],
             src: "src.conf",
             make_args: testOnlyMake,
             environment: {
                 "BOOT_JDK": common.boot_jdk_home,
-                "JDK_IMAGE_DIR": input.get(testedProfileJDK, "home_path"),
+                "JDK_IMAGE_DIR": input.get(testedProfileJdk, "home_path"),
                 "TEST_IMAGE_DIR": input.get(testedProfileTest, "home_path")
             },
             labels: "test"
@@ -871,10 +891,10 @@
 
     // If actually running the run-test-prebuilt profile, verify that the input
     // variable is valid and if so, add the appropriate target_* values from
-    // the tested profile.
+    // the tested profile. Use testImageProfile value as backup.
     if (input.profile == "run-test-prebuilt") {
-        if (profiles[testedProfile] == null) {
-            error("testedProfile is not defined: " + testedProfile);
+        if (profiles[testedProfile] == null && profiles[testImageProfile] == null) {
+            error("testedProfile is not defined: " + testedProfile + " " + testImageProfile);
         }
     }
     if (profiles[testedProfile] != null) {
@@ -882,6 +902,11 @@
             = profiles[testedProfile]["target_os"];
         testOnlyProfilesPrebuilt["run-test-prebuilt"]["target_cpu"]
             = profiles[testedProfile]["target_cpu"];
+    } else if (profiles[testImageProfile] != null) {
+        testOnlyProfilesPrebuilt["run-test-prebuilt"]["target_os"]
+            = profiles[testImageProfile]["target_os"];
+        testOnlyProfilesPrebuilt["run-test-prebuilt"]["target_cpu"]
+            = profiles[testImageProfile]["target_cpu"];
     }
     profiles = concatObjects(profiles, testOnlyProfilesPrebuilt);
 
@@ -1346,3 +1371,8 @@
              || (input.build_os == "linux"
                  && java.lang.System.getProperty("os.version").contains("Microsoft")));
 }
+
+var error = function (s) {
+    java.lang.System.err.println("[ERROR] " + s);
+    exit(1);
+};
--- a/make/copy/Copy-jdk.crypto.cryptoki.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/copy/Copy-jdk.crypto.cryptoki.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/copy/Copy-jdk.crypto.ucrypto.gmk	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/copy/Copy-jdk.crypto.ucrypto.gmk	Tue Nov 05 11:00:42 2019 +0530
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
--- a/make/data/cldr/README	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/README	Tue Nov 05 11:00:42 2019 +0530
@@ -1,4 +1,4 @@
 CLDR - Unicode Common Locale Data Repository
 http://cldr.unicode.org
 
-CLDR version installed: 35.1
+CLDR version installed: 36
--- a/make/data/cldr/common/bcp47/timezone.xml	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/common/bcp47/timezone.xml	Tue Nov 05 11:00:42 2019 +0530
@@ -7,7 +7,7 @@
 -->
 
 <ldmlBCP47>
-    <version number="$Revision: 14742 $"/>
+    <version number="$Revision$"/>
     <keyword>
         <key name="tz" description="Time zone key" alias="timezone">
             <type name="adalv" description="Andorra" alias="Europe/Andorra"/>
--- a/make/data/cldr/common/dtd/ldml.dtd	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/common/dtd/ldml.dtd	Tue Nov 05 11:00:42 2019 +0530
@@ -6,7 +6,7 @@
 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.
-$Revision: 14983 $
+$Revision$
 -->
 
 <!ELEMENT ldml ( identity, ( alias | ( fallback*, localeDisplayNames?, layout?, contextTransforms?, characters?, delimiters?, measurement?, dates?, numbers?, units?, listPatterns?, collations?, posix?, characterLabels?, segmentations?, rbnf?, typographicNames?, annotations?, metadata?, references?, special* ) ) ) >
@@ -46,7 +46,7 @@
 <!ATTLIST version number CDATA #REQUIRED >
     <!--@MATCH:regex/\$Revision.*\$-->
     <!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "35.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "36" >
     <!--@MATCH:any-->
     <!--@VALUE-->
 <!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
@@ -2543,7 +2543,7 @@
 
 <!ELEMENT compoundUnit ( alias | ( compoundUnitPattern*, special* ) ) >
 <!ATTLIST compoundUnit type NMTOKEN #REQUIRED >
-    <!--@MATCH:literal/per-->
+    <!--@MATCH:literal/per, times-->
 <!ATTLIST compoundUnit alt NMTOKENS #IMPLIED >
     <!--@MATCH:literal/variant-->
 <!ATTLIST compoundUnit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
--- a/make/data/cldr/common/dtd/ldmlBCP47.dtd	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/common/dtd/ldmlBCP47.dtd	Tue Nov 05 11:00:42 2019 +0530
@@ -6,7 +6,7 @@
 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.
-$Revision: 14983 $
+$Revision$
 -->
 
 <!ELEMENT ldmlBCP47 ( version, generation?, cldrVersion?, keyword*, attribute* ) >
@@ -16,7 +16,7 @@
 <!ATTLIST version number CDATA #REQUIRED >
 	<!--@MATCH:regex/\$Revision.*\$-->
     <!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "35.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "36" >
 	<!--@MATCH:version-->
     <!--@VALUE-->
 
--- a/make/data/cldr/common/dtd/ldmlSupplemental.dtd	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/common/dtd/ldmlSupplemental.dtd	Tue Nov 05 11:00:42 2019 +0530
@@ -7,7 +7,7 @@
 
 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.
 
-    $Revision: 14983 $
+    $Revision$
 -->
 
 <!ELEMENT supplementalData ( version, generation?, cldrVersion?, currencyData?, territoryContainment?, subdivisionContainment?, languageData?, territoryInfo?, postalCodeData?, calendarData?, calendarPreferenceData?, weekData?, timeData?, measurementData?, unitPreferenceData?, timezoneData?, characters?, transforms?, metadata?, codeMappings?, parentLocales?, likelySubtags?, metazoneInfo?, plurals?, telephoneCodeData?, numberingSystems?, bcp47KeywordMappings?, gender?, references?, languageMatching?, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, coverageLevels?, idValidity?, rgScope?, languageGroups? ) >
@@ -17,7 +17,7 @@
 <!ATTLIST version number CDATA #REQUIRED >
 	<!--@MATCH:any-->
     <!--@METADATA-->
-<!ATTLIST version cldrVersion CDATA #FIXED "35.1" >
+<!ATTLIST version cldrVersion CDATA #FIXED "36" >
 	<!--@MATCH:version-->
     <!--@VALUE-->
 <!ATTLIST version unicodeVersion CDATA #FIXED "12.1.0" >
--- a/make/data/cldr/common/main/af.xml	Mon Nov 04 10:01:55 2019 -0800
+++ b/make/data/cldr/common/main/af.xml	Tue Nov 05 11:00:42 2019 +0530
@@ -9,7 +9,7 @@
 -->
 <ldml>
 	<identity>
-		<version number="$Revision: 14817 $"/>
+		<version number="$Revision$"/>
 		<language type="af"/>
 	</identity>
 	<localeDisplayNames>
@@ -68,6 +68,7 @@
 			<language type="bug">Buginees</language>
 			<language type="byn">Blin</language>
 			<language type="ca">Katalaans</language>
+			<language type="ccp">Tsjaakma</language>
 			<language type="ce">Tsjetsjeens</language>
 			<language type="ceb">Cebuano</language>
 			<language type="cgg">Kiga</language>
@@ -90,7 +91,6 @@
 			<language type="dar">Dakota</language>
 			<language type="dav">Taita</language>
 			<language type="de">Duits</language>
-			<language type="de_CH">Switserse hoog-Duits</language>
 			<language type="dgr">Dogrib</language>
 			<language type="dje">Zarma</language>
 			<language type="dsb">Benedesorbies</language>
@@ -107,9 +107,7 @@
 			<language type="el">Grieks</language>
 			<language type="en">Engels</language>
 			<language type="en_GB">Engels (VK)</language>
-			<language type="en_GB" alt="short">Engels (VK)</language>
 			<language type="en_US">Engels (VSA)</language>
-			<language type="en_US" alt="short">Engels (VSA)</language>
 			<language type="eo">Esperanto</language>
 			<language type="es">Spaans</language>
 			<language type="et">Estnies</language>
@@ -273,7 +271,7 @@
 			<language type="naq">Nama</language>
 			<language type="nb">Boeknoors</language>
 			<language type="nd">Noord-Ndebele</language>
-			<language type="nds">Lae Duits</language>
+			<language type="nds">Nederduits</language>
 			<language type="nds_NL">Nedersaksies</language>
 			<language type="ne">Nepalees</language>
 			<language type="new">Newari</language>
@@ -394,7 +392,7 @@
 			<language type="ug">Uighur</language>
 			<language type="uk">Oekraïens</language>
 			<language type="umb">Umbundu</language>
-			<language type="und">Onbekende of ongeldige taal</language>
+			<language type="und">Onbekende taal</language>
 			<language type="ur">Oerdoe</language>
 			<language type="uz">Oezbeeks</language>
 			<language type="vai">Vai</language>
@@ -417,10 +415,12 @@
 			<language type="yi">Jiddisj</language>
 			<language type="yo">Yoruba</language>
 			<language type="yue">Kantonees</language>
+			<language type="yue" alt="menu">Kantonese Chinees</language>
 			<language type="zgh">Standaard Marokkaanse Tamazight</language>
-			<language type="zh">Sjinees</language>
-			<language type="zh_Hans">Chinees (Vereenvoudig)</language>
-			<language type="zh_Hant">Chinees (Tradisioneel)</language>
+			<language type="zh">Chinees</language>
+			<language type="zh" alt="menu">Mandarynse Chinees</language>
+			<language type="zh_Hans" alt="long">Mandarynse Chinees (Vereenvoudigd)</language>
+			<language type="zh_Hant" alt="long">Mandarynse Chinees (Tradisioneel)</language>
 			<language type="zu">Zoeloe</language>
 			<language type="zun">Zuni</language>
 			<language type="zxx">Geen taalinhoud nie</language>
@@ -444,7 +444,7 @@
 			<script type="Grek">Grieks</script>
 			<script type="Gujr">Gudjarati</script>
 			<script type="Guru">Gurmukhi</script>
-			<script type="Hanb">Hanb</script>
+			<script type="Hanb">Han met Bopomofo</script>
 			<script type="Hang">Hangul</script>
 			<script type="Hani">Han</script>
 			<script type="Hans">Vereenvoudig</script>
@@ -479,7 +479,7 @@
 			<script type="Zsye">Emoji</script>
 			<script type="Zsym">Simbole</script>
 			<script type="Zxxx">Ongeskrewe</script>
-			<script type="Zyyy">Algemeen</script>
+			<script type="Zyyy">Gemeenskaplik</script>
 			<script type="Zzzz">Onbekende skryfstelsel</script>
 		</scripts>
 		<territories>
@@ -561,6 +561,7 @@
 			<territory type="CG" alt="variant">Kongo (Republiek die)</territory>
 			<territory type="CH">Switserland</territory>
 			<territory type="CI">Ivoorkus</territory>
+			<territory type="CI" alt="variant">Cote d’Ivoire</territory>
 			<territory type="CK">Cookeilande</territory>
 			<territory type="CL">Chili</territory>
 			<territory type="CM">Kameroen</territory>
@@ -670,8 +671,7 @@
 			<territory type="MF">Sint Martin</territory>
 			<territory type="MG">Madagaskar</territory>
 			<territory type="MH">Marshalleilande</territory>
-			<territory type="MK">Macedonië</territory>
-			<territory type="MK" alt="variant">Macedonië (VJRM)</territory>
+			<territory type="MK">Noord-Macedonië</territory>
 			<territory type="ML">Mali</territory>
 			<territory type="MM">Mianmar (Birma)</territory>
 			<territory type="MN">Mongolië</territory>
@@ -743,7 +743,8 @@
 			<territory type="SV">El Salvador</territory>
 			<territory type="SX">Sint Maarten</territory>
 			<territory type="SY">Sirië</territory>
-			<territory type="SZ">Swaziland</territory>
+			<territory type="SZ">Eswatini</territory>
+			<territory type="SZ" alt="variant">Eswatini</territory>
 			<territory type="TA">Tristan da Cunha</territory>
 			<territory type="TC">Turks- en Caicoseilande</territory>
 			<territory type="TD">Tsjad</territory>
@@ -753,6 +754,7 @@
 			<territory type="TJ">Tadjikistan</territory>
 			<territory type="TK">Tokelau</territory>
 			<territory type="TL">Oos-Timor</territory>
+			<territory type="TL" alt="variant">Oos-Timor</territory>
 			<territory type="TM">Turkmenistan</territory>
 			<territory type="TN">Tunisië</territory>
 			<territory type="TO">Tonga</territory>
@@ -779,6 +781,8 @@
 			<territory type="VU">Vanuatu</territory>
 			<territory type="WF">Wallis en Futuna</territory>
 			<territory type="WS">Samoa</territory>
+			<territory type="XA">Pseudoaksente</territory>
+			<territory type="XB">Pseudotweerigting</territory>
 			<territory type="XK">Kosovo</territory>
 			<territory type="YE">Jemen</territory>
 			<territory type="YT">Mayotte</territory>
@@ -797,14 +801,14 @@
 		<keys>
 			<key type="calendar">Kalender</key>
 			<key type="cf">Geldeenheidformaat</key>
-			<key type="colAlternate">Ignoreer simboolsortering</key>
-			<key type="colBackwards">Omgekeerde aksentsortering</key>
-			<key type="colCaseFirst">Hoofletters/kleinletters-sortering</key>
-			<key type="colCaseLevel">Kassensitiewe sortering</key>
+			<key type="colAlternate">Ignoreer simboolrangskikking</key>
+			<key type="colBackwards">Omgekeerde aksentrangskikking</key>
+			<key type="colCaseFirst">Hoofletter-/kleinletter-rangskikking</key>
+			<key type="colCaseLevel">Kassensitiewe rangskikking</key>
 			<key type="collation">Rangskikvolgorde</key>
-			<key type="colNormalization">Genormaliseerde sortering</key>
-			<key type="colNumeric">Numeriese sortering</key>
-			<key type="colStrength">Sorteringssterkte</key>
+			<key type="colNormalization">Genormaliseerde rangskikking</key>
+			<key type="colNumeric">Numeriese rangskikking</key>
+			<key type="colStrength">Rangskiksterkte</key>
 			<key type="currency">Geldeenheid</key>
 			<key type="hc">Uursiklus (12 vs 24)</key>
 			<key type="lb">Reëlafbreek-styl</key>
@@ -935,8 +939,8 @@
 		<exemplarCharacters>[a á â b c d e é è ê ë f g h i î ï j k l m n o ô ö p q r s t u û v w x y z]</exemplarCharacters>
 		<exemplarCharacters type="auxiliary">[à å ä ã æ ç í ì ó ò ú ù ü ý]</exemplarCharacters>
 		<exemplarCharacters type="index" draft="contributed">[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]</exemplarCharacters>
-		<exemplarCharacters type="numbers">[  \- , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
-		<exemplarCharacters type="punctuation">[\- ‐ – — , ; \: ! ? . … ' ‘ ’ &quot; “ ” ( ) \[ \] § @ * / \&amp; # † ‡ ′ ″]</exemplarCharacters>
+		<exemplarCharacters type="numbers">[  \- ‑ , % ‰ + 0 1 2 3 4 5 6 7 8 9]</exemplarCharacters>
+		<exemplarCharacters type="punctuation">[\- ‐ ‑ – — , ; \: ! ? . … ' ‘ ’ &quot; “ ” ( ) \[ \] § @ * / \&amp; # † ‡ ′ ″]</exemplarCharacters>
 		<ellipsis type="final">{0}…</ellipsis>
 		<ellipsis type="initial">…{0}</ellipsis>
 		<ellipsis type="medial">{0}…{1}</ellipsis>
@@ -972,19 +976,19 @@
 					</dateFormatLength>
 					<dateFormatLength type="short">
 						<dateFormat>
-							<pattern>GGGGG y-MM-dd</pattern>
+							<pattern>y-MM-dd GGGGG</pattern>
 						</dateFormat>
 					</dateFormatLength>
 				</dateFormats>
 				<dateTimeFormats>
 					<dateTimeFormatLength type="full">
 						<dateTimeFormat>
-							<pattern>{1} {0}</pattern>
+							<pattern>{1} 'om' {0}</pattern>
 						</dateTimeFormat>
 					</dateTimeFormatLength>
 					<dateTimeFormatLength type="long">
 						<dateTimeFormat>
-							<pattern>{1} {0}</pattern>
+							<pattern>{1} 'om' {0}</pattern>
 						</dateTimeFormat>
 					</dateTimeFormatLength>
 					<dateTimeFormatLength type="medium">
@@ -1047,11 +1051,6 @@
 							<greatestDifference id="B">h B – h B</greatestDifference>
 							<greatestDifference id="h">h–h B</greatestDifference>
 						</intervalFormatItem>
-						<intervalFormatItem id="Bhm">
-							<greatestDifference id="B">h:mm B – h:mm B</greatestDifference>
-							<greatestDifference id="h">h:mm–h:mm B</greatestDifference>
-							<greatestDifference id="m">h:mm–h:mm B</greatestDifference>
-						</intervalFormatItem>
 						<intervalFormatItem id="d">
 							<greatestDifference id="d">d – d</greatestDifference>
 						</intervalFormatItem>
@@ -1133,8 +1132,8 @@
 							<greatestDifference id="M">d/M – d/M</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="MEd">
-							<greatestDifference id="d">E, d/M – E, d/M</greatestDifference>
-							<greatestDifference id="M">E, d/M – E, d/M</greatestDifference>
+							<greatestDifference id="d">E d/M – E d/M</greatestDifference>
+							<greatestDifference id="M">E d/M – E d/M</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="MMM">
 							<greatestDifference id="M">MMM – MMM</greatestDifference>
@@ -1144,8 +1143,8 @@
 							<greatestDifference id="M">d MMM – d MMM</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="MMMEd">
-							<greatestDifference id="d">E, d MMM – E, d MMM</greatestDifference>
-							<greatestDifference id="M">E, d MMM – E, d MMM</greatestDifference>
+							<greatestDifference id="d">E d MMM – E d MMM</greatestDifference>
+							<greatestDifference id="M">E d MMM – E d MMM</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="y">
 							<greatestDifference id="y">y – y G</greatestDifference>
@@ -1160,23 +1159,23 @@
 							<greatestDifference id="y">d/M/y – d/M/y GGGGG</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="yMEd">
-							<greatestDifference id="d">E, d/M/y – E, d/M/y GGGGG</greatestDifference>
-							<greatestDifference id="M">E, d/M/y – E, d/M/y GGGGG</greatestDifference>
-							<greatestDifference id="y">E, d/M/y – E, d/M/y GGGGG</greatestDifference>
+							<greatestDifference id="d">E d/M/y – E d/M/y GGGGG</greatestDifference>
+							<greatestDifference id="M">E d/M/y – E d/M/y GGGGG</greatestDifference>
+							<greatestDifference id="y">E d/M/y – E d/M/y GGGGG</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="yMMM">
 							<greatestDifference id="M">MMM–MMM y G</greatestDifference>
 							<greatestDifference id="y">MMM y – MMM y G</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="yMMMd">
-							<greatestDifference id="d">d–d MMM, y G</greatestDifference>
+							<greatestDifference id="d">d–d MMM y G</greatestDifference>
 							<greatestDifference id="M">d MMM – d MMM y G</greatestDifference>
-							<greatestDifference id="y">d MMM, y – d MMM, y G</greatestDifference>
+							<greatestDifference id="y">d MMM y – d MMM y G</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="yMMMEd">
-							<greatestDifference id="d">E, d MMM – E, d MMM, y G</greatestDifference>
-							<greatestDifference id="M">E, d MMM – E, d MMM, y G</greatestDifference>
-							<greatestDifference id="y">E, d MMM y – E, d MMM y G</greatestDifference>
+							<greatestDifference id="d">E d MMM – E d MMM y G</greatestDifference>
+							<greatestDifference id="M">E d MMM – E d MMM y G</greatestDifference>
+							<greatestDifference id="y">E d MMM y – E d MMM y G</greatestDifference>
 						</intervalFormatItem>
 						<intervalFormatItem id="yMMMM">
 							<greatestDifference id="M">MMMM–MMMM y G</greatestDifference>
@@ -1543,12 +1542,12 @@
 					</dateTimeFormatLength>
 					<availableFormats>
 						<dateFormatItem id="Bh">h B</dateFormatItem>
-						<dateFormatItem id="Bhm">h:mm B</dateFormatItem>
-						<dateFormatItem id="Bhms">h:mm:ss B</dateFormatItem>
+						<dateFormatItem id="Bhm">hh:mm B</dateFormatItem>
+						<dateFormatItem id="Bhms">hh:mm:ss B</dateFormatItem>
 						<dateFormatItem id="d">d</dateFormatItem>
 						<dateFormatItem id="E">ccc</dateFormatItem>
-						<dateFormatItem id="EBhm">E h:mm B</dateFormatItem>
-						<dateFormatItem id="EBhms">E h:mm:ss B</dateFormatItem>
+						<dateFormatItem id="EBhm">E hh:mm B</dateFormatItem>
+						<dateFormatItem id="EBhms">E hh:mm:ss B</dateFormatItem>
 						<dateFormatItem id="Ed">E d</dateFormatItem>
 						<dateFormatItem id="Ehm">E hh:mm a</dateFormatItem>
 						<dateFormatItem id="EHm">E HH:mm</dateFormatItem>
@@ -1766,6 +1765,9 @@
 			</field>
 			<field type="year-short">
 				<displayName>j.</displayName>
+				<relative type="-1">verlede j.</relative>
+				<relative type="0">hierdie j.</relative>
+				<relative type="1">volgende j.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} j.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} j.</relativeTimePattern>
@@ -1777,6 +1779,9 @@
 			</field>
 			<field type="year-narrow">
 				<displayName>j.</displayName>
+				<relative type="-1">verlede j.</relative>
+				<relative type="0">hierdie j.</relative>
+				<relative type="1">volgende j.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} j.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} j.</relativeTimePattern>
@@ -1838,6 +1843,9 @@
 			</field>
 			<field type="month-short">
 				<displayName>md.</displayName>
+				<relative type="-1">verlede md.</relative>
+				<relative type="0">hierdie md.</relative>
+				<relative type="1">volgende md.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} md.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} md.</relativeTimePattern>
@@ -1849,6 +1857,9 @@
 			</field>
 			<field type="month-narrow">
 				<displayName>md.</displayName>
+				<relative type="-1">verlede md.</relative>
+				<relative type="0">hierdie md.</relative>
+				<relative type="1">volgende md.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} md.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} md.</relativeTimePattern>
@@ -1875,6 +1886,9 @@
 			</field>
 			<field type="week-short">
 				<displayName>wk.</displayName>
+				<relative type="-1">verlede w.</relative>
+				<relative type="0">hierdie w.</relative>
+				<relative type="1">volgende w.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} w.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} w.</relativeTimePattern>
@@ -1887,6 +1901,9 @@
 			</field>
 			<field type="week-narrow">
 				<displayName>wk.</displayName>
+				<relative type="-1">verlede w.</relative>
+				<relative type="0">hierdie w.</relative>
+				<relative type="1">volgende w.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} w.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} w.</relativeTimePattern>
@@ -2008,17 +2025,10 @@
 				</relativeTime>
 			</field>
 			<field type="sun-narrow">
-				<relative type="-1">verlede Son.</relative>
-				<relative type="0">dié So.</relative>
-				<relative type="1">vlg. So.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} So.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} So.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Sondae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Sondae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="mon">
 				<relative type="-1">verlede Maandag</relative>
@@ -2054,10 +2064,6 @@
 					<relativeTimePattern count="one">oor {0} Ma.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Ma.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Maandae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Maandae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="tue">
 				<relative type="-1">verlede Dinsdag</relative>
@@ -2093,10 +2099,6 @@
 					<relativeTimePattern count="one">oor {0} Di.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Di.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Dinsdae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Dinsdae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="wed">
 				<relative type="-1">verlede Woensdag</relative>
@@ -2132,10 +2134,6 @@
 					<relativeTimePattern count="one">oor {0} Wo.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Wo.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Woensdae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Woensdae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="thu">
 				<relative type="-1">verlede Donderdag</relative>
@@ -2171,10 +2169,6 @@
 					<relativeTimePattern count="one">oor {0} Do.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Do.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Donderdae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Donderdae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="fri">
 				<relative type="-1">verlede Vrydag</relative>
@@ -2191,7 +2185,7 @@
 			</field>
 			<field type="fri-short">
 				<relative type="-1">verlede Vr.</relative>
-				<relative type="0">dié Vr.</relative>
+				<relative type="0">hierdie Vr.</relative>
 				<relative type="1">vlg. Vr.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} Vr.</relativeTimePattern>
@@ -2204,16 +2198,12 @@
 			</field>
 			<field type="fri-narrow">
 				<relative type="-1">verlede Vr.</relative>
-				<relative type="0">dié Vr.</relative>
-				<relative type="1">vlg. Vr.</relative>
+				<relative type="0">hierdie Vr.</relative>
+				<relative type="1">volgende Vr.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} Vr.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Vr.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Vrydae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Vrydae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="sat">
 				<relative type="-1">verlede Saterdag</relative>
@@ -2231,7 +2221,7 @@
 			<field type="sat-short">
 				<relative type="-1">verlede Sa.</relative>
 				<relative type="0">dié Sa.</relative>
-				<relative type="1">vlg. Sa.</relative>
+				<relative type="1">volgende Sa.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} Sa.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Sa.</relativeTimePattern>
@@ -2243,16 +2233,12 @@
 			</field>
 			<field type="sat-narrow">
 				<relative type="-1">verlede Sa.</relative>
-				<relative type="0">dié Sa.</relative>
-				<relative type="1">vlg. Sa.</relative>
+				<relative type="0">hierdie Sa.</relative>
+				<relative type="1">volgende Sa.</relative>
 				<relativeTime type="future">
 					<relativeTimePattern count="one">oor {0} Sa.</relativeTimePattern>
 					<relativeTimePattern count="other">oor {0} Sa.</relativeTimePattern>
 				</relativeTime>
-				<relativeTime type="past">
-					<relativeTimePattern count="one">{0} Saterdae gelede</relativeTimePattern>
-					<relativeTimePattern count="other">{0} Saterdae gelede</relativeTimePattern>
-				</relativeTime>
 			</field>
 			<field type="dayperiod-short">
 				<displayName>vm./nm.</displayName>
@@ -3060,6 +3046,9 @@
 			<zone type="Asia/Aqtobe">
 				<exemplarCity>Aqtobe</exemplarCity>
 			</zone>
+			<zone type="Asia/Qostanay">
+				<exemplarCity>Kostanay</exemplarCity>
+			</zone>
 			<zone type="Asia/Qyzylorda">
 				<exemplarCity>Qyzylorda</exemplarCity>
 			</zone>
@@ -3932,7 +3921,7 @@
 				<long>
 					<generic>Colombië-tyd</generic>
 					<standard>Colombië-standaardtyd</standard>
-					<daylight>Colombië-somertyd</daylight>
+					<daylight>Colombia-somertyd</daylight>
 				</long>
 			</metazone>
 			<metazone type="Cook">
@@ -4592,12 +4581,18 @@
 		</timeZoneNames>
 	</dates>
 	<numbers>
+		<defaultNumberingSystem draft="contributed">latn</defaultNumberingSystem>
+		<otherNumberingSystems>
+			<native draft="contributed">latn</native>
+		</otherNumberingSystems>
 		<minimumGroupingDigits draft="contributed">1</minimumGroupingDigits>
 		<symbols numberSystem="latn">
 			<decimal>,</decimal>
 			<group> </group>
 			<list>;</list>
 			<percentSign>%</percentSign>
+			<plusSign draft="contributed">+</plusSign>
+			<minusSign draft="contributed">-</minusSign>
 			<exponential>E</exponential>
 			<superscriptingExponent>×</superscriptingExponent>
 			<perMille>‰</perMille>
@@ -4606,6 +4601,11 @@
 			<timeSeparator draft="contributed">:</timeSeparator>
 		</symbols>
 		<decimalFormats numberSystem="latn">
+			<decimalFormatLength>
+				<decimalFormat>
+					<pattern draft="contributed">#,##0.###</pattern>
+				</decimalFormat>
+			</decimalFormatLength>
 			<decimalFormatLength type="long">
 				<decimalFormat>
 					<pattern type="1000" count="one">0 duisend</pattern>
@@ -4719,255 +4719,334 @@
 		</currencyFormats>
 		<currencies>
 			<currency type="AED">
-				<displayName>Verenigde Arabiese Emirate dirham</displayName>
-				<displayName count="one">Verenigde Arabiese Emirate dirham</displayName>
-				<displayName count="other">Verenigde Arabiese Emirate dirham</displayName>
+				<displayName>Verenigde Arabiese Emirate-dirham</displayName>
+				<displayName count="one">VAE-dirham</displayName>
+				<displayName count="other">VAE-dirham</displayName>
+				<symbol draft="contributed">AED</symbol>
 			</currency>
 			<currency type="AFN">
 				<displayName>Afgaanse afgani</displayName>
 				<displayName count="one">Afgaanse afgani</displayName>
 				<displayName count="other">Afgaanse afgani</displayName>
+				<symbol draft="contributed">AFN</symbol>
 			</currency>
 			<currency type="ALL">
 				<displayName>Albanese lek</displayName>
 				<displayName count="one">Albanese lek</displayName>
 				<displayName count="other">Albanese lek</displayName>
+				<symbol draft="contributed">ALL</symbol>
 			</currency>
 			<currency type="AMD">
 				<displayName>Armeense dram</displayName>
 				<displayName count="one">Armeense dram</displayName>
 				<displayName count="other">Armeense dram</displayName>
+				<symbol draft="contributed">AMD</symbol>
 			</currency>
 			<currency type="ANG">
 				<displayName>Nederlands-Antilliaanse gulde</displayName>
 				<displayName count="one">Nederlands-Antilliaanse gulde</displayName>
 				<displayName count="other">Nederlands-Antilliaanse gulde</displayName>
+				<symbol draft="contributed">ANG</symbol>
 			</currency>
 			<currency type="AOA">
 				<displayName>Angolese kwanza</displayName>
 				<displayName count="one">Angolese kwanza</displayName>
 				<displayName count="other">Angolese kwanza</displayName>
+				<symbol draft="contributed">AOA</symbol>
+				<symbol alt="narrow" draft="contributed">Kz</symbol>
 			</currency>
 			<currency type="ARS">
 				<displayName>Argentynse peso</displayName>
 				<displayName count="one">Argentynse peso</displayName>
 				<displayName count="other">Argentynse peso</displayName>
+				<symbol draft="contributed">ARS</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="AUD">
 				<displayName>Australiese dollar</displayName>
 				<displayName count="one">Australiese dollar</displayName>
 				<displayName count="other">Australiese dollar</displayName>
+				<symbol draft="contributed">A$</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="AWG">
 				<displayName>Arubaanse floryn</displayName>
 				<displayName count="one">Arubaanse floryn</displayName>
 				<displayName count="other">Arubaanse floryn</displayName>
+				<symbol draft="contributed">AWG</symbol>
 			</currency>
 			<currency type="AZN">
 				<displayName>Azerbeidjaanse manat</displayName>
 				<displayName count="one">Azerbeidjaanse manat</displayName>
 				<displayName count="other">Azerbeidjaanse manat</displayName>
+				<symbol draft="contributed">AZN</symbol>
 			</currency>
 			<currency type="BAM">
 				<displayName>Bosnies-Herzegowiniese omskakelbare marka</displayName>
 				<displayName count="one">Bosnies-Herzegowiniese omskakelbare marka</displayName>
 				<displayName count="other">Bosnies-Herzegowiniese omskakelbare marka</displayName>
+				<symbol draft="contributed">BAM</symbol>
+				<symbol alt="narrow" draft="contributed">KM</symbol>
 			</currency>
 			<currency type="BBD">
 				<displayName>Barbados-dollar</displayName>
 				<displayName count="one">Barbados-dollar</displayName>
 				<displayName count="other">Barbados-dollar</displayName>
+				<symbol draft="contributed">BBD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="BDT">
 				<displayName>Bangladesjiese taka</displayName>
 				<displayName count="one">Bangladesjiese taka</displayName>
 				<displayName count="other">Bangladesjiese taka</displayName>
+				<symbol draft="contributed">BDT</symbol>
+				<symbol alt="narrow" draft="contributed">৳</symbol>
 			</currency>
 			<currency type="BGN">
 				<displayName>Bulgaarse lev</displayName>
 				<displayName count="one">Bulgaarse lev</displayName>
 				<displayName count="other">Bulgaarse lev</displayName>
+				<symbol draft="contributed">BGN</symbol>
 			</currency>
 			<currency type="BHD">
 				<displayName>Bahreinse dinar</displayName>
 				<displayName count="one">Bahreinse dinar</displayName>
 				<displayName count="other">Bahreinse dinar</displayName>
+				<symbol draft="contributed">BHD</symbol>
 			</currency>
 			<currency type="BIF">
 				<displayName>Burundiese frank</displayName>
 				<displayName count="one">Burundiese frank</displayName>
 				<displayName count="other">Burundiese frank</displayName>
+				<symbol draft="contributed">BIF</symbol>
 			</currency>
 			<currency type="BMD">
 				<displayName>Bermuda-dollar</displayName>
 				<displayName count="one">Bermuda-dollar</displayName>
 				<displayName count="other">Bermuda-dollar</displayName>
+				<symbol draft="contributed">BMD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="BND">
 				<displayName>Broeneise dollar</displayName>
 				<displayName count="one">Broeneise dollar</displayName>
 				<displayName count="other">Broeneise dollar</displayName>
+				<symbol draft="contributed">BND</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="BOB">
 				<displayName>Boliviaanse boliviano</displayName>
 				<displayName count="one">Boliviaanse boliviano</displayName>
 				<displayName count="other">Boliviaanse boliviano</displayName>
+				<symbol draft="contributed">BOB</symbol>
+				<symbol alt="narrow" draft="contributed">Bs</symbol>
 			</currency>
 			<currency type="BRL">
 				<displayName>Brasilliaanse reaal</displayName>
 				<displayName count="one">Brasillianse reaal</displayName>
 				<displayName count="other">Brasillianse reaal</displayName>
+				<symbol draft="contributed">R$</symbol>
+				<symbol alt="narrow" draft="contributed">R$</symbol>
 			</currency>
 			<currency type="BSD">
 				<displayName>Bahamiaanse dollar</displayName>
 				<displayName count="one">Bahamiaanse dollar</displayName>
 				<displayName count="other">Bahamiaanse dollar</displayName>
+				<symbol draft="contributed">BSD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="BTN">
 				<displayName>Bhoetanese ngoeltroem</displayName>
 				<displayName count="one">Bhoetanese ngoeltroem</displayName>
 				<displayName count="other">Bhoetanese ngoeltroem</displayName>
+				<symbol draft="contributed">BTN</symbol>
 			</currency>
 			<currency type="BWP">
-				<displayName>Botswana pula</displayName>
-				<displayName count="one">Botswana pula</displayName>
-				<displayName count="other">Botswana pula</displayName>
+				<displayName>Botswana-pula</displayName>
+				<displayName count="one">Botswana-pula</displayName>
+				<displayName count="other">Botswana-pula</displayName>
+				<symbol draft="contributed">BWP</symbol>
+				<symbol alt="narrow" draft="contributed">P</symbol>
 			</currency>
 			<currency type="BYN">
-				<displayName>Belo-Russiese roebel</displayName>
-				<displayName count="one">Belo-Russiese roebel</displayName>
-				<displayName count="other">Belo-Russiese roebel</displayName>
+				<displayName>Belarusiese roebel</displayName>
+				<displayName count="one">Belarusiese roebel</displayName>
+				<displayName count="other">Belarusiese roebel</displayName>
+				<symbol draft="contributed">BYN</symbol>
+				<symbol alt="narrow" draft="contributed">р.</symbol>
 			</currency>
 			<currency type="BYR">
 				<displayName>Belo-Russiese roebel (2000–2016)</displayName>
 				<displayName count="one">Belo-Russiese roebel (2000–2016)</displayName>
 				<displayName count="other">Belo-Russiese roebel (2000–2016)</displayName>
+				<symbol draft="contributed">BYR</symbol>
 			</currency>
 			<currency type="BZD">
 				<displayName>Beliziese dollar</displayName>
 				<displayName count="one">Beliziese dollar</displayName>
 				<displayName count="other">Beliziese dollar</displayName>
+				<symbol draft="contributed">BZD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CAD">
 				<displayName>Kanadese dollar</displayName>
 				<displayName count="one">Kanadese dollar</displayName>
 				<displayName count="other">Kanadese dollar</displayName>
+				<symbol draft="contributed">CAD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CDF">
 				<displayName>Kongolese frank</displayName>
 				<displayName count="one">Kongolese frank</displayName>
 				<displayName count="other">Kongolese frank</displayName>
+				<symbol draft="contributed">CDF</symbol>
 			</currency>
 			<currency type="CHF">
 				<displayName>Switserse frank</displayName>
 				<displayName count="one">Switserse frank</displayName>
 				<displayName count="other">Switserse frank</displayName>
+				<symbol draft="contributed">CHF</symbol>
 			</currency>
 			<currency type="CLP">
 				<displayName>Chileense peso</displayName>
 				<displayName count="one">Chileense peso</displayName>
 				<displayName count="other">Chileense peso</displayName>
+				<symbol draft="contributed">CLP</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CNH">
-				<displayName>Chinese joean</displayName>
+				<displayName>Chinese joean (buiteland)</displayName>
 				<displayName count="one">Chinese joean (buiteland)</displayName>
 				<displayName count="other">Chinese joean (buiteland)</displayName>
+				<symbol draft="contributed">CNH</symbol>
 			</currency>
 			<currency type="CNY">
-				<displayName>Sjinese joean renminbi</displayName>
-				<displayName count="one">Sjinese joean renminbi</displayName>
-				<displayName count="other">Sjinese joean renminbi</displayName>
+				<displayName>Chinese joean</displayName>
+				<displayName count="one">Chinese joean</displayName>
+				<displayName count="other">Chinese joean</displayName>
+				<symbol draft="contributed">CN¥</symbol>
+				<symbol alt="narrow" draft="contributed">¥</symbol>
 			</currency>
 			<currency type="COP">
 				<displayName>Colombiaanse peso</displayName>
 				<displayName count="one">Colombiaanse peso</displayName>
 				<displayName count="other">Colombiaanse peso</displayName>
+				<symbol draft="contributed">COP</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CRC">
 				<displayName>Costa Ricaanse colón</displayName>
 				<displayName count="one">Costa Ricaanse colón</displayName>
 				<displayName count="other">Costa Ricaanse colón</displayName>
+				<symbol draft="contributed">CRC</symbol>
+				<symbol alt="narrow" draft="contributed">₡</symbol>
 			</currency>
 			<currency type="CUC">
 				<displayName>Kubaanse omskakelbare peso</displayName>
 				<displayName count="one">Kubaanse omskakelbare peso</displayName>
 				<displayName count="other">Kubaanse omskakelbare peso</displayName>
+				<symbol draft="contributed">CUC</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CUP">
 				<displayName>Kubaanse peso</displayName>
 				<displayName count="one">Kubaanse peso</displayName>
 				<displayName count="other">Kubaanse peso</displayName>
+				<symbol draft="contributed">CUP</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="CVE">
 				<displayName>Kaap Verdiese escudo</displayName>
 				<displayName count="one">Kaap Verdiese escudo</displayName>
 				<displayName count="other">Kaap Verdiese escudo</displayName>
+				<symbol draft="contributed">CVE</symbol>
 			</currency>
 			<currency type="CZK">
 				<displayName>Tsjeggiese kroon</displayName>
 				<displayName count="one">Tsjeggiese kroon</displayName>
 				<displayName count="other">Tsjeggiese kroon</displayName>
+				<symbol draft="contributed">CZK</symbol>
+				<symbol alt="narrow" draft="contributed">Kč</symbol>
 			</currency>
 			<currency type="DJF">
-				<displayName>Djiboeti frank</displayName>
-				<displayName count="one">Djiboeti frank</displayName>
-				<displayName count="other">Djiboeti frank</displayName>
+				<displayName>Djiboeti-frank</displayName>
+				<displayName count="one">Djiboeti-frank</displayName>
+				<displayName count="other">Djiboeti-frank</displayName>
+				<symbol draft="contributed">DJF</symbol>
 			</currency>
 			<currency type="DKK">
 				<displayName>Deense kroon</displayName>
 				<displayName count="one">Deense kroon</displayName>
 				<displayName count="other">Deense kroon</displayName>
+				<symbol draft="contributed">DKK</symbol>
+				<symbol alt="narrow" draft="contributed">kr</symbol>
 			</currency>
 			<currency type="DOP">
 				<displayName>Dominikaanse peso</displayName>
 				<displayName count="one">Dominikaanse peso</displayName>
 				<displayName count="other">Dominikaanse peso</displayName>
+				<symbol draft="contributed">DOP</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="DZD">
 				<displayName>Algeriese dinar</displayName>
 				<displayName count="one">Algeriese dinar</displayName>
 				<displayName count="other">Algeriese dinar</displayName>
+				<symbol draft="contributed">DZD</symbol>
 			</currency>
 			<currency type="EGP">
 				<displayName>Egiptiese pond</displayName>
 				<displayName count="one">Egiptiese pond</displayName>
 				<displayName count="other">Egiptiese pond</displayName>
+				<symbol draft="contributed">EGP</symbol>
+				<symbol alt="narrow" draft="contributed">E£</symbol>
 			</currency>
 			<currency type="ERN">
 				<displayName>Eritrese nakfa</displayName>
 				<displayName count="one">Eritrese nakfa</displayName>
 				<displayName count="other">Eritrese nakfa</displayName>
+				<symbol draft="contributed">ERN</symbol>
 			</currency>
 			<currency type="ETB">
 				<displayName>Etiopiese birr</displayName>
 				<displayName count="one">Etiopiese birr</displayName>
 				<displayName count="other">Etiopiese birr</displayName>
+				<symbol draft="contributed">ETB</symbol>
 			</currency>
 			<currency type="EUR">
 				<displayName>euro</displayName>
 				<displayName count="one">euro</displayName>
 				<displayName count="other">euro</displayName>
+				<symbol draft="contributed">€</symbol>
 				<symbol alt="narrow" draft="contributed">€</symbol>
 			</currency>
 			<currency type="FJD">
 				<displayName>Fidjiaanse dollar</displayName>
 				<displayName count="one">Fidjiaanse dollar</displayName>
 				<displayName count="other">Fidjiaanse dollar</displayName>
+				<symbol draft="contributed">FJD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="FKP">
-				<displayName>Falkland-eilande pond</displayName>
-				<displayName count="one">Falkland-eilande pond</displayName>
-				<displayName count="other">Falkland-eilande pond</displayName>
+				<displayName>Falkland-eilandse pond</displayName>
+				<displayName count="one">Falkland-eilandse pond</displayName>
+				<displayName count="other">Falkland-eilandse pond</displayName>
+				<symbol draft="contributed">FKP</symbol>
+				<symbol alt="narrow" draft="contributed">£</symbol>
 			</currency>
 			<currency type="GBP">
 				<displayName>Britse pond</displayName>
 				<displayName count="one">Britse pond</displayName>
 				<displayName count="other">Britse pond</displayName>
+				<symbol draft="contributed">£</symbol>
+				<symbol alt="narrow" draft="contributed">£</symbol>
 			</currency>
 			<currency type="GEL">
 				<displayName>Georgiese lari</displayName>
 				<displayName count="one">Georgiese lari</displayName>
 				<displayName count="other">Georgiese lari</displayName>
+				<symbol draft="contributed">GEL</symbol>
+				<symbol alt="narrow" draft="contributed">₾</symbol>
 				<symbol alt="variant" draft="contributed">₾</symbol>
 			</currency>
 			<currency type="GHC">
@@ -4977,21 +5056,27 @@
 				<displayName>Ghanese cedi</displayName>
 				<displayName count="one">Ghanese cedi</displayName>
 				<displayName count="other">Ghanese cedi</displayName>
+				<symbol draft="contributed">GHS</symbol>
 			</currency>
 			<currency type="GIP">
 				<displayName>Gibraltarese pond</displayName>
 				<displayName count="one">Gibraltarese pond</displayName>
 				<displayName count="other">Gibraltarese pond</displayName>
+				<symbol draft="contributed">GIP</symbol>
+				<symbol alt="narrow" draft="contributed">£</symbol>
 			</currency>
 			<currency type="GMD">
 				<displayName>Gambiese dalasi</displayName>
 				<displayName count="one">Gambiese dalasi</displayName>
 				<displayName count="other">Gambiese dalasi</displayName>
+				<symbol draft="contributed">GMD</symbol>
 			</currency>
 			<currency type="GNF">
 				<displayName>Guinese frank</displayName>
 				<displayName count="one">Guinese frank</displayName>
 				<displayName count="other">Guinese frank</displayName>
+				<symbol draft="contributed">GNF</symbol>
+				<symbol alt="narrow" draft="contributed">FG</symbol>
 			</currency>
 			<currency type="GNS">
 				<displayName>Guinese syli</displayName>
@@ -5000,66 +5085,89 @@
 				<displayName>Guatemalaanse quetzal</displayName>
 				<displayName count="one">Guatemalaanse quetzal</displayName>
 				<displayName count="other">Guatemalaanse quetzal</displayName>
+				<symbol draft="contributed">GTQ</symbol>
+				<symbol alt="narrow" draft="contributed">Q</symbol>
 			</currency>
 			<currency type="GYD">
 				<displayName>Guyanese dollar</displayName>
 				<displayName count="one">Guyanese dollar</displayName>
 				<displayName count="other">Guyanese dollar</displayName>
+				<symbol draft="contributed">GYD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="HKD">
-				<displayName>Hong Kong dollar</displayName>
-				<displayName count="one">Hong Kong dollar</displayName>
-				<displayName count="other">Hong Kong dollar</displayName>
+				<displayName>Hongkongse dollar</displayName>
+				<displayName count="one">Hongkongse dollar</displayName>
+				<displayName count="other">Hongkongse dollar</displayName>
+				<symbol draft="contributed">HK$</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="HNL">
 				<displayName>Hondurese lempira</displayName>
 				<displayName count="one">Hondurese lempira</displayName>
 				<displayName count="other">Hondurese lempira</displayName>
+				<symbol draft="contributed">HNL</symbol>
+				<symbol alt="narrow" draft="contributed">L</symbol>
 			</currency>
 			<currency type="HRK">
 				<displayName>Kroatiese kuna</displayName>
 				<displayName count="one">Kroatiese kuna</displayName>
 				<displayName count="other">Kroatiese kuna</displayName>
+				<symbol draft="contributed">HRK</symbol>
+				<symbol alt="narrow" draft="contributed">kn</symbol>
 			</currency>
 			<currency type="HTG">
 				<displayName>Haïtiaanse gourde</displayName>
 				<displayName count="one">Haïtiaanse gourde</displayName>
 				<displayName count="other">Haïtiaanse gourde</displayName>
+				<symbol draft="contributed">HTG</symbol>
 			</currency>
 			<currency type="HUF">
 				<displayName>Hongaarse florint</displayName>
 				<displayName count="one">Hongaarse florint</displayName>
 				<displayName count="other">Hongaarse florint</displayName>
+				<symbol draft="contributed">HUF</symbol>
+				<symbol alt="narrow" draft="contributed">Ft</symbol>
 			</currency>
 			<currency type="IDR">
 				<displayName>Indonesiese roepia</displayName>
 				<displayName count="one">Indonesiese roepia</displayName>
 				<displayName count="other">Indonesiese roepia</displayName>
+				<symbol draft="contributed">IDR</symbol>
+				<symbol alt="narrow" draft="contributed">Rp</symbol>
 			</currency>
 			<currency type="ILS">
 				<displayName>Israeliese nuwe sikkel</displayName>
 				<displayName count="one">Israeliese nuwe sikkel</displayName>
 				<displayName count="other">Israeliese nuwe sikkel</displayName>
+				<symbol draft="contributed">₪</symbol>
+				<symbol alt="narrow" draft="contributed">₪</symbol>
 			</currency>
 			<currency type="INR">
 				<displayName>Indiese roepee</displayName>
 				<displayName count="one">Indiese rupee</displayName>
 				<displayName count="other">Indiese rupee</displayName>
+				<symbol draft="contributed">₹</symbol>
+				<symbol alt="narrow" draft="contributed">₹</symbol>
 			</currency>
 			<currency type="IQD">
 				<displayName>Irakse dinar</displayName>
 				<displayName count="one">Irakse dinar</displayName>
 				<displayName count="other">Irakse dinar</displayName>
+				<symbol draft="contributed">IQD</symbol>
 			</currency>
 			<currency type="IRR">
 				<displayName>Iranse rial</displayName>
 				<displayName count="one">Iranse rial</displayName>
 				<displayName count="other">Iranse rial</displayName>
+				<symbol draft="contributed">IRR</symbol>
 			</currency>
 			<currency type="ISK">
 				<displayName>Yslandse kroon</displayName>
 				<displayName count="one">Yslandse kroon</displayName>
 				<displayName count="other">Yslandse kroon</displayName>
+				<symbol draft="contributed">ISK</symbol>
+				<symbol alt="narrow" draft="contributed">kr</symbol>
 			</currency>
 			<currency type="ITL">
 				<displayName draft="contributed">Italiaanse lier</displayName>
@@ -5068,81 +5176,109 @@
 				<displayName>Jamaikaanse dollar</displayName>
 				<displayName count="one">Jamaikaanse dollar</displayName>
 				<displayName count="other">Jamaikaanse dollar</displayName>
+				<symbol draft="contributed">JMD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="JOD">
 				<displayName>Jordaniese dinar</displayName>
 				<displayName count="one">Jordaniese dinar</displayName>
 				<displayName count="other">Jordaniese dinar</displayName>
+				<symbol draft="contributed">JOD</symbol>
 			</currency>
 			<currency type="JPY">
 				<displayName>Japannese jen</displayName>
 				<displayName count="one">Japannese jen</displayName>
 				<displayName count="other">Japannese jen</displayName>
+				<symbol draft="contributed">JP¥</symbol>
+				<symbol alt="narrow" draft="contributed">¥</symbol>
 			</currency>
 			<currency type="KES">
 				<displayName>Keniaanse sjieling</displayName>
 				<displayName count="one">Keniaanse sjieling</displayName>
 				<displayName count="other">Keniaanse sjieling</displayName>
+				<symbol draft="contributed">KES</symbol>
 			</currency>
 			<currency type="KGS">
 				<displayName>Kirgisiese som</displayName>
 				<displayName count="one">Kirgisiese som</displayName>
 				<displayName count="other">Kirgisiese som</displayName>
+				<symbol draft="contributed">KGS</symbol>
 			</currency>
 			<currency type="KHR">
 				<displayName>Kambodjaanse riel</displayName>
 				<displayName count="one">Kambodjaanse riel</displayName>
 				<displayName count="other">Kambodjaanse riel</displayName>
+				<symbol draft="contributed">KHR</symbol>
+				<symbol alt="narrow" draft="contributed">៛</symbol>
 			</currency>
 			<currency type="KMF">
 				<displayName>Comoraanse frank</displayName>
 				<displayName count="one">Comoraanse frank</displayName>
 				<displayName count="other">Comoraanse frank</displayName>
+				<symbol draft="contributed">KMF</symbol>
+				<symbol alt="narrow" draft="contributed">CF</symbol>
 			</currency>
 			<currency type="KPW">
 				<displayName>Noord-Koreaanse won</displayName>
 				<displayName count="one">Noord-Koreaanse won</displayName>
 				<displayName count="other">Noord-Koreaanse won</displayName>
+				<symbol draft="contributed">KPW</symbol>
+				<symbol alt="narrow" draft="contributed">₩</symbol>
 			</currency>
 			<currency type="KRW">
 				<displayName>Suid-Koreaanse won</displayName>
 				<displayName count="one">Suid-Koreaanse won</displayName>
 				<displayName count="other">Suid-Koreaanse won</displayName>
+				<symbol draft="contributed">₩</symbol>
+				<symbol alt="narrow" draft="contributed">₩</symbol>
 			</currency>
 			<currency type="KWD">
 				<displayName>Koeweitse dinar</displayName>
 				<displayName count="one">Koeweitse dinar</displayName>
 				<displayName count="other">Koeweitse dinar</displayName>
+				<symbol draft="contributed">KWD</symbol>
 			</currency>
 			<currency type="KYD">
-				<displayName>Cayman-eilande dollar</displayName>
-				<displayName count="one">Cayman-eilande dollar</displayName>
-				<displayName count="other">Cayman-eilande dollar</displayName>
+				<displayName>Cayman-eilandse dollar</displayName>
+				<displayName count="one">Cayman-eilandse dollar</displayName>
+				<displayName count="other">Cayman-eilandse dollar</displayName>
+				<symbol draft="contributed">KYD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="KZT">
 				<displayName>Kazakse tenge</displayName>
 				<displayName count="one">Kazakse tenge</displayName>
 				<displayName count="other">Kazakse tenge</displayName>
+				<symbol draft="contributed">KZT</symbol>
+				<symbol alt="narrow" draft="contributed">₸</symbol>
 			</currency>
 			<currency type="LAK">
 				<displayName>Laosiaanse kip</displayName>
 				<displayName count="one">Laosiaanse kip</displayName>
 				<displayName count="other">Laosiaanse kip</displayName>
+				<symbol draft="contributed">LAK</symbol>
+				<symbol alt="narrow" draft="contributed">₭</symbol>
 			</currency>
 			<currency type="LBP">
-				<displayName>Lebanese pond</displayName>
-				<displayName count="one">Lebanese pond</displayName>
-				<displayName count="other">Lebanese pond</displayName>
+				<displayName>Libanese pond</displayName>
+				<displayName count="one">Libanese pond</displayName>
+				<displayName count="other">Libanese pond</displayName>
+				<symbol draft="contributed">LBP</symbol>
+				<symbol alt="narrow" draft="contributed">L£</symbol>
 			</currency>
 			<currency type="LKR">
 				<displayName>Sri Lankaanse roepee</displayName>
 				<displayName count="one">Sri Lankaanse roepee</displayName>
 				<displayName count="other">Sri Lankaanse roepee</displayName>
+				<symbol draft="contributed">LKR</symbol>
+				<symbol alt="narrow" draft="contributed">Rs</symbol>
 			</currency>
 			<currency type="LRD">
 				<displayName>Liberiese dollar</displayName>
 				<displayName count="one">Liberiese dollar</displayName>
 				<displayName count="other">Liberiese dollar</displayName>
+				<symbol draft="contributed">LRD</symbol>
+				<symbol alt="narrow" draft="contributed">$</symbol>
 			</currency>
 			<currency type="LSL">
 				<displayName>Lesotho loti</displayName>
@@ -5151,85 +5287,107 @@
 				<displayName>Litause litas</displayName>
 				<displayName count="one">Litause litas</displayName>
 				<displayName count="other">Litause litas</displayName>
+				<symbol draft="contributed">LTL</symbol>
 			</currency>
 			<currency type="LVL">
 				<displayName>Lettiese lats</displayName>
+				<symbol draft="contributed">LVL</symbol>
 			</currency>
 			<currency type="LYD">
 				<displayName>Libiese din