changeset 11148:15adcac0b7e5

8214452: Update libxml2 to version 2.9.9 Reviewed-by: jvos, mbilla, kcr
author arajkumar
date Wed, 09 Jan 2019 11:40:12 +0530
parents e2b06fc13588
children 35d5364af76a
files modules/javafx.web/src/main/legal/libxml2.md modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/config.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/include/libxml/xmlversion.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/config.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/include/libxml/xmlversion.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLparser.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLtree.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/Makefile.am modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/NEWS modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/SAX2.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/aclocal.m4 modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-relaxng-test-suite.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-relaxng-test-suite2.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xinclude-test-suite.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xml-test-suite.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xsddata-test-suite.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/config.h.in modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/configure.ac modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dbgen.pl modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dbgenattr.pl modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dict.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/encoding.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/entities.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/error.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/genUnicode.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/gentest.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/globals.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/hash.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/encoding.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/globals.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/hash.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/list.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parser.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parserInternals.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/relaxng.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/schematron.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/tree.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlIO.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlerror.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlexports.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlreader.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlschemastypes.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlversion.h.in modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpath.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpathInternals.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpointer.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/win32config.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/wsockcompat.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.spec.in modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.spec modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.syms modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/list.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix2.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/config-mac.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/macos_main.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/nanohttp.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parser.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parserInternals.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/pattern.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/regressions.py modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/runsuite.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/runtest.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/runxmlconf.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testAutomata.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testC14N.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testHTML.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testModule.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testReader.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testRegexp.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testRelax.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testSAX.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testSchemas.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testThreads.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testThreadsWin32.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testURI.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testXPath.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testapi.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testchar.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testdict.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testdso.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testlimits.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/testrecurse.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/threads.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/tree.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/uri.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/valid.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/win32/Makefile.bcb modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/win32/Makefile.mingw modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/win32/Makefile.msvc modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/win32/configure.js modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xmlIO.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xmlmemory.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xmlreader.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xmlsave.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xmlwriter.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/xpath.c modules/javafx.web/src/main/native/Source/ThirdParty/libxml/win32/config.h modules/javafx.web/src/main/native/Source/ThirdParty/libxml/win32/include/libxml/xmlversion.h
diffstat 100 files changed, 1690 insertions(+), 72654 deletions(-) [+]
line wrap: on
line diff
--- a/modules/javafx.web/src/main/legal/libxml2.md	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/legal/libxml2.md	Wed Jan 09 11:40:12 2019 +0530
@@ -1,4 +1,4 @@
-## xmlsoft.org: libxml2 v2.9.7
+## xmlsoft.org: libxml2 v2.9.9
 
 ### libxml2 License
 <pre>
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/config.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/config.h	Wed Jan 09 11:40:12 2019 +0530
@@ -4,9 +4,6 @@
 /* Type cast for the gethostbyname() argument */
 #define GETHOSTBYNAME_ARG_CAST /**/
 
-/* Define to 1 if you have the <ansidecl.h> header file. */
-#define HAVE_ANSIDECL_H 1
-
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #define HAVE_ARPA_INET_H 1
 
@@ -16,9 +13,6 @@
 /* Whether struct sockaddr::__ss_family exists */
 /* #undef HAVE_BROKEN_SS_FAMILY */
 
-/* Define to 1 if you have the `class' function. */
-/* #undef HAVE_CLASS */
-
 /* Define to 1 if you have the <ctype.h> header file. */
 #define HAVE_CTYPE_H 1
 
@@ -40,24 +34,12 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #define HAVE_FCNTL_H 1
 
-/* Define to 1 if you have the `finite' function. */
-#define HAVE_FINITE 1
-
 /* Define to 1 if you have the <float.h> header file. */
 #define HAVE_FLOAT_H 1
 
-/* Define to 1 if you have the `fpclass' function. */
-/* #undef HAVE_FPCLASS */
-
 /* Define to 1 if you have the `fprintf' function. */
 #define HAVE_FPRINTF 1
 
-/* Define to 1 if you have the `fp_class' function. */
-/* #undef HAVE_FP_CLASS */
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-/* #undef HAVE_FP_CLASS_H */
-
 /* Define to 1 if you have the `ftime' function. */
 #define HAVE_FTIME 1
 
@@ -67,9 +49,6 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #define HAVE_GETTIMEOFDAY 1
 
-/* Define to 1 if you have the <ieeefp.h> header file. */
-/* #undef HAVE_IEEEFP_H */
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
@@ -82,24 +61,15 @@
 /* Define if isnan is there */
 #define HAVE_ISNAN /**/
 
-/* Define to 1 if you have the `isnand' function. */
-/* #undef HAVE_ISNAND */
-
 /* Define if history library is there (-lhistory) */
 /* #undef HAVE_LIBHISTORY */
 
-/* Have compression library */
-/* #undef HAVE_LIBLZMA */
-
 /* Define if pthread library is there (-lpthread) */
 #define HAVE_LIBPTHREAD /**/
 
 /* Define if readline library is there (-lreadline) */
 /* #undef HAVE_LIBREADLINE */
 
-/* Have compression library */
-/* #undef HAVE_LIBZ */
-
 /* Define to 1 if you have the <limits.h> header file. */
 #define HAVE_LIMITS_H 1
 
@@ -129,9 +99,6 @@
 #  undef /**/ HAVE_MMAP
 #endif
 
-/* Define to 1 if you have the <nan.h> header file. */
-/* #undef HAVE_NAN_H */
-
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 /* #undef HAVE_NDIR_H */
 
@@ -195,12 +162,6 @@
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
 
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
 /* Define to 1 if you have the `strftime' function. */
 #define HAVE_STRFTIME 1
 
@@ -210,9 +171,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strndup' function. */
-#define HAVE_STRNDUP 1
-
 /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
    */
 /* #undef HAVE_SYS_DIR_H */
@@ -266,9 +224,6 @@
 /* Define to 1 if you have the <zlib.h> header file. */
 /* #undef HAVE_ZLIB_H */
 
-/* Define to 1 if you have the `_stat' function. */
-/* #undef HAVE__STAT */
-
 /* Whether __va_copy() is available */
 /* #undef HAVE___VA_COPY */
 
@@ -313,7 +268,7 @@
 #define VA_LIST_IS_ARRAY 1
 
 /* Version number of package */
-#define VERSION "2.9.7"
+#define VERSION "2.9.9"
 
 /* Determine what socket length (socklen_t) data type is */
 #define XML_SOCKLEN_T socklen_t
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/include/libxml/xmlversion.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/linux/include/libxml/xmlversion.h	Wed Jan 09 11:40:12 2019 +0530
@@ -29,21 +29,21 @@
  *
  * the version string like "1.2.3"
  */
-#define LIBXML_DOTTED_VERSION "2.9.7"
+#define LIBXML_DOTTED_VERSION "2.9.9"
 
 /**
  * LIBXML_VERSION:
  *
  * the version number: 1.2.3 value is 10203
  */
-#define LIBXML_VERSION 20907
+#define LIBXML_VERSION 20909
 
 /**
  * LIBXML_VERSION_STRING:
  *
  * the version number string, 1.2.3 value is "10203"
  */
-#define LIBXML_VERSION_STRING "20907"
+#define LIBXML_VERSION_STRING "20909"
 
 /**
  * LIBXML_VERSION_EXTRA:
@@ -58,7 +58,7 @@
  * Macro to check that the libxml version in use is compatible with
  * the version the software has been compiled against
  */
-#define LIBXML_TEST_VERSION xmlCheckVersion(20907);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20909);
 
 #ifndef VMS
 #if 0
@@ -410,9 +410,6 @@
 #endif
 
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 
 /**
  * ATTRIBUTE_UNUSED:
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/config.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/config.h	Wed Jan 09 11:40:12 2019 +0530
@@ -4,9 +4,6 @@
 /* Type cast for the gethostbyname() argument */
 #define GETHOSTBYNAME_ARG_CAST /**/
 
-/* Define to 1 if you have the <ansidecl.h> header file. */
-/* #undef HAVE_ANSIDECL_H */
-
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #define HAVE_ARPA_INET_H 1
 
@@ -16,9 +13,6 @@
 /* Whether struct sockaddr::__ss_family exists */
 /* #undef HAVE_BROKEN_SS_FAMILY */
 
-/* Define to 1 if you have the `class' function. */
-/* #undef HAVE_CLASS */
-
 /* Define to 1 if you have the <ctype.h> header file. */
 #define HAVE_CTYPE_H 1
 
@@ -40,24 +34,12 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #define HAVE_FCNTL_H 1
 
-/* Define to 1 if you have the `finite' function. */
-#define HAVE_FINITE 1
-
 /* Define to 1 if you have the <float.h> header file. */
 #define HAVE_FLOAT_H 1
 
-/* Define to 1 if you have the `fpclass' function. */
-/* #undef HAVE_FPCLASS */
-
 /* Define to 1 if you have the `fprintf' function. */
 #define HAVE_FPRINTF 1
 
-/* Define to 1 if you have the `fp_class' function. */
-/* #undef HAVE_FP_CLASS */
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-/* #undef HAVE_FP_CLASS_H */
-
 /* Define to 1 if you have the `ftime' function. */
 #define HAVE_FTIME 1
 
@@ -67,9 +49,6 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #define HAVE_GETTIMEOFDAY 1
 
-/* Define to 1 if you have the <ieeefp.h> header file. */
-/* #undef HAVE_IEEEFP_H */
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
@@ -82,24 +61,15 @@
 /* Define if isnan is there */
 #define HAVE_ISNAN /**/
 
-/* Define to 1 if you have the `isnand' function. */
-/* #undef HAVE_ISNAND */
-
 /* Define if history library is there (-lhistory) */
 /* #undef HAVE_LIBHISTORY */
 
-/* Have compression library */
-/* #undef HAVE_LIBLZMA */
-
 /* Define if pthread library is there (-lpthread) */
 #define HAVE_LIBPTHREAD /**/
 
 /* Define if readline library is there (-lreadline) */
 /* #undef HAVE_LIBREADLINE */
 
-/* Have compression library */
-/* #undef HAVE_LIBZ */
-
 /* Define to 1 if you have the <limits.h> header file. */
 #define HAVE_LIMITS_H 1
 
@@ -129,9 +99,6 @@
 #  undef /**/ HAVE_MMAP
 #endif
 
-/* Define to 1 if you have the <nan.h> header file. */
-/* #undef HAVE_NAN_H */
-
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 /* #undef HAVE_NDIR_H */
 
@@ -195,12 +162,6 @@
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
 
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
 /* Define to 1 if you have the `strftime' function. */
 #define HAVE_STRFTIME 1
 
@@ -210,9 +171,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
-/* Define to 1 if you have the `strndup' function. */
-#define HAVE_STRNDUP 1
-
 /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
    */
 /* #undef HAVE_SYS_DIR_H */
@@ -266,9 +224,6 @@
 /* Define to 1 if you have the <zlib.h> header file. */
 /* #undef HAVE_ZLIB_H */
 
-/* Define to 1 if you have the `_stat' function. */
-/* #undef HAVE__STAT */
-
 /* Whether __va_copy() is available */
 /* #undef HAVE___VA_COPY */
 
@@ -312,7 +267,7 @@
 #define VA_LIST_IS_ARRAY 1
 
 /* Version number of package */
-#define VERSION "2.9.7"
+#define VERSION "2.9.9"
 
 /* Determine what socket length (socklen_t) data type is */
 #define XML_SOCKLEN_T socklen_t
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/include/libxml/xmlversion.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/mac/include/libxml/xmlversion.h	Wed Jan 09 11:40:12 2019 +0530
@@ -29,21 +29,21 @@
  *
  * the version string like "1.2.3"
  */
-#define LIBXML_DOTTED_VERSION "2.9.7"
+#define LIBXML_DOTTED_VERSION "2.9.9"
 
 /**
  * LIBXML_VERSION:
  *
  * the version number: 1.2.3 value is 10203
  */
-#define LIBXML_VERSION 20907
+#define LIBXML_VERSION 20909
 
 /**
  * LIBXML_VERSION_STRING:
  *
  * the version number string, 1.2.3 value is "10203"
  */
-#define LIBXML_VERSION_STRING "20907"
+#define LIBXML_VERSION_STRING "20909"
 
 /**
  * LIBXML_VERSION_EXTRA:
@@ -58,7 +58,7 @@
  * Macro to check that the libxml version in use is compatible with
  * the version the software has been compiled against
  */
-#define LIBXML_TEST_VERSION xmlCheckVersion(20907);
+#define LIBXML_TEST_VERSION xmlCheckVersion(20909);
 
 #ifndef VMS
 #if 0
@@ -282,7 +282,7 @@
  *
  * Whether icu support is available
  */
-#if 1
+#if 0
 #define LIBXML_ICU_ENABLED
 #endif
 
@@ -410,9 +410,6 @@
 #endif
 
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 
 /**
  * ATTRIBUTE_UNUSED:
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLparser.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLparser.c	Wed Jan 09 11:40:12 2019 +0530
@@ -26,7 +26,7 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -150,7 +150,7 @@
 
 /************************************************************************
  *                                  *
- *      Parser stacks related functions and macros      *
+ *  Parser stacks related functions and macros      *
  *                                  *
  ************************************************************************/
 
@@ -516,7 +516,7 @@
 
         guess = htmlFindEncoding(ctxt);
         if (guess == NULL) {
-    xmlSwitchEncoding(ctxt, XML_CHAR_ENCODING_8859_1);
+            xmlSwitchEncoding(ctxt, XML_CHAR_ENCODING_8859_1);
         } else {
             if (ctxt->input->encoding != NULL)
                 xmlFree((xmlChar *) ctxt->input->encoding);
@@ -529,7 +529,7 @@
                              "Unsupported encoding %s", guess, NULL);
             }
         }
-    ctxt->charset = XML_CHAR_ENCODING_UTF8;
+        ctxt->charset = XML_CHAR_ENCODING_UTF8;
     }
 
     return(xmlCurrentChar(ctxt, len));
@@ -597,7 +597,7 @@
 
 /************************************************************************
  *                                  *
- *      The list of HTML elements and their properties      *
+ *  The list of HTML elements and their properties      *
  *                                  *
  ************************************************************************/
 
@@ -1084,7 +1084,7 @@
 "menu",     "p", "head", "ul", NULL,
 "p",        "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", FONTSTYLE, NULL,
 "div",      "p", "head", NULL,
-"noscript", "p", NULL,
+"noscript", "script", NULL,
 "center",   "font", "b", "i", "p", "head", NULL,
 "a",        "a", "head", NULL,
 "caption",  "p", NULL,
@@ -1216,7 +1216,7 @@
 
 /************************************************************************
  *                                  *
- *      functions to handle HTML specific data          *
+ *  functions to handle HTML specific data          *
  *                                  *
  ************************************************************************/
 
@@ -1516,7 +1516,7 @@
          */
         htmlnamePush(ctxt, BAD_CAST"head");
         if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
-        ctxt->sax->startElement(ctxt->userData, BAD_CAST"head", NULL);
+            ctxt->sax->startElement(ctxt->userData, BAD_CAST"head", NULL);
     } else if ((!xmlStrEqual(newtag, BAD_CAST"noframes")) &&
            (!xmlStrEqual(newtag, BAD_CAST"frame")) &&
            (!xmlStrEqual(newtag, BAD_CAST"frameset"))) {
@@ -1594,12 +1594,12 @@
     unsigned int i;
 
     if (name == NULL)
-        return(0);
+      return(0);
     /*
      * all script attributes start with 'on'
      */
     if ((name[0] != 'o') || (name[1] != 'n'))
-        return(0);
+      return(0);
     for (i = 0;
      i < sizeof(htmlScriptAttributes)/sizeof(htmlScriptAttributes[0]);
      i++) {
@@ -1611,7 +1611,7 @@
 
 /************************************************************************
  *                                  *
- *      The list of HTML predefined entities            *
+ *  The list of HTML predefined entities            *
  *                                  *
  ************************************************************************/
 
@@ -2879,7 +2879,7 @@
 
         while ((IS_PUBIDCHAR_CH(CUR)) && (CUR != '\'')){
             len++;
-        NEXT;
+            NEXT;
         }
 
     if (CUR != '\'') {
@@ -2975,11 +2975,11 @@
     }
 
     if ((!(IS_CHAR_CH(cur))) && (!((cur == 0) && (ctxt->progressive)))) {
-    htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
+        htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
                     "Invalid char in CDATA 0x%X\n", cur);
         if (ctxt->input->cur < ctxt->input->end) {
-    NEXT;
-    }
+            NEXT;
+        }
     }
 
     if ((nbchar != 0) && (ctxt->sax != NULL) && (!ctxt->disableSAX)) {
@@ -3038,8 +3038,8 @@
                 ctxt->sax->characters(ctxt->userData, buf, nbchar);
             } else {
             if (ctxt->sax->ignorableWhitespace != NULL)
-            ctxt->sax->ignorableWhitespace(ctxt->userData,
-                                           buf, nbchar);
+                ctxt->sax->ignorableWhitespace(ctxt->userData,
+                                               buf, nbchar);
             }
         } else {
             htmlCheckParagraph(ctxt);
@@ -3075,7 +3075,7 @@
             if (ctxt->sax->characters != NULL)
             ctxt->sax->characters(ctxt->userData, buf, nbchar);
         } else {
-        if (ctxt->sax->ignorableWhitespace != NULL)
+            if (ctxt->sax->ignorableWhitespace != NULL)
             ctxt->sax->ignorableWhitespace(ctxt->userData,
                                            buf, nbchar);
         }
@@ -3636,12 +3636,12 @@
         processed = ctxt->input->cur - ctxt->input->base;
         xmlBufShrink(ctxt->input->buf->buffer, processed);
         nbchars = xmlCharEncInput(ctxt->input->buf, 1);
+            xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input);
         if (nbchars < 0) {
         htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
                      "htmlCheckEncoding: encoder error\n",
                  NULL, NULL);
         }
-            xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input);
     }
     }
 }
@@ -4175,7 +4175,7 @@
              "htmlParseStartTag: invalid element name\n",
              NULL, NULL);
             /* Dump the bogus tag like browsers do */
-            while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
+        while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
                 NEXT;
 
             if (currentNode != NULL)
@@ -5103,7 +5103,7 @@
 #ifdef LIBXML_PUSH_ENABLED
 /************************************************************************
  *                                  *
- *      Progressive parsing interfaces              *
+ *  Progressive parsing interfaces              *
  *                                  *
  ************************************************************************/
 
@@ -5149,8 +5149,8 @@
         base = ctxt->checkIndex;
 
     if (in->buf == NULL) {
-    buf = in->base;
-    len = in->length;
+        buf = in->base;
+        len = in->length;
     } else {
         buf = xmlBufContent(in->buf->buffer);
         len = xmlBufUse(in->buf->buffer);
@@ -5163,13 +5163,13 @@
         len--;
     for (; base < len; base++) {
         if ((!incomment) && (base + 4 < len) && (!iscomment)) {
-        if ((buf[base] == '<') && (buf[base + 1] == '!') &&
-        (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
-        incomment = 1;
-        /* do not increment past <! - some people use <!--> */
-        base += 2;
+            if ((buf[base] == '<') && (buf[base + 1] == '!') &&
+                (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
+                incomment = 1;
+                /* do not increment past <! - some people use <!--> */
+                base += 2;
+            }
         }
-    }
         if (ignoreattrval) {
             if (buf[base] == '"' || buf[base] == '\'') {
                 if (invalue) {
@@ -5186,53 +5186,53 @@
                 continue;
             }
         }
-    if (incomment) {
-        if (base + 3 > len)
+        if (incomment) {
+            if (base + 3 > len)
                 return (-1);
-        if ((buf[base] == '-') && (buf[base + 1] == '-') &&
-        (buf[base + 2] == '>')) {
-        incomment = 0;
-        base += 2;
+            if ((buf[base] == '-') && (buf[base + 1] == '-') &&
+                (buf[base + 2] == '>')) {
+                incomment = 0;
+                base += 2;
+            }
+            continue;
         }
-        continue;
-    }
         if (buf[base] == first) {
-        if (third != 0) {
+            if (third != 0) {
                 if ((buf[base + 1] != next) || (buf[base + 2] != third))
                     continue;
-        } else if (next != 0) {
+            } else if (next != 0) {
                 if (buf[base + 1] != next)
                     continue;
-        }
-        ctxt->checkIndex = 0;
+            }
+            ctxt->checkIndex = 0;
 #ifdef DEBUG_PUSH
-        if (next == 0)
-        xmlGenericError(xmlGenericErrorContext,
-            "HPP: lookup '%c' found at %d\n",
-            first, base);
-        else if (third == 0)
-        xmlGenericError(xmlGenericErrorContext,
-            "HPP: lookup '%c%c' found at %d\n",
-            first, next, base);
-        else
-        xmlGenericError(xmlGenericErrorContext,
-            "HPP: lookup '%c%c%c' found at %d\n",
-            first, next, third, base);
+            if (next == 0)
+                xmlGenericError(xmlGenericErrorContext,
+                                "HPP: lookup '%c' found at %d\n",
+                                first, base);
+            else if (third == 0)
+                xmlGenericError(xmlGenericErrorContext,
+                                "HPP: lookup '%c%c' found at %d\n",
+                                first, next, base);
+            else
+                xmlGenericError(xmlGenericErrorContext,
+                                "HPP: lookup '%c%c%c' found at %d\n",
+                                first, next, third, base);
 #endif
             return (base - (in->cur - in->base));
-    }
+        }
     }
     if ((!incomment) && (!invalue))
-    ctxt->checkIndex = base;
+        ctxt->checkIndex = base;
 #ifdef DEBUG_PUSH
     if (next == 0)
-    xmlGenericError(xmlGenericErrorContext,
-        "HPP: lookup '%c' failed\n", first);
+        xmlGenericError(xmlGenericErrorContext,
+                        "HPP: lookup '%c' failed\n", first);
     else if (third == 0)
-    xmlGenericError(xmlGenericErrorContext,
-        "HPP: lookup '%c%c' failed\n", first, next);
+        xmlGenericError(xmlGenericErrorContext,
+                        "HPP: lookup '%c%c' failed\n", first, next);
     else
-    xmlGenericError(xmlGenericErrorContext,
+        xmlGenericError(xmlGenericErrorContext,
                         "HPP: lookup '%c%c%c' failed\n", first, next,
                         third);
 #endif
@@ -5484,7 +5484,7 @@
             else
             next = ' ';
         } else {
-        next = in->cur[1];
+            next = in->cur[1];
         }
         cur = in->cur[0];
             if ((cur == '<') && (next == '!') &&
@@ -5786,7 +5786,7 @@
                     ctxt->sax->characters(
                         ctxt->userData, &in->cur[0], 1);
                 } else {
-                if (ctxt->sax->ignorableWhitespace != NULL)
+                    if (ctxt->sax->ignorableWhitespace != NULL)
                     ctxt->sax->ignorableWhitespace(
                         ctxt->userData, &in->cur[0], 1);
                 }
@@ -6376,12 +6376,12 @@
 
     if (l < 1000) {
         content = xmlMallocAtomic (xmlStrlen(content_line) + l + 1);
-    if (content) {
+        if (content) {
         strcpy ((char *)content, (char *)content_line);
-            strcat ((char *)content, (char *)encoding);
-            htmlCheckEncoding (ctxt, content);
+        strcat ((char *)content, (char *)encoding);
+        htmlCheckEncoding (ctxt, content);
         xmlFree (content);
-    }
+        }
     }
     }
 
@@ -6674,7 +6674,7 @@
     xmlInitNodeInfoSeq(&ctxt->node_seq);
 
     if (ctxt->attsDefault != NULL) {
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+        xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
         ctxt->attsDefault = NULL;
     }
     if (ctxt->attsSpecial != NULL) {
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLtree.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/HTMLtree.c	Wed Jan 09 11:40:12 2019 +0530
@@ -34,7 +34,7 @@
 
 /************************************************************************
  *                                  *
- *          Getting/Setting encoding meta tags          *
+ *      Getting/Setting encoding meta tags          *
  *                                  *
  ************************************************************************/
 
@@ -211,7 +211,7 @@
         if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
                 head = cur->parent;
         goto found_meta;
-    }
+            }
     }
     cur = cur->next;
     }
@@ -248,8 +248,8 @@
             else
                         {
                            if ((value != NULL) &&
-                (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
-                  content = value;
+                               (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
+                   content = value;
                         }
                 if ((http != 0) && (content != NULL))
                 break;
@@ -389,7 +389,7 @@
 
 /************************************************************************
  *                                  *
- *          Dumping HTML tree content to a simple buffer        *
+ *      Dumping HTML tree content to a simple buffer        *
  *                                  *
  ************************************************************************/
 
@@ -502,17 +502,17 @@
         if (handler == NULL)
         htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
     }
+    } else {
+        /*
+         * Fallback to HTML or ASCII when the encoding is unspecified
+         */
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("HTML");
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("ascii");
     }
 
     /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
      * save the content to a temp buffer.
      */
     buf = xmlOutputBufferCreateFile(out, handler);
@@ -570,32 +570,21 @@
     xmlCharEncoding enc;
 
     enc = xmlParseCharEncoding(encoding);
-    if (enc != cur->charset) {
-        if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-        /*
-         * Not supported yet
-         */
-        *mem = NULL;
-        *size = 0;
-        return;
-        }
-
+    if (enc != XML_CHAR_ENCODING_UTF8) {
         handler = xmlFindCharEncodingHandler(encoding);
         if (handler == NULL)
                 htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
 
+    }
     } else {
-        handler = xmlFindCharEncodingHandler(encoding);
+        /*
+         * Fallback to HTML or ASCII when the encoding is unspecified
+         */
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("HTML");
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("ascii");
     }
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("ascii");
 
     buf = xmlAllocOutputBufferInternal(handler);
     if (buf == NULL) {
@@ -634,7 +623,7 @@
 
 /************************************************************************
  *                                  *
- *          Dumping HTML tree content to an I/O output buffer   *
+ *      Dumping HTML tree content to an I/O output buffer   *
  *                                  *
  ************************************************************************/
 
@@ -692,8 +681,8 @@
 
     /*
      * The html output method should not escape a & character
-     *       occurring in an attribute value immediately followed by
-     *       a { character (see Section B.7.1 of the HTML 4.0 Recommendation).
+     * occurring in an attribute value immediately followed by
+     * a { character (see Section B.7.1 of the HTML 4.0 Recommendation).
      * This is implemented in xmlEncodeEntitiesReentrant
      */
 
@@ -737,13 +726,13 @@
             }
 
             /* Escape the whole string, or until start (set to '\0'). */
-        escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
-        if (escaped != NULL) {
+            escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
+            if (escaped != NULL) {
                 xmlBufCat(buf->buffer, escaped);
-            xmlFree(escaped);
-        } else {
+                xmlFree(escaped);
+            } else {
                 xmlBufCat(buf->buffer, tmp);
-        }
+            }
 
             if (end == NULL) { /* Everything has been written. */
             break;
@@ -1101,29 +1090,20 @@
     xmlCharEncoding enc;
 
     enc = xmlParseCharEncoding(encoding);
-    if (enc != cur->charset) {
-        if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-        /*
-         * Not supported yet
-         */
-        return(-1);
-        }
-
+    if (enc != XML_CHAR_ENCODING_UTF8) {
         handler = xmlFindCharEncodingHandler(encoding);
         if (handler == NULL)
         htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
+    }
     } else {
-        handler = xmlFindCharEncodingHandler(encoding);
+        /*
+         * Fallback to HTML or ASCII when the encoding is unspecified
+         */
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("HTML");
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("ascii");
     }
-    }
-
-    /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("ascii");
 
     buf = xmlOutputBufferCreateFile(f, handler);
     if (buf == NULL) return(-1);
@@ -1160,29 +1140,22 @@
     xmlCharEncoding enc;
 
     enc = xmlParseCharEncoding(encoding);
-    if (enc != cur->charset) {
-        if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-        /*
-         * Not supported yet
-         */
-        return(-1);
-        }
-
+    if (enc != XML_CHAR_ENCODING_UTF8) {
         handler = xmlFindCharEncodingHandler(encoding);
         if (handler == NULL)
         htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
     }
+    } else {
+        /*
+         * Fallback to HTML or ASCII when the encoding is unspecified
+         */
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("HTML");
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("ascii");
     }
 
     /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
      * save the content to a temp buffer.
      */
     buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression);
@@ -1221,14 +1194,7 @@
     xmlCharEncoding enc;
 
     enc = xmlParseCharEncoding(encoding);
