diff --git a/expat/CMake.README b/expat/CMake.README
index ce1d508..aa098b4 100644
--- a/expat/CMake.README
+++ b/expat/CMake.README
@@ -3,25 +3,25 @@
 The cmake based buildsystem for expat works on Windows (cygwin, mingw, Visual
 Studio) and should work on all other platform cmake supports.
 
-Assuming ~/expat-2.2.9 is the source directory of expat, add a subdirectory
+Assuming ~/expat-2.2.10 is the source directory of expat, add a subdirectory
 build and change into that directory:
-~/expat-2.2.9$ mkdir build && cd build
-~/expat-2.2.9/build$
+~/expat-2.2.10$ mkdir build && cd build
+~/expat-2.2.10/build$
 
 From that directory, call cmake first, then call make, make test and
 make install in the usual way:
-~/expat-2.2.9/build$ cmake ..
+~/expat-2.2.10/build$ cmake ..
 -- The C compiler identification is GNU
 -- The CXX compiler identification is GNU
 ....
 -- Configuring done
 -- Generating done
--- Build files have been written to: /home/patrick/expat-2.2.9/build
+-- Build files have been written to: /home/patrick/expat-2.2.10/build
 
 If you want to specify the install location for your files, append
 -DCMAKE_INSTALL_PREFIX=/your/install/path to the cmake call.
 
-~/expat-2.2.9/build$ make && make test && make install
+~/expat-2.2.10/build$ make && make test && make install
 Scanning dependencies of target expat
 [  5%] Building C object CMakeFiles/expat.dir/lib/xmlparse.c.o
 [ 11%] Building C object CMakeFiles/expat.dir/lib/xmlrole.c.o
diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt
index 5cda568..dfbd0c5 100644
--- a/expat/CMakeLists.txt
+++ b/expat/CMakeLists.txt
@@ -33,7 +33,7 @@
 
 project(expat
     VERSION
-        2.2.9
+        2.2.10
     LANGUAGES
         C
 )
@@ -228,14 +228,14 @@
 if(FLAG_VISIBILITY)
   add_definitions(-DXML_ENABLE_VISIBILITY=1)
   set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -fvisibility=hidden")
-endif(FLAG_VISIBILITY)
+endif()
 if (EXPAT_WARNINGS_AS_ERRORS)
     if(MSVC)
         add_definitions(/WX)
-    else(MSVC)
+    else()
         set(EXTRA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} -Werror")
-    endif(MSVC)
-endif(EXPAT_WARNINGS_AS_ERRORS)
+    endif()
+endif()
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_COMPILE_FLAGS}")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_COMPILE_FLAGS}")
 
@@ -260,7 +260,7 @@
 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib)
 if(MSVC)
     add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996)
-endif(MSVC)
+endif()
 if(WIN32)
     if(_EXPAT_UNICODE_WCHAR_T)
         set(_POSTFIX_WIDE "w")
@@ -288,7 +288,7 @@
 
         set(${postfix_var} "${_POSTFIX_WIDE}${_POSTFIX_DEBUG}${_POSTFIX_CRT}" CACHE STRING "Windows binary postfix, e.g. libexpat<postfix=[w][d][MD|MT]>.lib")
     endforeach()
-endif(WIN32)
+endif()
 
 #
 # C library
@@ -306,10 +306,10 @@
     set(_SHARED SHARED)
     if(MSVC)
         set(expat_SRCS ${expat_SRCS} lib/libexpat.def)
-    endif(MSVC)
-else(EXPAT_SHARED_LIBS)
+    endif()
+else()
     set(_SHARED STATIC)
-endif(EXPAT_SHARED_LIBS)
+endif()
 
 # Avoid colliding with Expat.dll of Perl's XML::Parser::Expat
 if(WIN32 AND NOT MINGW)
@@ -328,7 +328,7 @@
 endif()
 
 set(LIBCURRENT 7)    # sync
-set(LIBREVISION 11)  # with
+set(LIBREVISION 12)  # with
 set(LIBAGE 6)        # configure.ac!
 math(EXPR LIBCURRENT_MINUS_AGE "${LIBCURRENT} - ${LIBAGE}")
 
@@ -337,7 +337,7 @@
     set_property(TARGET expat PROPERTY VERSION ${LIBCURRENT_MINUS_AGE}.${LIBAGE}.${LIBREVISION})
     set_property(TARGET expat PROPERTY SOVERSION ${LIBCURRENT_MINUS_AGE})
     set_property(TARGET expat PROPERTY NO_SONAME ${NO_SONAME})