-    if (enc != cur->charset) {
-        if (cur->charset != XML_CHAR_ENCODING_UTF8) {
-        /*
-         * Not supported yet
-         */
-        return(-1);
-        }
-
+    if (enc != XML_CHAR_ENCODING_UTF8) {
         handler = xmlFindCharEncodingHandler(encoding);
         if (handler == NULL)
         htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
@@ -1236,17 +1202,17 @@
         htmlSetMetaEncoding(cur, (const xmlChar *) encoding);
     } else {
     htmlSetMetaEncoding(cur, (const xmlChar *) "UTF-8");
+
+        /*
+         * Fallback to HTML or ASCII when the encoding is unspecified
+         */
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("HTML");
+        if (handler == NULL)
+            handler = xmlFindCharEncodingHandler("ascii");
     }
 
     /*
-     * Fallback to HTML or ASCII when the encoding is unspecified
-     */
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("HTML");
-    if (handler == NULL)
-    handler = xmlFindCharEncodingHandler("ascii");
-
-    /*
      * save the content to a temp buffer.
      */
     buf = xmlOutputBufferCreateFilename(filename, handler, 0);
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/Makefile.am	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/Makefile.am	Wed Jan 09 11:40:12 2019 +0530
@@ -8,7 +8,7 @@
 
 AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
 
-AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
+AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
 
 check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
                testThreads testC14N testAutomata testRegexp \
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/NEWS	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/NEWS	Wed Jan 09 11:40:12 2019 +0530
@@ -2442,7 +2442,7 @@
    - 2.1.0 also ease the upgrade from libxml v1 to the recent version. it
     also contains numerous fixes and enhancements:
     
-    added xmlStopParser() to stop parsing
+      added xmlStopParser() to stop parsing
       improved a lot parsing speed when there is large CDATA blocs
       includes XPath patches provided by Picdar Technology
       tried to fix as much as possible DTD validation and namespace
@@ -2500,7 +2500,7 @@
    - Some interfaces may changes (especially a bit about encoding).
    - the updates includes:
     
-    fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
+      fix I18N support. ISO-Latin-x/UTF-8/UTF-16 (nearly) seems correctly
         handled now
       Better handling of entities, especially well-formedness checking
         and proper PEref extensions in external subsets
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/SAX2.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/SAX2.c	Wed Jan 09 11:40:12 2019 +0530
@@ -1145,22 +1145,22 @@
 #endif
     {
 #ifdef LIBXML_VALID_ENABLED
-    /*
-     * Do the last stage of the attribute normalization
-     * Needed for HTML too:
-     *   http://www.w3.org/TR/html4/types.html#h-6.2
-     */
-    ctxt->vctxt.valid = 1;
-    nval = xmlValidCtxtNormalizeAttributeValue(&ctxt->vctxt,
-                                       ctxt->myDoc, ctxt->node,
-                       fullname, value);
-    if (ctxt->vctxt.valid != 1) {
-    ctxt->valid = 0;
-    }
-    if (nval != NULL)
-    value = nval;
+        /*
+         * Do the last stage of the attribute normalization
+         * Needed for HTML too:
+         *   http://www.w3.org/TR/html4/types.html#h-6.2
+         */
+        ctxt->vctxt.valid = 1;
+        nval = xmlValidCtxtNormalizeAttributeValue(&ctxt->vctxt,
+                                               ctxt->myDoc, ctxt->node,
+                                               fullname, value);
+        if (ctxt->vctxt.valid != 1) {
+            ctxt->valid = 0;
+        }
+        if (nval != NULL)
+            value = nval;
 #else
-    nval = NULL;
+        nval = NULL;
 #endif /* LIBXML_VALID_ENABLED */
     }
 
@@ -1305,24 +1305,24 @@
     } else {
             xmlAttrPtr prop;
 
-    prop = ctxt->node->properties;
-    while (prop != NULL) {
-        if (prop->ns != NULL) {
-        if ((xmlStrEqual(name, prop->name)) &&
-            ((namespace == prop->ns) ||
-             (xmlStrEqual(namespace->href, prop->ns->href)))) {
-            xmlNsErrMsg(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
-                    "Attribute %s in %s redefined\n",
-                             name, namespace->href);
-            ctxt->wellFormed = 0;
-            if (ctxt->recovery == 0) ctxt->disableSAX = 1;
+            prop = ctxt->node->properties;
+            while (prop != NULL) {
+                if (prop->ns != NULL) {
+                    if ((xmlStrEqual(name, prop->name)) &&
+                        ((namespace == prop->ns) ||
+                         (xmlStrEqual(namespace->href, prop->ns->href)))) {
+                            xmlNsErrMsg(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
+                                    "Attribute %s in %s redefined\n",
+                                             name, namespace->href);
+                        ctxt->wellFormed = 0;
+                        if (ctxt->recovery == 0) ctxt->disableSAX = 1;
                         if (name != NULL)
                             xmlFree(name);
-            goto error;
-        }
-        }
-        prop = prop->next;
-    }
+                        goto error;
+                    }
+                }
+                prop = prop->next;
+            }
         }
     } else {
     namespace = NULL;
@@ -1665,7 +1665,11 @@
 #ifdef DEBUG_SAX_TREE
     xmlGenericError(xmlGenericErrorContext, "pushing(%s)\n", name);
 #endif
-    nodePush(ctxt, ret);
+    if (nodePush(ctxt, ret) < 0) {
+        xmlUnlinkNode(ret);
+        xmlFreeNode(ret);
+        return;
+    }
 
     /*
      * Link the child element
@@ -2257,6 +2261,7 @@
     ctxt->freeElems = ret->next;
     ctxt->freeElemsNr--;
     memset(ret, 0, sizeof(xmlNode));
+        ret->doc = ctxt->myDoc;
     ret->type = XML_ELEMENT_NODE;
 
     if (ctxt->dictNames)
@@ -2336,7 +2341,11 @@
     /*
      * We are parsing a new node.
      */
-    nodePush(ctxt, ret);
+    if (nodePush(ctxt, ret) < 0) {
+        xmlUnlinkNode(ret);
+        xmlFreeNode(ret);
+        return;
+    }
 
     /*
      * Link the child element
@@ -2373,9 +2382,9 @@
         return;
         }
             if (prefix != NULL)
-        xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
-            "Namespace prefix %s was not found\n",
-            prefix, NULL);
+                xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
+                             "Namespace prefix %s was not found\n",
+                             prefix, NULL);
             else
                 xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE,
                              "Namespace default prefix was not found\n",
@@ -2414,7 +2423,7 @@
         }
         }
         xmlSAX2AttributeNs(ctxt, attributes[j], attributes[j+1],
-                           attributes[j+3], attributes[j+4]);
+                   attributes[j+3], attributes[j+4]);
     }
     }
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/aclocal.m4	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/aclocal.m4	Wed Jan 09 11:40:12 2019 +0530
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,9 +20,9 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
-dnl serial 11 (pkg-config-0.29.1)
-dnl
+# pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+# serial 12 (pkg-config-0.29.2)
+
 dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
 dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
 dnl
@@ -63,7 +63,7 @@
 dnl See the "Since" comment for each macro you use to see what version
 dnl of the macros you require.
 m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29.1])
+[m4_define([PKG_MACROS_VERSION], [0.29.2])
 m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
     [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
 ])dnl PKG_PREREQ
@@ -92,11 +92,11 @@
 	_pkg_min_version=m4_default([$1], [0.9.0])
 	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
 		PKG_CONFIG=""
-    fi
+	fi
 fi[]dnl
 ])dnl PKG_PROG_PKG_CONFIG
 
@@ -164,7 +164,7 @@
 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
 
 pkg_failed=no
-AC_MSG_CHECKING([for $1])
+AC_MSG_CHECKING([for $2])
 
 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
@@ -174,13 +174,13 @@
 See the pkg-config man page for more details.])
 
 if test $pkg_failed = yes; then
-   	AC_MSG_RESULT([no])
+        AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
-  else
+        else
 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
-  fi
+        fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
@@ -193,9 +193,9 @@
 installed software in a non-standard prefix.
 
 _PKG_TEXT])[]dnl
-  ])
+        ])
 elif test $pkg_failed = untried; then
-     	AC_MSG_RESULT([no])
+        AC_MSG_RESULT([no])
 	m4_default([$4], [AC_MSG_FAILURE(
 [The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
@@ -296,7 +296,7 @@
 AS_VAR_IF([$1], [""], [$5], [$4])dnl
 ])dnl PKG_CHECK_VAR
 
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
+# Copyright (C) 2002-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -308,10 +308,10 @@
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.15'
+[am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.15.1], [],
+m4_if([$1], [1.16.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -327,14 +327,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.15.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -386,7 +386,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -398,7 +398,7 @@
 AC_DEFUN([AM_CONDITIONAL],
 [AC_PREREQ([2.52])dnl
  m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -417,7 +417,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -453,7 +453,7 @@
       [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
       [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
       [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -608,13 +608,12 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
@@ -622,49 +621,41 @@
   # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  AS_CASE([$CONFIG_FILES],
+          [*\'*], [eval set x "$CONFIG_FILES"],
+          [*], [set x $CONFIG_FILES])
   shift
-  for mf
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
   do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-    dirpart=`AS_DIRNAME("$mf")`
-  else
-    continue
+    # Strip MF so we end up with the name of the file.
+    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`AS_DIRNAME(["$am_mf"])`
+    am_filepart=`AS_BASENAME(["$am_mf"])`
+    AM_RUN_LOG([cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles]) || am_rc=$?
+  done
+  if test $am_rc -ne 0; then
+    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  Try re-running configure with the
+    '--disable-dependency-tracking' option to at least be able to build
+    the package (albeit without support for automatic dependency tracking).])
   fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`AS_DIRNAME(["$file"])`
-    AS_MKDIR_P([$dirpart/$fdir])
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
-  done
-  done
+  AS_UNSET([am_dirpart])
+  AS_UNSET([am_filepart])
+  AS_UNSET([am_mf])
+  AS_UNSET([am_rc])
+  rm -f conftest-deps.mk
 }
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
@@ -673,18 +664,17 @@
 # -----------------------------
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
-# This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
+     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -771,8 +761,8 @@
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # For better backward compatibility.  To be removed once Automake 1.9.x
 # dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target (and possibly the TAP driver).  The
 # system "awk" is bad on some platforms.
@@ -780,8 +770,8 @@
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-	      		     [_AM_PROG_TAR([v7])])])
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
 		  [_AM_DEPENDENCIES([CC])],
@@ -839,7 +829,7 @@
 Aborting the configuration process, to ensure you take notice of the issue.
 
 You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <http://www.gnu.org/software/coreutils/>.
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
 If you want to complete the configuration process using your problematic
 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
@@ -881,7 +871,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -902,7 +892,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
+# Copyright (C) 2003-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -924,7 +914,7 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -959,7 +949,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -967,49 +957,42 @@
 
 # AM_MAKE_INCLUDE()
 # -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
 AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
 am__doit:
-	@echo this is the am__doit target
+	@echo this is the am__doit target >confinc.out
 .PHONY: am__doit
 END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
 am__include="#"
 am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-   am__include=include
-   am__quote=
-   _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+      ['0:this is the am__doit target'],
+      [AS_CASE([$s],
+          [BSD], [am__include='.include' am__quote='"'],
+          [am__include='include' am__quote=''])])
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
+# Copyright (C) 1997-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1048,7 +1031,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1077,7 +1060,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1124,7 +1107,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1143,7 +1126,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1176,20 +1159,20 @@
    for am_try in 1 2; do
      echo "timestamp, slept: $am_has_slept" > conftest.file
      set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
+     if test "$[*]" = "X"; then
+	# -L didn't work.
 	set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
 
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
   alias in your environment])
-   fi
+     fi
      if test "$[2]" = conftest.file || test $am_try -eq 2; then
        break
      fi
@@ -1224,7 +1207,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1284,7 +1267,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# Copyright (C) 2001-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1312,7 +1295,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
+# Copyright (C) 2006-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1331,7 +1314,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
+# Copyright (C) 2004-2018 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1394,7 +1377,7 @@
   [pax],
     [],
 
-              [m4_fatal([Unknown tar format])])
+  [m4_fatal([Unknown tar format])])
 
   AC_MSG_CHECKING([how to create a $1 tar archive])
 
@@ -1403,55 +1386,55 @@
   _am_tools=${am_cv_prog_tar_$1-$_am_tools}
 
   for _am_tool in $_am_tools; do
-  case $_am_tool in
-  gnutar)
+    case $_am_tool in
+    gnutar)
       for _am_tar in tar gnutar gtar; do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
 
     # tar/untar a dummy directory, and stop if the command works.
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
       AM_RUN_LOG([cat conftest.dir/file])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
   done
   rm -rf conftest.dir
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-relaxng-test-suite.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,394 +0,0 @@
-#!/usr/bin/python
-import sys
-import time
-import os
-import string
-import StringIO
-sys.path.insert(0, "python")
-import libxml2
-
-# Memory debug specific
-libxml2.debugMemory(1)
-debug = 0
-verbose = 0
-quiet = 1
-
-#
-# the testsuite description
-#
-CONF=os.path.join(os.path.dirname(__file__), "test/relaxng/OASIS/spectest.xml")
-LOG="check-relaxng-test-suite.log"
-RES="relaxng-test-results.xml"
-
-log = open(LOG, "w")
-nb_schemas_tests = 0
-nb_schemas_success = 0
-nb_schemas_failed = 0
-nb_instances_tests = 0
-nb_instances_success = 0
-nb_instances_failed = 0
-
-libxml2.lineNumbersDefault(1)
-#
-# Error and warnng callbacks
-#
-def callback(ctx, str):
-    global log
-    log.write("%s%s" % (ctx, str))
-
-libxml2.registerErrorHandler(callback, "")
-
-#
-# Resolver callback
-#
-resources = {}
-def resolver(URL, ID, ctxt):
-    global resources
-
-    if string.find(URL, '#') != -1:
-        URL = URL[0:string.find(URL, '#')]
-    if resources.has_key(URL):
-        return(StringIO.StringIO(resources[URL]))
-    log.write("Resolver failure: asked %s\n" % (URL))
-    log.write("resources: %s\n" % (resources))
-    return None
-
-#
-# Load the previous results
-#
-#results = {}
-#previous = {}
-#
-#try:
-#    res = libxml2.parseFile(RES)
-#except:
-#    log.write("Could not parse %s" % (RES))
-    
-#
-# handle a valid instance
-#
-def handle_valid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nFailed to parse correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-	return
-
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-    except:
-        ret = -1
-    if ret != 0:
-        log.write("\nFailed to validate correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-    doc.freeDoc()
-
-#
-# handle an invalid instance
-#
-def handle_invalid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	return
-
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-    except:
-        ret = -1
-    if ret == 0:
-        log.write("\nFailed to detect validation problem in instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-    doc.freeDoc()
-
-#
-# handle an incorrect test
-#
-def handle_correct(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs == None:
-        log.write("\nFailed to compile correct schema:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-	nb_schemas_success = nb_schemas_success + 1
-    return rngs
-        
-def handle_incorrect(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs != None:
-        log.write("\nFailed to detect schema error in:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-#	log.write("\nSuccess detecting schema error in:\n-----\n")
-#	log.write(schema)
-#	log.write("\n-----\n")
-	nb_schemas_success = nb_schemas_success + 1
-    return None
-
-#
-# resource handling: keep a dictionary of URL->string mappings
-#
-def handle_resource(node, dir):
-    global resources
-
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    res = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    res = res + child.serialize()
-	child = child.next
-    resources[name] = res
-
-#
-# dir handling: pseudo directory resources
-#
-def handle_dir(node, dir):
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, name)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, name)
-
-#
-# handle a testCase element
-#
-def handle_testCase(node):
-    global nb_schemas_tests
-    global nb_instances_tests
-    global resources
-
-    sections = node.xpathEval('string(section)')
-    log.write("\n    ======== test %d line %d section %s ==========\n" % (
-
-              nb_schemas_tests, node.lineNo(), sections))
-    resources = {}
-    if debug:
-        print "test %d line %d" % (nb_schemas_tests, node.lineNo())
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, None)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, None)
-
-    tsts = node.xpathEval('incorrect')
-    if tsts != []:
-        if len(tsts) != 1:
-	    print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
-	schema = handle_incorrect(tsts[0])
-    else:
-        tsts = node.xpathEval('correct')
-	if tsts != []:
-	    if len(tsts) != 1:
-		print "warning test line %d has more than one <correct> example"% (node.lineNo())
-	    schema = handle_correct(tsts[0])
-	else:
-	    print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
-
-    nb_schemas_tests = nb_schemas_tests + 1;
-    
-    valids = node.xpathEval('valid')
-    invalids = node.xpathEval('invalid')
-    nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
-    if schema != None:
-        for valid in valids:
-	    handle_valid(valid, schema)
-        for invalid in invalids:
-	    handle_invalid(invalid, schema)
-
-
-#
-# handle a testSuite element
-#
-def handle_testSuite(node, level = 0):
-    global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
-    global nb_instances_tests, nb_instances_success, nb_instances_failed
-    global quiet
-    if level >= 1:
-	old_schemas_tests = nb_schemas_tests
-	old_schemas_success = nb_schemas_success
-	old_schemas_failed = nb_schemas_failed
-	old_instances_tests = nb_instances_tests
-	old_instances_success = nb_instances_success
-	old_instances_failed = nb_instances_failed
-
-    docs = node.xpathEval('documentation')
-    authors = node.xpathEval('author')
-    if docs != []:
-        msg = ""
-        for doc in docs:
-	    msg = msg + doc.content + " "
-	if authors != []:
-	    msg = msg + "written by "
-	    for author in authors:
-	        msg = msg + author.content + " "
-	if quiet == 0:
-	    print msg
-    sections = node.xpathEval('section')
-    if sections != [] and level <= 0:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-	if quiet == 0:
-	    print "Tests for section %s" % (msg)
-    for test in node.xpathEval('testCase'):
-        handle_testCase(test)
-    for test in node.xpathEval('testSuite'):
-        handle_testSuite(test, level + 1)
-	        
-
-    if verbose and level >= 1 and sections != []:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-        print "Result of tests for section %s" % (msg)
-        if nb_schemas_tests != old_schemas_tests:
-	    print "found %d test schemas: %d success %d failures" % (
-		  nb_schemas_tests - old_schemas_tests,
-		  nb_schemas_success - old_schemas_success,
-		  nb_schemas_failed - old_schemas_failed)
-	if nb_instances_tests != old_instances_tests:
-	    print "found %d test instances: %d success %d failures" % (
-		  nb_instances_tests - old_instances_tests,
-		  nb_instances_success - old_instances_success,
-		  nb_instances_failed - old_instances_failed)
-#
-# Parse the conf file
-#
-libxml2.substituteEntitiesDefault(1);
-testsuite = libxml2.parseFile(CONF)
-libxml2.setEntityLoader(resolver)
-root = testsuite.getRootElement()
-if root.name != 'testSuite':
-    print "%s doesn't start with a testSuite element, aborting" % (CONF)
-    sys.exit(1)
-if quiet == 0:
-    print "Running Relax NG testsuite"
-handle_testSuite(root)
-
-if quiet == 0:
-    print "\nTOTAL:\n"
-if quiet == 0 or nb_schemas_failed != 0:
-    print "found %d test schemas: %d success %d failures" % (
-      nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
-if quiet == 0 or nb_instances_failed != 0:
-    print "found %d test instances: %d success %d failures" % (
-      nb_instances_tests, nb_instances_success, nb_instances_failed)
-
-testsuite.freeDoc()
-
-# Memory debug specific
-libxml2.relaxNGCleanupTypes()
-libxml2.cleanupParser()
-if libxml2.debugMemory(1) == 0:
-    if quiet == 0:
-	print "OK"
-else:
-    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
-    libxml2.dumpMemory()
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-relaxng-test-suite2.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-#!/usr/bin/python
-import sys
-import time
-import os
-import string
-import StringIO
-sys.path.insert(0, "python")
-import libxml2
-
-# Memory debug specific
-libxml2.debugMemory(1)
-debug = 0
-quiet = 1
-
-#
-# the testsuite description
-#
-CONF=os.path.join(os.path.dirname(__file__), "test/relaxng/testsuite.xml")
-LOG="check-relaxng-test-suite2.log"
-
-log = open(LOG, "w")
-nb_schemas_tests = 0
-nb_schemas_success = 0
-nb_schemas_failed = 0
-nb_instances_tests = 0
-nb_instances_success = 0
-nb_instances_failed = 0
-
-libxml2.lineNumbersDefault(1)
-#
-# Resolver callback
-#
-resources = {}
-def resolver(URL, ID, ctxt):
-    global resources
-
-    if resources.has_key(URL):
-        return(StringIO.StringIO(resources[URL]))
-    log.write("Resolver failure: asked %s\n" % (URL))
-    log.write("resources: %s\n" % (resources))
-    return None
-
-#
-# Load the previous results
-#
-#results = {}
-#previous = {}
-#
-#try:
-#    res = libxml2.parseFile(RES)
-#except:
-#    log.write("Could not parse %s" % (RES))
-    
-#
-# handle a valid instance
-#
-def handle_valid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = node.prop("dtd")
-    if instance == None:
-        instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-#    mem = libxml2.debugMemory(1);
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nFailed to parse correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-	return
-
-    if debug:
-        print "instance line %d" % (node.lineNo())
-       
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-	del ctxt
-    except:
-        ret = -1
-
-    doc.freeDoc()
-#    if mem != libxml2.debugMemory(1):
-#	print "validating instance %d line %d leaks" % (
-#		  nb_instances_tests, node.lineNo())
-
-    if ret != 0:
-        log.write("\nFailed to validate correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-
-#
-# handle an invalid instance
-#
-def handle_invalid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = node.prop("dtd")
-    if instance == None:
-        instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-#    mem = libxml2.debugMemory(1);
-
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	return
-
-    if debug:
-        print "instance line %d" % (node.lineNo())
-       
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-	del ctxt
-
-    except:
-        ret = -1
-
-    doc.freeDoc()
-#    mem2 = libxml2.debugMemory(1)
-#    if mem != mem2:
-#	print "validating instance %d line %d leaks %d bytes" % (
-#		  nb_instances_tests, node.lineNo(), mem2 - mem)
-    
-    if ret == 0:
-        log.write("\nFailed to detect validation problem in instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-
-#
-# handle an incorrect test
-#
-def handle_correct(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs == None:
-        log.write("\nFailed to compile correct schema:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-	nb_schemas_success = nb_schemas_success + 1
-    return rngs
-        
-def handle_incorrect(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs != None:
-        log.write("\nFailed to detect schema error in:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-#	log.write("\nSuccess detecting schema error in:\n-----\n")
-#	log.write(schema)
-#	log.write("\n-----\n")
-	nb_schemas_success = nb_schemas_success + 1
-    return None
-
-#
-# resource handling: keep a dictionary of URL->string mappings
-#
-def handle_resource(node, dir):
-    global resources
-
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    res = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    res = res + child.serialize()
-	child = child.next
-    resources[name] = res
-
-#
-# dir handling: pseudo directory resources
-#
-def handle_dir(node, dir):
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, name)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, name)
-
-#
-# handle a testCase element
-#
-def handle_testCase(node):
-    global nb_schemas_tests
-    global nb_instances_tests
-    global resources
-
-    sections = node.xpathEval('string(section)')
-    log.write("\n    ======== test %d line %d section %s ==========\n" % (
-
-              nb_schemas_tests, node.lineNo(), sections))
-    resources = {}
-    if debug:
-        print "test %d line %d" % (nb_schemas_tests, node.lineNo())
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, None)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, None)
-
-    tsts = node.xpathEval('incorrect')
-    if tsts != []:
-        if len(tsts) != 1:
-	    print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
-	schema = handle_incorrect(tsts[0])
-    else:
-        tsts = node.xpathEval('correct')
-	if tsts != []:
-	    if len(tsts) != 1:
-		print "warning test line %d has more than one <correct> example"% (node.lineNo())
-	    schema = handle_correct(tsts[0])
-	else:
-	    print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
-
-    nb_schemas_tests = nb_schemas_tests + 1;
-    
-    valids = node.xpathEval('valid')
-    invalids = node.xpathEval('invalid')
-    nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
-    if schema != None:
-        for valid in valids:
-	    handle_valid(valid, schema)
-        for invalid in invalids:
-	    handle_invalid(invalid, schema)
-
-
-#
-# handle a testSuite element
-#
-def handle_testSuite(node, level = 0):
-    global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
-    global nb_instances_tests, nb_instances_success, nb_instances_failed
-    if level >= 1:
-	old_schemas_tests = nb_schemas_tests
-	old_schemas_success = nb_schemas_success
-	old_schemas_failed = nb_schemas_failed
-	old_instances_tests = nb_instances_tests
-	old_instances_success = nb_instances_success
-	old_instances_failed = nb_instances_failed
-
-    docs = node.xpathEval('documentation')
-    authors = node.xpathEval('author')
-    if docs != []:
-        msg = ""
-        for doc in docs:
-	    msg = msg + doc.content + " "
-	if authors != []:
-	    msg = msg + "written by "
-	    for author in authors:
-	        msg = msg + author.content + " "
-	if quiet == 0:
-	    print msg
-    sections = node.xpathEval('section')
-    if sections != [] and level <= 0:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-	if quiet == 0:
-	    print "Tests for section %s" % (msg)
-    for test in node.xpathEval('testCase'):
-        handle_testCase(test)
-    for test in node.xpathEval('testSuite'):
-        handle_testSuite(test, level + 1)
-	        
-
-    if level >= 1 and sections != []:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-        print "Result of tests for section %s" % (msg)
-        if nb_schemas_tests != old_schemas_tests:
-	    print "found %d test schemas: %d success %d failures" % (
-		  nb_schemas_tests - old_schemas_tests,
-		  nb_schemas_success - old_schemas_success,
-		  nb_schemas_failed - old_schemas_failed)
-	if nb_instances_tests != old_instances_tests:
-	    print "found %d test instances: %d success %d failures" % (
-		  nb_instances_tests - old_instances_tests,
-		  nb_instances_success - old_instances_success,
-		  nb_instances_failed - old_instances_failed)
-#
-# Parse the conf file
-#
-libxml2.substituteEntitiesDefault(1);
-testsuite = libxml2.parseFile(CONF)
-
-#
-# Error and warnng callbacks
-#
-def callback(ctx, str):
-    global log
-    log.write("%s%s" % (ctx, str))
-
-libxml2.registerErrorHandler(callback, "")
-
-libxml2.setEntityLoader(resolver)
-root = testsuite.getRootElement()
-if root.name != 'testSuite':
-    print "%s doesn't start with a testSuite element, aborting" % (CONF)
-    sys.exit(1)
-if quiet == 0:
-    print "Running Relax NG testsuite"
-handle_testSuite(root)
-
-if quiet == 0:
-    print "\nTOTAL:\n"
-if quiet == 0 or nb_schemas_failed != 0:
-    print "found %d test schemas: %d success %d failures" % (
-      nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
-if quiet == 0 or nb_instances_failed != 0:
-    print "found %d test instances: %d success %d failures" % (
-      nb_instances_tests, nb_instances_success, nb_instances_failed)
-
-
-testsuite.freeDoc()
-
-# Memory debug specific
-libxml2.relaxNGCleanupTypes()
-libxml2.cleanupParser()
-if libxml2.debugMemory(1) == 0:
-    if quiet == 0:
-	print "OK"
-else:
-    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
-    libxml2.dumpMemory()
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xinclude-test-suite.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-#!/usr/bin/python
-import sys
-import time
-import os
-import string
-sys.path.insert(0, "python")
-import libxml2
-
-#
-# the testsuite description
-#
-DIR="xinclude-test-suite"
-CONF="testdescr.xml"
-LOG="check-xinclude-test-suite.log"
-
-log = open(LOG, "w")
-
-os.chdir(DIR)
-
-test_nr = 0
-test_succeed = 0
-test_failed = 0
-test_error = 0
-#
-# Error and warning handlers
-#
-error_nr = 0
-error_msg = ''
-
-def errorHandler(ctx, str):
-    global error_nr
-    global error_msg
-
-    if string.find(str, "error:") >= 0:
-	error_nr = error_nr + 1
-    if len(error_msg) < 300:
-        if len(error_msg) == 0 or error_msg[-1] == '\n':
-	    error_msg = error_msg + "   >>" + str
-	else:
-	    error_msg = error_msg + str
-
-libxml2.registerErrorHandler(errorHandler, None)
-
-def testXInclude(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    print "testXInclude(%s, %s)" % (filename, id)
-    return 1
-
-def runTest(test, basedir):
-    global test_nr
-    global test_failed
-    global test_error
-    global test_succeed
-    global error_msg
-    global log
-
-    fatal_error = 0
-    uri = test.prop('href')
-    id = test.prop('id')
-    type = test.prop('type')
-    if uri == None:
-        print "Test without ID:", uri
-	return -1
-    if id == None:
-        print "Test without URI:", id
-	return -1
-    if type == None:
-        print "Test without URI:", id
-	return -1
-    if basedir != None:
-	URI = basedir + "/" + uri
-    else:
-        URI = uri
-    if os.access(URI, os.R_OK) == 0:
-        print "Test %s missing: base %s uri %s" % (URI, basedir, uri)
-	return -1
-
-    expected = None
-    outputfile = None
-    diff = None
-    if type != 'error':
-	output = test.xpathEval('string(output)')
-	if output == 'No output file.':
-	    output = None
-	if output == '':
-	    output = None
-	if output != None:
-	    if basedir != None:
-		output = basedir + "/" + output
-	    if os.access(output, os.R_OK) == 0:
-		print "Result for %s missing: %s" % (id, output)
-		output = None
-	    else:
-		try:
-		    f = open(output)
-		    expected = f.read()
-		    outputfile = output
-		except:
-		    print "Result for %s unreadable: %s" % (id, output)
-
-    try:
-        # print "testing %s" % (URI)
-	doc = libxml2.parseFile(URI)
-    except:
-        doc = None
-    if doc != None:
-        res = doc.xincludeProcess()
-	if res >= 0 and expected != None:
-	    result = doc.serialize()
-	    if result != expected:
-	        print "Result for %s differs" % (id)
-		open("xinclude.res", "w").write(result)
-		diff = os.popen("diff %s xinclude.res" % outputfile).read()
-
-	doc.freeDoc()
-    else:
-        print "Failed to parse %s" % (URI)
-	res = -1
-
-    
-
-    test_nr = test_nr + 1
-    if type == 'success':
-	if res > 0:
-	    test_succeed = test_succeed + 1
-	elif res == 0:
-	    test_failed = test_failed + 1
-	    print "Test %s: no substitution done ???" % (id)
-	elif res < 0:
-	    test_error = test_error + 1
-	    print "Test %s: failed valid XInclude processing" % (id)
-    elif type == 'error':
-	if res > 0:
-	    test_error = test_error + 1
-	    print "Test %s: failed to detect invalid XInclude processing" % (id)
-	elif res == 0:
-	    test_failed = test_failed + 1
-	    print "Test %s: Invalid but no substitution done" % (id)
-	elif res < 0:
-	    test_succeed = test_succeed + 1
-    elif type == 'optional':
-	if res > 0:
-	    test_succeed = test_succeed + 1
-	else:
-	    print "Test %s: failed optional test" % (id)
-
-    # Log the ontext
-    if res != 1:
-	log.write("Test ID %s\n" % (id))
-	log.write("   File: %s\n" % (URI))
-	content = string.strip(test.content)
-	while content[-1] == '\n':
-	    content = content[0:-1]
-	log.write("   %s:%s\n\n" % (type, content))
-	if error_msg != '':
-	    log.write("   ----\n%s   ----\n" % (error_msg))
-	    error_msg = ''
-	log.write("\n")
-    if diff != None:
-        log.write("diff from test %s:\n" %(id))
-	log.write("   -----------\n%s\n   -----------\n" % (diff));
-
-    return 0
-	    
-
-def runTestCases(case):
-    creator = case.prop('creator')
-    if creator != None:
-	print "=>", creator
-    base = case.getBase(None)
-    basedir = case.prop('basedir')
-    if basedir != None:
-	base = libxml2.buildURI(basedir, base)
-    test = case.children
-    while test != None:
-        if test.name == 'testcase':
-	    runTest(test, base)
-	if test.name == 'testcases':
-	    runTestCases(test)
-        test = test.next
-        
-conf = libxml2.parseFile(CONF)
-if conf == None:
-    print "Unable to load %s" % CONF
-    sys.exit(1)
-
-testsuite = conf.getRootElement()
-if testsuite.name != 'testsuite':
-    print "Expecting TESTSUITE root element: aborting"
-    sys.exit(1)
-
-profile = testsuite.prop('PROFILE')
-if profile != None:
-    print profile
-
-start = time.time()
-
-case = testsuite.children
-while case != None:
-    if case.name == 'testcases':
-	old_test_nr = test_nr
-	old_test_succeed = test_succeed
-	old_test_failed = test_failed
-	old_test_error = test_error
-        runTestCases(case)
-	print "   Ran %d tests: %d suceeded, %d failed and %d generated an error" % (
-	       test_nr - old_test_nr, test_succeed - old_test_succeed,
-	       test_failed - old_test_failed, test_error - old_test_error)
-    case = case.next
-
-conf.freeDoc()
-log.close()
-
-print "Ran %d tests: %d suceeded, %d failed and %d generated an error in %.2f s." % (
-      test_nr, test_succeed, test_failed, test_error, time.time() - start)
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xml-test-suite.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-#!/usr/bin/python
-import sys
-import time
-import os
-import string
-sys.path.insert(0, "python")
-import libxml2
-
-test_nr = 0
-test_succeed = 0
-test_failed = 0
-test_error = 0
-
-#
-# the testsuite description
-#
-CONF="xml-test-suite/xmlconf/xmlconf.xml"
-LOG="check-xml-test-suite.log"
-
-log = open(LOG, "w")
-
-#
-# Error and warning handlers
-#
-error_nr = 0
-error_msg = ''
-def errorHandler(ctx, str):
-    global error_nr
-    global error_msg
-
-    error_nr = error_nr + 1
-    if len(error_msg) < 300:
-        if len(error_msg) == 0 or error_msg[-1] == '\n':
-	    error_msg = error_msg + "   >>" + str
-	else:
-	    error_msg = error_msg + str
-
-libxml2.registerErrorHandler(errorHandler, None)
-
-#warning_nr = 0
-#warning = ''
-#def warningHandler(ctx, str):
-#    global warning_nr
-#    global warning
-#
-#    warning_nr = warning_nr + 1
-#    warning = warning + str
-#
-#libxml2.registerWarningHandler(warningHandler, None)
-
-#
-# Used to load the XML testsuite description
-#
-def loadNoentDoc(filename):
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return None
-    ctxt.replaceEntities(1)
-    ctxt.parseDocument()
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if ctxt.wellFormed() != 1:
-        doc.freeDoc()
-	return None
-    return doc
-
-#
-# The conformance testing routines
-#
-
-def testNotWf(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if doc != None:
-	doc.freeDoc()
-    if ret == 0 or ctxt.wellFormed() != 0:
-        print "%s: error: Well Formedness error not detected" % (id)
-	log.write("%s: error: Well Formedness error not detected\n" % (id))
-	return 0
-    return 1
-
-def testNotWfEnt(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.replaceEntities(1)
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if doc != None:
-	doc.freeDoc()
-    if ret == 0 or ctxt.wellFormed() != 0:
-        print "%s: error: Well Formedness error not detected" % (id)
-	log.write("%s: error: Well Formedness error not detected\n" % (id))
-	return 0
-    return 1
-
-def testNotWfEntDtd(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.replaceEntities(1)
-    ctxt.loadSubset(1)
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if doc != None:
-	doc.freeDoc()
-    if ret == 0 or ctxt.wellFormed() != 0:
-        print "%s: error: Well Formedness error not detected" % (id)
-	log.write("%s: error: Well Formedness error not detected\n" % (id))
-	return 0
-    return 1
-
-def testWfEntDtd(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.replaceEntities(1)
-    ctxt.loadSubset(1)
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if doc == None or ret != 0 or ctxt.wellFormed() == 0:
-        print "%s: error: wrongly failed to parse the document" % (id)
-	log.write("%s: error: wrongly failed to parse the document\n" % (id))
-	if doc != None:
-	    doc.freeDoc()
-	return 0
-    if error_nr != 0:
-        print "%s: warning: WF document generated an error msg" % (id)
-	log.write("%s: error: WF document generated an error msg\n" % (id))
-	doc.freeDoc()
-	return 2
-    doc.freeDoc()
-    return 1
-
-def testError(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.replaceEntities(1)
-    ctxt.loadSubset(1)
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    if doc != None:
-	doc.freeDoc()
-    if ctxt.wellFormed() == 0:
-        print "%s: warning: failed to parse the document but accepted" % (id)
-	log.write("%s: warning: failed to parse the document but accepte\n" % (id))
-	return 2
-    if error_nr != 0:
-        print "%s: warning: WF document generated an error msg" % (id)
-	log.write("%s: error: WF document generated an error msg\n" % (id))
-	return 2
-    return 1
-
-def testInvalid(filename, id):
-    global error_nr
-    global error_msg
-    global log
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.validate(1)
-    ret = ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    valid = ctxt.isValid()
-    if doc == None:
-        print "%s: error: wrongly failed to parse the document" % (id)
-	log.write("%s: error: wrongly failed to parse the document\n" % (id))
-	return 0
-    if valid == 1:
-        print "%s: error: Validity error not detected" % (id)
-	log.write("%s: error: Validity error not detected\n" % (id))
-	doc.freeDoc()
-	return 0
-    if error_nr == 0:
-        print "%s: warning: Validity error not reported" % (id)
-	log.write("%s: warning: Validity error not reported\n" % (id))
-	doc.freeDoc()
-	return 2
-        
-    doc.freeDoc()
-    return 1
-
-def testValid(filename, id):
-    global error_nr
-    global error_msg
-
-    error_nr = 0
-    error_msg = ''
-
-    ctxt = libxml2.createFileParserCtxt(filename)
-    if ctxt == None:
-        return -1
-    ctxt.validate(1)
-    ctxt.parseDocument()
-
-    try:
-	doc = ctxt.doc()
-    except:
-        doc = None
-    valid = ctxt.isValid()
-    if doc == None:
-        print "%s: error: wrongly failed to parse the document" % (id)
-	log.write("%s: error: wrongly failed to parse the document\n" % (id))
-	return 0
-    if valid != 1:
-        print "%s: error: Validity check failed" % (id)
-	log.write("%s: error: Validity check failed\n" % (id))
-	doc.freeDoc()
-	return 0
-    if error_nr != 0 or valid != 1:
-        print "%s: warning: valid document reported an error" % (id)
-	log.write("%s: warning: valid document reported an error\n" % (id))
-	doc.freeDoc()
-	return 2
-    doc.freeDoc()
-    return 1
-
-def runTest(test):
-    global test_nr
-    global test_succeed
-    global test_failed
-    global error_msg
-    global log
-
-    uri = test.prop('URI')
-    id = test.prop('ID')
-    if uri == None:
-        print "Test without ID:", uri
-	return -1
-    if id == None:
-        print "Test without URI:", id
-	return -1
-    base = test.getBase(None)
-    URI = libxml2.buildURI(uri, base)
-    if os.access(URI, os.R_OK) == 0:
-        print "Test %s missing: base %s uri %s" % (URI, base, uri)
-	return -1
-    type = test.prop('TYPE')
-    if type == None:
-        print "Test %s missing TYPE" % (id)
-	return -1
-
-    extra = None
-    if type == "invalid":
-        res = testInvalid(URI, id)
-    elif type == "valid":
-        res = testValid(URI, id)
-    elif type == "not-wf":
-        extra =  test.prop('ENTITIES')
-	# print URI
-	#if extra == None:
-	#    res = testNotWfEntDtd(URI, id)
- 	#elif extra == 'none':
-	#    res = testNotWf(URI, id)
-	#elif extra == 'general':
-	#    res = testNotWfEnt(URI, id)
-	#elif extra == 'both' or extra == 'parameter':
-	res = testNotWfEntDtd(URI, id)
-	#else:
-	#    print "Unknow value %s for an ENTITIES test value" % (extra)
-	#    return -1
-    elif type == "error":
-	res = testError(URI, id)
-    else:
-        # TODO skipped for now
-	return -1
-
-    test_nr = test_nr + 1
-    if res > 0:
-	test_succeed = test_succeed + 1
-    elif res == 0:
-	test_failed = test_failed + 1
-    elif res < 0:
-	test_error = test_error + 1
-
-    # Log the ontext
-    if res != 1:
-	log.write("   File: %s\n" % (URI))
-	content = string.strip(test.content)
-	while content[-1] == '\n':
-	    content = content[0:-1]
-	if extra != None:
-	    log.write("   %s:%s:%s\n" % (type, extra, content))
-	else:
-	    log.write("   %s:%s\n\n" % (type, content))
-	if error_msg != '':
-	    log.write("   ----\n%s   ----\n" % (error_msg))
-	    error_msg = ''
-	log.write("\n")
-
-    return 0
-	    
-
-def runTestCases(case):
-    profile = case.prop('PROFILE')
-    if profile != None and \
-       string.find(profile, "IBM XML Conformance Test Suite - Production") < 0:
-	print "=>", profile
-    test = case.children
-    while test != None:
-        if test.name == 'TEST':
-	    runTest(test)
-	if test.name == 'TESTCASES':
-	    runTestCases(test)
-        test = test.next
-        
-conf = loadNoentDoc(CONF)
-if conf == None:
-    print "Unable to load %s" % CONF
-    sys.exit(1)
-
-testsuite = conf.getRootElement()
-if testsuite.name != 'TESTSUITE':
-    print "Expecting TESTSUITE root element: aborting"
-    sys.exit(1)
-
-profile = testsuite.prop('PROFILE')
-if profile != None:
-    print profile
-
-start = time.time()
-
-case = testsuite.children
-while case != None:
-    if case.name == 'TESTCASES':
-	old_test_nr = test_nr
-	old_test_succeed = test_succeed
-	old_test_failed = test_failed
-	old_test_error = test_error
-        runTestCases(case)
-	print "   Ran %d tests: %d suceeded, %d failed and %d generated an error" % (
-	       test_nr - old_test_nr, test_succeed - old_test_succeed,
-	       test_failed - old_test_failed, test_error - old_test_error)
-    case = case.next
-
-conf.freeDoc()
-log.close()
-
-print "Ran %d tests: %d suceeded, %d failed and %d generated an error in %.2f s." % (
-      test_nr, test_succeed, test_failed, test_error, time.time() - start)
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/check-xsddata-test-suite.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,420 +0,0 @@
-#!/usr/bin/python
-import sys
-import time
-import os
-import string
-import StringIO
-sys.path.insert(0, "python")
-import libxml2
-
-# Memory debug specific
-libxml2.debugMemory(1)
-debug = 0
-verbose = 0
-quiet = 1
-
-#
-# the testsuite description
-#
-CONF=os.path.join(os.path.dirname(__file__), "test/xsdtest/xsdtestsuite.xml")
-LOG="check-xsddata-test-suite.log"
-
-log = open(LOG, "w")
-nb_schemas_tests = 0
-nb_schemas_success = 0
-nb_schemas_failed = 0
-nb_instances_tests = 0
-nb_instances_success = 0
-nb_instances_failed = 0
-
-libxml2.lineNumbersDefault(1)
-#
-# Error and warnng callbacks
-#
-def callback(ctx, str):
-    global log
-    log.write("%s%s" % (ctx, str))
-
-libxml2.registerErrorHandler(callback, "")
-
-#
-# Resolver callback
-#
-resources = {}
-def resolver(URL, ID, ctxt):
-    global resources
-
-    if resources.has_key(URL):
-        return(StringIO.StringIO(resources[URL]))
-    log.write("Resolver failure: asked %s\n" % (URL))
-    log.write("resources: %s\n" % (resources))
-    return None
-
-#
-# handle a valid instance
-#
-def handle_valid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = node.prop("dtd")
-    if instance == None:
-        instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-    mem = libxml2.debugMemory(1);
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nFailed to parse correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-	return
-
-    if debug:
-        print "instance line %d" % (node.lineNo())
-       
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-	del ctxt
-    except:
-        ret = -1
-
-    doc.freeDoc()
-    if mem != libxml2.debugMemory(1):
-	print "validating instance %d line %d leaks" % (
-		  nb_instances_tests, node.lineNo())
-
-    if ret != 0:
-        log.write("\nFailed to validate correct instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-
-#
-# handle an invalid instance
-#
-def handle_invalid(node, schema):
-    global log
-    global nb_instances_success
-    global nb_instances_failed
-
-    instance = node.prop("dtd")
-    if instance == None:
-        instance = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    instance = instance + child.serialize()
-	child = child.next
-
-#    mem = libxml2.debugMemory(1);
-
-    try:
-	doc = libxml2.parseDoc(instance)
-    except:
-        doc = None
-
-    if doc == None:
-        log.write("\nStrange: failed to parse incorrect instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	return
-
-    if debug:
-        print "instance line %d" % (node.lineNo())
-       
-    try:
-        ctxt = schema.relaxNGNewValidCtxt()
-	ret = doc.relaxNGValidateDoc(ctxt)
-	del ctxt
-
-    except:
-        ret = -1
-
-    doc.freeDoc()
-#    if mem != libxml2.debugMemory(1):
-#	print "validating instance %d line %d leaks" % (
-#		  nb_instances_tests, node.lineNo())
-    
-    if ret == 0:
-        log.write("\nFailed to detect validation problem in instance:\n-----\n")
-	log.write(instance)
-        log.write("\n-----\n")
-	nb_instances_failed = nb_instances_failed + 1
-    else:
-	nb_instances_success = nb_instances_success + 1
-
-#
-# handle an incorrect test
-#
-def handle_correct(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs == None:
-        log.write("\nFailed to compile correct schema:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-	nb_schemas_success = nb_schemas_success + 1
-    return rngs
-        
-def handle_incorrect(node):
-    global log
-    global nb_schemas_success
-    global nb_schemas_failed
-
-    schema = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    schema = schema + child.serialize()
-	child = child.next
-
-    try:
-	rngp = libxml2.relaxNGNewMemParserCtxt(schema, len(schema))
-	rngs = rngp.relaxNGParse()
-    except:
-        rngs = None
-    if rngs != None:
-        log.write("\nFailed to detect schema error in:\n-----\n")
-	log.write(schema)
-        log.write("\n-----\n")
-	nb_schemas_failed = nb_schemas_failed + 1
-    else:
-#	log.write("\nSuccess detecting schema error in:\n-----\n")
-#	log.write(schema)
-#	log.write("\n-----\n")
-	nb_schemas_success = nb_schemas_success + 1
-    return None
-
-#
-# resource handling: keep a dictionary of URL->string mappings
-#
-def handle_resource(node, dir):
-    global resources
-
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    res = ""
-    child = node.children
-    while child != None:
-        if child.type != 'text':
-	    res = res + child.serialize()
-	child = child.next
-    resources[name] = res
-
-#
-# dir handling: pseudo directory resources
-#
-def handle_dir(node, dir):
-    try:
-	name = node.prop('name')
-    except:
-        name = None
-
-    if name == None or name == '':
-        log.write("resource has no name")
-	return;
-        
-    if dir != None:
-#        name = libxml2.buildURI(name, dir)
-        name = dir + '/' + name
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, name)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, name)
-
-#
-# handle a testCase element
-#
-def handle_testCase(node):
-    global nb_schemas_tests
-    global nb_instances_tests
-    global resources
-
-    sections = node.xpathEval('string(section)')
-    log.write("\n    ======== test %d line %d section %s ==========\n" % (
-
-              nb_schemas_tests, node.lineNo(), sections))
-    resources = {}
-    if debug:
-        print "test %d line %d" % (nb_schemas_tests, node.lineNo())
-
-    dirs = node.xpathEval('dir')
-    for dir in dirs:
-        handle_dir(dir, None)
-    res = node.xpathEval('resource')
-    for r in res:
-        handle_resource(r, None)
-
-    tsts = node.xpathEval('incorrect')
-    if tsts != []:
-        if len(tsts) != 1:
-	    print "warning test line %d has more than one <incorrect> example" %(node.lineNo())
-	schema = handle_incorrect(tsts[0])
-    else:
-        tsts = node.xpathEval('correct')
-	if tsts != []:
-	    if len(tsts) != 1:
-		print "warning test line %d has more than one <correct> example"% (node.lineNo())
-	    schema = handle_correct(tsts[0])
-	else:
-	    print "warning <testCase> line %d has no <correct> nor <incorrect> child" % (node.lineNo())
-
-    nb_schemas_tests = nb_schemas_tests + 1;
-    
-    valids = node.xpathEval('valid')
-    invalids = node.xpathEval('invalid')
-    nb_instances_tests = nb_instances_tests + len(valids) + len(invalids)
-    if schema != None:
-        for valid in valids:
-	    handle_valid(valid, schema)
-        for invalid in invalids:
-	    handle_invalid(invalid, schema)
-
-
-#
-# handle a testSuite element
-#
-def handle_testSuite(node, level = 0):
-    global nb_schemas_tests, nb_schemas_success, nb_schemas_failed
-    global nb_instances_tests, nb_instances_success, nb_instances_failed
-    if verbose and level >= 0:
-	old_schemas_tests = nb_schemas_tests
-	old_schemas_success = nb_schemas_success
-	old_schemas_failed = nb_schemas_failed
-	old_instances_tests = nb_instances_tests
-	old_instances_success = nb_instances_success
-	old_instances_failed = nb_instances_failed
-
-    docs = node.xpathEval('documentation')
-    authors = node.xpathEval('author')
-    if docs != []:
-        msg = ""
-        for doc in docs:
-	    msg = msg + doc.content + " "
-	if authors != []:
-	    msg = msg + "written by "
-	    for author in authors:
-	        msg = msg + author.content + " "
-	if quiet == 0:
-	    print msg
-    sections = node.xpathEval('section')
-    if verbose and sections != [] and level <= 0:
-        msg = ""
-        for section in sections:
-	    msg = msg + section.content + " "
-	if quiet == 0:
-	    print "Tests for section %s" % (msg)
-    for test in node.xpathEval('testCase'):
-        handle_testCase(test)
-    for test in node.xpathEval('testSuite'):
-        handle_testSuite(test, level + 1)
-	        
-
-    if verbose and level >= 0 :
-        if sections != []:
-	    msg = ""
-	    for section in sections:
-		msg = msg + section.content + " "
-	    print "Result of tests for section %s" % (msg)
-	elif docs != []:
-	    msg = ""
-	    for doc in docs:
-	        msg = msg + doc.content + " "
-	    print "Result of tests for %s" % (msg)
-
-        if nb_schemas_tests != old_schemas_tests:
-	    print "found %d test schemas: %d success %d failures" % (
-		  nb_schemas_tests - old_schemas_tests,
-		  nb_schemas_success - old_schemas_success,
-		  nb_schemas_failed - old_schemas_failed)
-	if nb_instances_tests != old_instances_tests:
-	    print "found %d test instances: %d success %d failures" % (
-		  nb_instances_tests - old_instances_tests,
-		  nb_instances_success - old_instances_success,
-		  nb_instances_failed - old_instances_failed)
-#
-# Parse the conf file
-#
-libxml2.substituteEntitiesDefault(1);
-testsuite = libxml2.parseFile(CONF)
-
-#
-# Error and warnng callbacks
-#
-def callback(ctx, str):
-    global log
-    log.write("%s%s" % (ctx, str))
-
-libxml2.registerErrorHandler(callback, "")
-
-libxml2.setEntityLoader(resolver)
-root = testsuite.getRootElement()
-if root.name != 'testSuite':
-    print "%s doesn't start with a testSuite element, aborting" % (CONF)
-    sys.exit(1)
-if quiet == 0:
-    print "Running Relax NG testsuite"
-handle_testSuite(root)
-
-if quiet == 0 or nb_schemas_failed != 0:
-    print "\nTOTAL:\nfound %d test schemas: %d success %d failures" % (
-      nb_schemas_tests, nb_schemas_success, nb_schemas_failed)
-if quiet == 0 or nb_instances_failed != 0:
-    print "found %d test instances: %d success %d failures" % (
-      nb_instances_tests, nb_instances_success, nb_instances_failed)
-
-testsuite.freeDoc()
-
-# Memory debug specific
-libxml2.relaxNGCleanupTypes()
-libxml2.cleanupParser()
-if libxml2.debugMemory(1) == 0:
-    if quiet == 0:
-	print "OK"
-else:
-    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
-    libxml2.dumpMemory()
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/config.h.in	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/config.h.in	Wed Jan 09 11:40:12 2019 +0530
@@ -3,9 +3,6 @@
 /* Type cast for the gethostbyname() argument */
 #undef GETHOSTBYNAME_ARG_CAST
 
-/* Define to 1 if you have the <ansidecl.h> header file. */
-#undef HAVE_ANSIDECL_H
-
 /* Define to 1 if you have the <arpa/inet.h> header file. */
 #undef HAVE_ARPA_INET_H
 
@@ -15,9 +12,6 @@
 /* Whether struct sockaddr::__ss_family exists */
 #undef HAVE_BROKEN_SS_FAMILY
 
-/* Define to 1 if you have the `class' function. */
-#undef HAVE_CLASS
-
 /* Define to 1 if you have the <ctype.h> header file. */
 #undef HAVE_CTYPE_H
 
@@ -39,24 +33,12 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if you have the `finite' function. */
-#undef HAVE_FINITE
-
 /* Define to 1 if you have the <float.h> header file. */
 #undef HAVE_FLOAT_H
 
-/* Define to 1 if you have the `fpclass' function. */
-#undef HAVE_FPCLASS
-
 /* Define to 1 if you have the `fprintf' function. */
 #undef HAVE_FPRINTF
 
-/* Define to 1 if you have the `fp_class' function. */
-#undef HAVE_FP_CLASS
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-#undef HAVE_FP_CLASS_H
-
 /* Define to 1 if you have the `ftime' function. */
 #undef HAVE_FTIME
 
@@ -66,9 +48,6 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define to 1 if you have the <ieeefp.h> header file. */
-#undef HAVE_IEEEFP_H
-
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -81,24 +60,15 @@
 /* Define if isnan is there */
 #undef HAVE_ISNAN
 
-/* Define to 1 if you have the `isnand' function. */
-#undef HAVE_ISNAND
-
 /* Define if history library is there (-lhistory) */
 #undef HAVE_LIBHISTORY
 
-/* Have compression library */
-#undef HAVE_LIBLZMA
-
 /* Define if pthread library is there (-lpthread) */
 #undef HAVE_LIBPTHREAD
 
 /* Define if readline library is there (-lreadline) */
 #undef HAVE_LIBREADLINE
 
-/* Have compression library */
-#undef HAVE_LIBZ
-
 /* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
 
@@ -128,9 +98,6 @@
 #  undef /**/ HAVE_MMAP
 #endif
 
-/* Define to 1 if you have the <nan.h> header file. */
-#undef HAVE_NAN_H
-
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 #undef HAVE_NDIR_H
 
@@ -194,12 +161,6 @@
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
-/* Define to 1 if you have the `strdup' function. */
-#undef HAVE_STRDUP
-
-/* Define to 1 if you have the `strerror' function. */
-#undef HAVE_STRERROR
-
 /* Define to 1 if you have the `strftime' function. */
 #undef HAVE_STRFTIME
 
@@ -209,9 +170,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
 /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
    */
 #undef HAVE_SYS_DIR_H
@@ -265,9 +223,6 @@
 /* Define to 1 if you have the <zlib.h> header file. */
 #undef HAVE_ZLIB_H
 
-/* Define to 1 if you have the `_stat' function. */
-#undef HAVE__STAT
-
 /* Whether __va_copy() is available */
 #undef HAVE___VA_COPY
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/configure.ac	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/configure.ac	Wed Jan 09 11:40:12 2019 +0530
@@ -9,7 +9,7 @@
 
 LIBXML_MAJOR_VERSION=2
 LIBXML_MINOR_VERSION=9
-LIBXML_MICRO_VERSION=7
+LIBXML_MICRO_VERSION=9
 LIBXML_MICRO_VERSION_SUFFIX=
 LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
 LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
@@ -389,18 +389,20 @@
 
 WITH_ZLIB=0
 if test "$with_zlib" = "no"; then
-    echo "Disabling compression support"
+    echo "Disabling zlib compression support"
 else
-    # Try pkg-config first so that static linking works.
-    # If this succeeeds, we ignore the WITH_ZLIB directory.
-    PKG_CHECK_MODULES([Z],[zlib],
-        [have_libz=yes],
-        [have_libz=no])
+    # Don't run pkg-config if with_zlib contains a path.
+    if test "x$Z_DIR" = "x"; then
+        # Try pkg-config first so that static linking works.
+        PKG_CHECK_MODULES([Z],[zlib],
+            [WITH_ZLIB=1],
+            [ ])
+    fi
 
-     if test "x$have_libz" = "xno"; then
+    if test "$WITH_ZLIB" = "0"; then
         AC_CHECK_HEADERS(zlib.h,
             AC_CHECK_LIB(z, gzread,[
-                have_libz=yes
+                WITH_ZLIB=1
                 if test "x${Z_DIR}" != "x"; then
                     Z_CFLAGS="-I${Z_DIR}/include"
                     Z_LIBS="-L${Z_DIR}/lib -lz"
@@ -411,18 +413,8 @@
                     esac]
                 else
                     Z_LIBS="-lz"
-                fi],
-                [have_libz=no])
-             )
-    else
-	# we still need to check for zlib.h header
-	AC_CHECK_HEADERS([zlib.h])
-    fi
-
-    # Found the library via either method?
-    if test "x$have_libz" = "xyes"; then
-        AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
-        WITH_ZLIB=1
+                fi])
+            )
     fi
 fi
 
@@ -436,38 +428,30 @@
 
 WITH_LZMA=0
 if test "$with_lzma" = "no"; then
-    echo "Disabling compression support"
+    echo "Disabling lzma compression support"
 else
-    # Try pkg-config first so that static linking works.
-    # If this succeeeds, we ignore the WITH_LZMA directory.
-    PKG_CHECK_MODULES([LZMA],[liblzma],
-        [have_liblzma=yes],
-        [have_liblzma=no])
+    # Don't run pkg-config if with_lzma contains a path.
+    if test "x$LZMA_DIR" = "x"; then
+        # Try pkg-config first so that static linking works.
+        PKG_CHECK_MODULES([LZMA],[liblzma],
+            [WITH_LZMA=1],
+            [ ])
+    fi
 
-     # If pkg-config failed, fall back to AC_CHECK_LIB. This
-     # will not pick up the necessary LIBS flags for liblzma's
-     # private dependencies, though, so static linking may fail.
-     if test "x$have_liblzma" = "xno"; then
-         AC_CHECK_HEADERS(lzma.h,
+    # If pkg-config failed, fall back to AC_CHECK_LIB. This
+    # will not pick up the necessary LIBS flags for liblzma's
+    # private dependencies, though, so static linking may fail.
+    if test "$WITH_LZMA" = "0"; then
+        AC_CHECK_HEADERS(lzma.h,
             AC_CHECK_LIB(lzma, lzma_code,[
-                have_liblzma=yes
+                WITH_LZMA=1
                 if test "x${LZMA_DIR}" != "x"; then
                     LZMA_CFLAGS="-I${LZMA_DIR}/include"
                     LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
                 else
                     LZMA_LIBS="-llzma"
-                fi],
-                [have_liblzma=no])
-	     )
-    else
-	# we still need to check for lzma,h header
-	AC_CHECK_HEADERS([lzma.h])
-    fi
-
-    # Found the library via either method?
-    if test "x$have_liblzma" = "xyes"; then
-        AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library])
-        WITH_LZMA=1
+                fi])
+            )
     fi
 fi
 
@@ -495,12 +479,8 @@
 AC_CHECK_HEADERS([stdint.h])
 AC_CHECK_HEADERS([inttypes.h])
 AC_CHECK_HEADERS([time.h])
-AC_CHECK_HEADERS([ansidecl.h])
-AC_CHECK_HEADERS([ieeefp.h])
-AC_CHECK_HEADERS([nan.h])
 AC_CHECK_HEADERS([math.h])
 AC_CHECK_HEADERS([limits.h])
-AC_CHECK_HEADERS([fp_class.h])
 AC_CHECK_HEADERS([float.h])
 AC_CHECK_HEADERS([stdlib.h])
 AC_CHECK_HEADERS([sys/socket.h], [], [],
@@ -557,10 +537,8 @@
 
 dnl Checks for library functions.
 AC_FUNC_STRFTIME
-AC_CHECK_FUNCS(strdup strndup strerror)
-AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
 AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
-AC_CHECK_FUNCS(stat _stat signal)
+AC_CHECK_FUNCS(stat signal)
 AC_CHECK_FUNCS(rand rand_r srand time)
 AC_CHECK_FUNCS(isascii mmap munmap putenv)
 
@@ -771,13 +749,13 @@
 if test "${GCC}" != "yes" ; then
     case "${host}" in
           hppa*-*-hpux* )
-	       CFLAGS="${CFLAGS} -Wp,-H30000"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
 	       ;;
           *-dec-osf* )
-               CFLAGS="${CFLAGS} -ieee"
+               EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
                ;;
 	  alpha*-*-linux* )
-	       CFLAGS="${CFLAGS} -ieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
 	       ;;
     esac
 else
@@ -787,19 +765,19 @@
 	# Not activated by default because this inflates the code size
 	# Used to allow propagation of C++ exceptions through the library
 	#
-	CFLAGS="${CFLAGS} -fexceptions"
+	EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
     fi
 
     # warnings we'd like to see
-    CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+    EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
     # warnings we'd like to supress
-    CFLAGS="${CFLAGS} -Wno-long-long"
+    EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args -Wno-array-bounds"
     case "${host}" in
           alpha*-*-linux* )
-	       CFLAGS="${CFLAGS} -mieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
 	       ;;
 	  alpha*-*-osf* )
-	       CFLAGS="${CFLAGS} -mieee"
+	       EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
 	       ;;
     esac
 fi
@@ -812,13 +790,13 @@
 	;;
     *-*-mingw* | *-*-cygwin* | *-*-msvc* )
         # If the host is Windows, and shared libraries are disabled, we
-        # need to add -DLIBXML_STATIC to CFLAGS in order for linking to
+        # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
         # work properly (without it, xmlexports.h would force the use of
         # DLL imports, which obviously aren't present in a static
         # library).
         if test "x$enable_shared" = "xno"; then
             XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
-            CFLAGS="$CFLAGS -DLIBXML_STATIC"
+            EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
         fi
         ;;
 esac
@@ -1010,7 +988,7 @@
 	fi
     fi
     if test "${GCC}" = "yes" ; then
-    CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+    EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
     fi
     STATIC_BINARIES="-static"
 dnl -Wcast-qual -ansi
@@ -1680,14 +1658,14 @@
 if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
 then
     echo Enabling code coverage for GCC
-    CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
+    EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
     LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
 else
     echo Disabling code coverage for GCC
 fi
 
 AC_SUBST(CPPFLAGS)
-AC_SUBST(CFLAGS)
+AC_SUBST(EXTRA_CFLAGS)
 AC_SUBST(LDFLAGS)
 AC_SUBST(XML_CFLAGS)
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dbgen.pl	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#!/usr/bin/perl
-
-$size = shift;
-
-if ($size eq "") 
-{
-    die "usage:  dbgen.pl [size]\n";
-}
-
-@firstnames = ("Al", "Bob", "Charles", "David", "Egon", "Farbood", 
-               "George", "Hank", "Inki", "James");
-@lastnames = ("Aranow", "Barker", "Corsetti", "Dershowitz", "Engleman", 
-              "Franklin", "Grice", "Haverford", "Ilvedson", "Jones");
-@states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
-           "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
-           "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
-           "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
-           "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY");
-
-print "<?xml version=\"1.0\"?>\n";
-print "\n";
-print "<table>\n";
-
-for ($i=0; $i<$size; $i++)
-{
-    $first = $firstnames [$i % 10];
-    $last = $lastnames [($i / 10) % 10];
-    $state = $states [($i / 100) % 50];
-    $zip = 22000 + $i / 5000;
-
-    printf "  <row>\n";
-    printf "    <id>%04d</id>\n", $i;
-    printf "    <firstname>$first</firstname>\n", $i;
-    printf "    <lastname>$last</lastname>\n", $i;
-    printf "    <street>%d Any St.</street>\n", ($i % 100) + 1;
-    printf "    <city>Anytown</city>\n";
-    printf "    <state>$state</state>\n";
-    printf "    <zip>%d</zip>\n", $zip;
-    printf "  </row>\n";
-}
-
-print "</table>\n";
-
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dbgenattr.pl	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-#!/usr/bin/perl
-
-$size = shift;
-
-if ($size eq "") 
-{
-    die "usage:  dbgen.pl [size]\n";
-}
-
-@firstnames = ("Al", "Bob", "Charles", "David", "Egon", "Farbood", 
-               "George", "Hank", "Inki", "James");
-@lastnames = ("Aranow", "Barker", "Corsetti", "Dershowitz", "Engleman", 
-              "Franklin", "Grice", "Haverford", "Ilvedson", "Jones");
-@states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
-           "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
-           "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
-           "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
-           "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY");
-
-print "<?xml version=\"1.0\"?>\n";
-print "\n";
-print "<table>\n";
-
-for ($i=0; $i<$size; $i++)
-{
-    $first = $firstnames [$i % 10];
-    $last = $lastnames [($i / 10) % 10];
-    $state = $states [($i / 100) % 50];
-    $zip = 22000 + $i / 5000;
-
-    printf "  <row\n";
-    printf "    id='%04d'\n", $i;
-    printf "    firstname='$first'\n", $i;
-    printf "    lastname='$last'\n", $i;
-    printf "    street='%d Any St.'\n", ($i % 100) + 1;
-    printf "    city='Anytown'\n";
-    printf "    state='$state'\n";
-    printf "    zip='%d'/>\n", $zip;
-}
-
-print "</table>\n";
-
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dict.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/dict.c	Wed Jan 09 11:40:12 2019 +0530
@@ -67,22 +67,22 @@
 #define WITH_BIG_KEY
 
 #ifdef WITH_BIG_KEY
-#define xmlDictComputeKey(dict, name, len)          \
-    (((dict)->size == MIN_DICT_SIZE) ?              \
+#define xmlDictComputeKey(dict, name, len)                              \
+    (((dict)->size == MIN_DICT_SIZE) ?                                  \
      xmlDictComputeFastKey(name, len, (dict)->seed) :                   \
      xmlDictComputeBigKey(name, len, (dict)->seed))
 
-#define xmlDictComputeQKey(dict, prefix, plen, name, len)   \
-    (((prefix) == NULL) ?                   \
-      (xmlDictComputeKey(dict, name, len)) :            \
-      (((dict)->size == MIN_DICT_SIZE) ?            \
+#define xmlDictComputeQKey(dict, prefix, plen, name, len)               \
+    (((prefix) == NULL) ?                                               \
+      (xmlDictComputeKey(dict, name, len)) :                             \
+      (((dict)->size == MIN_DICT_SIZE) ?                                \
        xmlDictComputeFastQKey(prefix, plen, name, len, (dict)->seed) :  \
        xmlDictComputeBigQKey(prefix, plen, name, len, (dict)->seed)))
 
 #else /* !WITH_BIG_KEY */
-#define xmlDictComputeKey(dict, name, len)          \
+#define xmlDictComputeKey(dict, name, len)                              \
         xmlDictComputeFastKey(name, len, (dict)->seed)
-#define xmlDictComputeQKey(dict, prefix, plen, name, len)   \
+#define xmlDictComputeQKey(dict, prefix, plen, name, len)               \
         xmlDictComputeFastQKey(prefix, plen, name, len, (dict)->seed)
 #endif /* WITH_BIG_KEY */
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/encoding.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/encoding.c	Wed Jan 09 11:40:12 2019 +0530
@@ -110,6 +110,9 @@
   if (conv == NULL)
     return NULL;
 
+  conv->pivot_source = conv->pivot_buf;
+  conv->pivot_target = conv->pivot_buf;
+
   conv->uconv = ucnv_open(name, &status);
   if (U_FAILURE(status))
     goto error;
@@ -317,9 +320,9 @@
     instop = inend;
 
     while ((in < inend) && (out < outend - 1)) {
-        if (*in >= 0x80) {
+    if (*in >= 0x80) {
         *out++ = (((*in) >>  6) & 0x1F) | 0xC0;
-        *out++ = ((*in) & 0x3F) | 0x80;
+            *out++ = ((*in) & 0x3F) | 0x80;
         ++in;
     }
     if ((instop - in) > (outend - out)) instop = in + (outend - out);
@@ -1673,13 +1676,13 @@
 
     if (handlers != NULL) {
         for (i = 0;i < nbCharEncodingHandler; i++) {
-        if (!strcmp(upper, handlers[i]->name)) {
+            if (!strcmp(upper, handlers[i]->name)) {
 #ifdef DEBUG_ENCODING
-            xmlGenericError(xmlGenericErrorContext,
-            "Found registered handler for encoding %s\n", name);
+                xmlGenericError(xmlGenericErrorContext,
+                        "Found registered handler for encoding %s\n", name);
 #endif
-        return(handlers[i]);
-    }
+                return(handlers[i]);
+            }
         }
     }
 
@@ -1850,6 +1853,7 @@
  * @outlen:  the length of @out
  * @in:  a pointer to an array of ISO Latin 1 chars
  * @inlen:  the length of @in
+ * @flush: if true, indicates end of input
  *
  * Returns 0 if success, or
  *     -1 by lack of space, or
@@ -1863,7 +1867,7 @@
  */
 static int
 xmlUconvWrapper(uconv_t *cd, int toUnicode, unsigned char *out, int *outlen,
-                const unsigned char *in, int *inlen) {
+                const unsigned char *in, int *inlen, int flush) {
     const char *ucv_in = (const char *) in;
     char *ucv_out = (char *) out;
     UErrorCode err = U_ZERO_ERROR;
@@ -1873,33 +1877,31 @@
         return(-1);
     }
 
-    /*
-     * TODO(jungshik)
-     * 1. is ucnv_convert(To|From)Algorithmic better?
-     * 2. had we better use an explicit pivot buffer?
-     * 3. error returned comes from 'fromUnicode' only even
-     *    when toUnicode is true !
-     */
     if (toUnicode) {
         /* encoding => UTF-16 => UTF-8 */
         ucnv_convertEx(cd->utf8, cd->uconv, &ucv_out, ucv_out + *outlen,
-                       &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
-                       0, TRUE, &err);
+                       &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+                       &cd->pivot_source, &cd->pivot_target,
+                       cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
     } else {
         /* UTF-8 => UTF-16 => encoding */
         ucnv_convertEx(cd->uconv, cd->utf8, &ucv_out, ucv_out + *outlen,
-                       &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
-                       0, TRUE, &err);
+                       &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+                       &cd->pivot_source, &cd->pivot_target,
+                       cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
     }
     *inlen = ucv_in - (const char*) in;
     *outlen = ucv_out - (char *) out;
-    if (U_SUCCESS(err))
+    if (U_SUCCESS(err)) {
+        /* reset pivot buf if this is the last call for input (flush==TRUE) */
+        if (flush)
+            cd->pivot_source = cd->pivot_target = cd->pivot_buf;
         return 0;
+    }
     if (err == U_BUFFER_OVERFLOW_ERROR)
         return -1;
     if (err == U_INVALID_CHAR_FOUND || err == U_ILLEGAL_CHAR_FOUND)
         return -2;
-    /* if (err == U_TRUNCATED_CHAR_FOUND) */
     return -3;
 }
 #endif /* LIBXML_ICU_ENABLED */
@@ -1912,8 +1914,9 @@
 
 static int
 xmlEncInputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
-                 int *outlen, const unsigned char *in, int *inlen) {
+                 int *outlen, const unsigned char *in, int *inlen, int flush) {
     int ret;
+    (void)flush;
 
     if (handler->input != NULL) {
         ret = handler->input(out, outlen, in, inlen);
@@ -1925,7 +1928,8 @@
 #endif /* LIBXML_ICONV_ENABLED */
 #ifdef LIBXML_ICU_ENABLED
     else if (handler->uconv_in != NULL) {
-        ret = xmlUconvWrapper(handler->uconv_in, 1, out, outlen, in, inlen);
+        ret = xmlUconvWrapper(handler->uconv_in, 1, out, outlen, in, inlen,
+                              flush);
     }
 #endif /* LIBXML_ICU_ENABLED */
     else {
@@ -1953,7 +1957,8 @@
 #endif /* LIBXML_ICONV_ENABLED */
 #ifdef LIBXML_ICU_ENABLED
     else if (handler->uconv_out != NULL) {
-        ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen);
+        ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen,
+                              TRUE);
     }
 #endif /* LIBXML_ICU_ENABLED */
     else {
@@ -2006,8 +2011,8 @@
         if (toconv > len)
             toconv = len;
     } else {
-    if (toconv > 180)
-    toconv  = 180;
+        if (toconv > 180)
+            toconv = 180;
     }
     if (toconv * 2 >= written) {
         xmlBufferGrow(out, toconv * 2);
@@ -2015,7 +2020,7 @@
     }
 
     ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
-                         in->content, &toconv);
+                           in->content, &toconv, 0);
     xmlBufferShrink(in, toconv);
     out->use += written;
     out->content[out->use] = 0;
@@ -2133,7 +2138,7 @@
     c_in = toconv;
     c_out = written;
     ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
-                           xmlBufContent(in), &c_in);
+                           xmlBufContent(in), &c_in, 0);
     xmlBufShrink(in, c_in);
     xmlBufAddLen(out, c_out);
     if (ret == -1)
@@ -2231,7 +2236,7 @@
     c_in = toconv;
     c_out = written;
     ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
-                           xmlBufContent(in), &c_in);
+                           xmlBufContent(in), &c_in, flush);
     xmlBufShrink(in, c_in);
     xmlBufAddLen(out, c_out);
     if (ret == -1)
@@ -2317,12 +2322,12 @@
         written = out->size - out->use - 1;
     }
     ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
-                             in->content, &toconv);
-        xmlBufferShrink(in, toconv);
-        out->use += written;
-        out->content[out->use] = 0;
-        if (ret == -1)
-            ret = -3;
+                           in->content, &toconv, 1);
+    xmlBufferShrink(in, toconv);
+    out->use += written;
+    out->content[out->use] = 0;
+    if (ret == -1)
+        ret = -3;
 
     switch (ret) {
         case 0:
@@ -2455,8 +2460,6 @@
         ret = -3;
     }
 
-    if (ret >= 0) output += ret;
-
     /*
      * Attempt to handle error cases
      */
@@ -2585,7 +2588,7 @@
         toconv = 0;
         /* TODO: Check return value. */
         xmlEncOutputChunk(handler, &out->content[out->use], &written,
-                  NULL, &toconv);
+                          NULL, &toconv);
         out->use += written;
         out->content[out->use] = 0;
 #ifdef DEBUG_ENCODING
@@ -2606,7 +2609,7 @@
     written = out->size - out->use - 1;
     }
     ret = xmlEncOutputChunk(handler, &out->content[out->use], &written,
-                          in->content, &toconv);
+                            in->content, &toconv);
     xmlBufferShrink(in, toconv);
     out->use += written;
     writtentot += written;
@@ -2614,7 +2617,7 @@
     if (ret == -1) {
         if (written > 0) {
             /* Can be a limitation of iconv or uconv */
-        goto retry;
+            goto retry;
         }
         ret = -3;
     }
@@ -2660,21 +2663,21 @@
                 break;
 
 #ifdef DEBUG_ENCODING
-        xmlGenericError(xmlGenericErrorContext,
-            "handling output conversion error\n");
-        xmlGenericError(xmlGenericErrorContext,
-            "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
-            in->content[0], in->content[1],
-            in->content[2], in->content[3]);
+            xmlGenericError(xmlGenericErrorContext,
+                    "handling output conversion error\n");
+            xmlGenericError(xmlGenericErrorContext,
+                    "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+                    in->content[0], in->content[1],
+                    in->content[2], in->content[3]);
 #endif
-        /*
-         * Removes the UTF8 sequence, and replace it by a charref
-         * and continue the transcoding phase, hoping the error
-         * did not mangle the encoder state.
-         */
+            /*
+             * Removes the UTF8 sequence, and replace it by a charref
+             * and continue the transcoding phase, hoping the error
+             * did not mangle the encoder state.
+             */
             charrefLen = snprintf((char *) &charref[0], sizeof(charref),
                              "&#%d;", cur);
-        xmlBufferShrink(in, len);
+            xmlBufferShrink(in, len);
             xmlBufferGrow(out, charrefLen * 4);
         written = out->size - out->use - 1;
             toconv = charrefLen;
@@ -2693,8 +2696,8 @@
                    buf);
         if (in->alloc != XML_BUFFER_ALLOC_IMMUTABLE)
             in->content[0] = ' ';
-        break;
-    }
+            break;
+        }
 
             out->use += written;
             writtentot += written;
@@ -2819,19 +2822,19 @@
         int ret;
 
             do {
-            toconv = in->end - cur;
-            written = 32000;
+                toconv = in->end - cur;
+                written = 32000;
                 ret = xmlEncOutputChunk(handler, &convbuf[0], &written,
-                      cur, &toconv);
-            if (ret < 0) {
-                if (written > 0)
-                ret = -2;
-            else
-                return(-1);
-            }
-            unused += written;
-            cur += toconv;
-        } while (ret == -2);
+                                        cur, &toconv);
+                if (ret < 0) {
+                    if (written > 0)
+                        ret = -2;
+                    else
+                        return(-1);
+                }
+                unused += written;
+                cur += toconv;
+            } while (ret == -2);
     }
     if (in->buf->rawconsumed < unused)
         return(-1);