-endif(NOT WIN32)
+endif()
 
 target_include_directories(expat
     INTERFACE
@@ -416,7 +416,7 @@
     add_executable(outline examples/outline.c)
     set_property(TARGET outline PROPERTY RUNTIME_OUTPUT_DIRECTORY examples)
     target_link_libraries(outline expat)
-endif(EXPAT_BUILD_EXAMPLES)
+endif()
 
 #
 # C/C++ test runners
@@ -457,7 +457,7 @@
     set_property(TARGET runtestspp PROPERTY RUNTIME_OUTPUT_DIRECTORY tests)
     target_link_libraries(runtestspp expat)
     expat_add_test(runtestspp $<TARGET_FILE:runtestspp>)
-endif(EXPAT_BUILD_TESTS)
+endif()
 
 if(EXPAT_BUILD_FUZZERS)
     if(NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
@@ -486,7 +486,7 @@
             "LIB_FUZZING_ENGINE to be set. If you are seeing this "
             "warning, it points to a deeper problem in the ossfuzz "
             "build setup.")
-    endif(EXPAT_OSSFUZZ_BUILD AND NOT DEFINED ENV{LIB_FUZZING_ENGINE})
+    endif()
 
     set(encoding_types UTF-16 UTF-8 ISO-8859-1 US-ASCII UTF-16BE UTF-16LE)
     set(fuzz_targets xml_parse_fuzzer xml_parsebuffer_fuzzer)
@@ -494,7 +494,7 @@
     add_library(fuzzpat STATIC ${expat_SRCS})
     if(NOT EXPAT_OSSFUZZ_BUILD)
         target_compile_options(fuzzpat PRIVATE -fsanitize=fuzzer-no-link)
-    endif(NOT EXPAT_OSSFUZZ_BUILD)
+    endif()
 
     foreach(fuzz_target ${fuzz_targets})
         foreach(encoding_type ${encoding_types})
@@ -505,14 +505,14 @@
                 PRIVATE ENCODING_FOR_FUZZING=${encoding_type})
             if(NOT EXPAT_OSSFUZZ_BUILD)
                 target_compile_options(${target_name} PRIVATE -fsanitize=fuzzer-no-link)
-            endif(NOT EXPAT_OSSFUZZ_BUILD)
+            endif()
             # NOTE: Avoiding target_link_options here only because it needs CMake >=3.13
             if(EXPAT_OSSFUZZ_BUILD)
                 set_target_properties(${target_name} PROPERTIES LINK_FLAGS $ENV{LIB_FUZZING_ENGINE})
                 set_target_properties(${target_name} PROPERTIES LINKER_LANGUAGE "CXX")
             else()
                 set_target_properties(${target_name} PROPERTIES LINK_FLAGS -fsanitize=fuzzer)
-            endif(EXPAT_OSSFUZZ_BUILD)
+            endif()
             set_property(
                 TARGET ${target_name} PROPERTY RUNTIME_OUTPUT_DIRECTORY fuzz)
         endforeach()
@@ -523,8 +523,8 @@
                 "Attempting to perform an ossfuzz build without turning on the fuzzer build. "
                 "This is likely in error - consider adding "
                 "-DEXPAT_BUILD_FUZZERS=ON to your cmake execution.")
-    endif(EXPAT_OSSFUZZ_BUILD)
-endif(EXPAT_BUILD_FUZZERS)
+    endif()
+endif()
 
 #
 # Custom target "run-xmltest"
diff --git a/expat/Changes b/expat/Changes
index e788163..b74a7c5 100644
--- a/expat/Changes
+++ b/expat/Changes
@@ -2,11 +2,11 @@
       https://github.com/libexpat/libexpat/labels/help%20wanted
       If you can help, please get in touch.  Thanks!
 
-Release x.x.x xxx xxxxxxxxx xx xxxx
+Release 2.2.10 Sat October 3 2020
         Bug fixes:
   #390 #395 #398  Fix undefined behavior during parsing caused by
                     pointer arithmetic with NULL pointers
-            #404  Fix reading uninitialized variable during parsing
+       #404 #405  Fix reading uninitialized variable during parsing
             #406  xmlwf: Add missing check for malloc NULL return
 
         Other changes:
@@ -16,9 +16,10 @@
             #403  xmlwf: Document exit codes in xmlwf manpage and
                     exit with code 3 (rather than code 1) for output errors
                     when used with "-d DIRECTORY"
+       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
        #383 #392  Autotools: Use -Werror while configure tests the compiler
                     for supported compile flags to avoid false positives