@@ -2941,7 +2944,7 @@
             c2 = c2 & 0x3F;
         d = d & 0x0F;
         d = xlattable [48 + c2 + xlattable [48 + c1 +
-                xlattable [32 + d] * 64] * 64];
+            xlattable [32 + d] * 64] * 64];
             if (d == 0) {
                 /* not in character set */
                 *outlen = out - outstart;
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/entities.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/entities.c	Wed Jan 09 11:40:12 2019 +0530
@@ -885,10 +885,9 @@
  * Deallocate the memory used by an entities in the hash table.
  */
 static void
-xmlFreeEntityWrapper(xmlEntityPtr entity,
-                   const xmlChar *name ATTRIBUTE_UNUSED) {
+xmlFreeEntityWrapper(void *entity, const xmlChar *name ATTRIBUTE_UNUSED) {
     if (entity != NULL)
-    xmlFreeEntity(entity);
+    xmlFreeEntity((xmlEntityPtr) entity);
 }
 
 /**
@@ -899,7 +898,7 @@
  */
 void
 xmlFreeEntitiesTable(xmlEntitiesTablePtr table) {
-    xmlHashFree(table, (xmlHashDeallocator) xmlFreeEntityWrapper);
+    xmlHashFree(table, xmlFreeEntityWrapper);
 }
 
 #ifdef LIBXML_TREE_ENABLED
@@ -911,8 +910,9 @@
  *
  * Returns the new xmlEntitiesPtr or NULL in case of error.
  */
-static xmlEntityPtr
-xmlCopyEntity(xmlEntityPtr ent) {
+static void *
+xmlCopyEntity(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlEntityPtr ent = (xmlEntityPtr) payload;
     xmlEntityPtr cur;
 
     cur = (xmlEntityPtr) xmlMalloc(sizeof(xmlEntity));
@@ -949,7 +949,7 @@
  */
 xmlEntitiesTablePtr
 xmlCopyEntitiesTable(xmlEntitiesTablePtr table) {
-    return(xmlHashCopy(table, (xmlHashCopier) xmlCopyEntity));
+    return(xmlHashCopy(table, xmlCopyEntity));
 }
 #endif /* LIBXML_TREE_ENABLED */
 
@@ -1090,8 +1090,9 @@
  * When using the hash table scan function, arguments need to be reversed
  */
 static void
-xmlDumpEntityDeclScan(xmlEntityPtr ent, xmlBufferPtr buf) {
-    xmlDumpEntityDecl(buf, ent);
+xmlDumpEntityDeclScan(void *ent, void *buf,
+                      const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlDumpEntityDecl((xmlBufferPtr) buf, (xmlEntityPtr) ent);
 }
 
 /**
@@ -1103,7 +1104,7 @@
  */
 void
 xmlDumpEntitiesTable(xmlBufferPtr buf, xmlEntitiesTablePtr table) {
-    xmlHashScan(table, (xmlHashScanner)xmlDumpEntityDeclScan, buf);
+    xmlHashScan(table, xmlDumpEntityDeclScan, buf);
 }
 #endif /* LIBXML_OUTPUT_ENABLED */
 #define bottom_entities
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/error.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/error.c	Wed Jan 09 11:40:12 2019 +0530
@@ -189,7 +189,7 @@
     n = 0;
     /* search backwards for beginning-of-line (to max buff size) */
     while ((n++ < (sizeof(content)-1)) && (cur > base) &&
-           (*(cur) != '\n') && (*(cur) != '\r'))
+       (*(cur) != '\n') && (*(cur) != '\r'))
         cur--;
     if ((*(cur) == '\n') || (*(cur) == '\r')) cur++;
     /* calculate the error position in terms of the current position */
@@ -199,7 +199,7 @@
     ctnt = content;
     /* copy selected text to our buffer */
     while ((*cur != 0) && (*(cur) != '\n') &&
-           (*(cur) != '\r') && (n < sizeof(content)-1)) {
+       (*(cur) != '\r') && (n < sizeof(content)-1)) {
         *ctnt++ = *cur++;
     n++;
     }
@@ -616,11 +616,11 @@
         channel = ctxt->sax->error;
     data = ctxt->userData;
     } else if (channel == NULL) {
-        channel = xmlGenericError;
+    channel = xmlGenericError;
     if (ctxt != NULL) {
         data = ctxt;
     } else {
-    data = xmlGenericErrorContext;
+        data = xmlGenericErrorContext;
     }
     }
     if (channel == NULL)
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/genUnicode.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,478 +0,0 @@
-#!/usr/bin/python -u
-#
-# Original script modified in November 2003 to take advantage of
-# the character-validation range routines, and updated to the
-# current Unicode information (Version 4.0.1)
-#
-# NOTE: there is an 'alias' facility for blocks which are not present in
-#	the current release, but are needed for ABI compatibility.  This
-#	must be accomplished MANUALLY!  Please see the comments below under
-#     'blockAliases'
-#
-import sys
-import string
-import time
-
-webpage = "http://www.unicode.org/Public/4.0-Update1/UCD-4.0.1.html"
-sources = "Blocks-4.0.1.txt UnicodeData-4.0.1.txt"
-
-#
-# blockAliases is a small hack - it is used for mapping block names which
-# were were used in the 3.1 release, but are missing or changed in the current
-# release.  The format is "OldBlockName:NewBlockName1[,NewBlockName2[,...]]"
-blockAliases = []
-blockAliases.append("CombiningMarksforSymbols:CombiningDiacriticalMarksforSymbols")
-blockAliases.append("Greek:GreekandCoptic")
-blockAliases.append("PrivateUse:PrivateUseArea,SupplementaryPrivateUseArea-A," + 
-	"SupplementaryPrivateUseArea-B")
-
-# minTableSize gives the minimum number of ranges which must be present
-# before a range table is produced.  If there are less than this
-# number, inline comparisons are generated
-minTableSize = 8
-
-(blockfile, catfile) = string.split(sources)
-
-
-#
-# Now process the "blocks" file, reducing it to a dictionary
-# indexed by blockname, containing a tuple with the applicable
-# block range
-#
-BlockNames = {}
-try:
-    blocks = open(blockfile, "r")
-except:
-    print "Missing %s, aborting ..." % blockfile
-    sys.exit(1)
-
-for line in blocks.readlines():
-    if line[0] == '#':
-        continue
-    line = string.strip(line)
-    if line == '':
-        continue
-    try:
-        fields = string.split(line, ';')
-        range = string.strip(fields[0])
-        (start, end) = string.split(range, "..")
-        name = string.strip(fields[1])
-        name = string.replace(name, ' ', '')
-    except:
-        print "Failed to process line: %s" % (line)
-        continue
-    start = "0x" + start
-    end = "0x" + end
-    try:
-        BlockNames[name].append((start, end))
-    except:
-        BlockNames[name] = [(start, end)]
-blocks.close()
-print "Parsed %d blocks descriptions" % (len(BlockNames.keys()))
-
-for block in blockAliases:
-    alias = string.split(block,':')
-    alist = string.split(alias[1],',')
-    for comp in alist:
-        if BlockNames.has_key(comp):
-            if alias[0] not in BlockNames:
-                BlockNames[alias[0]] = []
-            for r in BlockNames[comp]:
-                BlockNames[alias[0]].append(r)
-        else:
-            print "Alias %s: %s not in Blocks" % (alias[0], comp)
-            continue
-
-#
-# Next process the Categories file. This is more complex, since
-# the file is in code sequence, and we need to invert it.  We use
-# a dictionary with index category-name, with each entry containing
-# all the ranges (codepoints) of that category.  Note that category
-# names comprise two parts - the general category, and the "subclass"
-# within that category.  Therefore, both "general category" (which is
-# the first character of the 2-character category-name) and the full
-# (2-character) name are entered into this dictionary.
-#
-try:
-    data = open(catfile, "r")
-except:
-    print "Missing %s, aborting ..." % catfile
-    sys.exit(1)
-
-nbchar = 0;
-Categories = {}
-for line in data.readlines():
-    if line[0] == '#':
-        continue
-    line = string.strip(line)
-    if line == '':
-        continue
-    try:
-        fields = string.split(line, ';')
-        point = string.strip(fields[0])
-        value = 0
-        while point != '':
-            value = value * 16
-            if point[0] >= '0' and point[0] <= '9':
-                value = value + ord(point[0]) - ord('0')
-            elif point[0] >= 'A' and point[0] <= 'F':
-                value = value + 10 + ord(point[0]) - ord('A')
-            elif point[0] >= 'a' and point[0] <= 'f':
-                value = value + 10 + ord(point[0]) - ord('a')
-            point = point[1:]
-        name = fields[2]
-    except:
-        print "Failed to process line: %s" % (line)
-        continue
-    
-    nbchar = nbchar + 1
-    # update entry for "full name"
-    try:
-        Categories[name].append(value)
-    except:
-        try:
-            Categories[name] = [value]
-        except:
-            print "Failed to process line: %s" % (line)
-    # update "general category" name
-    try:
-        Categories[name[0]].append(value)
-    except:
-        try:
-            Categories[name[0]] = [value]
-        except:
-            print "Failed to process line: %s" % (line)
-
-blocks.close()
-print "Parsed %d char generating %d categories" % (nbchar, len(Categories.keys()))
-
-#
-# The data is now all read.  Time to process it into a more useful form.
-#
-# reduce the number list into ranges
-for cat in Categories.keys():
-    list = Categories[cat]
-    start = -1
-    prev = -1
-    end = -1
-    ranges = []
-    for val in list:
-        if start == -1:
-            start = val
-            prev = val
-            continue
-        elif val == prev + 1:
-            prev = val
-            continue
-        elif prev == start:
-            ranges.append((prev, prev))
-            start = val
-            prev = val
-            continue
-        else:
-            ranges.append((start, prev))
-            start = val
-            prev = val
-            continue
-    if prev == start:
-        ranges.append((prev, prev))
-    else:
-        ranges.append((start, prev))
-    Categories[cat] = ranges
-
-#
-# Assure all data is in alphabetic order, since we will be doing binary
-# searches on the tables.
-#
-bkeys = BlockNames.keys()
-bkeys.sort()
-
-ckeys = Categories.keys()
-ckeys.sort()
-
-#
-# Generate the resulting files
-#
-try:
-    header = open("include/libxml/xmlunicode.h", "w")
-except:
-    print "Failed to open include/libxml/xmlunicode.h"
-    sys.exit(1)
-
-try:
-    output = open("xmlunicode.c", "w")
-except:
-    print "Failed to open xmlunicode.c"
-    sys.exit(1)
-
-date = time.asctime(time.localtime(time.time()))
-
-header.write(
-"""/*
- * Summary: Unicode character APIs
- * Description: API for the Unicode character APIs
- *
- * This file is automatically generated from the
- * UCS description files of the Unicode Character Database
- * %s
- * using the genUnicode.py Python script.
- *
- * Generation date: %s
- * Sources: %s
- * Author: Daniel Veillard
- */
-
-#ifndef __XML_UNICODE_H__
-#define __XML_UNICODE_H__
-
-#include <libxml/xmlversion.h>
-
-#ifdef LIBXML_UNICODE_ENABLED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-""" % (webpage, date, sources));
-
-output.write(
-"""/*
- * xmlunicode.c: this module implements the Unicode character APIs
- *
- * This file is automatically generated from the
- * UCS description files of the Unicode Character Database
- * %s
- * using the genUnicode.py Python script.
- *
- * Generation date: %s
- * Sources: %s
- * Daniel Veillard <veillard@redhat.com>
- */
-
-#define IN_LIBXML
-#include "libxml.h"
-
-#ifdef LIBXML_UNICODE_ENABLED
-
-#include <string.h>
-#include <libxml/xmlversion.h>
-#include <libxml/xmlunicode.h>
-#include <libxml/chvalid.h>
-
-typedef int (xmlIntFunc)(int);	/* just to keep one's mind untwisted */
-
-typedef struct {
-    const char *rangename;
-    xmlIntFunc *func;
-} xmlUnicodeRange;
-
-typedef struct {
-    const xmlUnicodeRange *table;
-    int		    numentries;
-} xmlUnicodeNameTable;
-
-
-static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
-
-static const xmlUnicodeRange xmlUnicodeBlocks[] = {
-""" % (webpage, date, sources));
-
-flag = 0
-for block in bkeys:
-    name = string.replace(block, '-', '')
-    if flag:
-        output.write(',\n')
-    else:
-        flag = 1
-    output.write('  {"%s", xmlUCSIs%s}' % (block, name))
-output.write('};\n\n')
-
-output.write('static xmlUnicodeRange xmlUnicodeCats[] = {\n')
-flag = 0;
-for name in ckeys:
-    if flag:
-        output.write(',\n')
-    else:
-        flag = 1
-    output.write('  {"%s", xmlUCSIsCat%s}' % (name, name))
-output.write('};\n\n')
-
-#
-# For any categories with more than minTableSize ranges we generate
-# a range table suitable for xmlCharInRange
-#
-for name in ckeys:
-  if len(Categories[name]) > minTableSize:
-    numshort = 0
-    numlong = 0
-    ranges = Categories[name]
-    sptr = "NULL"
-    lptr = "NULL"
-    for range in ranges:
-      (low, high) = range
-      if high < 0x10000:
-        if numshort == 0:
-          pline = "static const xmlChSRange xml%sS[] = {" % name
-          sptr = "xml%sS" % name
-        else:
-          pline += ", "
-        numshort += 1
-      else:
-        if numlong == 0:
-          if numshort > 0:
-            output.write(pline + " };\n")
-          pline = "static const xmlChLRange xml%sL[] = {" % name
-          lptr = "xml%sL" % name
-        else:
-          pline += ", "
-        numlong += 1
-      if len(pline) > 60:
-        output.write(pline + "\n")
-        pline = "    "
-      pline += "{%s, %s}" % (hex(low), hex(high))
-    output.write(pline + " };\nstatic xmlChRangeGroup xml%sG = {%s,%s,%s,%s};\n\n"
-         % (name, numshort, numlong, sptr, lptr))
-
-
-output.write(
-"""static xmlUnicodeNameTable xmlUnicodeBlockTbl = {xmlUnicodeBlocks, %s};
-static xmlUnicodeNameTable xmlUnicodeCatTbl = {xmlUnicodeCats, %s};
-
-/**
- * xmlUnicodeLookup:
- * @tptr: pointer to the name table
- * @name: name to be found
- *
- * binary table lookup for user-supplied name
- *
- * Returns pointer to range function if found, otherwise NULL
- */
-static xmlIntFunc
-*xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname) {
-    int low, high, mid, cmp;
-    xmlUnicodeRange *sptr;
-
-    if ((tptr == NULL) || (tname == NULL)) return(NULL);
-
-    low = 0;
-    high = tptr->numentries - 1;
-    sptr = tptr->table;
-    while (low <= high) {
-	mid = (low + high) / 2;
-	if ((cmp=strcmp(tname, sptr[mid].rangename)) == 0)
-	    return (sptr[mid].func);
-	if (cmp < 0)
-	    high = mid - 1;
-	else
-	    low = mid + 1;
-    }
-    return (NULL);    
-}
-
-""" % (len(BlockNames), len(Categories)) )
-
-for block in bkeys:
-    name = string.replace(block, '-', '')
-    header.write("XMLPUBFUN int XMLCALL xmlUCSIs%s\t(int code);\n" % name)
-    output.write("/**\n * xmlUCSIs%s:\n * @code: UCS code point\n" % (name))
-    output.write(" *\n * Check whether the character is part of %s UCS Block\n"%
-                 (block))
-    output.write(" *\n * Returns 1 if true 0 otherwise\n */\n");
-    output.write("int\nxmlUCSIs%s(int code) {\n    return(" % name)
-    flag = 0
-    for (start, end) in BlockNames[block]:
-        if flag:
-            output.write(" ||\n           ")
-        else:
-            flag = 1
-        output.write("((code >= %s) && (code <= %s))" % (start, end))
-    output.write(");\n}\n\n")
-
-header.write("\nXMLPUBFUN int XMLCALL xmlUCSIsBlock\t(int code, const char *block);\n\n")
-output.write(
-"""/**
- * xmlUCSIsBlock:
- * @code: UCS code point
- * @block: UCS block name
- *
- * Check whether the character is part of the UCS Block
- *
- * Returns 1 if true, 0 if false and -1 on unknown block
- */
-int
-xmlUCSIsBlock(int code, const char *block) {
-    xmlIntFunc *func;
-
-    func = xmlUnicodeLookup(&xmlUnicodeBlockTbl, block);
-    if (func == NULL)
-	return (-1);
-    return (func(code));
-}
-
-""")
-
-for name in ckeys:
-    ranges = Categories[name]
-    header.write("XMLPUBFUN int XMLCALL xmlUCSIsCat%s\t(int code);\n" % name)
-    output.write("/**\n * xmlUCSIsCat%s:\n * @code: UCS code point\n" % (name))
-    output.write(" *\n * Check whether the character is part of %s UCS Category\n"%
-                 (name))
-    output.write(" *\n * Returns 1 if true 0 otherwise\n */\n");
-    output.write("int\nxmlUCSIsCat%s(int code) {\n" % name)
-    if len(Categories[name]) > minTableSize:
-        output.write("    return(xmlCharInRange((unsigned int)code, &xml%sG)"
-            % name)
-    else:
-        start = 1
-        for range in ranges:
-            (begin, end) = range;
-            if start:
-                output.write("    return(");
-                start = 0
-            else:
-                output.write(" ||\n           ");
-            if (begin == end):
-                output.write("(code == %s)" % (hex(begin)))
-            else:
-                output.write("((code >= %s) && (code <= %s))" % (
-                         hex(begin), hex(end)))
-    output.write(");\n}\n\n")
-
-header.write("\nXMLPUBFUN int XMLCALL xmlUCSIsCat\t(int code, const char *cat);\n")
-output.write(
-"""/**
- * xmlUCSIsCat:
- * @code: UCS code point
- * @cat: UCS Category name
- *
- * Check whether the character is part of the UCS Category
- *
- * Returns 1 if true, 0 if false and -1 on unknown category
- */
-int
-xmlUCSIsCat(int code, const char *cat) {
-    xmlIntFunc *func;
-
-    func = xmlUnicodeLookup(&xmlUnicodeCatTbl, cat);
-    if (func == NULL)
-	return (-1);
-    return (func(code));
-}
-
-#define bottom_xmlunicode
-#include "elfgcchack.h"
-#endif /* LIBXML_UNICODE_ENABLED */
-""")
-
-header.write("""
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LIBXML_UNICODE_ENABLED */
-
-#endif /* __XML_UNICODE_H__ */
-""");
-
-header.close()
-output.close()
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/gentest.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,981 +0,0 @@
-#!/usr/bin/python -u
-#
-# generate a tester program for the API
-#
-import sys
-import os
-import string
-try:
-    import libxml2
-except:
-    print "libxml2 python bindings not available, skipping testapi.c generation"
-    sys.exit(0)
-
-if len(sys.argv) > 1:
-    srcPref = sys.argv[1] + '/'
-else:
-    srcPref = ''
-
-#
-# Modules we want to skip in API test
-#
-skipped_modules = [ "SAX", "xlink", "threads", "globals",
-  "xmlmemory", "xmlversion", "xmlexports",
-  #deprecated
-  "DOCBparser",
-]
-
-#
-# defines for each module
-#
-modules_defines = {
-    "HTMLparser": "LIBXML_HTML_ENABLED",
-    "catalog": "LIBXML_CATALOG_ENABLED",
-    "xmlreader": "LIBXML_READER_ENABLED",
-    "relaxng": "LIBXML_SCHEMAS_ENABLED",
-    "schemasInternals": "LIBXML_SCHEMAS_ENABLED",
-    "xmlschemas": "LIBXML_SCHEMAS_ENABLED",
-    "xmlschemastypes": "LIBXML_SCHEMAS_ENABLED",
-    "xpath": "LIBXML_XPATH_ENABLED",
-    "xpathInternals": "LIBXML_XPATH_ENABLED",
-    "xinclude": "LIBXML_XINCLUDE_ENABLED",
-    "xpointer": "LIBXML_XPTR_ENABLED",
-    "xmlregexp" : "LIBXML_REGEXP_ENABLED",
-    "xmlautomata" : "LIBXML_AUTOMATA_ENABLED",
-    "xmlsave" : "LIBXML_OUTPUT_ENABLED",
-    "DOCBparser" : "LIBXML_DOCB_ENABLED",
-    "xmlmodule" : "LIBXML_MODULES_ENABLED",
-    "pattern" : "LIBXML_PATTERN_ENABLED",
-    "schematron" : "LIBXML_SCHEMATRON_ENABLED",
-}
-
-#
-# defines for specific functions
-#
-function_defines = {
-    "htmlDefaultSAXHandlerInit": "LIBXML_HTML_ENABLED",
-    "xmlSAX2EndElement" : "LIBXML_SAX1_ENABLED",
-    "xmlSAX2StartElement" : "LIBXML_SAX1_ENABLED",
-    "xmlSAXDefaultVersion" : "LIBXML_SAX1_ENABLED",
-    "UTF8Toisolat1" : "LIBXML_OUTPUT_ENABLED",
-    "xmlCleanupPredefinedEntities": "LIBXML_LEGACY_ENABLED",
-    "xmlInitializePredefinedEntities": "LIBXML_LEGACY_ENABLED",
-    "xmlSetFeature": "LIBXML_LEGACY_ENABLED",
-    "xmlGetFeature": "LIBXML_LEGACY_ENABLED",
-    "xmlGetFeaturesList": "LIBXML_LEGACY_ENABLED",
-    "xmlIOParseDTD": "LIBXML_VALID_ENABLED",
-    "xmlParseDTD": "LIBXML_VALID_ENABLED",
-    "xmlParseDoc": "LIBXML_SAX1_ENABLED",
-    "xmlParseMemory": "LIBXML_SAX1_ENABLED",
-    "xmlRecoverDoc": "LIBXML_SAX1_ENABLED",
-    "xmlParseFile": "LIBXML_SAX1_ENABLED",
-    "xmlRecoverFile": "LIBXML_SAX1_ENABLED",
-    "xmlRecoverMemory": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseFileWithData": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseMemory": "LIBXML_SAX1_ENABLED",
-    "xmlSAXUserParseMemory": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseDoc": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseDTD": "LIBXML_SAX1_ENABLED",
-    "xmlSAXUserParseFile": "LIBXML_SAX1_ENABLED",
-    "xmlParseEntity": "LIBXML_SAX1_ENABLED",
-    "xmlParseExternalEntity": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseMemoryWithData": "LIBXML_SAX1_ENABLED",
-    "xmlParseBalancedChunkMemory": "LIBXML_SAX1_ENABLED",
-    "xmlParseBalancedChunkMemoryRecover": "LIBXML_SAX1_ENABLED",
-    "xmlSetupParserForBuffer": "LIBXML_SAX1_ENABLED",
-    "xmlStopParser": "LIBXML_PUSH_ENABLED",
-    "xmlAttrSerializeTxtContent": "LIBXML_OUTPUT_ENABLED",
-    "xmlSAXParseFile": "LIBXML_SAX1_ENABLED",
-    "xmlSAXParseEntity": "LIBXML_SAX1_ENABLED",
-    "xmlNewTextChild": "LIBXML_TREE_ENABLED",
-    "xmlNewDocRawNode": "LIBXML_TREE_ENABLED",
-    "xmlNewProp": "LIBXML_TREE_ENABLED",
-    "xmlReconciliateNs": "LIBXML_TREE_ENABLED",
-    "xmlValidateNCName": "LIBXML_TREE_ENABLED",
-    "xmlValidateNMToken": "LIBXML_TREE_ENABLED",
-    "xmlValidateName": "LIBXML_TREE_ENABLED",
-    "xmlNewChild": "LIBXML_TREE_ENABLED",
-    "xmlValidateQName": "LIBXML_TREE_ENABLED",
-    "xmlSprintfElementContent": "LIBXML_OUTPUT_ENABLED",
-    "xmlValidGetPotentialChildren" : "LIBXML_VALID_ENABLED",
-    "xmlValidGetValidElements" : "LIBXML_VALID_ENABLED",
-    "docbDefaultSAXHandlerInit" : "LIBXML_DOCB_ENABLED",
-    "xmlTextReaderPreservePattern" : "LIBXML_PATTERN_ENABLED",
-}
-
-#
-# Some functions really need to be skipped for the tests.
-#
-skipped_functions = [
-# block on I/O
-"xmlFdRead", "xmlReadFd", "xmlCtxtReadFd",
-"htmlFdRead", "htmlReadFd", "htmlCtxtReadFd",
-"xmlReaderNewFd", "xmlReaderForFd",
-"xmlIORead", "xmlReadIO", "xmlCtxtReadIO",
-"htmlIORead", "htmlReadIO", "htmlCtxtReadIO",
-"xmlReaderNewIO", "xmlBufferDump", "xmlNanoFTPConnect",
-"xmlNanoFTPConnectTo", "xmlNanoHTTPMethod", "xmlNanoHTTPMethodRedir",
-# Complex I/O APIs
-"xmlCreateIOParserCtxt", "xmlParserInputBufferCreateIO",
-"xmlRegisterInputCallbacks", "xmlReaderForIO",
-"xmlOutputBufferCreateIO", "xmlRegisterOutputCallbacks",
-"xmlSaveToIO", "xmlIOHTTPOpenW",
-# library state cleanup, generate false leak informations and other
-# troubles, heavillyb tested otherwise.
-"xmlCleanupParser", "xmlRelaxNGCleanupTypes", "xmlSetListDoc",
-"xmlSetTreeDoc", "xmlUnlinkNode",
-# hard to avoid leaks in the tests
-"xmlStrcat", "xmlStrncat", "xmlCatalogAddLocal", "xmlNewTextWriterDoc",
-"xmlXPathNewValueTree", "xmlXPathWrapString",
-# unimplemented
-"xmlTextReaderReadInnerXml", "xmlTextReaderReadOuterXml",
-"xmlTextReaderReadString",
-# destructor
-"xmlListDelete", "xmlOutputBufferClose", "xmlNanoFTPClose", "xmlNanoHTTPClose",
-# deprecated
-"xmlCatalogGetPublic", "xmlCatalogGetSystem", "xmlEncodeEntities",
-"xmlNewGlobalNs", "xmlHandleEntity", "xmlNamespaceParseNCName",
-"xmlNamespaceParseNSDef", "xmlNamespaceParseQName",
-"xmlParseNamespace", "xmlParseQuotedString", "xmlParserHandleReference",
-"xmlScanName",
-"xmlDecodeEntities", 
-# allocators
-"xmlMemFree",
-# verbosity
-"xmlCatalogSetDebug", "xmlShellPrintXPathError", "xmlShellPrintNode",
-# Internal functions, no user space should really call them
-"xmlParseAttribute", "xmlParseAttributeListDecl", "xmlParseName",
-"xmlParseNmtoken", "xmlParseEntityValue", "xmlParseAttValue",
-"xmlParseSystemLiteral", "xmlParsePubidLiteral", "xmlParseCharData",
-"xmlParseExternalID", "xmlParseComment", "xmlParsePITarget", "xmlParsePI",
-"xmlParseNotationDecl", "xmlParseEntityDecl", "xmlParseDefaultDecl",
-"xmlParseNotationType", "xmlParseEnumerationType", "xmlParseEnumeratedType",
-"xmlParseAttributeType", "xmlParseAttributeListDecl",
-"xmlParseElementMixedContentDecl", "xmlParseElementChildrenContentDecl",
-"xmlParseElementContentDecl", "xmlParseElementDecl", "xmlParseMarkupDecl",
-"xmlParseCharRef", "xmlParseEntityRef", "xmlParseReference",
-"xmlParsePEReference", "xmlParseDocTypeDecl", "xmlParseAttribute",
-"xmlParseStartTag", "xmlParseEndTag", "xmlParseCDSect", "xmlParseContent",
-"xmlParseElement", "xmlParseVersionNum", "xmlParseVersionInfo",
-"xmlParseEncName", "xmlParseEncodingDecl", "xmlParseSDDecl",
-"xmlParseXMLDecl", "xmlParseTextDecl", "xmlParseMisc",
-"xmlParseExternalSubset", "xmlParserHandlePEReference",
-"xmlSkipBlankChars",
-]
-
-#
-# These functions have side effects on the global state
-# and hence generate errors on memory allocation tests
-#
-skipped_memcheck = [ "xmlLoadCatalog", "xmlAddEncodingAlias",
-   "xmlSchemaInitTypes", "xmlNanoFTPProxy", "xmlNanoFTPScanProxy",
-   "xmlNanoHTTPScanProxy", "xmlResetLastError", "xmlCatalogConvert",
-   "xmlCatalogRemove", "xmlLoadCatalogs", "xmlCleanupCharEncodingHandlers",
-   "xmlInitCharEncodingHandlers", "xmlCatalogCleanup",
-   "xmlSchemaGetBuiltInType",
-   "htmlParseFile", "htmlCtxtReadFile", # loads the catalogs
-   "xmlTextReaderSchemaValidate", "xmlSchemaCleanupTypes", # initialize the schemas type system
-   "xmlCatalogResolve", "xmlIOParseDTD" # loads the catalogs
-]
-
-#
-# Extra code needed for some test cases
-#
-extra_pre_call = {
-   "xmlSAXUserParseFile": """
-#ifdef LIBXML_SAX1_ENABLED
-        if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
-#endif
-""",
-   "xmlSAXUserParseMemory": """
-#ifdef LIBXML_SAX1_ENABLED
-        if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
-#endif
-""",
-   "xmlParseBalancedChunkMemory": """
-#ifdef LIBXML_SAX1_ENABLED
-        if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
-#endif
-""",
-   "xmlParseBalancedChunkMemoryRecover": """
-#ifdef LIBXML_SAX1_ENABLED
-        if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
-#endif
-""",
-   "xmlParserInputBufferCreateFd":
-       "if (fd >= 0) fd = -1;",
-}
-extra_post_call = {
-   "xmlAddChild": 
-       "if (ret_val == NULL) { xmlFreeNode(cur) ; cur = NULL ; }",
-   "xmlAddEntity":
-       "if (ret_val != NULL) { xmlFreeNode(ret_val) ; ret_val = NULL; }",
-   "xmlAddChildList": 
-       "if (ret_val == NULL) { xmlFreeNodeList(cur) ; cur = NULL ; }",
-   "xmlAddSibling":
-       "if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
-   "xmlAddNextSibling":
-       "if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
-   "xmlAddPrevSibling": 
-       "if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
-   "xmlDocSetRootElement": 
-       "if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }",
-   "xmlReplaceNode": 
-       """if (cur != NULL) {
-              xmlUnlinkNode(cur);
-              xmlFreeNode(cur) ; cur = NULL ; }
-          if (old != NULL) {
-              xmlUnlinkNode(old);
-              xmlFreeNode(old) ; old = NULL ; }
-	  ret_val = NULL;""",
-   "xmlTextMerge": 
-       """if ((first != NULL) && (first->type != XML_TEXT_NODE)) {
-              xmlUnlinkNode(second);
-              xmlFreeNode(second) ; second = NULL ; }""",
-   "xmlBuildQName": 
-       """if ((ret_val != NULL) && (ret_val != ncname) &&
-              (ret_val != prefix) && (ret_val != memory))
-              xmlFree(ret_val);
-	  ret_val = NULL;""",
-   "xmlNewDocElementContent":
-       """xmlFreeDocElementContent(doc, ret_val); ret_val = NULL;""",
-   "xmlDictReference": "xmlDictFree(dict);",
-   # Functions which deallocates one of their parameters
-   "xmlXPathConvertBoolean": """val = NULL;""",
-   "xmlXPathConvertNumber": """val = NULL;""",
-   "xmlXPathConvertString": """val = NULL;""",
-   "xmlSaveFileTo": """buf = NULL;""",
-   "xmlSaveFormatFileTo": """buf = NULL;""",
-   "xmlIOParseDTD": "input = NULL;",
-   "xmlRemoveProp": "cur = NULL;",
-   "xmlNewNs": "if ((node == NULL) && (ret_val != NULL)) xmlFreeNs(ret_val);",
-   "xmlCopyNamespace": "if (ret_val != NULL) xmlFreeNs(ret_val);",
-   "xmlCopyNamespaceList": "if (ret_val != NULL) xmlFreeNsList(ret_val);",
-   "xmlNewTextWriter": "if (ret_val != NULL) out = NULL;",
-   "xmlNewTextWriterPushParser": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;} if (ret_val != NULL) ctxt = NULL;",
-   "xmlNewIOInputStream": "if (ret_val != NULL) input = NULL;",
-   "htmlParseChunk": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}",
-   "htmlParseDocument": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}",
-   "xmlParseDocument": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}",
-   "xmlParseChunk": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}",
-   "xmlParseExtParsedEnt": "if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}",
-   "xmlDOMWrapAdoptNode": "if ((node != NULL) && (node->parent == NULL)) {xmlUnlinkNode(node);xmlFreeNode(node);node = NULL;}",
-   "xmlBufferSetAllocationScheme": "if ((buf != NULL) && (scheme == XML_BUFFER_ALLOC_IMMUTABLE) && (buf->content != NULL) && (buf->content != static_buf_content)) { xmlFree(buf->content); buf->content = NULL;}"
-}
-
-modules = []
-
-def is_skipped_module(name):
-    for mod in skipped_modules:
-        if mod == name:
-	    return 1
-    return 0
-
-def is_skipped_function(name):
-    for fun in skipped_functions:
-        if fun == name:
-	    return 1
-    # Do not test destructors
-    if string.find(name, 'Free') != -1:
-        return 1
-    return 0
-
-def is_skipped_memcheck(name):
-    for fun in skipped_memcheck:
-        if fun == name:
-	    return 1
-    return 0
-
-missing_types = {}
-def add_missing_type(name, func):
-    try:
-        list = missing_types[name]
-	list.append(func)
-    except:
-        missing_types[name] = [func]
-
-generated_param_types = []
-def add_generated_param_type(name):
-    generated_param_types.append(name)
-
-generated_return_types = []
-def add_generated_return_type(name):
-    generated_return_types.append(name)
-
-missing_functions = {}
-missing_functions_nr = 0
-def add_missing_functions(name, module):
-    global missing_functions_nr
-
-    missing_functions_nr = missing_functions_nr + 1
-    try:
-        list = missing_functions[module]
-	list.append(name)
-    except:
-        missing_functions[module] = [name]
-
-#
-# Provide the type generators and destructors for the parameters
-#
-
-def type_convert(str, name, info, module, function, pos):
-#    res = string.replace(str, "    ", " ")
-#    res = string.replace(str, "   ", " ")
-#    res = string.replace(str, "  ", " ")
-    res = string.replace(str, " *", "_ptr")
-#    res = string.replace(str, "*", "_ptr")
-    res = string.replace(res, " ", "_")
-    if res == 'const_char_ptr':
-        if string.find(name, "file") != -1 or \
-           string.find(name, "uri") != -1 or \
-           string.find(name, "URI") != -1 or \
-           string.find(info, "filename") != -1 or \
-           string.find(info, "URI") != -1 or \
-           string.find(info, "URL") != -1:
-	    if string.find(function, "Save") != -1 or \
-	       string.find(function, "Create") != -1 or \
-	       string.find(function, "Write") != -1 or \
-	       string.find(function, "Fetch") != -1:
-	        return('fileoutput')
-	    return('filepath')
-    if res == 'void_ptr':
-        if module == 'nanoftp' and name == 'ctx':
-	    return('xmlNanoFTPCtxtPtr')
-        if function == 'xmlNanoFTPNewCtxt' or \
-	   function == 'xmlNanoFTPConnectTo' or \
-	   function == 'xmlNanoFTPOpen':
-	    return('xmlNanoFTPCtxtPtr')
-        if module == 'nanohttp' and name == 'ctx':
-	    return('xmlNanoHTTPCtxtPtr')
-	if function == 'xmlNanoHTTPMethod' or \
-	   function == 'xmlNanoHTTPMethodRedir' or \
-	   function == 'xmlNanoHTTPOpen' or \
-	   function == 'xmlNanoHTTPOpenRedir':
-	    return('xmlNanoHTTPCtxtPtr');
-        if function == 'xmlIOHTTPOpen':
-	    return('xmlNanoHTTPCtxtPtr')
-	if string.find(name, "data") != -1:
-	    return('userdata')
-	if string.find(name, "user") != -1:
-	    return('userdata')
-    if res == 'xmlDoc_ptr':
-        res = 'xmlDocPtr'
-    if res == 'xmlNode_ptr':
-        res = 'xmlNodePtr'
-    if res == 'xmlDict_ptr':
-        res = 'xmlDictPtr'
-    if res == 'xmlNodePtr' and pos != 0:
-        if (function == 'xmlAddChild' and pos == 2) or \
-	   (function == 'xmlAddChildList' and pos == 2) or \
-           (function == 'xmlAddNextSibling' and pos == 2) or \
-           (function == 'xmlAddSibling' and pos == 2) or \
-           (function == 'xmlDocSetRootElement' and pos == 2) or \
-           (function == 'xmlReplaceNode' and pos == 2) or \
-           (function == 'xmlTextMerge') or \
-	   (function == 'xmlAddPrevSibling' and pos == 2):
-	    return('xmlNodePtr_in');
-    if res == 'const xmlBufferPtr':
-        res = 'xmlBufferPtr'
-    if res == 'xmlChar_ptr' and name == 'name' and \
-       string.find(function, "EatName") != -1:
-        return('eaten_name')
-    if res == 'void_ptr*':
-        res = 'void_ptr_ptr'
-    if res == 'char_ptr*':
-        res = 'char_ptr_ptr'
-    if res == 'xmlChar_ptr*':
-        res = 'xmlChar_ptr_ptr'
-    if res == 'const_xmlChar_ptr*':
-        res = 'const_xmlChar_ptr_ptr'
-    if res == 'const_char_ptr*':
-        res = 'const_char_ptr_ptr'
-    if res == 'FILE_ptr' and module == 'debugXML':
-        res = 'debug_FILE_ptr';
-    if res == 'int' and name == 'options':
-        if module == 'parser' or module == 'xmlreader':
-	    res = 'parseroptions'
-
-    return res
-
-known_param_types = []
-
-def is_known_param_type(name, rtype):
-    global test
-    for type in known_param_types:
-        if type == name:
-	    return 1
-    for type in generated_param_types:
-        if type == name:
-	    return 1
-
-    if name[-3:] == 'Ptr' or name[-4:] == '_ptr':
-        if rtype[0:6] == 'const ':
-	    crtype = rtype[6:]
-	else:
-	    crtype = rtype
-
-        define = 0
-	if modules_defines.has_key(module):
-	    test.write("#ifdef %s\n" % (modules_defines[module]))
-	    define = 1
-        test.write("""
-#define gen_nb_%s 1
-static %s gen_%s(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
-    return(NULL);
-}
-static void des_%s(int no ATTRIBUTE_UNUSED, %s val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
-}
-""" % (name, crtype, name, name, rtype))
-        if define == 1:
-	    test.write("#endif\n\n")
-        add_generated_param_type(name)
-        return 1
-
-    return 0
-
-#
-# Provide the type destructors for the return values
-#
-
-known_return_types = []
-
-def is_known_return_type(name):
-    for type in known_return_types:
-        if type == name:
-	    return 1
-    return 0
-
-#
-# Copy the beginning of the C test program result
-#
-
-try:
-    input = open("testapi.c", "r")
-except:
-    input = open(srcPref + "testapi.c", "r")
-test = open('testapi.c.new', 'w')
-
-def compare_and_save():
-    global test
-
-    test.close()
-    try:
-        input = open("testapi.c", "r").read()
-    except:
-        input = ''
-    test = open('testapi.c.new', "r").read()
-    if input != test:
-        try:
-            os.system("rm testapi.c; mv testapi.c.new testapi.c")
-        except:
-	    os.system("mv testapi.c.new testapi.c")
-        print("Updated testapi.c")
-    else:
-        print("Generated testapi.c is identical")
-
-line = input.readline()
-while line != "":
-    if line == "/* CUT HERE: everything below that line is generated */\n":
-        break;
-    if line[0:15] == "#define gen_nb_":
-        type = string.split(line[15:])[0]
-	known_param_types.append(type)
-    if line[0:19] == "static void desret_":
-        type = string.split(line[19:], '(')[0]
-	known_return_types.append(type)
-    test.write(line)
-    line = input.readline()
-input.close()
-
-if line == "":
-    print "Could not find the CUT marker in testapi.c skipping generation"
-    test.close()
-    sys.exit(0)
-
-print("Scanned testapi.c: found %d parameters types and %d return types\n" % (
-      len(known_param_types), len(known_return_types)))
-test.write("/* CUT HERE: everything below that line is generated */\n")
-
-
-#
-# Open the input API description
-#
-doc = libxml2.readFile(srcPref + 'doc/libxml2-api.xml', None, 0)
-if doc == None:
-    print "Failed to load doc/libxml2-api.xml"
-    sys.exit(1)
-ctxt = doc.xpathNewContext()
-
-#
-# Generate a list of all function parameters and select only
-# those used in the api tests
-#
-argtypes = {}
-args = ctxt.xpathEval("/api/symbols/function/arg")
-for arg in args:
-    mod = arg.xpathEval('string(../@file)')
-    func = arg.xpathEval('string(../@name)')
-    if (mod not in skipped_modules) and (func not in skipped_functions):
-	type = arg.xpathEval('string(@type)')
-	if not argtypes.has_key(type):
-	    argtypes[type] = func
-
-# similarly for return types
-rettypes = {}
-rets = ctxt.xpathEval("/api/symbols/function/return")
-for ret in rets:
-    mod = ret.xpathEval('string(../@file)')
-    func = ret.xpathEval('string(../@name)')
-    if (mod not in skipped_modules) and (func not in skipped_functions):
-        type = ret.xpathEval('string(@type)')
-	if not rettypes.has_key(type):
-	    rettypes[type] = func
-
-#
-# Generate constructors and return type handling for all enums
-# which are used as function parameters
-#
-enums = ctxt.xpathEval("/api/symbols/typedef[@type='enum']")
-for enum in enums:
-    module = enum.xpathEval('string(@file)')
-    name = enum.xpathEval('string(@name)')
-    #
-    # Skip any enums which are not in our filtered lists
-    #
-    if (name == None) or ((name not in argtypes) and (name not in rettypes)):
-        continue;
-    define = 0
-
-    if argtypes.has_key(name) and is_known_param_type(name, name) == 0:
-	values = ctxt.xpathEval("/api/symbols/enum[@type='%s']" % name)
-	i = 0
-	vals = []
-	for value in values:
-	    vname = value.xpathEval('string(@name)')
-	    if vname == None:
-		continue;
-	    i = i + 1
-	    if i >= 5:
-		break;
-	    vals.append(vname)
-	if vals == []:
-	    print "Didn't find any value for enum %s" % (name)
-	    continue
-	if modules_defines.has_key(module):
-	    test.write("#ifdef %s\n" % (modules_defines[module]))
-	    define = 1
-	test.write("#define gen_nb_%s %d\n" % (name, len(vals)))
-	test.write("""static %s gen_%s(int no, int nr ATTRIBUTE_UNUSED) {\n""" %
-	           (name, name))
-	i = 1
-	for value in vals:
-	    test.write("    if (no == %d) return(%s);\n" % (i, value))
-	    i = i + 1
-	test.write("""    return(0);
-}
-
-static void des_%s(int no ATTRIBUTE_UNUSED, %s val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
-}
-
-""" % (name, name));
-	known_param_types.append(name)
-
-    if (is_known_return_type(name) == 0) and (name in rettypes):
-	if define == 0 and modules_defines.has_key(module):
-	    test.write("#ifdef %s\n" % (modules_defines[module]))
-	    define = 1
-        test.write("""static void desret_%s(%s val ATTRIBUTE_UNUSED) {
-}
-
-""" % (name, name))
-	known_return_types.append(name)
-    if define == 1:
-        test.write("#endif\n\n")
-
-#
-# Load the interfaces
-# 
-headers = ctxt.xpathEval("/api/files/file")
-for file in headers:
-    name = file.xpathEval('string(@name)')
-    if (name == None) or (name == ''):
-        continue
-
-    #
-    # Some module may be skipped because they don't really consists
-    # of user callable APIs
-    #
-    if is_skipped_module(name):
-        continue
-
-    #
-    # do not test deprecated APIs
-    #
-    desc = file.xpathEval('string(description)')
-    if string.find(desc, 'DEPRECATED') != -1:
-        print "Skipping deprecated interface %s" % name
-	continue;
-
-    test.write("#include <libxml/%s.h>\n" % name)
-    modules.append(name)
-        
-#
-# Generate the callers signatures
-# 
-for module in modules:
-    test.write("static int test_%s(void);\n" % module);
-
-#
-# Generate the top caller
-# 
-
-test.write("""
-/**
- * testlibxml2:
- *
- * Main entry point of the tester for the full libxml2 module,
- * it calls all the tester entry point for each module.
- *
- * Returns the number of error found
- */
-static int
-testlibxml2(void)
-{
-    int test_ret = 0;
-
-""")
-
-for module in modules:
-    test.write("    test_ret += test_%s();\n" % module)
-
-test.write("""
-    printf("Total: %d functions, %d tests, %d errors\\n",
-           function_tests, call_tests, test_ret);
-    return(test_ret);
-}
-
-""")
-
-#
-# How to handle a function
-# 
-nb_tests = 0
-
-def generate_test(module, node):
-    global test
-    global nb_tests
-    nb_cond = 0
-    no_gen = 0
-
-    name = node.xpathEval('string(@name)')
-    if is_skipped_function(name):
-        return
-
-    #
-    # check we know how to handle the args and return values
-    # and store the informations for the generation
-    #
-    try:
-	args = node.xpathEval("arg")
-    except:
-        args = []
-    t_args = []
-    n = 0
-    for arg in args:
-        n = n + 1
-        rtype = arg.xpathEval("string(@type)")
-	if rtype == 'void':
-	    break;
-	info = arg.xpathEval("string(@info)")
-	nam = arg.xpathEval("string(@name)")
-        type = type_convert(rtype, nam, info, module, name, n)
-	if is_known_param_type(type, rtype) == 0:
-	    add_missing_type(type, name);
-	    no_gen = 1
-        if (type[-3:] == 'Ptr' or type[-4:] == '_ptr') and \
-	    rtype[0:6] == 'const ':
-	    crtype = rtype[6:]
-	else:
-	    crtype = rtype
-	t_args.append((nam, type, rtype, crtype, info))
-    
-    try:
-	rets = node.xpathEval("return")
-    except:
-        rets = []
-    t_ret = None
-    for ret in rets:
-        rtype = ret.xpathEval("string(@type)")
-	info = ret.xpathEval("string(@info)")
-        type = type_convert(rtype, 'return', info, module, name, 0)
-	if rtype == 'void':
-	    break
-	if is_known_return_type(type) == 0:
-	    add_missing_type(type, name);
-	    no_gen = 1
-	t_ret = (type, rtype, info)
-	break
-
-    test.write("""
-static int
-test_%s(void) {
-    int test_ret = 0;
-
-""" % (name))
-
-    if no_gen == 1:
-        add_missing_functions(name, module)
-	test.write("""
-    /* missing type support */
-    return(test_ret);
-}
-
-""")
-        return
-
-    try:
-	conds = node.xpathEval("cond")
-	for cond in conds:
-	    test.write("#if %s\n" % (cond.get_content()))
-	    nb_cond = nb_cond + 1
-    except:
-        pass
-
-    define = 0
-    if function_defines.has_key(name):
-        test.write("#ifdef %s\n" % (function_defines[name]))
-	define = 1
-    
-    # Declare the memory usage counter
-    no_mem = is_skipped_memcheck(name)
-    if no_mem == 0:
-	test.write("    int mem_base;\n");
-
-    # Declare the return value
-    if t_ret != None:
-        test.write("    %s ret_val;\n" % (t_ret[1]))
-
-    # Declare the arguments
-    for arg in t_args:
-        (nam, type, rtype, crtype, info) = arg;
-	# add declaration
-	test.write("    %s %s; /* %s */\n" % (crtype, nam, info))
-	test.write("    int n_%s;\n" % (nam))
-    test.write("\n")
-
-    # Cascade loop on of each argument list of values
-    for arg in t_args:
-        (nam, type, rtype, crtype, info) = arg;
-	#
-	test.write("    for (n_%s = 0;n_%s < gen_nb_%s;n_%s++) {\n" % (
-	           nam, nam, type, nam))
-    
-    # log the memory usage
-    if no_mem == 0:
-	test.write("        mem_base = xmlMemBlocks();\n");
-
-    # prepare the call
-    i = 0;
-    for arg in t_args:
-        (nam, type, rtype, crtype, info) = arg;
-	#
-	test.write("        %s = gen_%s(n_%s, %d);\n" % (nam, type, nam, i))
-	i = i + 1;
-
-    # add checks to avoid out-of-bounds array access
-    i = 0;
-    for arg in t_args:
-        (nam, type, rtype, crtype, info) = arg;
-        # assume that "size", "len", and "start" parameters apply to either
-        # the nearest preceding or following char pointer
-        if type == "int" and (nam == "size" or nam == "len" or nam == "start"):
-            for j in range(i - 1, -1, -1) + range(i + 1, len(t_args)):
-                (bnam, btype) = t_args[j][:2]
-                if btype == "const_char_ptr" or btype == "const_xmlChar_ptr":
-                    test.write(
-                        "        if ((%s != NULL) &&\n"
-                        "            (%s > (int) strlen((const char *) %s) + 1))\n"
-                        "            continue;\n"
-                        % (bnam, nam, bnam))
-                    break
-	i = i + 1;
-
-    # do the call, and clanup the result
-    if extra_pre_call.has_key(name):
-	test.write("        %s\n"% (extra_pre_call[name]))
-    if t_ret != None:
-	test.write("\n        ret_val = %s(" % (name))
-	need = 0
-	for arg in t_args:
-	    (nam, type, rtype, crtype, info) = arg
-	    if need:
-	        test.write(", ")
-	    else:
-	        need = 1
-	    if rtype != crtype:
-	        test.write("(%s)" % rtype)
-	    test.write("%s" % nam);
-	test.write(");\n")
-	if extra_post_call.has_key(name):
-	    test.write("        %s\n"% (extra_post_call[name]))
-	test.write("        desret_%s(ret_val);\n" % t_ret[0])
-    else:
-	test.write("\n        %s(" % (name));
-	need = 0;
-	for arg in t_args:
-	    (nam, type, rtype, crtype, info) = arg;
-	    if need:
-	        test.write(", ")
-	    else:
-	        need = 1
-	    if rtype != crtype:
-	        test.write("(%s)" % rtype)
-	    test.write("%s" % nam)
-	test.write(");\n")
-	if extra_post_call.has_key(name):
-	    test.write("        %s\n"% (extra_post_call[name]))
-
-    test.write("        call_tests++;\n");
-
-    # Free the arguments
-    i = 0;
-    for arg in t_args:
-        (nam, type, rtype, crtype, info) = arg;
-	# This is a hack to prevent generating a destructor for the
-	# 'input' argument in xmlTextReaderSetup.  There should be
-	# a better, more generic way to do this!
-	if string.find(info, 'destroy') == -1:
-	    test.write("        des_%s(n_%s, " % (type, nam))
-	    if rtype != crtype:
-	        test.write("(%s)" % rtype)
-	    test.write("%s, %d);\n" % (nam, i))
-	i = i + 1;
-
-    test.write("        xmlResetLastError();\n");
-    # Check the memory usage
-    if no_mem == 0:
-	test.write("""        if (mem_base != xmlMemBlocks()) {
-            printf("Leak of %%d blocks found in %s",
-	           xmlMemBlocks() - mem_base);
-	    test_ret++;
-""" % (name));
-	for arg in t_args:
-	    (nam, type, rtype, crtype, info) = arg;
-	    test.write("""            printf(" %%d", n_%s);\n""" % (nam))
-	test.write("""            printf("\\n");\n""")
-	test.write("        }\n")
-
-    for arg in t_args:
-	test.write("    }\n")
-
-    test.write("    function_tests++;\n")
-    #
-    # end of conditional
-    #
-    while nb_cond > 0:
-        test.write("#endif\n")
-	nb_cond = nb_cond -1
-    if define == 1:
-        test.write("#endif\n")
-
-    nb_tests = nb_tests + 1;
-
-    test.write("""
-    return(test_ret);
-}
-
-""")
-    
-#
-# Generate all module callers
-#
-for module in modules:
-    # gather all the functions exported by that module
-    try:
-	functions = ctxt.xpathEval("/api/symbols/function[@file='%s']" % (module))
-    except:
-        print "Failed to gather functions from module %s" % (module)
-	continue;
-
-    # iterate over all functions in the module generating the test
-    i = 0
-    nb_tests_old = nb_tests
-    for function in functions:
-        i = i + 1
-        generate_test(module, function);
-
-    # header
-    test.write("""static int
-test_%s(void) {
-    int test_ret = 0;
-
-    if (quiet == 0) printf("Testing %s : %d of %d functions ...\\n");
-""" % (module, module, nb_tests - nb_tests_old, i))
-
-    # iterate over all functions in the module generating the call
-    for function in functions:
-        name = function.xpathEval('string(@name)')
-	if is_skipped_function(name):
-	    continue
-	test.write("    test_ret += test_%s();\n" % (name))
-
-    # footer
-    test.write("""
-    if (test_ret != 0)
-	printf("Module %s: %%d errors\\n", test_ret);
-    return(test_ret);
-}
-""" % (module))
-
-#
-# Generate direct module caller
-#
-test.write("""static int
-test_module(const char *module) {
-""");
-for module in modules:
-    test.write("""    if (!strcmp(module, "%s")) return(test_%s());\n""" % (
-        module, module))
-test.write("""    return(0);
-}
-""");
-
-print "Generated test for %d modules and %d functions" %(len(modules), nb_tests)
-
-compare_and_save()
-
-missing_list = []
-for missing in missing_types.keys():
-    if missing == 'va_list' or missing == '...':
-        continue;
-
-    n = len(missing_types[missing])
-    missing_list.append((n, missing))
-
-def compare_missing(a, b):
-    return b[0] - a[0]
-
-missing_list.sort(compare_missing)
-print "Missing support for %d functions and %d types see missing.lst" % (missing_functions_nr, len(missing_list))
-lst = open("missing.lst", "w")
-lst.write("Missing support for %d types" % (len(missing_list)))
-lst.write("\n")
-for miss in missing_list:
-    lst.write("%s: %d :" % (miss[1], miss[0]))
-    i = 0
-    for n in missing_types[miss[1]]:
-        i = i + 1
-        if i > 5:
-	    lst.write(" ...")
-	    break
-	lst.write(" %s" % (n))
-    lst.write("\n")
-lst.write("\n")
-lst.write("\n")
-lst.write("Missing support per module");
-for module in missing_functions.keys():
-    lst.write("module %s:\n   %s\n" % (module, missing_functions[module]))
-
-lst.close()
-
-
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/globals.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/globals.c	Wed Jan 09 11:40:12 2019 +0530
@@ -47,7 +47,7 @@
 void xmlInitGlobals(void)
 {
     if (xmlThrDefMutex == NULL)
-    xmlThrDefMutex = xmlNewMutex();
+        xmlThrDefMutex = xmlNewMutex();
 }
 
 /**
@@ -92,7 +92,7 @@
  *
  * The variable holding the libxml free() implementation
  */
-xmlFreeFunc xmlFree = (xmlFreeFunc) free;
+xmlFreeFunc xmlFree = free;
 /**
  * xmlMalloc:
  * @size:  the size requested in bytes
@@ -101,7 +101,7 @@
  *
  * Returns a pointer to the newly allocated block or NULL in case of error
  */
-xmlMallocFunc xmlMalloc = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMalloc = malloc;
 /**
  * xmlMallocAtomic:
  * @size:  the size requested in bytes
@@ -112,7 +112,7 @@
  *
  * Returns a pointer to the newly allocated block or NULL in case of error
  */
-xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMallocAtomic = malloc;
 /**
  * xmlRealloc:
  * @mem: an already allocated block of memory
@@ -122,7 +122,19 @@
  *
  * Returns a pointer to the newly reallocated block or NULL in case of error
  */
-xmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc;
+xmlReallocFunc xmlRealloc = realloc;
+/**
+ * xmlPosixStrdup
+ * @cur:  the input char *
+ *
+ * a strdup implementation with a type signature matching POSIX
+ *
+ * Returns a new xmlChar * or NULL
+ */
+static char *
+xmlPosixStrdup(const char *cur) {
+    return((char*) xmlCharStrdup(cur));
+}
 /**
  * xmlMemStrdup:
  * @str: a zero terminated string
@@ -131,7 +143,7 @@
  *
  * Returns the copy of the string or NULL in case of error
  */
-xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
+xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup;
 #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
 
 #include <libxml/threads.h>
@@ -732,7 +744,7 @@
     if (IS_MAIN_THREAD)
         return (&xmlMalloc);
     else
-        return (&xmlGetGlobalState()->xmlMalloc);
+    return (&xmlGetGlobalState()->xmlMalloc);
 }
 
 #undef xmlMallocAtomic
@@ -929,7 +941,7 @@
     return ret;
 }
 
-#undef xmlTreeIndentString
+#undef  xmlTreeIndentString
 const char * *
 __xmlTreeIndentString(void) {
     if (IS_MAIN_THREAD)
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/hash.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/hash.c	Wed Jan 09 11:40:12 2019 +0530
@@ -286,8 +286,8 @@
         table->table[key].next = NULL;
         xmlFree(iter);
         } else {
-            iter->next = table->table[key].next;
-            table->table[key].next = iter;
+        iter->next = table->table[key].next;
+        table->table[key].next = iter;
         }
 
 #ifdef DEBUG_GROW
@@ -361,6 +361,18 @@
 }
 
 /**
+ * xmlHashDefaultDeallocator:
+ * @entry: the hash table entry
+ * @name: the entry's name
+ *
+ * Free a hash table entry with xmlFree.
+ */
+void
+xmlHashDefaultDeallocator(void *entry, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xmlFree(entry);
+}
+
+/**
  * xmlHashAddEntry:
  * @table: the hash table
  * @name: the name of the userdata
@@ -912,8 +924,11 @@
 xmlHashScan3(xmlHashTablePtr table, const xmlChar *name,
          const xmlChar *name2, const xmlChar *name3,
          xmlHashScanner f, void *data) {
-    xmlHashScanFull3 (table, name, name2, name3,
-              (xmlHashScannerFull) f, data);
+    stubData stubdata;
+    stubdata.data = data;
+    stubdata.hashscanner = f;
+    xmlHashScanFull3(table, name, name2, name3, stubHashScannerFull,
+                     &stubdata);
 }
 
 /**
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/encoding.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/encoding.h	Wed Jan 09 11:40:12 2019 +0530
@@ -129,9 +129,14 @@
  * If iconv is supported, there are two extra fields.
  */
 #ifdef LIBXML_ICU_ENABLED
+/* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
+#define ICU_PIVOT_BUF_SIZE 1024
 struct _uconv_t {
   UConverter *uconv; /* for conversion between an encoding and UTF-16 */
   UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
+  UChar      pivot_buf[ICU_PIVOT_BUF_SIZE];
+  UChar      *pivot_source;
+  UChar      *pivot_target;
 };
 typedef struct _uconv_t uconv_t;
 #endif
@@ -175,8 +180,8 @@
     xmlFindCharEncodingHandler  (const char *name);
 XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
     xmlNewCharEncodingHandler   (const char *name,
-                                 xmlCharEncodingInputFunc input,
-                                 xmlCharEncodingOutputFunc output);
+                     xmlCharEncodingInputFunc input,
+                     xmlCharEncodingOutputFunc output);
 
 /*
  * Interfaces for encoding names and aliases.
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/globals.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/globals.h	Wed Jan 09 11:40:12 2019 +0530
@@ -17,7 +17,6 @@
 #include <libxml/xmlversion.h>
 #include <libxml/parser.h>
 #include <libxml/xmlerror.h>
-#include <libxml/SAX.h>
 #include <libxml/SAX2.h>
 #include <libxml/xmlmemory.h>
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/hash.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/hash.h	Wed Jan 09 11:40:12 2019 +0530
@@ -66,7 +66,7 @@
  *
  * Callback to free data from a hash.
  */
-typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
+typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
 /**
  * xmlHashCopier:
  * @payload:  the data in the hash
@@ -76,7 +76,7 @@
  *
  * Returns a copy of the data or NULL in case of error.
  */
-typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
+typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name);
 /**
  * xmlHashScanner:
  * @payload:  the data in the hash
@@ -85,7 +85,7 @@
  *
  * Callback when scanning data in a hash with the simple scanner.
  */
-typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
+typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name);
 /**
  * xmlHashScannerFull:
  * @payload:  the data in the hash
@@ -111,6 +111,9 @@
 XMLPUBFUN void XMLCALL
             xmlHashFree (xmlHashTablePtr table,
                      xmlHashDeallocator f);
+XMLPUBFUN void XMLCALL
+            xmlHashDefaultDeallocator(void *entry,
+                     const xmlChar *name);
 
 /*
  * Add a new entry to the hash table.
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/list.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/list.h	Wed Jan 09 11:40:12 2019 +0530
@@ -49,7 +49,7 @@
  *
  * Returns 0 to stop walking the list, 1 otherwise.
  */
-typedef int (*xmlListWalker) (const void *data, const void *user);
+typedef int (*xmlListWalker) (const void *data, void *user);
 
 /* Creation/Deletion */
 XMLPUBFUN xmlListPtr XMLCALL
@@ -110,11 +110,11 @@
 XMLPUBFUN void XMLCALL
         xmlListWalk     (xmlListPtr l,
                      xmlListWalker walker,
-                     const void *user);
+                     void *user);
 XMLPUBFUN void XMLCALL
         xmlListReverseWalk  (xmlListPtr l,
                      xmlListWalker walker,
-                     const void *user);
+                     void *user);
 XMLPUBFUN void XMLCALL
         xmlListMerge        (xmlListPtr l1,
                      xmlListPtr l2);
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parser.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parser.h	Wed Jan 09 11:40:12 2019 +0530
@@ -894,12 +894,12 @@
 XMLPUBFUN xmlDocPtr XMLCALL
         xmlSAXParseMemory   (xmlSAXHandlerPtr sax,
                      const char *buffer,
-                                     int size,
+                     int size,
                      int recovery);
 XMLPUBFUN xmlDocPtr XMLCALL
         xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
                      const char *buffer,
-                                     int size,
+                     int size,
                      int recovery,
                      void *data);
 XMLPUBFUN xmlDocPtr XMLCALL
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parserInternals.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/parserInternals.h	Wed Jan 09 11:40:12 2019 +0530
@@ -73,11 +73,11 @@
 #define XML_MAX_LOOKUP_LIMIT 10000000
 
 /**
-  * XML_MAX_NAMELEN:
-  *
-  * Identifiers can be longer, but this will be more costly
-  * at runtime.
-  */
+ * XML_MAX_NAMELEN:
+ *
+ * Identifiers can be longer, but this will be more costly
+ * at runtime.
+ */
 #define XML_MAX_NAMELEN 100
 
 /**
@@ -90,7 +90,7 @@
 
 /************************************************************************
  *                                  *
- * UNICODE version of the macros.                       *
+ * UNICODE version of the macros.                   *
  *                                  *
  ************************************************************************/
 /**
@@ -284,7 +284,7 @@
  *
  * Skips the end of line chars.
  */
-#define SKIP_EOL(p)                             \
+#define SKIP_EOL(p)                         \
     if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; }          \
     if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
 
@@ -516,7 +516,7 @@
  *
  * Both general and parameter entities need to be substituted.
  */
-#define XML_SUBSTITUTE_BOTH     3
+#define XML_SUBSTITUTE_BOTH 3
 
 XMLPUBFUN xmlChar * XMLCALL
         xmlStringDecodeEntities     (xmlParserCtxtPtr ctxt,
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/relaxng.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/relaxng.h	Wed Jan 09 11:40:12 2019 +0530
@@ -134,7 +134,7 @@
 
 XMLPUBFUN int XMLCALL
             xmlRelaxParserSetFlag   (xmlRelaxNGParserCtxtPtr ctxt,
-                             int flag);
+                         int flag);
 
 XMLPUBFUN void XMLCALL
             xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/schematron.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/schematron.h	Wed Jan 09 11:40:12 2019 +0530
@@ -127,7 +127,7 @@
 
 XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL
         xmlSchematronNewValidCtxt   (xmlSchematronPtr schema,
-                         int options);
+                     int options);
 XMLPUBFUN void XMLCALL
         xmlSchematronFreeValidCtxt  (xmlSchematronValidCtxtPtr ctxt);
 XMLPUBFUN int XMLCALL
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/tree.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/tree.h	Wed Jan 09 11:40:12 2019 +0530
@@ -575,7 +575,7 @@
     void           *ids;        /* Hash table for ID attributes if any */
     void           *refs;       /* Hash table for IDREFs attributes if any */
     const xmlChar  *URL;    /* The URI for that document */
-    int             charset;    /* encoding of the in-memory content
+    int             charset;    /* Internal flag for charset handling,
                    actually an xmlCharEncoding */
     struct _xmlDict *dict;      /* dict used to allocate names or NULL */
     void           *psvi;   /* for type/PSVI informations */
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlIO.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlIO.h	Wed Jan 09 11:40:12 2019 +0530
@@ -209,7 +209,7 @@
 
 xmlParserInputBufferPtr
     __xmlParserInputBufferCreateFilename(const char *URI,
-                                        xmlCharEncoding enc);
+                        xmlCharEncoding enc);
 
 #ifdef LIBXML_OUTPUT_ENABLED
 /*
@@ -314,9 +314,9 @@
 XMLPUBFUN int XMLCALL
     xmlFileMatch            (const char *filename);
 XMLPUBFUN void * XMLCALL
-    xmlFileOpen             (const char *filename);
+    xmlFileOpen         (const char *filename);
 XMLPUBFUN int XMLCALL
-    xmlFileRead             (void * context,
+    xmlFileRead         (void * context,
                      char * buffer,
                      int len);
 XMLPUBFUN int XMLCALL
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlerror.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlerror.h	Wed Jan 09 11:40:12 2019 +0530
@@ -908,7 +908,7 @@
     xmlResetError       (xmlErrorPtr err);
 XMLPUBFUN int XMLCALL
     xmlCopyError        (xmlErrorPtr from,
-                     xmlErrorPtr to);
+                 xmlErrorPtr to);
 
 #ifdef IN_LIBXML
 /*
@@ -916,11 +916,11 @@
  */
 XMLPUBFUN void XMLCALL
     __xmlRaiseError     (xmlStructuredErrorFunc schannel,
-                     xmlGenericErrorFunc channel,
-                     void *data,
+                 xmlGenericErrorFunc channel,
+                 void *data,
                                  void *ctx,
-                     void *node,
-                     int domain,
+                 void *node,
+                 int domain,
                  int code,
                  xmlErrorLevel level,
                  const char *file,
@@ -934,7 +934,7 @@
                  ...) LIBXML_ATTR_FORMAT(16,17);
 XMLPUBFUN void XMLCALL
     __xmlSimpleError        (int domain,
-                     int code,
+                 int code,
                  xmlNodePtr node,
                  const char *msg,
                  const char *extra) LIBXML_ATTR_FORMAT(4,0);
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlexports.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlexports.h	Wed Jan 09 11:40:12 2019 +0530
@@ -131,8 +131,8 @@
   #endif
 #endif
 
-/* Cygwin platform, GNU compiler */
-#if defined(_WIN32) && defined(__CYGWIN__)
+/* Cygwin platform (does not define _WIN32), GNU compiler */
+#if defined(__CYGWIN__)
   #undef XMLPUBFUN
   #undef XMLPUBVAR
   #undef XMLCALL
@@ -145,7 +145,7 @@
     #if !defined(LIBXML_STATIC)
       #define XMLPUBVAR __declspec(dllimport) extern
     #else
-      #define XMLPUBVAR
+      #define XMLPUBVAR extern
     #endif
   #endif
   #define XMLCALL __cdecl
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlreader.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlreader.h	Wed Jan 09 11:40:12 2019 +0530
@@ -137,7 +137,7 @@
 #endif
 
 XMLPUBFUN xmlChar * XMLCALL
-            xmlTextReaderReadString     (xmlTextReaderPtr reader);
+            xmlTextReaderReadString (xmlTextReaderPtr reader);
 XMLPUBFUN int XMLCALL
             xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
 
@@ -397,26 +397,26 @@
  *
  * Signature of an error callback from a reader parser
  */
-typedef void   (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
-                         const char *msg,
-                         xmlParserSeverities severity,
-                         xmlTextReaderLocatorPtr locator);
+typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
+                           const char *msg,
+                           xmlParserSeverities severity,
+                           xmlTextReaderLocatorPtr locator);
 XMLPUBFUN int XMLCALL
-            xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
+        xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
 XMLPUBFUN xmlChar * XMLCALL
-            xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
+        xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
 XMLPUBFUN void XMLCALL
-            xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
-                         xmlTextReaderErrorFunc f,
-                         void *arg);
+        xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
+                     xmlTextReaderErrorFunc f,
+                     void *arg);
 XMLPUBFUN void XMLCALL
-            xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
-                               xmlStructuredErrorFunc f,
-                               void *arg);
+        xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
+                           xmlStructuredErrorFunc f,
+                           void *arg);
 XMLPUBFUN void XMLCALL
-            xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
-                         xmlTextReaderErrorFunc *f,
-                         void **arg);
+        xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
+                     xmlTextReaderErrorFunc *f,
+                     void **arg);
 
 #endif /* LIBXML_READER_ENABLED */
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlschemastypes.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlschemastypes.h	Wed Jan 09 11:40:12 2019 +0530
@@ -31,7 +31,7 @@
 } xmlSchemaWhitespaceValueType;
 
 XMLPUBFUN void XMLCALL
-            xmlSchemaInitTypes      (void);
+        xmlSchemaInitTypes      (void);
 XMLPUBFUN void XMLCALL
         xmlSchemaCleanupTypes       (void);
 XMLPUBFUN xmlSchemaTypePtr XMLCALL
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlversion.h.in	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xmlversion.h.in	Wed Jan 09 11:40:12 2019 +0530
@@ -410,9 +410,6 @@
 #endif
 
 #ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
 
 /**
  * ATTRIBUTE_UNUSED:
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpath.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpath.h	Wed Jan 09 11:40:12 2019 +0530
@@ -421,7 +421,7 @@
  *         @index is out of range (0 to length-1)
  */
 #define xmlXPathNodeSetItem(ns, index)              \
-        ((((ns) != NULL) &&                 \
+        ((((ns) != NULL) &&             \
           ((index) >= 0) && ((index) < (ns)->nodeNr)) ? \
          (ns)->nodeTab[(index)]             \
          : NULL)
@@ -531,7 +531,7 @@
             xmlXPathCompile     (const xmlChar *str);
 XMLPUBFUN xmlXPathCompExprPtr XMLCALL
             xmlXPathCtxtCompile     (xmlXPathContextPtr ctxt,
-                             const xmlChar *str);
+                         const xmlChar *str);
 XMLPUBFUN xmlXPathObjectPtr XMLCALL
             xmlXPathCompiledEval    (xmlXPathCompExprPtr comp,
                          xmlXPathContextPtr ctx);
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpathInternals.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpathInternals.h	Wed Jan 09 11:40:12 2019 +0530
@@ -103,13 +103,13 @@
 XMLPUBFUN int XMLCALL
         xmlXPathPopBoolean  (xmlXPathParserContextPtr ctxt);
 XMLPUBFUN double XMLCALL
-            xmlXPathPopNumber   (xmlXPathParserContextPtr ctxt);
+        xmlXPathPopNumber   (xmlXPathParserContextPtr ctxt);
 XMLPUBFUN xmlChar * XMLCALL
-            xmlXPathPopString   (xmlXPathParserContextPtr ctxt);
+        xmlXPathPopString   (xmlXPathParserContextPtr ctxt);
 XMLPUBFUN xmlNodeSetPtr XMLCALL
-            xmlXPathPopNodeSet  (xmlXPathParserContextPtr ctxt);
+        xmlXPathPopNodeSet  (xmlXPathParserContextPtr ctxt);
 XMLPUBFUN void * XMLCALL
-            xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
+        xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
 
 /**
  * xmlXPathReturnBoolean:
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpointer.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/libxml/xpointer.h	Wed Jan 09 11:40:12 2019 +0530
@@ -101,7 +101,7 @@
                          xmlXPathContextPtr ctx);
 XMLPUBFUN void XMLCALL
             xmlXPtrRangeToFunction  (xmlXPathParserContextPtr ctxt,
-                             int nargs);
+                         int nargs);
 XMLPUBFUN xmlNodePtr XMLCALL
             xmlXPtrBuildNodeList    (xmlXPathObjectPtr obj);
 XMLPUBFUN void XMLCALL
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/win32config.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/win32config.h	Wed Jan 09 11:40:12 2019 +0530
@@ -13,7 +13,6 @@
 #include "wincecompat.h"
 #else
 #define HAVE_SYS_STAT_H
-#define HAVE__STAT
 #define HAVE_STAT
 #define HAVE_STDLIB_H
 #define HAVE_TIME_H
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/wsockcompat.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/include/wsockcompat.h	Wed Jan 09 11:40:12 2019 +0530
@@ -34,13 +34,13 @@
 #define ECONNRESET WSAECONNRESET
 #endif
 #ifndef EINPROGRESS
-#define EINPROGRESS             WSAEINPROGRESS
+#define EINPROGRESS WSAEINPROGRESS
 #endif
 #ifndef EINTR
 #define EINTR WSAEINTR
 #endif
 #ifndef ESHUTDOWN
-#define ESHUTDOWN               WSAESHUTDOWN
+#define ESHUTDOWN WSAESHUTDOWN
 #endif
 #ifndef EWOULDBLOCK
 #define EWOULDBLOCK WSAEWOULDBLOCK
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.h	Wed Jan 09 11:40:12 2019 +0530
@@ -60,6 +60,18 @@
 #include "trio.h"
 #endif
 
+#if defined(__clang__) || \
+    (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406))
+#define XML_IGNORE_PEDANTIC_WARNINGS \
+    _Pragma("GCC diagnostic push") \
+    _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
+#define XML_POP_WARNINGS \
+    _Pragma("GCC diagnostic pop")
+#else
+#define XML_IGNORE_PEDANTIC_WARNINGS
+#define XML_POP_WARNINGS
+#endif
+
 /*
  * Internal variable indicating if a callback has been registered for
  * node creation/destruction. It avoids spending a lot of time in locking
@@ -96,7 +108,7 @@
 #endif
 
 XMLPUBFUN xmlChar * XMLCALL xmlEscapeFormatString(xmlChar **msg);
-int xmlNop(void);
+int xmlInputReadCallbackNop(void *context, char *buffer, int len);
 
 #ifdef IN_LIBXML
 #ifdef __GNUC__
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.spec.in	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml.spec.in	Wed Jan 09 11:40:12 2019 +0530
@@ -18,7 +18,7 @@
 URL: http://xmlsoft.org/
 
 %description
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DtDs, either
 at parse time or later once the document has been modified. The output
@@ -38,7 +38,7 @@
 
 %description devel
 Libraries, include files, etc you can use to develop XML applications.
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DtDs, either
 at parse time or later once the document has been modified. The output
@@ -70,7 +70,7 @@
 written in the Python programming language, version 2, to use the interface
 supplied by the libxml2 library to manipulate XML files.
 
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DTDs, either
 at parse time or later once the document has been modified.
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.spec	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.spec	Wed Jan 09 11:40:12 2019 +0530
@@ -2,7 +2,7 @@
 
 Summary: Library providing XML and HTML support
 Name: libxml2
-Version: 2.9.7
+Version: 2.9.9
 Release: 1%{?dist}%{?extra_release}
 License: MIT
 Group: Development/Libraries
@@ -18,7 +18,7 @@
 URL: http://xmlsoft.org/
 
 %description
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DtDs, either
 at parse time or later once the document has been modified. The output
@@ -38,7 +38,7 @@
 
 %description devel
 Libraries, include files, etc you can use to develop XML applications.
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DtDs, either
 at parse time or later once the document has been modified. The output
@@ -70,7 +70,7 @@
 written in the Python programming language, version 2, to use the interface
 supplied by the libxml2 library to manipulate XML files.
 
-This library allows to manipulate XML files. It includes support 
+This library allows to manipulate XML files. It includes support
 to read, modify and write XML and HTML files. There is DTDs support
 this includes parsing and validation even with complex DTDs, either
 at parse time or later once the document has been modified.
@@ -203,6 +203,6 @@
 %endif # with_python3
 
 %changelog
-* Sun Feb 11 2018 Daniel Veillard <veillard@redhat.com>
-- upstream release 2.9.7 see http://xmlsoft.org/news.html
+* Mon Jan  7 2019 Daniel Veillard <veillard@redhat.com>
+- upstream release 2.9.9 see http://xmlsoft.org/news.html
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.syms	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/libxml2.syms	Wed Jan 09 11:40:12 2019 +0530
@@ -2279,3 +2279,10 @@
   xmlXPathSetContextNode;
 } LIBXML2_2.9.0;
 
+LIBXML2_2.9.8 {
+    global:
+
+# hash
+  xmlHashDefaultDeallocator;
+} LIBXML2_2.9.1;
+
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/list.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/list.c	Wed Jan 09 11:40:12 2019 +0530
@@ -673,7 +673,7 @@
  * apply the walker function to it
  */
 void
-xmlListWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListWalk(xmlListPtr l, xmlListWalker walker, void *user) {
     xmlLinkPtr lk;
 
     if ((l == NULL) || (walker == NULL))
@@ -694,7 +694,7 @@
  * apply the walker function to it
  */
 void
-xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, void *user) {
     xmlLinkPtr lk;
 
     if ((l == NULL) || (walker == NULL))
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix.h	Wed Jan 09 11:40:12 2019 +0530
@@ -1,1 +1,1 @@
-int test_main(int argc, char **argv);#define main(X,Y)    test_main(X,Y)
\ No newline at end of file
+int test_main(int argc, char **argv);#define main(X,Y)  test_main(X,Y)
\ No newline at end of file
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix2.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/XMLTestPrefix2.h	Wed Jan 09 11:40:12 2019 +0530
@@ -1,1 +1,1 @@
-int test_main(int argc, char* argv[]);#define main()      test_main(int argc, char* argv[])
\ No newline at end of file
+int test_main(int argc, char* argv[]);#define main()        test_main(int argc, char* argv[])
\ No newline at end of file
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/config-mac.h	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/config-mac.h	Wed Jan 09 11:40:12 2019 +0530
@@ -21,27 +21,9 @@
 #define HAVE_PTHREAD_H
 #define LIBXML_THREAD_ENABLED
 
-/* Define if you have the _stat function.  */
-#define HAVE__STAT
-
-/* Define if you have the class function.  */
-#undef HAVE_CLASS
-
-/* Define if you have the finite function.  */
-#undef HAVE_FINITE
-
-/* Define if you have the fp_class function.  */
-#undef HAVE_FP_CLASS
-
-/* Define if you have the fpclass function.  */
-#undef HAVE_FPCLASS
-
 /* Define if you have the fprintf function.  */
 #define HAVE_FPRINTF
 
-/* Define if you have the isnand function.  */
-#undef HAVE_ISNAND
-
 /* Define if you have the localtime function.  */
 #define HAVE_LOCALTIME
 
@@ -63,18 +45,9 @@
 /* Define if you have the stat function.  */
 #define HAVE_STAT
 
-/* Define if you have the strdup function.  */
-#define HAVE_STRDUP
-
-/* Define if you have the strerror function.  */
-#define HAVE_STRERROR
-
 /* Define if you have the strftime function.  */
 #define HAVE_STRFTIME
 
-/* Define if you have the strndup function.  */
-#define HAVE_STRNDUP
-
 /* Define if you have the vfprintf function.  */
 #define HAVE_VFPRINTF
 
@@ -84,9 +57,6 @@
 /* Define if you have the vsprintf function.  */
 #define HAVE_VSPRINTF
 
-/* Define if you have the <ansidecl.h> header file.  */
-#define HAVE_ANSIDECL_H
-
 /* Define if you have the <arpa/inet.h> header file.  */
 #define HAVE_ARPA_INET_H
 
@@ -108,21 +78,12 @@
 /* Define if you have the <float.h> header file.  */
 #define HAVE_FLOAT_H
 
-/* Define if you have the <fp_class.h> header file.  */
-#define HAVE_FP_CLASS_H
-
-/* Define if you have the <ieeefp.h> header file.  */
-#define HAVE_IEEEFP_H
-
 /* Define if you have the <malloc.h> header file.  */
 #undef HAVE_MALLOC_H
 
 /* Define if you have the <math.h> header file.  */
 #define HAVE_MATH_H
 
-/* Define if you have the <nan.h> header file.  */
-#define HAVE_NAN_H
-
 /* Define if you have the <ndir.h> header file.  */
 #define HAVE_NDIR_H
 
@@ -174,9 +135,6 @@
 /* Define if you have the <unistd.h> header file.  */
 #define HAVE_UNISTD_H
 
-/* Define if you have the <zlib.h> header file.  */
-#undef HAVE_ZLIB_H
-
 /* Name of package */
 #define PACKAGE
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/macos_main.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/macos/src/macos_main.c	Wed Jan 09 11:40:12 2019 +0530
@@ -1,1 +1,1 @@
-#include <GUSICommandLine.h>#include <stdlib.h>#undef mainDECLARE_MAIN(test)REGISTER_MAIN_STARTREGISTER_MAIN(test)REGISTER_MAIN_ENDint main(){ (void) exec_commands();       return 0;}
\ No newline at end of file
+#include <GUSICommandLine.h>#include <stdlib.h>#undef mainDECLARE_MAIN(test)REGISTER_MAIN_STARTREGISTER_MAIN(test)REGISTER_MAIN_ENDint main(){  (void) exec_commands();     return 0;}
\ No newline at end of file
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/nanohttp.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/nanohttp.c	Wed Jan 09 11:40:12 2019 +0530
@@ -63,7 +63,7 @@
 #ifdef HAVE_STRINGS_H
 #include <strings.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -145,7 +145,7 @@
     char *authHeader;   /* contents of {WWW,Proxy}-Authenticate header */
     char *encoding; /* encoding extracted from the contentType */
     char *mimeType; /* Mime-Type extracted from the contentType */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     z_stream *strm; /* Zlib stream object */
     int usesGzip;   /* "Content-Encoding: gzip" was detected */
 #endif
@@ -434,7 +434,7 @@
     if (ctxt->mimeType != NULL) xmlFree(ctxt->mimeType);
     if (ctxt->location != NULL) xmlFree(ctxt->location);
     if (ctxt->authHeader != NULL) xmlFree(ctxt->authHeader);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (ctxt->strm != NULL) {
     inflateEnd(ctxt->strm);
     xmlFree(ctxt->strm);
@@ -458,7 +458,7 @@
 static int
 xmlNanoHTTPSend(xmlNanoHTTPCtxtPtr ctxt, const char *xmt_ptr, int outlen)
 {
-    int     total_sent = 0;
+    int total_sent = 0;
 #ifdef HAVE_POLL_H
     struct pollfd p;
 #else
@@ -469,7 +469,7 @@
     if ((ctxt->state & XML_NANO_HTTP_WRITE) && (xmt_ptr != NULL)) {
         while (total_sent < outlen) {
             int nsent = send(ctxt->fd, SEND_ARG2_CAST (xmt_ptr + total_sent),
-                                      outlen - total_sent, 0);
+                             outlen - total_sent, 0);
 
             if (nsent > 0)
                 total_sent += nsent;
@@ -478,25 +478,25 @@
                      (socket_errno() != EAGAIN) &&
 #endif
                      (socket_errno() != EWOULDBLOCK)) {
-        __xmlIOErr(XML_FROM_HTTP, 0, "send failed\n");
+                __xmlIOErr(XML_FROM_HTTP, 0, "send failed\n");
                 if (total_sent == 0)
-            total_sent = -1;
-        break;
+                    total_sent = -1;
+                break;
             } else {
-            /*
+                /*
                  * No data sent
                  * Since non-blocking sockets are used, wait for
                  * socket to be writable or default timeout prior
                  * to retrying.
-        */
+                 */
 #ifndef HAVE_POLL_H
 #ifndef _WINSOCKAPI_
                 if (ctxt->fd > FD_SETSIZE)
                     return -1;
 #endif
 
-        tv.tv_sec = timeout;
-        tv.tv_usec = 0;
+                tv.tv_sec = timeout;
+                tv.tv_usec = 0;
                 FD_ZERO(&wfd);
 #ifdef _MSC_VER
 #pragma warning(push)
@@ -512,9 +512,9 @@
                 p.events = POLLOUT;
                 (void) poll(&p, 1, timeout * 1000);
 #endif /* !HAVE_POLL_H */
+            }
         }
     }
-    }
 
     return total_sent;
 }