-       #383 #393  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
+  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
                     e.g. ensure that they have the last word over flags added
                     while running ./configure
             #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
@@ -38,12 +39,19 @@
                     to control generation of pkg-config file "expat.pc"
             #424  CMake: Add minimalistic support for building binary packages
                     with CMake target "package"; based on CPack
+            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
+                    default OFF to build fuzzer code against OSS-Fuzz and
+                    related environment variable LIB_FUZZING_ENGINE
             #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
-  #354 #355 #356  Address compiler warnings
+    #354 #355 ..
+       #356 #412  Address compiler warnings
+       #368 #369  Address pngcheck warnings with doc/*.png images
+                  Version info bumped from 7:11:6 to 7:12:6
 
         Special thanks to:
             asavah
             Ben Wagner
+            Bhargava Shastry
             Frank Landgraf
             Jeffrey Walton
             Joe Orton
diff --git a/expat/README.md b/expat/README.md
index fabe5d1..428a11a 100644
--- a/expat/README.md
+++ b/expat/README.md
@@ -3,7 +3,7 @@
 [![Packaging status](https://repology.org/badge/tiny-repos/expat.svg)](https://repology.org/metapackage/expat/versions)
 
 
-# Expat, Release 2.2.9
+# Expat, Release 2.2.10
 
 This is Expat, a C library for parsing XML, started by
 [James Clark](https://en.wikipedia.org/wiki/James_Clark_(programmer)) in 1997.
diff --git a/expat/configure.ac b/expat/configure.ac
index 9b0a087..82ec1fd 100644
--- a/expat/configure.ac
+++ b/expat/configure.ac
@@ -49,7 +49,7 @@
 dnl
 
 LIBCURRENT=7    # sync
-LIBREVISION=11  # with
+LIBREVISION=12  # with
 LIBAGE=6        # CMakeLists.txt!
 
 AX_APPEND_FLAG([-DHAVE_EXPAT_CONFIG_H], [AM_CPPFLAGS])
diff --git a/expat/lib/expat.h b/expat/lib/expat.h
index 4eb6ddf..cb828db 100644
--- a/expat/lib/expat.h
+++ b/expat/lib/expat.h
@@ -1015,7 +1015,7 @@
 */
 #define XML_MAJOR_VERSION 2
 #define XML_MINOR_VERSION 2
-#define XML_MICRO_VERSION 9
+#define XML_MICRO_VERSION 10
 
 #ifdef __cplusplus
 }
diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
index 60785dd..dfc316c 100644
--- a/expat/lib/xmlparse.c
+++ b/expat/lib/xmlparse.c
@@ -1,4 +1,4 @@
-/* f519f27c7c3b79fee55aeb8b1e53b7384b079d9118bf3a62eb3a60986a6742f2 (2.2.9+)
+/* 5cd169f2942b85c05e0b1b96f9990f91ac3d07e470ad7ce906ac8590c8ed4f35 (2.2.10+)
                             __  __            _
                          ___\ \/ /_ __   __ _| |_
                         / _ \\  /| '_ \ / _` | __|
diff --git a/expat/tests/runtests.c b/expat/tests/runtests.c
index 7791fe0..2490d86 100644
--- a/expat/tests/runtests.c
+++ b/expat/tests/runtests.c
@@ -108,7 +108,7 @@
 
 static XML_Parser g_parser = NULL;
 
-void
+static void
 tcase_add_test__ifdef_xml_dtd(TCase *tc, tcase_test_function test) {
 #ifdef XML_DTD
   tcase_add_test(tc, test);
@@ -7365,7 +7365,7 @@
     fail("Version mismatch");
 
 #if ! defined(XML_UNICODE) || defined(XML_UNICODE_WCHAR_T)
-  if (xcstrcmp(version_text, XCS("expat_2.2.9"))) /* needs bump on releases */
+  if (xcstrcmp(version_text, XCS("expat_2.2.10"))) /* needs bump on releases */
     fail("XML_*_VERSION in expat.h out of sync?\n");
 #else
   /* If we have XML_UNICODE defined but not XML_UNICODE_WCHAR_T
diff --git a/expat/win32/expat.iss b/expat/win32/expat.iss
index 0f65c87..ef95f17 100644
--- a/expat/win32/expat.iss
+++ b/expat/win32/expat.iss
@@ -4,7 +4,7 @@
 ; This script was contributed by Tim Peters.
 ; It was designed for Inno Setup 2.0.19 but works with later versions as well.
 
-#define expatVer "2.2.9"
+#define expatVer "2.2.10"
 
 [Setup]
 AppName=Expat