@@ -541,69 +541,69 @@
 
 
     while (ctxt->state & XML_NANO_HTTP_READ) {
-    if (ctxt->in == NULL) {
-        ctxt->in = (char *) xmlMallocAtomic(65000 * sizeof(char));
         if (ctxt->in == NULL) {
-        xmlHTTPErrMemory("allocating input");
-            ctxt->last = -1;
+            ctxt->in = (char *) xmlMallocAtomic(65000 * sizeof(char));
+            if (ctxt->in == NULL) {
+                xmlHTTPErrMemory("allocating input");
+                ctxt->last = -1;
                 return (-1);
+            }
+            ctxt->inlen = 65000;
+            ctxt->inptr = ctxt->content = ctxt->inrptr = ctxt->in;
         }
-        ctxt->inlen = 65000;
-        ctxt->inptr = ctxt->content = ctxt->inrptr = ctxt->in;
-    }
-    if (ctxt->inrptr > ctxt->in + XML_NANO_HTTP_CHUNK) {
-        int delta = ctxt->inrptr - ctxt->in;
-        int len = ctxt->inptr - ctxt->inrptr;
+        if (ctxt->inrptr > ctxt->in + XML_NANO_HTTP_CHUNK) {
+            int delta = ctxt->inrptr - ctxt->in;
+            int len = ctxt->inptr - ctxt->inrptr;
 
-        memmove(ctxt->in, ctxt->inrptr, len);
-        ctxt->inrptr -= delta;
-        ctxt->content -= delta;
-        ctxt->inptr -= delta;
-    }
+            memmove(ctxt->in, ctxt->inrptr, len);
+            ctxt->inrptr -= delta;
+            ctxt->content -= delta;
+            ctxt->inptr -= delta;
+        }
         if ((ctxt->in + ctxt->inlen) < (ctxt->inptr + XML_NANO_HTTP_CHUNK)) {
-        int d_inptr = ctxt->inptr - ctxt->in;
-        int d_content = ctxt->content - ctxt->in;
-        int d_inrptr = ctxt->inrptr - ctxt->in;
+            int d_inptr = ctxt->inptr - ctxt->in;
+            int d_content = ctxt->content - ctxt->in;
+            int d_inrptr = ctxt->inrptr - ctxt->in;
             char *tmp_ptr = ctxt->in;
 
-        ctxt->inlen *= 2;
+            ctxt->inlen *= 2;
             ctxt->in = (char *) xmlRealloc(tmp_ptr, ctxt->inlen);
-        if (ctxt->in == NULL) {
-        xmlHTTPErrMemory("allocating input buffer");
+            if (ctxt->in == NULL) {
+                xmlHTTPErrMemory("allocating input buffer");
                 xmlFree(tmp_ptr);
-            ctxt->last = -1;
+                ctxt->last = -1;
                 return (-1);
-        }
+            }
             ctxt->inptr = ctxt->in + d_inptr;
             ctxt->content = ctxt->in + d_content;
             ctxt->inrptr = ctxt->in + d_inrptr;
-    }
-    ctxt->last = recv(ctxt->fd, ctxt->inptr, XML_NANO_HTTP_CHUNK, 0);
-    if (ctxt->last > 0) {
-        ctxt->inptr += ctxt->last;
+        }
+        ctxt->last = recv(ctxt->fd, ctxt->inptr, XML_NANO_HTTP_CHUNK, 0);
+        if (ctxt->last > 0) {
+            ctxt->inptr += ctxt->last;
             return (ctxt->last);
-    }
-    if (ctxt->last == 0) {
+        }
+        if (ctxt->last == 0) {
             return (0);
-    }
-    if (ctxt->last == -1) {
-        switch (socket_errno()) {
-        case EINPROGRESS:
-        case EWOULDBLOCK:
+        }
+        if (ctxt->last == -1) {
+            switch (socket_errno()) {
+                case EINPROGRESS:
+                case EWOULDBLOCK:
 #if defined(EAGAIN) && EAGAIN != EWOULDBLOCK
-        case EAGAIN:
+                case EAGAIN:
 #endif
-            break;
+                    break;
 
-        case ECONNRESET:
-        case ESHUTDOWN:
+                case ECONNRESET:
+                case ESHUTDOWN:
                     return (0);
 
-        default:
-            __xmlIOErr(XML_FROM_HTTP, 0, "recv failed\n");
+                default:
+                    __xmlIOErr(XML_FROM_HTTP, 0, "recv failed\n");
                     return (-1);
+            }
         }
-    }
 #ifdef HAVE_POLL_H
         p.fd = ctxt->fd;
         p.events = POLLIN;
@@ -619,16 +619,16 @@
             return 0;
 #endif
 
-    tv.tv_sec = timeout;
-    tv.tv_usec = 0;
-    FD_ZERO(&rfd);
+        tv.tv_sec = timeout;
+        tv.tv_usec = 0;
+        FD_ZERO(&rfd);
 
 #ifdef _MSC_VER
 #pragma warning(push)
 #pragma warning(disable: 4018)
 #endif
 
-    FD_SET(ctxt->fd, &rfd);
+        FD_SET(ctxt->fd, &rfd);
 
 #ifdef _MSC_VER
 #pragma warning(pop)
@@ -638,7 +638,7 @@
 #if defined(EINTR)
             && (socket_errno() != EINTR)
 #endif
-    )
+            )
             return (0);
 #endif /* !HAVE_POLL_H */
     }
@@ -817,7 +817,7 @@
     if (ctxt->authHeader != NULL)
         xmlFree(ctxt->authHeader);
     ctxt->authHeader = xmlMemStrdup(cur);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     } else if ( !xmlStrncasecmp( BAD_CAST line, BAD_CAST"Content-Encoding:", 17) ) {
     cur += 17;
     while ((*cur == ' ') || (*cur == '\t')) cur++;
@@ -884,23 +884,23 @@
     }
     if (s == INVALID_SOCKET) {
 #ifdef DEBUG_HTTP
-    perror("socket");
+        perror("socket");
 #endif
-    __xmlIOErr(XML_FROM_HTTP, 0, "socket failed\n");
+        __xmlIOErr(XML_FROM_HTTP, 0, "socket failed\n");
         return INVALID_SOCKET;
     }
 #ifdef _WINSOCKAPI_
     {
-    u_long one = 1;
+        u_long one = 1;
 
-    status = ioctlsocket(s, FIONBIO, &one) == SOCKET_ERROR ? -1 : 0;
+        status = ioctlsocket(s, FIONBIO, &one) == SOCKET_ERROR ? -1 : 0;
     }
 #else /* _WINSOCKAPI_ */
 #if defined(VMS)
     {
-    int enable = 1;
+        int enable = 1;
 
-    status = ioctl(s, FIONBIO, &enable);
+        status = ioctl(s, FIONBIO, &enable);
     }
 #else /* VMS */
 #if defined(__BEOS__) && !defined(__HAIKU__)
@@ -914,20 +914,20 @@
 #else /* __BEOS__ */
     if ((status = fcntl(s, F_GETFL, 0)) != -1) {
 #ifdef O_NONBLOCK
-    status |= O_NONBLOCK;
+        status |= O_NONBLOCK;
 #else /* O_NONBLOCK */
 #ifdef F_NDELAY
-    status |= F_NDELAY;
+        status |= F_NDELAY;
 #endif /* F_NDELAY */
 #endif /* !O_NONBLOCK */
-    status = fcntl(s, F_SETFL, status);
+        status = fcntl(s, F_SETFL, status);
     }
     if (status < 0) {
 #ifdef DEBUG_HTTP
-    perror("nonblocking");
+        perror("nonblocking");
 #endif
-    __xmlIOErr(XML_FROM_HTTP, 0, "error setting non-blocking IO\n");
-    closesocket(s);
+        __xmlIOErr(XML_FROM_HTTP, 0, "error setting non-blocking IO\n");
+        closesocket(s);
         return INVALID_SOCKET;
     }
 #endif /* !__BEOS__ */
@@ -935,16 +935,16 @@
 #endif /* !_WINSOCKAPI_ */
 
     if (connect(s, addr, addrlen) == -1) {
-    switch (socket_errno()) {
-        case EINPROGRESS:
-        case EWOULDBLOCK:
-        break;
-        default:
+        switch (socket_errno()) {
+            case EINPROGRESS:
+            case EWOULDBLOCK:
+                break;
+            default:
                 __xmlIOErr(XML_FROM_HTTP, 0,
                            "error connecting to HTTP server");
-        closesocket(s);
+                closesocket(s);
                 return INVALID_SOCKET;
-    }
+        }
     }
 #ifndef HAVE_POLL_H
     tv.tv_sec = timeout;
@@ -980,51 +980,51 @@
 #endif /* !HAVE_POLL_H */
 
     {
-    case 0:
-        /* Time out */
-        __xmlIOErr(XML_FROM_HTTP, 0, "Connect attempt timed out");
-        closesocket(s);
+        case 0:
+            /* Time out */
+            __xmlIOErr(XML_FROM_HTTP, 0, "Connect attempt timed out");
+            closesocket(s);
             return INVALID_SOCKET;
-    case -1:
-        /* Ermm.. ?? */
-        __xmlIOErr(XML_FROM_HTTP, 0, "Connect failed");
-        closesocket(s);
+        case -1:
+            /* Ermm.. ?? */
+            __xmlIOErr(XML_FROM_HTTP, 0, "Connect failed");
+            closesocket(s);
             return INVALID_SOCKET;
     }
 
 #ifndef HAVE_POLL_H
     if (FD_ISSET(s, &wfd)
 #ifdef _WINSOCKAPI_
-                           || FD_ISSET(s, &xfd)
+        || FD_ISSET(s, &xfd)
 #endif
         )
 #else /* !HAVE_POLL_H */
     if (p.revents == POLLOUT)
 #endif /* !HAVE_POLL_H */
     {
-    XML_SOCKLEN_T len;
+        XML_SOCKLEN_T len;
 
-    len = sizeof(status);
+        len = sizeof(status);
 #ifdef SO_ERROR
         if (getsockopt(s, SOL_SOCKET, SO_ERROR, (char *) &status, &len) <
             0) {
-        /* Solaris error code */
-        __xmlIOErr(XML_FROM_HTTP, 0, "getsockopt failed\n");
+            /* Solaris error code */
+            __xmlIOErr(XML_FROM_HTTP, 0, "getsockopt failed\n");
             closesocket(s);
             return INVALID_SOCKET;
-    }
+        }
 #endif
         if (status) {
             __xmlIOErr(XML_FROM_HTTP, 0,
                        "Error connecting to remote host");
+            closesocket(s);
+            errno = status;
+            return INVALID_SOCKET;
+        }
+    } else {
+        /* pbm */
+        __xmlIOErr(XML_FROM_HTTP, 0, "select failed\n");
         closesocket(s);
-        errno = status;
-            return INVALID_SOCKET;
-    }
-    } else {
-    /* pbm */
-    __xmlIOErr(XML_FROM_HTTP, 0, "select failed\n");
-    closesocket(s);
         return INVALID_SOCKET;
     }
 
@@ -1273,7 +1273,7 @@
 int
 xmlNanoHTTPRead(void *ctx, void *dest, int len) {
     xmlNanoHTTPCtxtPtr ctxt = (xmlNanoHTTPCtxtPtr) ctx;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     int bytes_read = 0;
     int orig_avail_in;
     int z_ret;
@@ -1283,7 +1283,7 @@
     if (dest == NULL) return(-1);
     if (len <= 0) return(0);
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     if (ctxt->usesGzip == 1) {
         if (ctxt->strm == NULL) return(0);
 
@@ -1424,7 +1424,7 @@
     /* 1 for '?' */
     blen += strlen(ctxt->query) + 1;
     blen += strlen(method) + strlen(ctxt->path) + 24;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     /* reserve for possible 'Accept-Encoding: gzip' string */
     blen += 23;
 #endif
@@ -1452,7 +1452,7 @@
     }
     else
         p += snprintf( p, blen - (p - bp), "%s http://%s%s", method,
-                ctxt->hostname, ctxt->path);
+            ctxt->hostname, ctxt->path);
     }
     else
     p += snprintf( p, blen - (p - bp), "%s %s", method, ctxt->path);
@@ -1468,7 +1468,7 @@
             ctxt->hostname, ctxt->port);
     }
 
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
     p += snprintf(p, blen - (p - bp), "Accept-Encoding: gzip\r\n");
 #endif
 
@@ -1511,7 +1511,7 @@
 
     if ( xmt_bytes != ilen )
         xmlGenericError( xmlGenericErrorContext,
-                "xmlNanoHTTPMethodRedir:  Only %d of %d %s %s\n",
+            "xmlNanoHTTPMethodRedir:  Only %d of %d %s %s\n",
             xmt_bytes, ilen,
             "bytes of HTTP content sent to host",
             ctxt->hostname );
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parser.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parser.c	Wed Jan 09 11:40:12 2019 +0530
@@ -83,12 +83,6 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
-#include <zlib.h>
-#endif
-#ifdef HAVE_LZMA_H
-#include <lzma.h>
-#endif
 
 #include "buf.h"
 #include "enc.h"
@@ -155,7 +149,7 @@
     rep = xmlStringDecodeEntities(ctxt, ent->content,
                   XML_SUBSTITUTE_REF, 0, 0, 0);
         --ctxt->depth;
-    if (ctxt->errNo == XML_ERR_ENTITY_LOOP) {
+    if ((rep == NULL) || (ctxt->errNo == XML_ERR_ENTITY_LOOP)) {
         ent->content[0] = 0;
     }
 
@@ -278,7 +272,7 @@
 
 /* DEPR void xmlParserHandleReference(xmlParserCtxtPtr ctxt); */
 static xmlEntityPtr xmlParseStringPEReference(xmlParserCtxtPtr ctxt,
-                                       const xmlChar **str);
+                                              const xmlChar **str);
 
 static xmlParserErrors
 xmlParseExternalEntityPrivate(xmlDocPtr doc, xmlParserCtxtPtr oldctxt,
@@ -549,7 +543,7 @@
                         XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s\n",
                         errmsg);
     } else {
-    __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
+        __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error,
                         XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s: %s\n",
                         errmsg, info);
     }
@@ -609,7 +603,7 @@
         (ctxt->sax->initialized == XML_SAX2_MAGIC))
         schannel = ctxt->sax->serror;
     if (ctxt != NULL) {
-    __xmlRaiseError(schannel,
+        __xmlRaiseError(schannel,
                     (ctxt->sax) ? ctxt->sax->warning : NULL,
                     ctxt->userData,
                     ctxt, NULL, XML_FROM_PARSER, error,
@@ -649,7 +643,7 @@
         schannel = ctxt->sax->serror;
     }
     if (ctxt != NULL) {
-    __xmlRaiseError(schannel,
+        __xmlRaiseError(schannel,
                     ctxt->vctxt.error, ctxt->vctxt.userData,
                     ctxt, NULL, XML_FROM_DTD, error,
                     XML_ERR_ERROR, NULL, 0, (const char *) str1,
@@ -1083,7 +1077,7 @@
     ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
     ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
     if ((ctxt->str_xml==NULL) || (ctxt->str_xmlns==NULL) ||
-            (ctxt->str_xml_ns == NULL)) {
+        (ctxt->str_xml_ns == NULL)) {
         xmlErrMemory(ctxt, NULL);
     }
 }
@@ -1450,7 +1444,7 @@
     if (((cur[0] == 'i') && (cur[1] == '-')) ||
         ((cur[0] == 'I') && (cur[1] == '-')) ||
         ((cur[0] == 'x') && (cur[1] == '-')) ||
-               ((cur[0] == 'X') && (cur[1] == '-'))) {
+        ((cur[0] == 'X') && (cur[1] == '-'))) {
         /*
          * Still allow IANA code and user code which were coming
          * from the previous version of the XML-1.0 specification
@@ -1583,7 +1577,7 @@
  ************************************************************************/
 
 static xmlEntityPtr xmlParseStringEntityRef(xmlParserCtxtPtr ctxt,
-                                     const xmlChar ** str);
+                                            const xmlChar ** str);
 
 #ifdef SAX2
 /**
@@ -2055,10 +2049,10 @@
 #define SKIPL(val) do {                         \
     int skipl;                              \
     for(skipl=0; skipl<val; skipl++) {                  \
-        if (*(ctxt->input->cur) == '\n') {              \
+    if (*(ctxt->input->cur) == '\n') {              \
     ctxt->input->line++; ctxt->input->col = 1;          \
-        } else ctxt->input->col++;                  \
-        ctxt->nbChars++;                        \
+    } else ctxt->input->col++;                  \
+    ctxt->nbChars++;                        \
     ctxt->input->cur++;                     \
     }                                   \
     if (*ctxt->input->cur == 0)                     \
@@ -2086,7 +2080,8 @@
 
     if (((curEnd > (unsigned long) XML_MAX_LOOKUP_LIMIT) ||
          (curBase > (unsigned long) XML_MAX_LOOKUP_LIMIT)) &&
-         ((ctxt->input->buf) && (ctxt->input->buf->readcallback != (xmlInputReadCallback) xmlNop)) &&
+         ((ctxt->input->buf) &&
+          (ctxt->input->buf->readcallback != xmlInputReadCallbackNop)) &&
         ((ctxt->options & XML_PARSE_HUGE) == 0)) {
         xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup");
         xmlHaltParser(ctxt);
@@ -2100,7 +2095,7 @@
     return;
     }
     if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0))
-    xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
 }
 
 #define SKIP_BLANKS xmlSkipBlankChars(ctxt)
@@ -2184,18 +2179,18 @@
             } else if (CUR == 0) {
                 if (ctxt->inputNr <= 1)
                     break;
-        xmlPopInput(ctxt);
+                xmlPopInput(ctxt);
             } else {
                 break;
-        }
-
-        /*
+            }
+
+            /*
              * Also increase the counter when entering or exiting a PERef.
              * The spec says: "When a parameter-entity reference is recognized
              * in the DTD and included, its replacement text MUST be enlarged
              * by the attachment of one leading and one following space (#x20)
              * character."
-         */
+             */
         res++;
         }
     }
@@ -2671,17 +2666,17 @@
         if (rep == NULL)
                     goto int_error;
 
-            current = rep;
-            while (*current != 0) { /* non input consuming loop */
-            buffer[nbchars++] = *current++;
+                current = rep;
+                while (*current != 0) { /* non input consuming loop */
+                    buffer[nbchars++] = *current++;
                     if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
                         if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-                goto int_error;
-                growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-            }
-            }
-            xmlFree(rep);
-            rep = NULL;
+                            goto int_error;
+                        growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+                    }
+                }
+                xmlFree(rep);
+                rep = NULL;
         } else if (ent != NULL) {
         int i = xmlStrlen(ent->name);
         const xmlChar *cur = ent->name;
@@ -2726,23 +2721,23 @@
         ctxt->depth--;
         if (rep == NULL)
                     goto int_error;
-            current = rep;
-            while (*current != 0) { /* non input consuming loop */
-            buffer[nbchars++] = *current++;
+                current = rep;
+                while (*current != 0) { /* non input consuming loop */
+                    buffer[nbchars++] = *current++;
                     if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
                         if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
-                    goto int_error;
-                growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
-            }
-            }
-            xmlFree(rep);
-            rep = NULL;
+                            goto int_error;
+                        growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+                    }
+                }
+                xmlFree(rep);
+                rep = NULL;
         }
     } else {
         COPY_BUF(l,buffer,nbchars,c);
         str += l;
         if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
-          growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+            growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
         }
     }
     if (str < last)
@@ -3375,9 +3370,9 @@
          */
         ctxt->input->cur -= l;
         GROW;
-        ctxt->input->cur += l;
             if (ctxt->instate == XML_PARSER_EOF)
                 return(NULL);
+        ctxt->input->cur += l;
         c = CUR_CHAR(l);
     }
     }
@@ -3420,13 +3415,13 @@
     in = ctxt->input->cur;
     e = ctxt->input->end;
     if ((((*in >= 0x61) && (*in <= 0x7A)) ||
-    ((*in >= 0x41) && (*in <= 0x5A)) ||
+     ((*in >= 0x41) && (*in <= 0x5A)) ||
      (*in == '_')) && (in < e)) {
     in++;
     while ((((*in >= 0x61) && (*in <= 0x7A)) ||
-           ((*in >= 0x41) && (*in <= 0x5A)) ||
-           ((*in >= 0x30) && (*in <= 0x39)) ||
-           (*in == '_') || (*in == '-') ||
+            ((*in >= 0x41) && (*in <= 0x5A)) ||
+            ((*in >= 0x30) && (*in <= 0x39)) ||
+            (*in == '_') || (*in == '-') ||
             (*in == '.')) && (in < e))
         in++;
     if (in >= e)
@@ -3823,7 +3818,7 @@
      */
     ++ctxt->depth;
     ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
-                      0, 0, 0);
+                                  0, 0, 0);
     --ctxt->depth;
     if (orig != NULL) {
         *orig = buf;
@@ -3964,7 +3959,7 @@
                                     buf[len++] = 0x20;
                                     current++;
                                 } else
-                buf[len++] = *current++;
+                                    buf[len++] = *current++;
                 if (len + 10 > buf_size) {
                     growBuffer(buf, 10);
                 }
@@ -4004,7 +3999,7 @@
                 rep = NULL;
             } else {
                             ent->content[0] = 0;
-            }
+                        }
             }
 
             /*
@@ -5135,7 +5130,7 @@
             ctxt->sax->processingInstruction(ctxt->userData,
                                              target, NULL);
         if (ctxt->instate != XML_PARSER_EOF)
-        ctxt->instate = state;
+            ctxt->instate = state;
         return;
         }
         buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
@@ -5235,7 +5230,7 @@
         xmlFatalErr(ctxt, XML_ERR_PI_NOT_STARTED, NULL);
     }
     if (ctxt->instate != XML_PARSER_EOF)
-    ctxt->instate = state;
+        ctxt->instate = state;
     }
 }
 
@@ -5564,7 +5559,7 @@
         }
         }
             if ((cur != NULL) && (cur->orig == NULL)) {
-            cur->orig = orig;
+        cur->orig = orig;
                 orig = NULL;
         }
     }
@@ -6097,7 +6092,7 @@
             cur->c2->parent = cur;
             }
             if (ret != NULL)
-        ret->ocur = XML_ELEMENT_CONTENT_MULT;
+                ret->ocur = XML_ELEMENT_CONTENT_MULT;
         if (ctxt->input->id != inputchk) {
         xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
                                "Element content declaration doesn't start and"
@@ -7194,6 +7189,8 @@
            (ret != XML_WAR_UNDECLARED_ENTITY)) {
         xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
              "Entity '%s' failed to parse\n", ent->name);
+            if (ent->content != NULL)
+                ent->content[0] = 0;
         xmlParserEntityCheck(ctxt, 0, ent, 0);
     } else if (list != NULL) {
         xmlFreeNodeList(list);
@@ -7475,9 +7472,9 @@
      * Predefined entities override any extra definition
      */
     if ((ctxt->options & XML_PARSE_OLDSAX) == 0) {
-    ent = xmlGetPredefinedEntity(name);
-    if (ent != NULL)
-        return(ent);
+        ent = xmlGetPredefinedEntity(name);
+        if (ent != NULL)
+            return(ent);
     }
 
     /*
@@ -7573,9 +7570,9 @@
          (ent->etype != XML_INTERNAL_PREDEFINED_ENTITY)) {
     if (((ent->checked & 1) || (ent->checked == 0)) &&
          (ent->content != NULL) && (xmlStrchr(ent->content, '<'))) {
-    xmlFatalErrMsgStr(ctxt, XML_ERR_LT_IN_ATTRIBUTE,
+        xmlFatalErrMsgStr(ctxt, XML_ERR_LT_IN_ATTRIBUTE,
     "'<' in entity '%s' is not allowed in attributes values\n", name);
-    }
+        }
     }
 
     /*
@@ -7669,12 +7666,12 @@
      * Predefined entities override any extra definition
      */
     if ((ctxt->options & XML_PARSE_OLDSAX) == 0) {
-    ent = xmlGetPredefinedEntity(name);
-    if (ent != NULL) {
-        xmlFree(name);
-        *str = ptr;
-        return(ent);
-    }
+        ent = xmlGetPredefinedEntity(name);
+        if (ent != NULL) {
+            xmlFree(name);
+            *str = ptr;
+            return(ent);
+        }
     }
 
     /*
@@ -7894,10 +7891,10 @@
                                  "PEReference: %%%s; not found\n",
                                  name, NULL);
             } else
-        xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
-              "PEReference: %%%s; not found\n",
-              name, NULL);
-        ctxt->valid = 0;
+                xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
+                              "PEReference: %%%s; not found\n",
+                              name, NULL);
+            ctxt->valid = 0;
     }
     xmlParserEntityCheck(ctxt, 0, NULL, 0);
     } else {
@@ -7929,7 +7926,7 @@
             }
 
         if (entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) {
-            /*
+                /*
                  * Get the 4 first bytes and decode the charset
                  * if enc != XML_CHAR_ENCODING_NONE
                  * plug some encoding conversion routines.
@@ -7937,10 +7934,10 @@
                  * encoding (like UTF16, bug 135229), the 'length'
                  * is not known, but we can calculate based upon
                  * the amount of data in the buffer.
-             */
+                 */
                 GROW
                 if (ctxt->instate == XML_PARSER_EOF)
-            return;
+                    return;
                 if ((ctxt->input->end - ctxt->input->cur)>=4) {
                     start[0] = RAW;
                     start[1] = NXT(1);
@@ -7955,8 +7952,8 @@
                 if ((CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) &&
                     (IS_BLANK_CH(NXT(5)))) {
                     xmlParseTextDecl(ctxt);
-        }
-        }
+                }
+            }
     }
     }
     ctxt->hasPErefs = 1;
@@ -8294,7 +8291,7 @@
                 if (ctxt->inputNr > baseInputNr)
                     xmlPopInput(ctxt);
                 else
-        break;
+            break;
         }
     }
     if (RAW == ']') {
@@ -8784,7 +8781,7 @@
 
     cmp = prefix;
     while (*in != 0 && *in == *cmp) {
-        ++in;
+    ++in;
     ++cmp;
     }
     if ((*cmp == 0) && (*in == ':')) {
@@ -8968,8 +8965,8 @@
                     xmlFatalErrMsg(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
                                    "AttValue length too long\n");
                     return(NULL);
-        }
-    }
+                }
+        }
     }
         if (((in - start) > XML_MAX_TEXT_LENGTH) &&
             ((ctxt->options & XML_PARSE_HUGE) == 0)) {
@@ -9071,7 +9068,7 @@
         int type;
 
         type = (int) (ptrdiff_t) xmlHashQLookup2(ctxt->attsSpecial,
-                                            pref, elem, *prefix, name);
+                                                 pref, elem, *prefix, name);
         if (type != 0)
             normalize = 1;
     }
@@ -9240,11 +9237,11 @@
                                  &aprefix, &attvalue, &len, &alloc);
         if ((attname == NULL) || (attvalue == NULL))
             goto next_attr;
-        if (len < 0) len = xmlStrlen(attvalue);
-
-            if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
+    if (len < 0) len = xmlStrlen(attvalue);
+
+        if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
             const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
-        xmlURIPtr uri;
+            xmlURIPtr uri;
 
             if (URL == NULL) {
                 xmlErrMemory(ctxt, "dictionary allocation failure");
@@ -9252,131 +9249,131 @@
                     xmlFree(attvalue);
                 return(NULL);
             }
-                if (*URL != 0) {
-            uri = xmlParseURI((const char *) URL);
-            if (uri == NULL) {
-            xmlNsErr(ctxt, XML_WAR_NS_URI,
-                     "xmlns: '%s' is not a valid URI\n",
-                       URL, NULL, NULL);
-            } else {
-            if (uri->scheme == NULL) {
-                xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
-                      "xmlns: URI %s is not absolute\n",
-                      URL, NULL, NULL);
-            }
-            xmlFreeURI(uri);
-            }
-            if (URL == ctxt->str_xml_ns) {
-            if (attname != ctxt->str_xml) {
-                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-             "xml namespace URI cannot be the default namespace\n",
-                     NULL, NULL, NULL);
-            }
+            if (*URL != 0) {
+                uri = xmlParseURI((const char *) URL);
+                if (uri == NULL) {
+                    xmlNsErr(ctxt, XML_WAR_NS_URI,
+                             "xmlns: '%s' is not a valid URI\n",
+                                       URL, NULL, NULL);
+                } else {
+                    if (uri->scheme == NULL) {
+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+                                  "xmlns: URI %s is not absolute\n",
+                                  URL, NULL, NULL);
+                    }
+                    xmlFreeURI(uri);
+                }
+                if (URL == ctxt->str_xml_ns) {
+                    if (attname != ctxt->str_xml) {
+                        xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                     "xml namespace URI cannot be the default namespace\n",
+                                 NULL, NULL, NULL);
+                    }
                     goto next_attr;
-            }
-            if ((len == 29) &&
-            (xmlStrEqual(URL,
-                 BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
-            xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                 "reuse of the xmlns namespace name is forbidden\n",
-                 NULL, NULL, NULL);
+                }
+                if ((len == 29) &&
+                    (xmlStrEqual(URL,
+                             BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "reuse of the xmlns namespace name is forbidden\n",
+                             NULL, NULL, NULL);
                     goto next_attr;
-            }
-        }
-        /*
-         * check that it's not a defined namespace
-         */
-        for (j = 1;j <= nbNs;j++)
-            if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
-            break;
-        if (j <= nbNs)
-            xmlErrAttributeDup(ctxt, NULL, attname);
-        else
-            if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
+                }
+            }
+            /*
+             * check that it's not a defined namespace
+             */
+            for (j = 1;j <= nbNs;j++)
+                if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
+                    break;
+            if (j <= nbNs)
+                xmlErrAttributeDup(ctxt, NULL, attname);
+            else
+                if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
 
         } else if (aprefix == ctxt->str_xmlns) {
             const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
-        xmlURIPtr uri;
-
-                if (attname == ctxt->str_xml) {
-            if (URL != ctxt->str_xml_ns) {
+            xmlURIPtr uri;
+
+            if (attname == ctxt->str_xml) {
+                if (URL != ctxt->str_xml_ns) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                             "xml namespace prefix mapped to wrong URI\n",
+                             NULL, NULL, NULL);
+                }
+                /*
+                 * Do not keep a namespace definition node
+                 */
+                goto next_attr;
+            }
+            if (URL == ctxt->str_xml_ns) {
+                if (attname != ctxt->str_xml) {
+                    xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                             "xml namespace URI mapped to wrong prefix\n",
+                             NULL, NULL, NULL);
+                }
+                goto next_attr;
+            }
+            if (attname == ctxt->str_xmlns) {
                 xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                     "xml namespace prefix mapped to wrong URI\n",
-                     NULL, NULL, NULL);
-            }
+                         "redefinition of the xmlns prefix is forbidden\n",
+                         NULL, NULL, NULL);
+                goto next_attr;
+            }
+            if ((len == 29) &&
+                (xmlStrEqual(URL,
+                             BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "reuse of the xmlns namespace name is forbidden\n",
+                         NULL, NULL, NULL);
+                goto next_attr;
+            }
+            if ((URL == NULL) || (URL[0] == 0)) {
+                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+                         "xmlns:%s: Empty XML namespace is not allowed\n",
+                              attname, NULL, NULL);
+                goto next_attr;
+            } else {
+                uri = xmlParseURI((const char *) URL);
+                if (uri == NULL) {
+                    xmlNsErr(ctxt, XML_WAR_NS_URI,
+                         "xmlns:%s: '%s' is not a valid URI\n",
+                                       attname, URL, NULL);
+                } else {
+                    if ((ctxt->pedantic) && (uri->scheme == NULL)) {
+                        xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+                                  "xmlns:%s: URI %s is not absolute\n",
+                                  attname, URL, NULL);
+                    }
+                    xmlFreeURI(uri);
+                }
+            }
+
             /*
-             * Do not keep a namespace definition node
+             * check that it's not a defined namespace
              */
-                goto next_attr;
-        }
-                if (URL == ctxt->str_xml_ns) {
-            if (attname != ctxt->str_xml) {
-                xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                     "xml namespace URI mapped to wrong prefix\n",
-                     NULL, NULL, NULL);
-            }
-                goto next_attr;
-        }
-                if (attname == ctxt->str_xmlns) {
-            xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                 "redefinition of the xmlns prefix is forbidden\n",
-                 NULL, NULL, NULL);
-                goto next_attr;
-        }
-        if ((len == 29) &&
-            (xmlStrEqual(URL,
-                         BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
-            xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                 "reuse of the xmlns namespace name is forbidden\n",
-                 NULL, NULL, NULL);
-                goto next_attr;
-        }
-        if ((URL == NULL) || (URL[0] == 0)) {
-            xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
-                     "xmlns:%s: Empty XML namespace is not allowed\n",
-                      attname, NULL, NULL);
-                goto next_attr;
+            for (j = 1;j <= nbNs;j++)
+                if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
+                    break;
+            if (j <= nbNs)
+                xmlErrAttributeDup(ctxt, aprefix, attname);
+            else
+                if (nsPush(ctxt, attname, URL) > 0) nbNs++;
+
         } else {
-            uri = xmlParseURI((const char *) URL);
-            if (uri == NULL) {
-            xmlNsErr(ctxt, XML_WAR_NS_URI,
-                 "xmlns:%s: '%s' is not a valid URI\n",
-                       attname, URL, NULL);
-            } else {
-            if ((ctxt->pedantic) && (uri->scheme == NULL)) {
-                xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
-                      "xmlns:%s: URI %s is not absolute\n",
-                      attname, URL, NULL);
-            }
-            xmlFreeURI(uri);
-            }
-        }
-
-        /*
-         * check that it's not a defined namespace
-         */
-        for (j = 1;j <= nbNs;j++)
-            if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
-            break;
-        if (j <= nbNs)
-            xmlErrAttributeDup(ctxt, aprefix, attname);
-        else
-            if (nsPush(ctxt, attname, URL) > 0) nbNs++;
-
-        } else {
-        /*
-         * Add the pair to atts
-         */
-        if ((atts == NULL) || (nbatts + 5 > maxatts)) {
-            if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
+            /*
+             * Add the pair to atts
+             */
+            if ((atts == NULL) || (nbatts + 5 > maxatts)) {
+                if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
                     goto next_attr;
-        }
-            maxatts = ctxt->maxatts;
-        atts = ctxt->atts;
-        }
-        ctxt->attallocs[nratts++] = alloc;
-        atts[nbatts++] = attname;
-        atts[nbatts++] = aprefix;
+                }
+                maxatts = ctxt->maxatts;
+                atts = ctxt->atts;
+            }
+            ctxt->attallocs[nratts++] = alloc;
+            atts[nbatts++] = attname;
+            atts[nbatts++] = aprefix;
             /*
              * The namespace URI field is used temporarily to point at the
              * base of the current input buffer for non-alloced attributes.
@@ -9387,15 +9384,15 @@
                 atts[nbatts++] = NULL;
             else
                 atts[nbatts++] = ctxt->input->base;
-        atts[nbatts++] = attvalue;
-        attvalue += len;
-        atts[nbatts++] = attvalue;
-        /*
-         * tag if some deallocation is needed
-         */
-        if (alloc != 0) attval = 1;
+            atts[nbatts++] = attvalue;
+            attvalue += len;
+            atts[nbatts++] = attvalue;
+            /*
+             * tag if some deallocation is needed
+             */
+            if (alloc != 0) attval = 1;
             attvalue = NULL; /* moved into atts */
-    }
+        }
 
 next_attr:
         if ((attvalue != NULL) && (alloc != 0)) {
@@ -10552,7 +10549,7 @@
 xmlParseMisc(xmlParserCtxtPtr ctxt) {
     while ((ctxt->instate != XML_PARSER_EOF) &&
            (((RAW == '<') && (NXT(1) == '?')) ||
-           (CMP4(CUR_PTR, '<', '!', '-', '-')) ||
+            (CMP4(CUR_PTR, '<', '!', '-', '-')) ||
             IS_BLANK_CH(CUR))) {
         if ((RAW == '<') && (NXT(1) == '?')) {
         xmlParsePI(ctxt);
@@ -10633,7 +10630,7 @@
      * too small to hold "<?xml version="1.0" encoding="foo"
      */
     if ((ctxt->input->end - ctxt->input->cur) < 35) {
-    GROW;
+       GROW;
     }
     if ((CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) && (IS_BLANK_CH(NXT(5)))) {
 
@@ -11532,8 +11529,8 @@
         }
         if (ctxt->sax2) {
             xmlParseEndTag2(ctxt,
-                   (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
-                   (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
+                    (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
+                    (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
                     (int) (ptrdiff_t)
                                 ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
             nameNsPop(ctxt);
@@ -12221,6 +12218,7 @@
             /* TODO 2.6.0 */
             xmlGenericError(xmlGenericErrorContext,
                     "xmlParseChunk: encoder error\n");
+                    xmlHaltParser(ctxt);
             return(XML_ERR_INVALID_ENCODING);
         }
         xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
@@ -12243,7 +12241,7 @@
             (xmlParseCheckTransition(ctxt,
                        (const char *)&ctxt->input->base[old_avail],
                                      avail - old_avail)))
-    xmlParseTryOrFinish(ctxt, terminate);
+            xmlParseTryOrFinish(ctxt, terminate);
     }
     if (ctxt->instate == XML_PARSER_EOF)
         return(ctxt->errNo);
@@ -12284,10 +12282,10 @@
     if (ctxt->input != NULL) {
         if (ctxt->input->buf == NULL)
         cur_avail = ctxt->input->length -
-            (ctxt->input->cur - ctxt->input->base);
+                (ctxt->input->cur - ctxt->input->base);
         else
         cur_avail = xmlBufUse(ctxt->input->buf->buffer) -
-            (ctxt->input->cur - ctxt->input->base);
+                          (ctxt->input->cur - ctxt->input->base);
     }
 
     if ((ctxt->instate != XML_PARSER_EOF) &&
@@ -12464,7 +12462,12 @@
         ctxt->input->free((xmlChar *) ctxt->input->base);
         ctxt->input->free = NULL;
     }
+        if (ctxt->input->buf != NULL) {
+            xmlFreeParserInputBuffer(ctxt->input->buf);
+            ctxt->input->buf = NULL;
+        }
     ctxt->input->cur = BAD_CAST"";
+        ctxt->input->length = 0;
     ctxt->input->base = ctxt->input->cur;
         ctxt->input->end = ctxt->input->cur;
     }
@@ -13223,7 +13226,7 @@
      * done when parsing that reference.
      */
     if (oldctxt != NULL)
-    oldctxt->nbentities += ctxt->nbentities;
+        oldctxt->nbentities += ctxt->nbentities;
 
     /*
      * Also record the size of the entity parsed
@@ -13241,9 +13244,9 @@
     if (sax != NULL)
     ctxt->sax = oldsax;
     if (oldctxt != NULL) {
-    oldctxt->node_seq.maximum = ctxt->node_seq.maximum;
-    oldctxt->node_seq.length = ctxt->node_seq.length;
-    oldctxt->node_seq.buffer = ctxt->node_seq.buffer;
+        oldctxt->node_seq.maximum = ctxt->node_seq.maximum;
+        oldctxt->node_seq.length = ctxt->node_seq.length;
+        oldctxt->node_seq.buffer = ctxt->node_seq.buffer;
     }
     ctxt->node_seq.maximum = 0;
     ctxt->node_seq.length = 0;
@@ -13369,6 +13372,7 @@
     ctxt->userData = ctxt;
     if (ctxt->dict != NULL) xmlDictFree(ctxt->dict);
     ctxt->dict = oldctxt->dict;
+    ctxt->input_id = oldctxt->input_id + 1;
     ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3);
     ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
     ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
@@ -13486,7 +13490,7 @@
      * done when parsing that reference.
      */
     if (oldctxt != NULL)
-    oldctxt->nbentities += ctxt->nbentities;
+        oldctxt->nbentities += ctxt->nbentities;
 
     /*
      * Also record the last error if any
@@ -13622,6 +13626,7 @@
     xmlDetectSAX2(ctxt);
     ctxt->myDoc = doc;
     /* parsing in context, i.e. as within existing content */
+    ctxt->input_id = 2;
     ctxt->instate = XML_PARSER_CONTENT;
 
     fake = xmlNewComment(NULL);
@@ -13834,6 +13839,7 @@
     newDoc->oldNs = doc->oldNs;
     }
     ctxt->instate = XML_PARSER_CONTENT;
+    ctxt->input_id = 2;
     ctxt->depth = depth;
 
     /*
@@ -13994,6 +14000,11 @@
     if (pctx != NULL) {
         ctxt->options = pctx->options;
         ctxt->_private = pctx->_private;
+    /*
+     * this is a subparser of pctx, so the input_id should be
+     * incremented to distinguish from main entity
+     */
+    ctxt->input_id = pctx->input_id + 1;
     }
 
     uri = xmlBuildURI(URL, base);
@@ -14875,7 +14886,7 @@
     xmlInitNodeInfoSeq(&ctxt->node_seq);
 
     if (ctxt->attsDefault != NULL) {
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+        xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
         ctxt->attsDefault = NULL;
     }
     if (ctxt->attsSpecial != NULL) {
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parserInternals.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/parserInternals.c	Wed Jan 09 11:40:12 2019 +0530
@@ -32,7 +32,7 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
 #include <zlib.h>
 #endif
 
@@ -433,94 +433,94 @@
     return;
     }
 
-        if ((*ctxt->input->cur == 0) &&
+    if ((*ctxt->input->cur == 0) &&
         (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
         return;
     }
 
     if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
-            const unsigned char *cur;
-            unsigned char c;
+        const unsigned char *cur;
+        unsigned char c;
 
-            /*
-             *   2.11 End-of-Line Handling
-             *   the literal two-character sequence "#xD#xA" or a standalone
-             *   literal #xD, an XML processor must pass to the application
-             *   the single character #xA.
-             */
-            if (*(ctxt->input->cur) == '\n') {
-                ctxt->input->line++; ctxt->input->col = 1;
-            } else
-                ctxt->input->col++;
+        /*
+         *   2.11 End-of-Line Handling
+         *   the literal two-character sequence "#xD#xA" or a standalone
+         *   literal #xD, an XML processor must pass to the application
+         *   the single character #xA.
+         */
+        if (*(ctxt->input->cur) == '\n') {
+            ctxt->input->line++; ctxt->input->col = 1;
+        } else
+            ctxt->input->col++;
 
-            /*
-             * We are supposed to handle UTF8, check it's valid
-             * From rfc2044: encoding of the Unicode values on UTF-8:
-             *
-             * UCS-4 range (hex.)           UTF-8 octet sequence (binary)
-             * 0000 0000-0000 007F   0xxxxxxx
-             * 0000 0080-0000 07FF   110xxxxx 10xxxxxx
-             * 0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
-             *
-             * Check for the 0x110000 limit too
-             */
-            cur = ctxt->input->cur;
+        /*
+         * We are supposed to handle UTF8, check it's valid
+         * From rfc2044: encoding of the Unicode values on UTF-8:
+         *
+         * UCS-4 range (hex.)           UTF-8 octet sequence (binary)
+         * 0000 0000-0000 007F   0xxxxxxx
+         * 0000 0080-0000 07FF   110xxxxx 10xxxxxx
+         * 0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
+         *
+         * Check for the 0x110000 limit too
+         */
+        cur = ctxt->input->cur;
 
-            c = *cur;
-            if (c & 0x80) {
+        c = *cur;
+        if (c & 0x80) {
             if (c == 0xC0)
             goto encoding_error;
             if (cur[1] == 0) {
-                    xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+                xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
                 cur = ctxt->input->cur;
             }
-                if ((cur[1] & 0xc0) != 0x80)
-                    goto encoding_error;
-                if ((c & 0xe0) == 0xe0) {
-                    unsigned int val;
+            if ((cur[1] & 0xc0) != 0x80)
+                goto encoding_error;
+            if ((c & 0xe0) == 0xe0) {
+                unsigned int val;
 
                 if (cur[2] == 0) {
-                        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+                    xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
                     cur = ctxt->input->cur;
                 }
-                    if ((cur[2] & 0xc0) != 0x80)
-                        goto encoding_error;
-                    if ((c & 0xf0) == 0xf0) {
+                if ((cur[2] & 0xc0) != 0x80)
+                    goto encoding_error;
+                if ((c & 0xf0) == 0xf0) {
                     if (cur[3] == 0) {
-                            xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+                        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
                         cur = ctxt->input->cur;
                     }
-                        if (((c & 0xf8) != 0xf0) ||
-                            ((cur[3] & 0xc0) != 0x80))
-                            goto encoding_error;
-                        /* 4-byte code */
-                        ctxt->input->cur += 4;
-                        val = (cur[0] & 0x7) << 18;
-                        val |= (cur[1] & 0x3f) << 12;
-                        val |= (cur[2] & 0x3f) << 6;
-                        val |= cur[3] & 0x3f;
-                    } else {
-                        /* 3-byte code */
-                        ctxt->input->cur += 3;
-                        val = (cur[0] & 0xf) << 12;
-                        val |= (cur[1] & 0x3f) << 6;
-                        val |= cur[2] & 0x3f;
-                    }
-                    if (((val > 0xd7ff) && (val < 0xe000)) ||
-                        ((val > 0xfffd) && (val < 0x10000)) ||
-                        (val >= 0x110000)) {
-            xmlErrEncodingInt(ctxt, XML_ERR_INVALID_CHAR,
-                      "Char 0x%X out of allowed range\n",
-                      val);
-                    }
-                } else
-                    /* 2-byte code */
-                    ctxt->input->cur += 2;
+                    if (((c & 0xf8) != 0xf0) ||
+                        ((cur[3] & 0xc0) != 0x80))
+                        goto encoding_error;
+                    /* 4-byte code */
+                    ctxt->input->cur += 4;
+                    val = (cur[0] & 0x7) << 18;
+                    val |= (cur[1] & 0x3f) << 12;
+                    val |= (cur[2] & 0x3f) << 6;
+                    val |= cur[3] & 0x3f;
+                } else {
+                    /* 3-byte code */
+                    ctxt->input->cur += 3;
+                    val = (cur[0] & 0xf) << 12;
+                    val |= (cur[1] & 0x3f) << 6;
+                    val |= cur[2] & 0x3f;
+                }
+                if (((val > 0xd7ff) && (val < 0xe000)) ||
+                    ((val > 0xfffd) && (val < 0x10000)) ||
+                    (val >= 0x110000)) {
+        xmlErrEncodingInt(ctxt, XML_ERR_INVALID_CHAR,
+                  "Char 0x%X out of allowed range\n",
+                  val);
+                }
             } else
-                /* 1-byte code */
-                ctxt->input->cur++;
+                /* 2-byte code */
+                ctxt->input->cur += 2;
+        } else
+            /* 1-byte code */
+            ctxt->input->cur++;
 
-            ctxt->nbChars++;
+        ctxt->nbChars++;
     } else {
         /*
          * Assume it's a fixed length encoding (1) with
@@ -535,8 +535,8 @@
         ctxt->input->cur++;
         ctxt->nbChars++;
     }
-        if (*ctxt->input->cur == 0)
-            xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+    if (*ctxt->input->cur == 0)
+        xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
     return;
 encoding_error:
     /*
@@ -1004,7 +1004,7 @@
     case XML_CHAR_ENCODING_SHIFT_JIS:
     case XML_CHAR_ENCODING_EUC_JP:
         len = 45;
-        break;
+    break;
     }
     handler = xmlGetCharEncodingHandler(enc);
     if (handler == NULL) {
@@ -1240,8 +1240,18 @@
      * size to be able to convert the buffer.
      */
     xmlErrInternal(ctxt, "switching encoding : no input\n", NULL);
+        /*
+         * Callers assume that the input buffer takes ownership of the
+         * encoding handler. xmlCharEncCloseFunc frees unregistered
+         * handlers and avoids a memory leak.
+         */
+        xmlCharEncCloseFunc(handler);
     return (-1);
     }
+    /*
+     * We should actually raise an error here, see issue #34.
+     */
+    xmlCharEncCloseFunc(handler);
     return (0);
 }
 
@@ -1795,7 +1805,7 @@
     if (ctxt->pushTab != NULL) xmlFree(ctxt->pushTab);
     if (ctxt->attallocs != NULL) xmlFree(ctxt->attallocs);
     if (ctxt->attsDefault != NULL)
-        xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+        xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
     if (ctxt->attsSpecial != NULL)
         xmlHashFree(ctxt->attsSpecial, NULL);
     if (ctxt->freeElems != NULL) {
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/pattern.c	Mon Jan 07 13:07:08 2019 -0800
+++ b/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/pattern.c	Wed Jan 09 11:40:12 2019 +0530
@@ -162,7 +162,7 @@
 #define PAT_FROM_CUR    (1<<9)
 
 struct _xmlPattern {
-    void *data;         /* the associated template */
+    void *data;     /* the associated template */
     xmlDictPtr dict;        /* the optional dictionary */
     struct _xmlPattern *next;   /* next pattern if | is used */
     const xmlChar *pattern; /* the pattern */
@@ -719,14 +719,14 @@
 #define PEEKPREV(val) ctxt->cur[-(val)]
 #define CUR_PTR ctxt->cur
 
-#define SKIP_BLANKS                             \
+#define SKIP_BLANKS                         \
     while (IS_BLANK_CH(CUR)) NEXT
 
 #define CURRENT (*ctxt->cur)
 #define NEXT ((*ctxt->cur) ?  ctxt->cur++: ctxt->cur)
 
 
-#define PUSH(op, val, val2)                         \
+#define PUSH(op, val, val2)                     \
     if (xmlPatternAdd(ctxt, ctxt->comp, (op), (val), (val2))) goto error;
 
 #define XSLT_ERROR(X)                           \
@@ -1932,7 +1932,7 @@
         /*
         * Skip blocked expressions.
         */
-            stream->level++;
+        stream->level++;
         goto stream_next;
     }
 
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/regressions.py	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-#!/usr/bin/python -u
-import glob, os, string, sys, thread, time
-# import difflib
-import libxml2
-
-###
-#
-# This is a "Work in Progress" attempt at a python script to run the
-# various regression tests.  The rationale for this is that it should be
-# possible to run this on most major platforms, including those (such as
-# Windows) which don't support gnu Make.
-#
-# The script is driven by a parameter file which defines the various tests
-# to be run, together with the unique settings for each of these tests.  A
-# script for Linux is included (regressions.xml), with comments indicating
-# the significance of the various parameters.  To run the tests under Windows,
-# edit regressions.xml and remove the comment around the default parameter
-# "<execpath>" (i.e. make it point to the location of the binary executables).
-#
-# Note that this current version requires the Python bindings for libxml2 to
-# have been previously installed and accessible
-#
-# See Copyright for the status of this software.
-# William Brack (wbrack@mmm.com.hk)
-#
-###
-defaultParams = {}	# will be used as a dictionary to hold the parsed params
-
-# This routine is used for comparing the expected stdout / stdin with the results.
-# The expected data has already been read in; the result is a file descriptor.
-# Within the two sets of data, lines may begin with a path string.  If so, the
-# code "relativises" it by removing the path component.  The first argument is a
-# list already read in by a separate thread; the second is a file descriptor.
-# The two 'base' arguments are to let me "relativise" the results files, allowing
-# the script to be run from any directory.
-def compFiles(res, expected, base1, base2):
-    l1 = len(base1)
-    exp = expected.readlines()
-    expected.close()
-    # the "relativisation" is done here
-    for i in range(len(res)):
-        j = string.find(res[i],base1)
-        if (j == 0) or ((j == 2) and (res[i][0:2] == './')):
-            col = string.find(res[i],':')
-            if col > 0:
-                start = string.rfind(res[i][:col], '/')
-                if start > 0:
-                    res[i] = res[i][start+1:]
-
-    for i in range(len(exp)):
-        j = string.find(exp[i],base2)
-        if (j == 0) or ((j == 2) and (exp[i][0:2] == './')):
-            col = string.find(exp[i],':')
-            if col > 0:
-                start = string.rfind(exp[i][:col], '/')
-                if start > 0:
-                    exp[i] = exp[i][start+1:]
-
-    ret = 0
-    # ideally we would like to use difflib functions here to do a
-    # nice comparison of the two sets.  Unfortunately, during testing
-    # (using python 2.3.3 and 2.3.4) the following code went into
-    # a dead loop under windows.  I'll pursue this later.
-#    diff = difflib.ndiff(res, exp)
-#    diff = list(diff)
-#    for line in diff:
-#        if line[:2] != '  ':
-#            print string.strip(line)
-#            ret = -1
-
-    # the following simple compare is fine for when the two data sets
-    # (actual result vs. expected result) are equal, which should be true for
-    # us.  Unfortunately, if the test fails it's not nice at all.
-    rl = len(res)
-    el = len(exp)
-    if el != rl:
-        print 'Length of expected is %d, result is %d' % (el, rl)
-	ret = -1
-    for i in range(min(el, rl)):
-        if string.strip(res[i]) != string.strip(exp[i]):
-            print '+:%s-:%s' % (res[i], exp[i])
-            ret = -1
-    if el > rl:
-        for i in range(rl, el):
-            print '-:%s' % exp[i]
-            ret = -1
-    elif rl > el:
-        for i in range (el, rl):
-            print '+:%s' % res[i]
-            ret = -1
-    return ret
-
-# Separate threads to handle stdout and stderr are created to run this function
-def readPfile(file, list, flag):
-    data = file.readlines()	# no call by reference, so I cheat
-    for l in data:
-        list.append(l)
-    file.close()
-    flag.append('ok')
-
-# This routine runs the test program (e.g. xmllint)
-def runOneTest(testDescription, filename, inbase, errbase):
-    if 'execpath' in testDescription:
-        dir = testDescription['execpath'] + '/'
-    else:
-        dir = ''
-    cmd = os.path.abspath(dir + testDescription['testprog'])
-    if 'flag' in testDescription:
-        for f in string.split(testDescription['flag']):
-            cmd += ' ' + f
-    if 'stdin' not in testDescription:
-        cmd += ' ' + inbase + filename
-    if 'extarg' in testDescription:
-        cmd += ' ' + testDescription['extarg']
-
-    noResult = 0
-    expout = None
-    if 'resext' in testDescription:
-        if testDescription['resext'] == 'None':
-            noResult = 1
-        else:
-            ext = '.' + testDescription['resext']
-    else:
-        ext = ''
-    if not noResult:
-        try:
-            fname = errbase + filename + ext
-            expout = open(fname, 'rt')
-        except:
-            print "Can't open result file %s - bypassing test" % fname
-            return
-
-    noErrors = 0
-    if 'reserrext' in testDescription:
-        if testDescription['reserrext'] == 'None':
-            noErrors = 1
-        else:
-            if len(testDescription['reserrext'])>0:
-                ext = '.' + testDescription['reserrext']
-            else:
-                ext = ''
-    else:
-        ext = ''
-    if not noErrors:
-        try:
-            fname = errbase + filename + ext
-            experr = open(fname, 'rt')
-        except:
-            experr = None
-    else:
-        experr = None
-
-    pin, pout, perr = os.popen3(cmd)
-    if 'stdin' in testDescription:
-        infile = open(inbase + filename, 'rt')
-        pin.writelines(infile.readlines())
-        infile.close()
-        pin.close()
-
-    # popen is great fun, but can lead to the old "deadly embrace", because
-    # synchronizing the writing (by the task being run) of stdout and stderr
-    # with respect to the reading (by this task) is basically impossible.  I
-    # tried several ways to cheat, but the only way I have found which works
-    # is to do a *very* elementary multi-threading approach.  We can only hope
-    # that Python threads are implemented on the target system (it's okay for
-    # Linux and Windows)
-
-    th1Flag = []	# flags to show when threads finish
-    th2Flag = []
-    outfile = []	# lists to contain the pipe data
-    errfile = []
-    th1 = thread.start_new_thread(readPfile, (pout, outfile, th1Flag))
-    th2 = thread.start_new_thread(readPfile, (perr, errfile, th2Flag))
-    while (len(th1Flag)==0) or (len(th2Flag)==0):
-        time.sleep(0.001)
-    if not noResult:
-        ret = compFiles(outfile, expout, inbase, 'test/')
-        if ret != 0:
-            print 'trouble with %s' % cmd
-    else:
-        if len(outfile) != 0:
-            for l in outfile:
-                print l
-            print 'trouble with %s' % cmd
-    if experr != None:
-        ret = compFiles(errfile, experr, inbase, 'test/')
-        if ret != 0:
-            print 'trouble with %s' % cmd
-    else:
-        if not noErrors:
-            if len(errfile) != 0:
-                for l in errfile:
-                    print l
-                print 'trouble with %s' % cmd
-
-    if 'stdin' not in testDescription:
-        pin.close()
-
-# This routine is called by the parameter decoding routine whenever the end of a
-# 'test' section is encountered.  Depending upon file globbing, a large number of
-# individual tests may be run.
-def runTest(description):
-    testDescription = defaultParams.copy()		# set defaults
-    testDescription.update(description)			# override with current ent
-    if 'testname' in testDescription:
-        print "## %s" % testDescription['testname']
-    if not 'file' in testDescription:
-        print "No file specified - can't run this test!"
-        return
-    # Set up the source and results directory paths from the decoded params
-    dir = ''
-    if 'srcdir' in testDescription:
-        dir += testDescription['srcdir'] + '/'
-    if 'srcsub' in testDescription:
-        dir += testDescription['srcsub'] + '/'
-
-    rdir = ''
-    if 'resdir' in testDescription:
-        rdir += testDescription['resdir'] + '/'
-    if 'ressub' in testDescription:
-        rdir += testDescription['ressub'] + '/'
-
-    testFiles = glob.glob(os.path.abspath(dir + testDescription['file']))
-    if testFiles == []:
-        print "No files result from '%s'" % testDescription['file']
-        return
-
-    # Some test programs just don't work (yet).  For now we exclude them.
-    count = 0
-    excl = []
-    if 'exclfile' in testDescription:
-        for f in string.split(testDescription['exclfile']):
-            glb = glob.glob(dir + f)
-            for g in glb:
-                excl.append(os.path.abspath(g))
-
-    # Run the specified test program
-    for f in testFiles:
-        if not os.path.isdir(f):
-            if f not in excl:
-                count = count + 1
-                runOneTest(testDescription, os.path.basename(f), dir, rdir)
-
-#
-# The following classes are used with the xmlreader interface to interpret the
-# parameter file.  Once a test section has been identified, runTest is called
-# with a dictionary containing the parsed results of the interpretation.
-#
-
-class testDefaults:
-    curText = ''	# accumulates text content of parameter
-
-    def addToDict(self, key):
-        txt = string.strip(self.curText)
-#        if txt == '':
-#            return
-        if key not in defaultParams:
-            defaultParams[key] = txt
-        else:
-            defaultParams[key] += ' ' + txt
-        
-    def processNode(self, reader, curClass):
-        if reader.Depth() == 2:
-            if reader.NodeType() == 1:
-                self.curText = ''	# clear the working variable
-            elif reader.NodeType() == 15:
-                if (reader.Name() != '#text') and (reader.Name() != '#comment'):
-                    self.addToDict(reader.Name())
-        elif reader.Depth() == 3:
-            if reader.Name() == '#text':
-                self.curText += reader.Value()
-
-        elif reader.NodeType() == 15:	# end of element
-            print "Defaults have been set to:"
-            for k in defaultParams.keys():
-                print "   %s : '%s'" % (k, defaultParams[k])
-            curClass = rootClass()
-        return curClass
-
-
-class testClass:
-    def __init__(self):
-        self.testParams = {}	# start with an empty set of params
-        self.curText = ''	# and empty text
-
-    def addToDict(self, key):
-        data = string.strip(self.curText)
-        if key not in self.testParams:
-            self.testParams[key] = data
-        else:
-            if self.testParams[key] != '':
-                data = ' ' + data
-            self.testParams[key] += data
-
-    def processNode(self, reader, curClass):
-        if reader.Depth() == 2:
-            if reader.NodeType() == 1:
-                self.curText = ''	# clear the working variable
-                if reader.Name() not in self.testParams:
-                    self.testParams[reader.Name()] = ''
-            elif reader.NodeType() == 15:
-                if (reader.Name() != '#text') and (reader.Name() != '#comment'):
-                    self.addToDict(reader.Name())
-        elif reader.Depth() == 3:
-            if reader.Name() == '#text':
-                self.curText += reader.Value()
-
-        elif reader.NodeType() == 15:	# end of element
-            runTest(self.testParams)
-            curClass = rootClass()
-        return curClass
-
-
-class rootClass:
-    def processNode(self, reader, curClass):
-        if reader.Depth() == 0:
-            return curClass
-        if reader.Depth() != 1:
-            print "Unexpected junk: Level %d, type %d, name %s" % (
-                  reader.Depth(), reader.NodeType(), reader.Name())
-            return curClass
-        if reader.Name() == 'test':
-            curClass = testClass()
-            curClass.testParams = {}
-        elif reader.Name() == 'defaults':
-            curClass = testDefaults()
-        return curClass
-
-def streamFile(filename):
-    try:
-        reader = libxml2.newTextReaderFilename(filename)
-    except:
-        print "unable to open %s" % (filename)
-        return
-
-    curClass = rootClass()
-    ret = reader.Read()
-    while ret == 1:
-        curClass = curClass.processNode(reader, curClass)
-        ret = reader.Read()
-
-    if ret != 0:
-        print "%s : failed to parse" % (filename)
-
-# OK, we're finished with all the routines.  Now for the main program:-
-if len(sys.argv) != 2:
-    print "Usage: maketest {filename}"
-    sys.exit(-1)
-
-streamFile(sys.argv[1])
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/runsuite.c	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1172 +0,0 @@
-/*
- * runsuite.c: C program to run libxml2 againts published testsuites
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-#include "libxml.h"
-#include <stdio.h>
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
-#include <unistd.h>
-#endif
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#include <libxml/tree.h>
-#include <libxml/uri.h>
-#if defined(LIBXML_SCHEMAS_ENABLED) && defined(LIBXML_XPATH_ENABLED)
-#include <libxml/xmlreader.h>
-
-#include <libxml/xpath.h>
-#include <libxml/xpathInternals.h>
-
-#include <libxml/relaxng.h>
-#include <libxml/xmlschemas.h>
-#include <libxml/xmlschemastypes.h>
-
-#define LOGFILE "runsuite.log"
-static FILE *logfile = NULL;
-static int verbose = 0;
-
-
-/************************************************************************
- *                                  *
- *      File name and path utilities                *
- *                                  *
- ************************************************************************/
-
-static int checkTestFile(const char *filename) {
-    struct stat buf;
-
-    if (stat(filename, &buf) == -1)
-        return(0);
-
-#if defined(_WIN32) && !defined(__CYGWIN__)
-    if (!(buf.st_mode & _S_IFREG))
-        return(0);
-#else
-    if (!S_ISREG(buf.st_mode))
-        return(0);
-#endif
-
-    return(1);
-}
-
-static xmlChar *composeDir(const xmlChar *dir, const xmlChar *path) {
-    char buf[500];
-
-    if (dir == NULL) return(xmlStrdup(path));
-    if (path == NULL) return(NULL);
-
-    snprintf(buf, 500, "%s/%s", (const char *) dir, (const char *) path);
-    return(xmlStrdup((const xmlChar *) buf));
-}
-
-/************************************************************************
- *                                  *
- *      Libxml2 specific routines               *
- *                                  *
- ************************************************************************/
-
-static int nb_tests = 0;
-static int nb_errors = 0;
-static int nb_internals = 0;
-static int nb_schematas = 0;
-static int nb_unimplemented = 0;
-static int nb_leaks = 0;
-static int extraMemoryFromResolver = 0;
-
-static int
-fatalError(void) {
-    fprintf(stderr, "Exitting tests on fatal error\n");
-    exit(1);
-}
-
-/*
- * that's needed to implement <resource>
- */
-#define MAX_ENTITIES 20
-static char *testEntitiesName[MAX_ENTITIES];
-static char *testEntitiesValue[MAX_ENTITIES];
-static int nb_entities = 0;
-static void resetEntities(void) {
-    int i;
-
-    for (i = 0;i < nb_entities;i++) {
-        if (testEntitiesName[i] != NULL)
-        xmlFree(testEntitiesName[i]);
-        if (testEntitiesValue[i] != NULL)
-        xmlFree(testEntitiesValue[i]);
-    }
-    nb_entities = 0;
-}
-static int addEntity(char *name, char *content) {
-    if (nb_entities >= MAX_ENTITIES) {
-    fprintf(stderr, "Too many entities defined\n");
-    return(-1);
-    }
-    testEntitiesName[nb_entities] = name;
-    testEntitiesValue[nb_entities] = content;
-    nb_entities++;
-    return(0);
-}
-
-/*
- * We need to trap calls to the resolver to not account memory for the catalog
- * which is shared to the current running test. We also don't want to have
- * network downloads modifying tests.
- */
-static xmlParserInputPtr
-testExternalEntityLoader(const char *URL, const char *ID,
-             xmlParserCtxtPtr ctxt) {
-    xmlParserInputPtr ret;
-    int i;
-
-    for (i = 0;i < nb_entities;i++) {
-        if (!strcmp(testEntitiesName[i], URL)) {
-        ret = xmlNewStringInputStream(ctxt,
-                    (const xmlChar *) testEntitiesValue[i]);
-        if (ret != NULL) {
-            ret->filename = (const char *)
-                        xmlStrdup((xmlChar *)testEntitiesName[i]);
-        }
-        return(ret);
-    }
-    }
-    if (checkTestFile(URL)) {
-    ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
-    } else {
-    int memused = xmlMemUsed();
-    ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
-    extraMemoryFromResolver += xmlMemUsed() - memused;
-    }
-#if 0
-    if (ret == NULL) {
-        fprintf(stderr, "Failed to find resource %s\n", URL);
-    }
-#endif
-
-    return(ret);
-}
-
-/*
- * Trapping the error messages at the generic level to grab the equivalent of
- * stderr messages on CLI tools.
- */
-static char testErrors[32769];
-static int testErrorsSize = 0;
-
-static void test_log(const char *msg, ...) {
-    va_list args;
-    if (logfile != NULL) {
-        fprintf(logfile, "\n------------\n");
-    va_start(args, msg);
-    vfprintf(logfile, msg, args);
-    va_end(args);
-    fprintf(logfile, "%s", testErrors);
-    testErrorsSize = 0; testErrors[0] = 0;
-    }
-    if (verbose) {
-    va_start(args, msg);
-    vfprintf(stderr, msg, args);
-    va_end(args);
-    }
-}
-
-static void
-testErrorHandler(void *ctx  ATTRIBUTE_UNUSED, const char *msg, ...) {
-    va_list args;
-    int res;
-
-    if (testErrorsSize >= 32768)
-        return;
-    va_start(args, msg);
-    res = vsnprintf(&testErrors[testErrorsSize],
-                    32768 - testErrorsSize,
-            msg, args);
-    va_end(args);
-    if (testErrorsSize + res >= 32768) {
-        /* buffer is full */
-    testErrorsSize = 32768;
-    testErrors[testErrorsSize] = 0;
-    } else {
-        testErrorsSize += res;
-    }
-    testErrors[testErrorsSize] = 0;
-}
-
-static xmlXPathContextPtr ctxtXPath;
-
-static void
-initializeLibxml2(void) {
-    xmlGetWarningsDefaultValue = 0;
-    xmlPedanticParserDefault(0);
-
-    xmlMemSetup(xmlMemFree, xmlMemMalloc, xmlMemRealloc, xmlMemoryStrdup);
-    xmlInitParser();
-    xmlSetExternalEntityLoader(testExternalEntityLoader);
-    ctxtXPath = xmlXPathNewContext(NULL);
-    /*
-    * Deactivate the cache if created; otherwise we have to create/free it
-    * for every test, since it will confuse the memory leak detection.
-    * Note that normally this need not be done, since the cache is not
-    * created until set explicitely with xmlXPathContextSetCache();
-    * but for test purposes it is sometimes usefull to activate the
-    * cache by default for the whole library.
-    */
-    if (ctxtXPath->cache != NULL)
-    xmlXPathContextSetCache(ctxtXPath, 0, -1, 0);
-    /* used as default nanemspace in xstc tests */
-    xmlXPathRegisterNs(ctxtXPath, BAD_CAST "ts", BAD_CAST "TestSuite");
-    xmlXPathRegisterNs(ctxtXPath, BAD_CAST "xlink",
-                       BAD_CAST "http://www.w3.org/1999/xlink");
-    xmlSetGenericErrorFunc(NULL, testErrorHandler);
-#ifdef LIBXML_SCHEMAS_ENABLED
-    xmlSchemaInitTypes();
-    xmlRelaxNGInitTypes();
-#endif
-}
-
-static xmlNodePtr
-getNext(xmlNodePtr cur, const char *xpath) {
-    xmlNodePtr ret = NULL;
-    xmlXPathObjectPtr res;
-    xmlXPathCompExprPtr comp;
-
-    if ((cur == NULL)  || (cur->doc == NULL) || (xpath == NULL))
-        return(NULL);
-    ctxtXPath->doc = cur->doc;
-    ctxtXPath->node = cur;
-    comp = xmlXPathCompile(BAD_CAST xpath);
-    if (comp == NULL) {
-        fprintf(stderr, "Failed to compile %s\n", xpath);
-    return(NULL);
-    }
-    res = xmlXPathCompiledEval(comp, ctxtXPath);
-    xmlXPathFreeCompExpr(comp);
-    if (res == NULL)
-        return(NULL);
-    if ((res->type == XPATH_NODESET) &&
-        (res->nodesetval != NULL) &&
-    (res->nodesetval->nodeNr > 0) &&
-    (res->nodesetval->nodeTab != NULL))
-    ret = res->nodesetval->nodeTab[0];
-    xmlXPathFreeObject(res);
-    return(ret);
-}
-
-static xmlChar *
-getString(xmlNodePtr cur, const char *xpath) {
-    xmlChar *ret = NULL;
-    xmlXPathObjectPtr res;
-    xmlXPathCompExprPtr comp;
-
-    if ((cur == NULL)  || (cur->doc == NULL) || (xpath == NULL))
-        return(NULL);
-    ctxtXPath->doc = cur->doc;
-    ctxtXPath->node = cur;
-    comp = xmlXPathCompile(BAD_CAST xpath);
-    if (comp == NULL) {
-        fprintf(stderr, "Failed to compile %s\n", xpath);
-    return(NULL);
-    }
-    res = xmlXPathCompiledEval(comp, ctxtXPath);
-    xmlXPathFreeCompExpr(comp);
-    if (res == NULL)
-        return(NULL);
-    if (res->type == XPATH_STRING) {
-        ret = res->stringval;
-    res->stringval = NULL;
-    }
-    xmlXPathFreeObject(res);
-    return(ret);
-}
-
-/************************************************************************
- *                                  *
- *      Test test/xsdtest/xsdtestsuite.xml          *
- *                                  *
- ************************************************************************/
-
-static int
-xsdIncorectTestCase(xmlNodePtr cur) {
-    xmlNodePtr test;
-    xmlBufferPtr buf;
-    xmlRelaxNGParserCtxtPtr pctxt;
-    xmlRelaxNGPtr rng = NULL;
-    int ret = 0, memt;
-
-    cur = getNext(cur, "./incorrect[1]");
-    if (cur == NULL) {
-        return(0);
-    }
-
-    test = getNext(cur, "./*");
-    if (test == NULL) {
-        test_log("Failed to find test in correct line %ld\n",
-            xmlGetLineNo(cur));
-        return(1);
-    }
-
-    memt = xmlMemUsed();
-    extraMemoryFromResolver = 0;
-    /*
-     * dump the schemas to a buffer, then reparse it and compile the schemas
-     */
-    buf = xmlBufferCreate();
-    if (buf == NULL) {
-        fprintf(stderr, "out of memory !\n");
-    fatalError();
-    }
-    xmlNodeDump(buf, test->doc, test, 0, 0);
-    pctxt = xmlRelaxNGNewMemParserCtxt((const char *)buf->content, buf->use);
-    xmlRelaxNGSetParserErrors(pctxt,
-         (xmlRelaxNGValidityErrorFunc) testErrorHandler,
-         (xmlRelaxNGValidityWarningFunc) testErrorHandler,
-     pctxt);
-    rng = xmlRelaxNGParse(pctxt);
-    xmlRelaxNGFreeParserCtxt(pctxt);
-    if (rng != NULL) {
-    test_log("Failed to detect incorect RNG line %ld\n",
-            xmlGetLineNo(test));
-        ret = 1;
-    goto done;
-    }
-
-done:
-    if (buf != NULL)
-    xmlBufferFree(buf);
-    if (rng != NULL)
-        xmlRelaxNGFree(rng);
-    xmlResetLastError();
-    if ((memt < xmlMemUsed()) && (extraMemoryFromResolver == 0)) {
-    test_log("Validation of tests starting line %ld leaked %d\n",
-        xmlGetLineNo(cur), xmlMemUsed() - memt);
-    nb_leaks++;
-    }
-    return(ret);
-}
-
-static void
-installResources(xmlNodePtr tst, const xmlChar *base) {
-    xmlNodePtr test;
-    xmlBufferPtr buf;
-    xmlChar *name, *content, *res;
-
-    buf = xmlBufferCreate();
-    if (buf == NULL) {
-        fprintf(stderr, "out of memory !\n");
-    fatalError();
-    }
-    xmlNodeDump(buf, tst->doc, tst, 0, 0);
-
-    while (tst != NULL) {
-    test = getNext(tst, "./*");
-    if (test != NULL) {
-        xmlBufferEmpty(buf);
-        xmlNodeDump(buf, test->doc, test, 0, 0);
-        name = getString(tst, "string(@name)");
-        content = xmlStrdup(buf->content);
-        if ((name != NULL) && (content != NULL)) {
-            res = composeDir(base, name);
-        xmlFree(name);
-            addEntity((char *) res, (char *) content);
-        } else {
-            if (name != NULL) xmlFree(name);
-            if (content != NULL) xmlFree(content);
-        }
-    }
-    tst = getNext(tst, "following-sibling::resource[1]");
-    }
-    if (buf != NULL)
-    xmlBufferFree(buf);
-}
-
-static void
-installDirs(xmlNodePtr tst, const xmlChar *base) {
-    xmlNodePtr test;
-    xmlChar *name, *res;
-
-    name = getString(tst, "string(@name)");
-    if (name == NULL)
-        return;
-    res = composeDir(base, name);
-    xmlFree(name);
-    if (res == NULL) {
-    return;
-    }
-    /* Now process resources and subdir recursively */
-    test = getNext(tst, "./resource[1]");
-    if (test != NULL) {
-        installResources(test, res);
-    }
-    test = getNext(tst, "./dir[1]");
-    while (test != NULL) {
-        installDirs(test, res);
-    test = getNext(test, "following-sibling::dir[1]");
-    }
-    xmlFree(res);
-}
-
-static int
-xsdTestCase(xmlNodePtr tst) {
-    xmlNodePtr test, tmp, cur;
-    xmlBufferPtr buf;
-    xmlDocPtr doc = NULL;
-    xmlRelaxNGParserCtxtPtr pctxt;
-    xmlRelaxNGValidCtxtPtr ctxt;
-    xmlRelaxNGPtr rng = NULL;
-    int ret = 0, mem, memt;
-    xmlChar *dtd;
-
-    resetEntities();
-    testErrorsSize = 0; testErrors[0] = 0;
-
-    tmp = getNext(tst, "./dir[1]");
-    if (tmp != NULL) {
-        installDirs(tmp, NULL);
-    }
-    tmp = getNext(tst, "./resource[1]");
-    if (tmp != NULL) {
-        installResources(tmp, NULL);
-    }
-
-    cur = getNext(tst, "./correct[1]");
-    if (cur == NULL) {
-        return(xsdIncorectTestCase(tst));
-    }
-
-    test = getNext(cur, "./*");
-    if (test == NULL) {
-        fprintf(stderr, "Failed to find test in correct line %ld\n",
-            xmlGetLineNo(cur));
-        return(1);
-    }
-
-    memt = xmlMemUsed();
-    extraMemoryFromResolver = 0;
-    /*
-     * dump the schemas to a buffer, then reparse it and compile the schemas
-     */
-    buf = xmlBufferCreate();
-    if (buf == NULL) {
-        fprintf(stderr, "out of memory !\n");
-    fatalError();
-    }
-    xmlNodeDump(buf, test->doc, test, 0, 0);
-    pctxt = xmlRelaxNGNewMemParserCtxt((const char *)buf->content, buf->use);
-    xmlRelaxNGSetParserErrors(pctxt,
-         (xmlRelaxNGValidityErrorFunc) testErrorHandler,
-         (xmlRelaxNGValidityWarningFunc) testErrorHandler,
-     pctxt);
-    rng = xmlRelaxNGParse(pctxt);
-    xmlRelaxNGFreeParserCtxt(pctxt);
-    if (extraMemoryFromResolver)
-        memt = 0;
-
-    if (rng == NULL) {
-        test_log("Failed to parse RNGtest line %ld\n",
-            xmlGetLineNo(test));
-    nb_errors++;
-        ret = 1;
-    goto done;
-    }
-    /*
-     * now scan all the siblings of correct to process the <valid> tests
-     */
-    tmp = getNext(cur, "following-sibling::valid[1]");
-    while (tmp != NULL) {
-    dtd = xmlGetProp(tmp, BAD_CAST "dtd");
-    test = getNext(tmp, "./*");
-    if (test == NULL) {
-        fprintf(stderr, "Failed to find test in <valid> line %ld\n",
-            xmlGetLineNo(tmp));
-
-    } else {
-        xmlBufferEmpty(buf);
-        if (dtd != NULL)
-        xmlBufferAdd(buf, dtd, -1);
-        xmlNodeDump(buf, test->doc, test, 0, 0);
-
-        /*
-         * We are ready to run the test
-         */
-        mem = xmlMemUsed();
-        extraMemoryFromResolver = 0;
-            doc = xmlReadMemory((const char *)buf->content, buf->use,
-                            "test", NULL, 0);
-        if (doc == NULL) {
-        test_log("Failed to parse valid instance line %ld\n",
-            xmlGetLineNo(tmp));
-        nb_errors++;
-        } else {
-        nb_tests++;
-            ctxt = xmlRelaxNGNewValidCtxt(rng);
-        xmlRelaxNGSetValidErrors(ctxt,
-             (xmlRelaxNGValidityErrorFunc) testErrorHandler,
-             (xmlRelaxNGValidityWarningFunc) testErrorHandler,
-             ctxt);
-        ret = xmlRelaxNGValidateDoc(ctxt, doc);
-        xmlRelaxNGFreeValidCtxt(ctxt);
-        if (ret > 0) {
-            test_log("Failed to validate valid instance line %ld\n",
-                xmlGetLineNo(tmp));
-            nb_errors++;
-        } else if (ret < 0) {
-            test_log("Internal error validating instance line %ld\n",
-                xmlGetLineNo(tmp));
-            nb_errors++;
-        }
-        xmlFreeDoc(doc);
-        }
-        xmlResetLastError();
-        if ((mem != xmlMemUsed()) && (extraMemoryFromResolver == 0)) {
-            test_log("Validation of instance line %ld leaked %d\n",
-                xmlGetLineNo(tmp), xmlMemUsed() - mem);
-        xmlMemoryDump();
-            nb_leaks++;
-        }
-    }
-    if (dtd != NULL)
-        xmlFree(dtd);
-    tmp = getNext(tmp, "following-sibling::valid[1]");
-    }
-    /*
-     * now scan all the siblings of correct to process the <invalid> tests
-     */
-    tmp = getNext(cur, "following-sibling::invalid[1]");
-    while (tmp != NULL) {
-    test = getNext(tmp, "./*");
-    if (test == NULL) {
-        fprintf(stderr, "Failed to find test in <invalid> line %ld\n",
-            xmlGetLineNo(tmp));
-
-    } else {
-        xmlBufferEmpty(buf);
-        xmlNodeDump(buf, test->doc, test, 0, 0);
-
-        /*
-         * We are ready to run the test
-         */
-        mem = xmlMemUsed();
-        extraMemoryFromResolver = 0;
-            doc = xmlReadMemory((const char *)buf->content, buf->use,
-                            "test", NULL, 0);
-        if (doc == NULL) {
-        test_log("Failed to parse valid instance line %ld\n",
-            xmlGetLineNo(tmp));
-        nb_errors++;
-        } else {
-        nb_tests++;
-            ctxt = xmlRelaxNGNewValidCtxt(rng);
-        xmlRelaxNGSetValidErrors(ctxt,
-             (xmlRelaxNGValidityErrorFunc) testErrorHandler,
-             (xmlRelaxNGValidityWarningFunc) testErrorHandler,
-             ctxt);
-        ret = xmlRelaxNGValidateDoc(ctxt, doc);
-        xmlRelaxNGFreeValidCtxt(ctxt);
-        if (ret == 0) {
-            test_log("Failed to detect invalid instance line %ld\n",
-                xmlGetLineNo(tmp));
-            nb_errors++;
-        } else if (ret < 0) {
-            test_log("Internal error validating instance line %ld\n",
-                xmlGetLineNo(tmp));
-            nb_errors++;
-        }
-        xmlFreeDoc(doc);
-        }
-        xmlResetLastError();
-        if ((mem != xmlMemUsed()) && (extraMemoryFromResolver == 0)) {
-            test_log("Validation of instance line %ld leaked %d\n",
-                xmlGetLineNo(tmp), xmlMemUsed() - mem);
-        xmlMemoryDump();
-            nb_leaks++;
-        }
-    }
-    tmp = getNext(tmp, "following-sibling::invalid[1]");
-    }
-
-done:
-    if (buf != NULL)
-    xmlBufferFree(buf);
-    if (rng != NULL)
-        xmlRelaxNGFree(rng);
-    xmlResetLastError();
-    if ((memt != xmlMemUsed()) && (memt != 0)) {
-    test_log("Validation of tests starting line %ld leaked %d\n",
-        xmlGetLineNo(cur), xmlMemUsed() - memt);
-    nb_leaks++;
-    }
-    return(ret);
-}
-
-static int
-xsdTestSuite(xmlNodePtr cur) {
-    if (verbose) {
-    xmlChar *doc = getString(cur, "string(documentation)");
-
-    if (doc != NULL) {
-        printf("Suite %s\n", doc);
-        xmlFree(doc);
-    }
-    }
-    cur = getNext(cur, "./testCase[1]");
-    while (cur != NULL) {
-        xsdTestCase(cur);
-    cur = getNext(cur, "following-sibling::testCase[1]");
-    }
-
-    return(0);
-}
-
-static int
-xsdTest(void) {
-    xmlDocPtr doc;
-    xmlNodePtr cur;
-    const char *filename = "test/xsdtest/xsdtestsuite.xml";
-    int ret = 0;
-
-    doc = xmlReadFile(filename, NULL, XML_PARSE_NOENT);
-    if (doc == NULL) {
-        fprintf(stderr, "Failed to parse %s\n", filename);
-    return(-1);
-    }
-    printf("## XML Schemas datatypes test suite from James Clark\n");
-
-    cur = xmlDocGetRootElement(doc);
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-
-    cur = getNext(cur, "./testSuite[1]");
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-    while (cur != NULL) {
-        xsdTestSuite(cur);
-    cur = getNext(cur, "following-sibling::testSuite[1]");
-    }
-
-done:
-    if (doc != NULL)
-    xmlFreeDoc(doc);
-    return(ret);
-}
-
-static int
-rngTestSuite(xmlNodePtr cur) {
-    if (verbose) {
-    xmlChar *doc = getString(cur, "string(documentation)");
-
-    if (doc != NULL) {
-        printf("Suite %s\n", doc);
-        xmlFree(doc);
-    } else {
-        doc = getString(cur, "string(section)");
-        if (doc != NULL) {
-        printf("Section %s\n", doc);
-        xmlFree(doc);
-        }
-    }
-    }
-    cur = getNext(cur, "./testSuite[1]");
-    while (cur != NULL) {
-        xsdTestSuite(cur);
-    cur = getNext(cur, "following-sibling::testSuite[1]");
-    }
-
-    return(0);
-}
-
-static int
-rngTest1(void) {
-    xmlDocPtr doc;
-    xmlNodePtr cur;
-    const char *filename = "test/relaxng/OASIS/spectest.xml";
-    int ret = 0;
-
-    doc = xmlReadFile(filename, NULL, XML_PARSE_NOENT);
-    if (doc == NULL) {
-        fprintf(stderr, "Failed to parse %s\n", filename);
-    return(-1);
-    }
-    printf("## Relax NG test suite from James Clark\n");
-
-    cur = xmlDocGetRootElement(doc);
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-
-    cur = getNext(cur, "./testSuite[1]");
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-    while (cur != NULL) {
-        rngTestSuite(cur);
-    cur = getNext(cur, "following-sibling::testSuite[1]");
-    }
-
-done:
-    if (doc != NULL)
-    xmlFreeDoc(doc);
-    return(ret);
-}
-
-static int
-rngTest2(void) {
-    xmlDocPtr doc;
-    xmlNodePtr cur;
-    const char *filename = "test/relaxng/testsuite.xml";
-    int ret = 0;
-
-    doc = xmlReadFile(filename, NULL, XML_PARSE_NOENT);
-    if (doc == NULL) {
-        fprintf(stderr, "Failed to parse %s\n", filename);
-    return(-1);
-    }
-    printf("## Relax NG test suite for libxml2\n");
-
-    cur = xmlDocGetRootElement(doc);
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-
-    cur = getNext(cur, "./testSuite[1]");
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSuite"))) {
-        fprintf(stderr, "Unexpected format %s\n", filename);
-    ret = -1;
-    goto done;
-    }
-    while (cur != NULL) {
-        xsdTestSuite(cur);
-    cur = getNext(cur, "following-sibling::testSuite[1]");
-    }
-
-done:
-    if (doc != NULL)
-    xmlFreeDoc(doc);
-    return(ret);
-}
-
-/************************************************************************
- *                                  *
- *      Schemas test suites from W3C/NIST/MS/Sun        *
- *                                  *
- ************************************************************************/
-
-static int
-xstcTestInstance(xmlNodePtr cur, xmlSchemaPtr schemas,
-                 const xmlChar *spath, const char *base) {
-    xmlChar *href = NULL;
-    xmlChar *path = NULL;
-    xmlChar *validity = NULL;
-    xmlSchemaValidCtxtPtr ctxt = NULL;
-    xmlDocPtr doc = NULL;
-    int ret = 0, mem;
-
-    xmlResetLastError();
-    testErrorsSize = 0; testErrors[0] = 0;
-    mem = xmlMemUsed();
-    href = getString(cur,
-                     "string(ts:instanceDocument/@xlink:href)");
-    if ((href == NULL) || (href[0] == 0)) {
-    test_log("testGroup line %ld misses href for schemaDocument\n",
-            xmlGetLineNo(cur));
-    ret = -1;
-    goto done;
-    }
-    path = xmlBuildURI(href, BAD_CAST base);
-    if (path == NULL) {
-    fprintf(stderr,
-            "Failed to build path to schemas testGroup line %ld : %s\n",
-        xmlGetLineNo(cur), href);
-    ret = -1;
-    goto done;
-    }
-    if (checkTestFile((const char *) path) <= 0) {
-    test_log("schemas for testGroup line %ld is missing: %s\n",
-        xmlGetLineNo(cur), path);
-    ret = -1;
-    goto done;
-    }
-    validity = getString(cur,
-                         "string(ts:expected/@validity)");
-    if (validity == NULL) {
-        fprintf(stderr, "instanceDocument line %ld misses expected validity\n",
-            xmlGetLineNo(cur));
-    ret = -1;
-    goto done;
-    }
-    nb_tests++;
-    doc = xmlReadFile((const char *) path, NULL, XML_PARSE_NOENT);
-    if (doc == NULL) {
-        fprintf(stderr, "instance %s fails to parse\n", path);
-    ret = -1;
-    nb_errors++;
-    goto done;
-    }
-
-    ctxt = xmlSchemaNewValidCtxt(schemas);
-    xmlSchemaSetValidErrors(ctxt,
-         (xmlSchemaValidityErrorFunc) testErrorHandler,
-         (xmlSchemaValidityWarningFunc) testErrorHandler,
-     ctxt);
-    ret = xmlSchemaValidateDoc(ctxt, doc);
-
-    if (xmlStrEqual(validity, BAD_CAST "valid")) {
-    if (ret > 0) {
-        test_log("valid instance %s failed to validate against %s\n",
-            path, spath);
-        nb_errors++;
-    } else if (ret < 0) {
-        test_log("valid instance %s got internal error validating %s\n",
-            path, spath);
-        nb_internals++;
-        nb_errors++;
-    }
-    } else if (xmlStrEqual(validity, BAD_CAST "invalid")) {
-    if (ret == 0) {
-        test_log("Failed to detect invalid instance %s against %s\n",
-            path, spath);
-        nb_errors++;
-    }
-    } else {
-        test_log("instanceDocument line %ld has unexpected validity value%s\n",
-            xmlGetLineNo(cur), validity);
-    ret = -1;
-    goto done;
-    }
-
-done:
-    if (href != NULL) xmlFree(href);
-    if (path != NULL) xmlFree(path);
-    if (validity != NULL) xmlFree(validity);
-    if (ctxt != NULL) xmlSchemaFreeValidCtxt(ctxt);
-    if (doc != NULL) xmlFreeDoc(doc);
-    xmlResetLastError();
-    if (mem != xmlMemUsed()) {
-    test_log("Validation of tests starting line %ld leaked %d\n",
-        xmlGetLineNo(cur), xmlMemUsed() - mem);
-    nb_leaks++;
-    }
-    return(ret);
-}
-
-static int
-xstcTestGroup(xmlNodePtr cur, const char *base) {
-    xmlChar *href = NULL;
-    xmlChar *path = NULL;
-    xmlChar *validity = NULL;
-    xmlSchemaPtr schemas = NULL;
-    xmlSchemaParserCtxtPtr ctxt;
-    xmlNodePtr instance;
-    int ret = 0, mem;
-
-    xmlResetLastError();
-    testErrorsSize = 0; testErrors[0] = 0;
-    mem = xmlMemUsed();
-    href = getString(cur,
-                     "string(ts:schemaTest/ts:schemaDocument/@xlink:href)");
-    if ((href == NULL) || (href[0] == 0)) {
-        test_log("testGroup line %ld misses href for schemaDocument\n",
-            xmlGetLineNo(cur));
-    ret = -1;
-    goto done;
-    }
-    path = xmlBuildURI(href, BAD_CAST base);
-    if (path == NULL) {
-    test_log("Failed to build path to schemas testGroup line %ld : %s\n",
-        xmlGetLineNo(cur), href);
-    ret = -1;
-    goto done;
-    }
-    if (checkTestFile((const char *) path) <= 0) {
-    test_log("schemas for testGroup line %ld is missing: %s\n",
-        xmlGetLineNo(cur), path);
-    ret = -1;
-    goto done;
-    }
-    validity = getString(cur,
-                         "string(ts:schemaTest/ts:expected/@validity)");
-    if (validity == NULL) {
-        test_log("testGroup line %ld misses expected validity\n",
-            xmlGetLineNo(cur));
-    ret = -1;
-    goto done;
-    }
-    nb_tests++;
-    if (xmlStrEqual(validity, BAD_CAST "valid")) {
-        nb_schematas++;
-    ctxt = xmlSchemaNewParserCtxt((const char *) path);
-    xmlSchemaSetParserErrors(ctxt,
-         (xmlSchemaValidityErrorFunc) testErrorHandler,
-         (xmlSchemaValidityWarningFunc) testErrorHandler,
-         ctxt);
-    schemas = xmlSchemaParse(ctxt);
-    xmlSchemaFreeParserCtxt(ctxt);
-    if (schemas == NULL) {
-        test_log("valid schemas %s failed to parse\n",
-            path);
-        ret = 1;
-        nb_errors++;
-    }
-    if ((ret == 0) && (strstr(testErrors, "nimplemented") != NULL)) {
-        test_log("valid schemas %s hit an unimplemented block\n",
-            path);
-        ret = 1;
-        nb_unimplemented++;
-        nb_errors++;
-    }
-    instance = getNext(cur, "./ts:instanceTest[1]");
-    while (instance != NULL) {
-        if (schemas != NULL) {
-        xstcTestInstance(instance, schemas, path, base);
-        } else {
-        /*
-        * We'll automatically mark the instances as failed
-        * if the schema was broken.
-        */
-        nb_errors++;
-        }
-        instance = getNext(instance,
-        "following-sibling::ts:instanceTest[1]");
-    }
-    } else if (xmlStrEqual(validity, BAD_CAST "invalid")) {
-        nb_schematas++;
-    ctxt = xmlSchemaNewParserCtxt((const char *) path);
-    xmlSchemaSetParserErrors(ctxt,
-         (xmlSchemaValidityErrorFunc) testErrorHandler,
-         (xmlSchemaValidityWarningFunc) testErrorHandler,
-         ctxt);
-    schemas = xmlSchemaParse(ctxt);
-    xmlSchemaFreeParserCtxt(ctxt);
-    if (schemas != NULL) {
-        test_log("Failed to detect error in schemas %s\n",
-            path);
-        nb_errors++;
-        ret = 1;
-    }
-    if ((ret == 0) && (strstr(testErrors, "nimplemented") != NULL)) {
-        nb_unimplemented++;
-        test_log("invalid schemas %s hit an unimplemented block\n",
-            path);
-        ret = 1;
-        nb_errors++;
-    }
-    } else {
-        test_log("testGroup line %ld misses unexpected validity value%s\n",
-            xmlGetLineNo(cur), validity);
-    ret = -1;
-    goto done;
-    }
-
-done:
-    if (href != NULL) xmlFree(href);
-    if (path != NULL) xmlFree(path);
-    if (validity != NULL) xmlFree(validity);
-    if (schemas != NULL) xmlSchemaFree(schemas);
-    xmlResetLastError();
-    if ((mem != xmlMemUsed()) && (extraMemoryFromResolver == 0)) {
-    test_log("Processing test line %ld %s leaked %d\n",
-        xmlGetLineNo(cur), path, xmlMemUsed() - mem);
-    nb_leaks++;
-    }
-    return(ret);
-}
-
-static int
-xstcMetadata(const char *metadata, const char *base) {
-    xmlDocPtr doc;
-    xmlNodePtr cur;
-    xmlChar *contributor;
-    xmlChar *name;
-    int ret = 0;
-
-    doc = xmlReadFile(metadata, NULL, XML_PARSE_NOENT);
-    if (doc == NULL) {
-        fprintf(stderr, "Failed to parse %s\n", metadata);
-    return(-1);
-    }
-
-    cur = xmlDocGetRootElement(doc);
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testSet"))) {
-        fprintf(stderr, "Unexpected format %s\n", metadata);
-    return(-1);
-    }
-    contributor = xmlGetProp(cur, BAD_CAST "contributor");
-    if (contributor == NULL) {
-        contributor = xmlStrdup(BAD_CAST "Unknown");
-    }
-    name = xmlGetProp(cur, BAD_CAST "name");
-    if (name == NULL) {
-        name = xmlStrdup(BAD_CAST "Unknown");
-    }
-    printf("## %s test suite for Schemas version %s\n", contributor, name);
-    xmlFree(contributor);
-    xmlFree(name);
-
-    cur = getNext(cur, "./ts:testGroup[1]");
-    if ((cur == NULL) || (!xmlStrEqual(cur->name, BAD_CAST "testGroup"))) {
-        fprintf(stderr, "Unexpected format %s\n", metadata);
-    ret = -1;
-    goto done;
-    }
-    while (cur != NULL) {
-        xstcTestGroup(cur, base);
-    cur = getNext(cur, "following-sibling::ts:testGroup[1]");
-    }
-
-done:
-    xmlFreeDoc(doc);
-    return(ret);
-}
-
-/************************************************************************
- *                                  *
- *      The driver for the tests                *
- *                                  *
- ************************************************************************/
-
-int
-main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
-    int ret = 0;
-    int old_errors, old_tests, old_leaks;
-
-    logfile = fopen(LOGFILE, "w");
-    if (logfile == NULL) {
-        fprintf(stderr,
-            "Could not open the log file, running in verbose mode\n");
-    verbose = 1;
-    }
-    initializeLibxml2();
-
-    if ((argc >= 2) && (!strcmp(argv[1], "-v")))
-        verbose = 1;
-
-
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    xsdTest();
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests, no errors\n", nb_tests - old_tests);
-    else
-    printf("Ran %d tests, %d errors, %d leaks\n",
-           nb_tests - old_tests,
-           nb_errors - old_errors,
-           nb_leaks - old_leaks);
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    rngTest1();
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests, no errors\n", nb_tests - old_tests);
-    else
-    printf("Ran %d tests, %d errors, %d leaks\n",
-           nb_tests - old_tests,
-           nb_errors - old_errors,
-           nb_leaks - old_leaks);
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    rngTest2();
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests, no errors\n", nb_tests - old_tests);
-    else
-    printf("Ran %d tests, %d errors, %d leaks\n",
-           nb_tests - old_tests,
-           nb_errors - old_errors,
-           nb_leaks - old_leaks);
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    nb_internals = 0;
-    nb_schematas = 0;
-    xstcMetadata("xstc/Tests/Metadata/NISTXMLSchemaDatatypes.testSet",
-         "xstc/Tests/Metadata/");
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests (%d schemata), no errors\n",
-           nb_tests - old_tests, nb_schematas);
-    else
-    printf("Ran %d tests (%d schemata), %d errors (%d internals), %d leaks\n",
-           nb_tests - old_tests,
-           nb_schematas,
-           nb_errors - old_errors,
-           nb_internals,
-           nb_leaks - old_leaks);
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    nb_internals = 0;
-    nb_schematas = 0;
-    xstcMetadata("xstc/Tests/Metadata/SunXMLSchema1-0-20020116.testSet",
-         "xstc/Tests/");
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests (%d schemata), no errors\n",
-           nb_tests - old_tests, nb_schematas);
-    else
-    printf("Ran %d tests (%d schemata), %d errors (%d internals), %d leaks\n",
-           nb_tests - old_tests,
-           nb_schematas,
-           nb_errors - old_errors,
-           nb_internals,
-           nb_leaks - old_leaks);
-    old_errors = nb_errors;
-    old_tests = nb_tests;
-    old_leaks = nb_leaks;
-    nb_internals = 0;
-    nb_schematas = 0;
-    xstcMetadata("xstc/Tests/Metadata/MSXMLSchema1-0-20020116.testSet",
-         "xstc/Tests/");
-    if ((nb_errors == old_errors) && (nb_leaks == old_leaks))
-    printf("Ran %d tests (%d schemata), no errors\n",
-           nb_tests - old_tests, nb_schematas);
-    else
-    printf("Ran %d tests (%d schemata), %d errors (%d internals), %d leaks\n",
-           nb_tests - old_tests,
-           nb_schematas,
-           nb_errors - old_errors,
-           nb_internals,
-           nb_leaks - old_leaks);
-
-    if ((nb_errors == 0) && (nb_leaks == 0)) {
-        ret = 0;
-    printf("Total %d tests, no errors\n",
-           nb_tests);
-    } else {
-        ret = 1;
-    printf("Total %d tests, %d errors, %d leaks\n",
-           nb_tests, nb_errors, nb_leaks);
-    }
-    xmlXPathFreeContext(ctxtXPath);
-    xmlCleanupParser();
-    xmlMemoryDump();
-
-    if (logfile != NULL)
-        fclose(logfile);
-    return(ret);
-}
-#else /* !SCHEMAS */
-int
-main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
-    fprintf(stderr, "runsuite requires support for schemas and xpath in libxml2\n");
-}
-#endif
--- a/modules/javafx.web/src/main/native/Source/ThirdParty/libxml/src/runtest.c	Mon Jan 07 13:07:08 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4575 +0,0 @@
-/*
- * runtest.c: C program to run libxml2 regression tests without
- *            requiring make or Python, and reducing platform dependancies
- *            to a strict minimum.
- *
- * To compile on Unixes:
- * cc -o runtest `xml2-config --cflags` runtest.c `xml2-config --libs` -lpthread
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-#include "libxml.h"
-#include <stdio.h>
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
-#include <unistd.h>
-#endif
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#include <libxml/tree.h>
-#include <libxml/uri.h>
-
-#ifdef LIBXML_OUTPUT_ENABLED
-#ifdef LIBXML_READER_ENABLED
-#include <libxml/xmlreader.h>
-#endif
-
-#ifdef LIBXML_XINCLUDE_ENABLED
-#include <libxml/xinclude.h>
-#endif
-
-#ifdef LIBXML_XPATH_ENABLED
-#include <libxml/xpath.h>
-#include <libxml/xpathInternals.h>
-#ifdef LIBXML_XPTR_ENABLED
-#include <libxml/xpointer.h>
-#endif
-#endif
-
-#ifdef LIBXML_SCHEMAS_ENABLED
-#include <libxml/relaxng.h>
-#include <libxml/xmlschemas.h>
-#include <libxml/xmlschemastypes.h>
-#endif
-
-#ifdef LIBXML_PATTERN_ENABLED
-#include <libxml/pattern.h>
-#endif
-
-#ifdef LIBXML_C14N_ENABLED
-#include <libxml/c14n.h>
-#endif
-
-#ifdef LIBXML_HTML_ENABLED
-#include <libxml/HTMLparser.h>
-#include <libxml/HTMLtree.h>
-
-/*
- * pseudo flag for the unification of HTML and XML tests
- */
-#define XML_PARSE_HTML 1 << 24
-#endif
-
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
-#include <libxml/globals.h>
-#include <libxml/threads.h>
-#include <libxml/parser.h>
-#include <libxml/catalog.h>
-#include <string.h>
-#endif
-
-/*
- * O_BINARY is just for Windows compatibility - if it isn't defined
- * on this system, avoid any compilation error
- */
-#ifdef  O_BINARY
-#define RD_FLAGS    O_RDONLY | O_BINARY
-#define WR_FLAGS    O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
-#else
-#define RD_FLAGS    O_RDONLY
-#define WR_FLAGS    O_WRONLY | O_CREAT | O_TRUNC
-#endif
-
-typedef int (*functest) (const char *filename, const char *result,
-                         const char *error, int options);
-
-typedef struct testDesc testDesc;
-typedef testDesc *testDescPtr;
-struct testDesc {
-    const char *desc; /* descripton of the test */
-    functest    func; /* function implementing the test */
-    const char *in;   /* glob to path for input files */
-    const char *out;  /* output directory */
-    const char *suffix;/* suffix for output files */
-    const char *err;  /* suffix for error output files */
-    int     options;  /* parser options for the test */
-};
-
-static int update_results = 0;
-static int checkTestFile(const char *filename);
-
-#if defined(_WIN32) && !defined(__CYGWIN__)
-
-#include <windows.h>
-#include <io.h>
-
-typedef struct
-{
-      size_t gl_pathc;    /* Count of paths matched so far  */
-      char **gl_pathv;    /* List of matched pathnames.  */
-      size_t gl_offs;     /* Slots to reserve in 'gl_pathv'.  */
-} glob_t;
-
-#define GLOB_DOOFFS 0
-static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
-                ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
-                glob_t *pglob) {
-    glob_t *ret;
-    WIN32_FIND_DATA FindFileData;
-    HANDLE hFind;
-    unsigned int nb_paths = 0;
-    char directory[500];
-    int len;
-
-    if ((pattern == NULL) || (pglob == NULL)) return(-1);
-
-    strncpy(directory, pattern, 499);
-    for (len = strlen(directory);len >= 0;len--) {
-        if (directory[len] == '/') {
-        len++;
-        directory[len] = 0;
-        break;
-    }
-    }
-    if (len <= 0)
-        len = 0;
-
-
-    ret = pglob;
-    memset(ret, 0, sizeof(glob_t));
-
-    hFind = FindFirstFileA(pattern, &FindFileData);
-    if (hFind == INVALID_HANDLE_VALUE)
-        return(0);
-    nb_paths = 20;
-    ret->gl_pathv = (char **) malloc(nb_paths * sizeof(char *));
-    if (ret->gl_pathv == NULL) {
-    FindClose(hFind);
-        return(-1);
-    }
-    strncpy(directory + len, FindFileData.cFileName, 499 - len);
-    ret->gl_pathv[ret->gl_pathc] = strdup(directory);
-    if (ret->gl_pathv[ret->gl_pathc] == NULL)
-        goto done;
-    ret->gl_pathc++;
-    while(FindNextFileA(hFind, &FindFileData)) {
-        if (FindFileData.cFileName[0] == '.')
-        continue;
-        if (ret->gl_pathc + 2 > nb_paths) {
-            char **tmp = realloc(ret->gl_pathv, nb_paths * 2 * sizeof(char *));
-            if (tmp == NULL)
-                break;
-            ret->gl_pathv = tmp;
-            nb_paths *= 2;
-    }
-    strncpy(directory + len, FindFileData.cFileName, 499 - len);
-    ret->gl_pathv[ret->gl_pathc] = strdup(directory);
-        if (ret->gl_pathv[ret->gl_pathc] == NULL)
-            break;
-        ret->gl_pathc++;
-    }
-    ret->gl_pathv[ret->gl_pathc] = NULL;
-
-done:
-    FindClose(hFind);
-    return(0);
-}
-
-
-
-static void globfree(glob_t *pglob) {
-    unsigned int i;
-    if (pglob == NULL)
-        return;
-
-    for (i = 0;i < pglob->gl_pathc;i++) {
-         if (pglob->gl_pathv[i] != NULL)
-             free(pglob->gl_pathv[i]);
-    }
-}
-
-#else
-#include <glob.h>
-#endif
-
-/************************************************************************
- *                                  *
- *      Libxml2 specific routines               *
- *                                  *
- ************************************************************************/
-
-static int nb_tests = 0;
-static int nb_errors = 0;
-static int nb_leaks = 0;
-static int extraMemoryFromResolver = 0;
-
-static int
-fatalError(void) {
-    fprintf(stderr, "Exitting tests on fatal error\n");
-    exit(1);
-}
-
-/*
- * We need to trap calls to the resolver to not account memory for the catalog
- * which is shared to the current running test. We also don't want to have
- * network downloads modifying tests.
- */
-static xmlParserInputPtr
-testExternalEntityLoader(const char *URL, const char *ID,
-             xmlParserCtxtPtr ctxt) {
-    xmlParserInputPtr ret;
-
-    if (checkTestFile(URL)) {
-    ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
-    } else {
-    int memused = xmlMemUsed();
-    ret = xmlNoNetExternalEntityLoader(URL, ID, ctxt);
-    extraMemoryFromResolver += xmlMemUsed() - memused;
-    }
-
-    return(ret);
-}
-
-/*
- * Trapping the error messages at the generic level to grab the equivalent of
- * stderr messages on CLI tools.
- */
-static char testErrors[32769];
-static int testErrorsSize = 0;
-
-static void XMLCDECL
-testErrorHandler(void *ctx  ATTRIBUTE_UNUSED, const char *msg, ...) {
-    va_list args;
-    int res;
-
-    if (testErrorsSize >= 32768)
-        return;
-    va_start(args, msg);
-    res = vsnprintf(&testErrors[testErrorsSize],
-                    32768 - testErrorsSize,
-            msg, args);
-    va_end(args);
-    if (testErrorsSize + res >= 32768) {
-        /* buffer is full */
-    testErrorsSize = 32768;
-    testErrors[testErrorsSize] = 0;
-    } else {
-        testErrorsSize += res;
-    }
-    testErrors[testErrorsSize] = 0;
-}
-
-static void XMLCDECL
-channel(void *ctx  ATTRIBUTE_UNUSED, const char *msg, ...) {
-    va_list args;
-    int res;
-
-    if (testErrorsSize >= 32768)
-        return;
-    va_start(args, msg);
-    res = vsnprintf(&testErrors[testErrorsSize],
-                    32768 - testErrorsSize,