resolve merge conflicts of 2b5c0a93a867c6f46ba32ea89c1f7aef8ed44d38 to rvc-dev

Bug: 136733674
Change-Id: Ibb3eca17609977b576cc8b79218976653b32aa18
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..12c5c7b
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+github: dlemstra
+custom: https://imagemagick.org/script/support.php
\ No newline at end of file
diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml
new file mode 100644
index 0000000..59150b2
--- /dev/null
+++ b/.github/workflows/daily.yml
@@ -0,0 +1,108 @@
+on:
+  schedule:
+  - cron: 0 6 * * *
+
+name: daily
+jobs:
+  build_linux:
+    name: 'Linux Q${{matrix.quantum}}-x64 hdri=${{matrix.hdri}} (${{matrix.modules}})'
+    container:
+      image: ubuntu:bionic
+    runs-on: ubuntu-latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        quantum: [ 8, 16, 32, 64 ]
+        hdri: [ yes, no ]
+        modules: [ 'with-modules', 'without-modules' ]
+        exclude:
+          - quantum: 8
+            hdri: yes
+          - quantum: 32
+            hdri: no
+          - quantum: 64
+            hdri: no
+
+    steps:
+    - name: Install dependencies
+      run: |
+        set -e
+        apt update
+        sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections"
+        apt-get install -y autoconf pkg-config gcc msttcorefonts libfontconfig1-dev libfreetype6-dev libltdl-dev
+
+    - uses: actions/checkout@v1
+      with:
+        fetch-depth: 1
+
+    - name: Configure ImageMagick
+      run: |
+        export CFLAGS="-Wno-deprecated-declarations"
+        ./configure --with-quantum-depth=${{matrix.quantum}} --enable-hdri=${{matrix.hdri}} --${{matrix.modules}}
+
+    - name: Build ImageMagick
+      run: |
+        make
+
+    - name: Test ImageMagick
+      run: |
+        make check || exit_code=$?
+        if [ "$exit_code" != "0" ] ; then cat ./test-suite.log ; fi
+        exit $exit_code
+
+  build_windows:
+    name: 'Windows Q${{matrix.quantum}}-${{matrix.platform}} hdri=${{matrix.hdri}} (${{matrix.buildType}})'
+    runs-on: windows-latest
+
+    strategy:
+      fail-fast: false
+      matrix:
+        quantum: [ 8, 16, 32, 64 ]
+        hdri: [ yes, no ]
+        buildType: [ dmt, smtd ]
+        platform: [ x64, Win32 ]
+        exclude:
+          - quantum: 8
+            hdri: yes
+          - quantum: 32
+            hdri: no
+          - quantum: 64
+            hdri: no
+
+    steps:
+    - name: Clone ImageMagick-Windows
+      uses: actions/checkout@v1
+      with:
+        repository: ImageMagick/ImageMagick-Windows
+        ref: refs/heads/master
+        fetch-depth: 1
+
+    - name: Clone repositories
+      shell: cmd
+      run: |
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows
+        CloneRepositories.cmd https://github.com/ImageMagick shallow
+
+    - name: Build configure
+      shell: cmd
+      run: |
+        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
+        devenv /upgrade configure.vcxproj
+        msbuild configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=Win32
+
+    - name: Configure ImageMagick
+      shell: cmd
+      run: |
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
+        configure.exe /noWizard /VS2019 /${{matrix.platform}} /${{matrix.buildType}}
+
+    - name: Build ImageMagick
+      shell: cmd
+      run: |
+        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick
+        dir /B *.sln > solution
+        set /p solution=<solution
+        msbuild %solution% /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform}}
diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
new file mode 100644
index 0000000..608bdee
--- /dev/null
+++ b/.github/workflows/master.yml
@@ -0,0 +1,109 @@
+on:
+  push:
+    branches:
+    - master
+    tags:
+    - '!*'
+  pull_request:
+    branches:
+    - master
+
+name: master
+jobs:
+  build_linux:
+    name: Build Linux
+    container:
+      image: ubuntu:bionic
+    runs-on: ubuntu-latest
+
+    strategy:
+      fail-fast: true
+      matrix:
+        compiler: [ gcc, clang ]
+
+    steps:
+    - name: Install dependencies
+      run: |
+        set -e
+        apt-get update -y
+        apt-get install -y autoconf pkg-config ${{matrix.compiler}}
+
+    - uses: actions/checkout@v1
+      with:
+        fetch-depth: 1
+
+    - name: Configure ImageMagick
+      run: |
+        export CC=${{matrix.compiler}}
+        export CFLAGS="-Wno-deprecated-declarations"
+        ./configure --with-quantum-depth=16 --enable-hdri=no --without-perl --prefix=/usr
+
+    - name: Build ImageMagick
+      run: |
+        set -e
+        make
+        make install
+
+  build_macos:
+    name: Build MacOS
+    runs-on: macos-latest
+
+    steps:
+    - uses: actions/checkout@v1
+      with:
+        fetch-depth: 1
+
+    - name: Install dependencies
+      run: |
+        set -e
+        export HOMEBREW_NO_AUTO_UPDATE=1
+        brew install autoconf libtool pkg-config libxml2
+
+    - name: Configure ImageMagick
+      run: |
+        export CFLAGS="-Wno-deprecated-declarations"
+        export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
+        ./configure --with-quantum-depth=16 --enable-hdri=no --without-perl
+
+    - name: Build ImageMagick
+      run: |
+        set -e
+        make install
+
+  build_windows:
+    name: Build Windows
+    runs-on: windows-latest
+
+    steps:
+    - uses: actions/checkout@v1
+      with:
+        repository: ImageMagick/ImageMagick-Windows
+        ref: refs/heads/master
+        fetchDepth: 1
+
+    - name: Clone repositories
+      shell: cmd
+      run: |
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows
+        CloneRepositories.cmd https://github.com/ImageMagick shallow
+
+    - name: Build configure
+      shell: cmd
+      run: |
+        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
+        devenv /upgrade configure.vcxproj
+        msbuild configure.sln /m /t:Rebuild /p:Configuration=Release,Platform=Win32
+
+    - name: Configure ImageMagick
+      shell: cmd
+      run: |
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
+        configure.exe /noWizard /VS2019 /x64 /smtd
+
+    - name: Build ImageMagick
+      shell: cmd
+      run: |
+        call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat"
+        cd %RUNNER_WORKSPACE%\ImageMagick-Windows\VisualMagick
+        msbuild VisualStaticMTD.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64
diff --git a/.travis.yml b/.travis.yml
index db7e77f..b62d24c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -18,9 +18,12 @@
 script: |
   set -e
   set -x
-  export OMP_NUM_THREADS=1
   export CFLAGS="-Wno-deprecated-declarations -Wdeclaration-after-statement -Wno-error=unused-variable"
-  ./configure --disable-openmp --with-quantum-depth=16 --enable-hdri=no --without-perl --prefix=/usr
+  if [ "$TRAVIS_COMPILER" == "gcc" ] ; then
+    ./configure --with-quantum-depth=16 --enable-hdri=no --without-perl --prefix=/usr
+  else
+    ./configure --disable-openmp --with-quantum-depth=16 --enable-hdri=no --without-perl --prefix=/usr
+  fi
   make
   make install DESTDIR=$(readlink -f appdir)
   # Build the fuzzers
diff --git a/.travis/build_fuzzers.sh b/.travis/build_fuzzers.sh
index 76cf3b3..9d16ad5 100755
--- a/.travis/build_fuzzers.sh
+++ b/.travis/build_fuzzers.sh
@@ -4,10 +4,11 @@
 MAGICK_COMPILER_FLAGS="-DBUILD_TRAVIS=1"
 MAGICK_INCLUDE="appdir/usr/include/ImageMagick-7"
 MAGICK_SRC="Magick++/fuzz"
-MAGICK_LIBS="-Lappdir/usr/lib -lz -lpng -lfontconfig -lxcb -lX11 -lXext -lbz2 -ljpeg -ljbig -lIlmImf -ldjvulibre -ltiff -llqr-1 -lwmf -lwmflite -lraqm -lxml2 -llzma -llcms2 -lpthread -lfreetype -lMagick++-7.Q16 -lMagickWand-7.Q16 -lMagickCore-7.Q16 -lstdc++"
+MAGICK_LIBS="-Lappdir/usr/lib -fopenmp -lz -lpng -lfontconfig -lxcb -lX11 -lXext -lbz2 -ljpeg -ljbig -lIlmImf -ldjvulibre -ltiff -llqr-1 -lwmf -lwmflite -lraqm -lxml2 -llzma -llcms2 -lpthread -lfreetype -lMagick++-7.Q16 -lMagickWand-7.Q16 -lMagickCore-7.Q16 -lstdc++"
+MAGICK_LIBS_NO_FUZZ="$MAGICK_LIBS"
 MAGICK_OUTPUT="Magick++/fuzz"
 MAGICK_FAST_BUILD=1
 
 export LD_LIBRARY_PATH=appdir/usr/lib
 
-. $MAGICK_SRC/build_fuzzers.sh
\ No newline at end of file
+. $MAGICK_SRC/build_fuzzers.sh
diff --git a/AUTHORS.txt b/AUTHORS.txt
index 9a8f16a..1e5b882 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -9,11 +9,6 @@
      Contributor to and maintainer of Magick++, OpenCL acceleration, and
      the Windows build (configure, ImageMagickObject, etc.).
 
-Glenn Randers-Pehrson
-     Contributed significantly to the utilities.  Authored support for JNG,
-     MNG, and PNG formats. Provided significant support for the BMP format.
-     Made significant improvements to the documentation.
-
 Bastien ROUCARIÈS
      Various patches from Debian downstream.
 
@@ -29,6 +24,11 @@
 These individuals have made source code contributions to the ImageMagick
 project in the past but are no longer active developers:
 
+Glenn Randers-Pehrson
+     Contributed significantly to the utilities.  Authored support for JNG,
+     MNG, and PNG formats. Provided significant support for the BMP format.
+     Made significant improvements to the documentation.
+
 Kelly Bergougnoux
      Authored the Cineon image coder (based on the existing DPX source).
 
diff --git a/ChangeLog b/ChangeLog
index eb3d33d..b205750 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,463 @@
+2020-01-04  7.0.9-14 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-14, GIT revision 16654:89ef7ea:20200104.
+
+2020-01-01  7.0.9-14 Cristy  <quetzlzacatenango@image...>
+  * Support extended Fx assignment operators (e.g. *=, /=, ++, --, etc.)
+  * Support Fx for() iterator.
+  * Optimize Fx performance.
+  * Ensure circle.rb renders the same for IMv6 and IMv7 (reference
+    https://github.com/rmagick/rmagick/issues/905).
+
+2019-12-30  7.0.9-13 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-13, GIT revision 16616:dbafe0b:20191230.
+
+2019-12-27  7.0.9-13 Cristy  <quetzlzacatenango@image...>
+  * xc:white no longer creates a black PNM image (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1817).
+  * Sync pixel cache for -kmeans option.
+  * Thread -kmeans option.
+  * PSD: only set the alpha channel when type is not 0.
+  * Fix Lab to custom profile (CMYK or RGB) conversion bug (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=37318).
+
+2019-12-26  7.0.9-12 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-12, GIT revision 16587:7d6a559:20191226.
+
+2019-12-26  7.0.9-12 Cristy  <quetzlzacatenango@image...>
+  * Fix Build failure with MinGW-w64 (reference
+    https://github.com/ImageMagick/ImageMagick6/issues/67).
+  * Inject image profile properties immediately after the image is read.
+
+2019-12-23  7.0.9-11 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-11, GIT revision 16568:1d6c960:20191224.
+
+2019-12-18  7.0.9-11 Cristy  <quetzlzacatenango@image...>
+  * Replace pseudo-random number generator with a Xoshiro generator.
+  * The -layers optimize option requires a fully transparent previous image.
+
+2019-12-22  7.0.9-10 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-10, GIT revision 16548:281649843:20191222.
+
+2019-12-18  7.0.9-10 Cristy  <quetzlzacatenango@image...>
+  * Some clang releases do not support _aligned_alloc().
+  * Support -kmeans command-line option.
+
+2019-12-07  7.0.9-9 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-9, GIT revision 16513:8ec82f4:20191215.
+
+2019-12-07  7.0.9-9 Cristy  <quetzlzacatenango@image...>
+  * Build file clean-up (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1798).
+  * Improve semaphore handling @
+    https://github.com/ImageMagick/ImageMagick/pull/1798).
+  * Introduce HeapOverflowSanityCheckGetExtent() method (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1798).
+
+2019-12-01  7.0.9-8 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-8, GIT revision 16474:0bc0e95:20191207.
+
+2019-12-01  7.0.9-8 Cristy  <quetzlzacatenango@image...>
+  * -type bilevel behavior restored, it creates a black and white image.
+
+2019-11-30  7.0.9-7 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-7, GIT revision 16449:971ba06:20191130.
+
+2019-11-26  7.0.9-7 Cristy  <quetzlzacatenango@image...>
+  * Support Pocketmod image format, e.g.
+    convert -density 300 pages?.pdf pocketmod:organize.pdf
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+  * Update documentation.
+
+2019-11-26  7.0.9-6 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-6, GIT revision 16407:1725ec3:20191126.
+
+2019-11-19  7.0.9-6 Cristy  <quetzlzacatenango@image...>
+  * Increase the maximum number of bezier coordinates (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1784).
+  * Santize "'" from SHOW and WIN delegates under Linux, '"\' for Windows
+    (thanks to Enzo Puig).
+  * Correct for TGA orientation (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=34757).
+  * The result for -compose Copy -extent on a  MYK image is CMYK (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=37118).
+  * Fix potential buffer overflow when reading a fax image (alert from
+    Justin).
+  * Support dng:use-camera-wb option.
+
+2019-11-17  7.0.9-5 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-5, GIT revision 16369:747618e:20191117.
+
+2019-11-16  7.0.9-5 Cristy  <quetzlzacatenango@image...>
+  * Ensure Ascii85 compression is thread safe.
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-11-13  7.0.9-4 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-4, GIT revision 16354:5f53562:20191114.
+
+2019-11-10  7.0.9-4 Cristy  <quetzlzacatenango@image...>
+  * Add exception parameter to CMS transform methods.
+  * Output exception there is an attempt to perform an operation not allowed by
+    the security policy
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-10-30  7.0.9-2 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-2, GIT revision 16325:6f84d89:20191030.
+
+2019-10-29  7.0.9-2 Cristy  <quetzlzacatenango@image...>
+  * JPEG and JPG are aliases in coder security policy.
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-10-27  7.0.9-1 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-1, GIT revision 16313:e068be3:20191027.
+
+2019-10-27  7.0.9-1 Cristy  <quetzlzacatenango@image...>
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-10-23  7.0.9-0 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.9-0, GIT revision 16297:8744fd9:20191024
+
+2019-10-06  7.0.9-0 Cristy  <quetzlzacatenango@image...>
+  * Fixed numerous issues  posted to GitHub (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+  * Support trim:background-color define for -trim option.
+
+2019-10-05  7.0.8-68 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-68, GIT revision 16184:b75b0e5:20191005.
+
+2019-09-30  7.0.8-68 Cristy  <quetzlzacatenango@image...>
+  * Support animated WebP encoding/decoding (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1708).
+  * Text stroke cut off (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=36829).
+  * Adds support for lossless JPEG1 recompression (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=2&t=36828).
+
+2019-09-29  7.0.8-67 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-67, GIT revision 16145:6f2feb9:20190929.
+
+2019-09-28  7.0.8-67 Cristy  <quetzlzacatenango@image...>
+  * line endings renedered as empty boxes (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1704).
+
+2019-09-21  7.0.8-66 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-66, GIT revision 16134:f6ce80a:20190921.
+
+2019-09-09  7.0.8-66 Cristy  <quetzlzacatenango@image...>
+  * Support compound statements in FX while() (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1701).
+
+2019-09-15  7.0.8-65 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-65, GIT revision 16130:254db34:20190915.
+
+2019-09-09  7.0.8-65 Cristy  <quetzlzacatenango@image...>
+  * Eliminate fault when trace delegate is not available.
+  * Properly distinquish linear and non-linear gray colorspaces (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1680).
+
+2019-09-07  7.0.8-64 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-64, GIT revision 16108:2ad3cbc:20190907.
+
+2019-09-02  7.0.8-64 Cristy  <quetzlzacatenango@image...>
+  * Support XPM symbolic (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1684).
+  * DilateIntensity is channel independent (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36641).
+
+2019-08-31  7.0.8-63 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-63, GIT revision 16088:3b7a33d:20190831.
+
+2019-08-24  7.0.8-63 Cristy  <quetzlzacatenango@image...>
+  * Properly identify the DNG and AI image format (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36581).
+
+2019-08-23  7.0.8-62 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-62, GIT revision 16061:7525595:20190823.
+
+2019-08-23  7.0.8-62 Dirk Lemstra <dirk@lem.....org>
+  * Added option to limit the maximum point size with -define
+    caption:max-pointsize=pointsize.
+  * Corrected JP2 numresolution calculation (reference:
+    https://github.com/ImageMagick/ImageMagick/issues/1673)
+
+2019-08-19  7.0.8-62 Cristy  <quetzlzacatenango@image...>
+  * Conditionally compile call to AcquireCLocale() (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1669).
+  * More robust support for converting bitmap to vector.
+
+2019-08-16  7.0.8-61 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-61, GIT revision 16033:0c5808c:20190816.
+
+2019-08-03  7.0.8-61 Cristy  <quetzlzacatenango@image...>
+  * Issue with -background and -swirl (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36512).
+
+2019-08-10  7.0.8-60 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-60, GIT revision 16020:52ff205:20190810.
+
+2019-08-07  7.0.8-60 Cristy  <quetzlzacatenango@image...>
+  * Enable reading EXR image file from stdin.
+
+2019-08-04  7.0.8-59 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-59, GIT revision 15986:c3de0e7:20190804.
+
+2019-08-01  7.0.8-59 Cristy  <quetzlzacatenango@image...>
+  * Module is a reserved keyword for C++ 20 (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1650).
+
+2019-07-29  7.0.8-58 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-58, GIT revision 15962:cf00632:20190729.
+
+2019-07-27  7.0.8-58 Cristy  <quetzlzacatenango@image...>
+  * Improve GetNextToken() performance.
+
+2019-07-26  7.0.8-57 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-57, GIT revision 15948:8fba4a3:20190726.
+
+2019-07-22  7.0.8-57 Cristy  <quetzlzacatenango@image...>
+  * Heap-buffer-overflow in Postscript coder (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1644).
+  * The -alpha shape option nondeteministic under OpenMP (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36396).
+  * Correction to the ModulusAdd and ModulusSubtract composite op (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=2&t=36413).
+
+2019-07-20  7.0.8-56 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-56, GIT revision 15936:2ac4147:20190720.
+
+2019-07-20  7.0.8-56 Cristy  <quetzlzacatenango@image...>
+  * Unexpected -alpha shape results (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36396).
+  * Converting from PDF to PBM inverts the image (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1643).
+
+2019-07-18  7.0.8-55 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-55, GIT revision 15930:ac09240:20190718.
+
+2019-07-18  7.0.8-55 Cristy  <quetzlzacatenango@image...>
+  * Heap-buffer overflow (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1641
+  * PerlMagick test suite passes again (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1640) 
+
+2019-07-16  7.0.8-54 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-54, GIT revision 15916:e868e22:20190716.
+
+2019-07-08  7.0.8-54 Cristy  <quetzlzacatenango@image...>
+  * resolve division by zero  (reference
+     https://github.com/ImageMagick/ImageMagick/issues/1629).
+  * introducing MagickLevelImageColors() MagickWand method.
+  * Transient problem with text placement with gravity (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1633).
+  * Support TIM2 image format (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1571).
+  * For -magnify option, specify an alternative scaling method with -define
+    magnify:method=method, choose from these methods: eagle2X, eagle3X,
+    eagle3XB, epb2X, fish2X, hq2X,  scale2X (default), scale3X, xbr2X.
+
+2019-07-05  7.0.8-53 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-53, GIT revision 15828:f5d59c0:20190705.
+
+2019-07-05  7.0.8-53 Cristy  <quetzlzacatenango@image...>
+   * Fix -fx parsing issue (reference
+     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36314).
+
+2019-07-05  7.0.8-52 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-52, GIT revision 15825:ea47310:20190705.
+
+2019-07-01  7.0.8-52 Cristy  <quetzlzacatenango@image...>
+  * Eliminate buffer overflow in TranslateEvent() (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1621).
+
+2019-06-30  7.0.8-51 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-51, GIT revision 15812:51f11c4:20190630.
+
+2019-06-24  7.0.8-51 Cristy  <quetzlzacatenango@image...>
+  * Clone rather than copy X window name/icon.
+  * Optimize PDF reader.
+
+2019-06-23  7.0.8-50 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-50, GIT revision 15778:4a60519:20190623
+
+2019-06-14  7.0.8-50 Dirk Lemstra <dirk@lem.....org>
+  * Added support for reading all images from a HEIC image (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1391).
+  * Heap-buffer-overflow in MagickCore/fourier.c (reference
+   https://github.com/ImageMagick/ImageMagick/issues/1588).
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-06-08  7.0.8-49 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-49, GIT revision 15708:6d7e1db:20190608
+
+2019-06-03  7.0.8-49 Cristy  <quetzlzacatenango@image...>
+  * Add support for RGB565 image format (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=2&t=36078).
+  * Use user defined allocator instead of `malloc` (reference
+    https://github.com/ImageMagick/ImageMagick6/pull/49/).
+  * Add static decorator to accelerator kernels (reference
+    https://github.com/ImageMagick/ImageMagick/issues/1366).
+
+2019-06-01  7.0.8-48 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-48, GIT revision 15689:061a3bb82:20190601
+
+2019-06-01  7.0.8-48 Cristy  <quetzlzacatenango@image...>
+  * Fix transient convolution bug (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36119).
+
+2019-05-26  7.0.8-47 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-47, GIT revision 15681:5cffc6cbb:20190526
+
+2019-05-19  7.0.8-47 Cristy  <quetzlzacatenango@image...>
+  * Support 16 and 32 bit tiled float TIFF images.
+  * Convolve morphology alpha channel fix (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=36086).
+  * Text improvements to the internal SVG renderer.
+
+2019-05-14  7.0.8-46 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-46, GIT revision 15655:84dd3301c:20190518
+
+2019-05-14  7.0.8-46 Cristy  <quetzlzacatenango@image...>
+  * PerlMagick unit tests pass again.
+  * Builds under MacOS X and FreeBSD works again.
+  * Return HEIC images in the sRGB colorspace.
+
+2019-05-12  7.0.8-45 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-45, GIT revision 15634:784105bcb:20190512
+
+2019-05-06  7.0.8-45 Cristy  <quetzlzacatenango@image...>
+  * Fix image signatures to ensure they are Q-depth invariant (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35970).
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-05-03  7.0.8-44 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-44, GIT revision 15600:41f47759a:20190503
+
+2019-05-03  7.0.8-44 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-05-01  7.0.8-43 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-43, GIT revision 15595:0062cef74:20190502
+
+2019-05-01  7.0.8-43 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-04-29  7.0.8-42 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-42, GIT revision 15570:71190ccd0:20190424
+
+2019-04-20  7.0.8-42 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-04-19  7.0.8-41 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-41, GIT revision 15540:c78993d13:20190420
+
+2019-04-13  7.0.8-41 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+  * Honor SOURCE_DATE_EPOCH environment variable (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1496/).
+  * Standardize on UTC time for any image format timestamp.
+  * Add MagickAutoThresholdImage(), MagickCannyEdgeImage(),
+    MagickComplexImages(), MagickConnectedComponentsImage(),
+    MagickHoughLineImage(), MagickKuwaharaImage(), MagickLevelizeImageColors(),
+    MagickLevelImageColors(), MagickMeanShiftImage(), MagickPolynomialImage(),
+    MagickRangeThresholdImage(), MagickSetSeed(), MagickWaveletDenoiseImage()
+    methods to MagickWand API.
+
+2019-04-12  7.0.8-40 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-40, GIT revision 15510:7e503e231:20190412
+
+2019-04-10  7.0.8-40 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://imagemagick.org/discourse-server/viewforum.php?f=3).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+
+2019-04-07  7.0.8-39 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-39, GIT revision 15489:6120f8bc1:20190406
+
+2019-04-06  7.0.8-39 Cristy  <quetzlzacatenango@image...>
+  * The -layers option compared pixels inocorrectly as opacity rather than
+    alpha.
+  * The -preview raise option now returns expected results.
+  * Initialise ghostscript instances with NULL (reference
+    https://github.com/ImageMagick/ImageMagick/pull/1538).
+
+2019-04-06  7.0.8-38 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-38, GIT revision 15483:23edcef04:20190406
+
+2019-04-06  7.0.8-38 Cristy  <quetzlzacatenango@image...>
+  * Modulo off by one patch for -virtual-pixel option (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=35789).
+
+2019-04-03  7.0.8-37 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-37, GIT revision 15470:477216fd7:20190403
+
+2019-04-03  7.0.8-37 Cristy  <quetzlzacatenango@image...>
+  * Fixed -virtual-pixel option (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=35789).
+
+2019-03-31  7.0.8-36 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-36, GIT revision 15464:3a928224d:20190331
+
+2019-03-27  7.0.8-36 Cristy  <quetzlzacatenango@image...>
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-03-24  7.0.8-35 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-35, GIT revision 15440:4a0a88e41:20190324
+
+2019-03-23  7.0.8-35 Cristy  <quetzlzacatenango@image...>
+  * -draw image DstOver is now responsive to the composite operator (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650).
+  * Fixed a number of issues (reference
+    https://github.com/ImageMagick/ImageMagick/issues).
+
+2019-03-15  7.0.8-34 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-34, GIT revision 15413:860af935d:20190315
+
+2019-03-11  7.0.8-34 Cristy  <quetzlzacatenango@image...>
+  * Associate one lock with each resource.
+  * Report exception if opening TIFF did not work out.
+  * Fixed numerous use of uninitialized values, integer overflow, memory
+    exceeded, and timeouts (credit to OSS Fuzz).
+
+2019-03-10  7.0.8-33 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-33, GIT revision 15401:c805e3205:20190310
+
+2019-03-06  7.0.8-33 Cristy  <quetzlzacatenango@image...>
+  * Fix SVG conversion infinite loop (reference
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=35591).
+  * Initialize primitive drawing structure after resizing.
+
+2019-03-05  7.0.8-32 Cristy  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.8-32, GIT revision 15386:58d9c4692:20190305
+
+2019-03-05  7.0.8-32 Cristy  <quetzlzacatenango@image...>
+  * Fix out-of-boundary LocaleLowerCase() @
+    https://github.com/ImageMagick/ImageMagick/issues/1495
+
 2019-03-04  7.0.8-31 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.8-31, GIT revision 15381:3122a669d:20190304
 
@@ -517,7 +977,7 @@
   * Stop potential leaks in the JNG decoder (reference:
     https://github.com/ImageMagick/ImageMagick/issues/760).
   * Maximum valid hour is 23, not 24, in the PNG tIME chunk, and maximum
-    valid minute is 59, not 60.  
+    valid minute is 59, not 60.
 
 2017-09-12  7.0.7-2 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.7-2, GIT revision 21089:4e46ad9dd:20170912.
@@ -759,7 +1219,7 @@
   * Release ImageMagick version 7.0.5-6, GIT revision 20039:9371904:20170512.
 
 2017-05-10  7.0.5-6 John Cupitt <jcupitt@gmail.com>
-  * Revise DICOM window and rescale handling (reference 
+  * Revise DICOM window and rescale handling (reference
     https://github.com/ImageMagick/ImageMagick/pull/484)
 
 2017-05-06  7.0.5-6 Cristy  <quetzlzacatenango@image...>
@@ -966,7 +1426,7 @@
   * Set colorspace to sRGB if -append has non-homogenous colorspaces (reference
     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=29105).
   * Respect connected-components:area-threshold define (reference
-    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=31006). 
+    https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=31006).
   * Enable alpha channel if background color is non-opaque (reference
     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=31016).
   * Return correct offset for negative index for -fx option (reference
@@ -1023,7 +1483,6 @@
     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=30797).
   * Mask composite produces proper results for the convert utility (reference
     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=29675).
-    
 
 2016-10-10  7.0.3-5 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.3-5, GIT revision 18975:a8174a2:20161030.
@@ -1052,7 +1511,7 @@
   * Release ImageMagick version 7.0.3-2, GIT revision 18887:6b27c5b:20161002.
 
 2016-09-27  7.0.3-2 Dirk Lemstra <dirk@lem.....org>
-  * Fixed incorrect RLE decoding when reading an SGI image (reference 
+  * Fixed incorrect RLE decoding when reading an SGI image (reference
     https://imagemagick.org/discourse-server/viewtopic.php?f=3&t=30514)
 
 2016-09-20  7.0.3-1 Cristy  <quetzlzacatenango@image...>
@@ -1153,7 +1612,7 @@
 2016-06-23  7.0.2-2 Cristy  <quetzlzacatenango@image...>
   * Correct for numerical instability (reference
     https://github.com/ImageMagick/ImageMagick/issues/218).
-			 
+
 2016-06-21  7.0.2-1 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.2-1, GIT revision 18479:931319b:20160622.
 
@@ -1275,7 +1734,7 @@
 2016-04-30  7.0.1-0 Cristy  <quetzlzacatenango@image...>
   * New version 7.0.1-0, GIT revision 10716:b527bce:20160430.
 
-2016-01-30  7.0.0-0 	Fahad-Alsaidi & ShamsaHamed
+2016-01-30  7.0.0-0 Fahad-Alsaidi & ShamsaHamed
   * Add support for languages that require complex text layout (reference
     https://github.com/ImageMagick/ImageMagick/pull/88).
 
diff --git a/Install-unix.txt b/Install-unix.txt
index 872229d..6209ae6 100644
--- a/Install-unix.txt
+++ b/Install-unix.txt
@@ -23,8 +23,8 @@
   default options, and build from within the source directory, you can simply
   type:
   
-    $magick> cd ImageMagick-7.0.7
-     $magick> ./configure
+    $magick> cd ImageMagick-7.0.9
+    $magick> ./configure
   
   Watch the configure script output to verify that it finds everything that
   you think it should. Pay particular attention to the last lines of the script
@@ -231,8 +231,8 @@
       enable 'gprof' profiling support (default disabled).
   
     --enable-gcov
-   
-     enable 'gcov' profiling support (default disabled).
+      enable 'gcov' profiling support (default disabled).
+
     --disable-openmp
       disable OpenMP (default enabled).
   
diff --git a/LICENSE b/LICENSE
index 5105e9a..d3be3cf 100644
--- a/LICENSE
+++ b/LICENSE
@@ -38,7 +38,7 @@
 
 The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:
 
-Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
+Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
 
 1. Definitions.
 
diff --git a/METADATA b/METADATA
index 22c0533..58cc181 100644
--- a/METADATA
+++ b/METADATA
@@ -9,10 +9,10 @@
     type: GIT
     value: "https://github.com/ImageMagick/ImageMagick.git"
   }
-  version: "27cf421df4e0ef76d409bade05a72ae84ae85994"
+  version: "886e5a7d5806f9deb937fc4cf8aa7b7ca0b14481"
   last_upgrade_date {
-    year: 2019
-    month: 3
-    day: 4
+    year: 2020
+    month: 1
+    day: 8
   }
 }
diff --git a/Magick++/Android.bp b/Magick++/Android.bp
index c813a87..0642099 100644
--- a/Magick++/Android.bp
+++ b/Magick++/Android.bp
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-cc_defaults {
-    name: "Magick++_defaults",
+cc_library_static {
+    name: "Magick++",
 
     srcs: ["lib/*.cpp"],
 
@@ -29,17 +29,7 @@
     header_libs: ["Magick_headers"],
     export_header_lib_headers: ["Magick_headers"],
     export_include_dirs: ["lib"],
-}
-
-cc_library_static {
-    name: "Magick++_platform",
-    defaults: ["Magick++_defaults"],
-    stl: "libc++_static",
-}
-
-cc_library_static {
-    name: "Magick++",
-    defaults: ["Magick++_defaults"],
     sdk_version: "24",
     stl: "c++_static",
+    visibility: ["//vendor:__subpackages__"],
 }
diff --git a/Magick++/Makefile.am b/Magick++/Makefile.am
index 44c287b..e1c8d58 100644
--- a/Magick++/Makefile.am
+++ b/Magick++/Makefile.am
@@ -31,89 +31,89 @@
 endif
 
 MAGICKPP_SCRPTS_OPT = \
-	Magick++/bin/Magick++-config
+  Magick++/bin/Magick++-config
 
 MAGICKPP_MANS_OPT = \
-	Magick++/bin/Magick++-config.1
+  Magick++/bin/Magick++-config.1
 
 MAGICKPP_PKGCONFIG_OPT = \
-	Magick++/lib/Magick++.pc \
-	Magick++/lib/Magick++-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
+  Magick++/lib/Magick++.pc \
+  Magick++/lib/Magick++-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 MAGICKPP_TEST_SCRPTS_OPT = \
-	Magick++/tests/tests.tap \
-	Magick++/demo/demos.tap
+  Magick++/tests/tests.tap \
+  Magick++/demo/demos.tap
 
 MAGICKPP_EXTRA_DIST = \
-	Magick++/AUTHORS \
-	Magick++/ChangeLog \
-	Magick++/INSTALL \
-	Magick++/LICENSE \
-	Magick++/NEWS \
-	Magick++/README \
-	Magick++/bin/Magick++-config.1 \
-	Magick++/bin/Magick++-config.in \
-	Magick++/lib/libMagick++.map \
-	Magick++/lib/Magick++.pc.in \
-	Magick++/demo/model.miff \
-	Magick++/demo/smile.miff \
-	Magick++/demo/smile_anim.miff \
-	Magick++/demo/tile.miff \
-	$(MAGICKPP_TEST_SCRPTS_OPT) \
-	Magick++/tests/test_image.miff \
-	Magick++/tests/test_image_anim.miff
+  Magick++/AUTHORS \
+  Magick++/ChangeLog \
+  Magick++/INSTALL \
+  Magick++/LICENSE \
+  Magick++/NEWS \
+  Magick++/README \
+  Magick++/bin/Magick++-config.1 \
+  Magick++/bin/Magick++-config.in \
+  Magick++/lib/libMagick++.map \
+  Magick++/lib/Magick++.pc.in \
+  Magick++/demo/model.miff \
+  Magick++/demo/smile.miff \
+  Magick++/demo/smile_anim.miff \
+  Magick++/demo/tile.miff \
+  $(MAGICKPP_TEST_SCRPTS_OPT) \
+  Magick++/tests/test_image.miff \
+  Magick++/tests/test_image_anim.miff
 
 MAGICKPP_CLEANFILES = \
-	Magick++/demo/*_out* \
-	Magick++/demo/ir.out \
-	Magick++/tests/colorHistogram.txt \
-	Magick++/tests/testmagick_anim_out.miff \
-	Magick++/tests/ir.out
+  Magick++/demo/*_out* \
+  Magick++/demo/ir.out \
+  Magick++/tests/colorHistogram.txt \
+  Magick++/tests/testmagick_anim_out.miff \
+  Magick++/tests/ir.out
 
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = \
-	Magick++/lib/Blob.cpp \
-	Magick++/lib/BlobRef.cpp \
-	Magick++/lib/CoderInfo.cpp \
-	Magick++/lib/Color.cpp \
-	Magick++/lib/Drawable.cpp \
-	Magick++/lib/Exception.cpp \
-	Magick++/lib/Functions.cpp \
-	Magick++/lib/Geometry.cpp \
-	Magick++/lib/Image.cpp \
-	Magick++/lib/ImageRef.cpp \
-	Magick++/lib/Montage.cpp \
-	Magick++/lib/Options.cpp \
-	Magick++/lib/Pixels.cpp \
-	Magick++/lib/ResourceLimits.cpp \
-	Magick++/lib/SecurityPolicy.cpp \
-	Magick++/lib/Statistic.cpp \
-	Magick++/lib/STL.cpp \
-	Magick++/lib/Thread.cpp \
-	Magick++/lib/TypeMetric.cpp \
-	Magick++/lib/Magick++.h \
-	Magick++/lib/Magick++/Blob.h \
-	Magick++/lib/Magick++/BlobRef.h \
-	Magick++/lib/Magick++/CoderInfo.h \
-	Magick++/lib/Magick++/Color.h \
-	Magick++/lib/Magick++/Drawable.h \
-	Magick++/lib/Magick++/Exception.h \
-	Magick++/lib/Magick++/Functions.h \
-	Magick++/lib/Magick++/Geometry.h \
-	Magick++/lib/Magick++/Image.h \
-	Magick++/lib/Magick++/ImageRef.h \
-	Magick++/lib/Magick++/Include.h \
-	Magick++/lib/Magick++/Montage.h \
-	Magick++/lib/Magick++/Options.h \
-	Magick++/lib/Magick++/Pixels.h \
-	Magick++/lib/Magick++/ResourceLimits.h \
-	Magick++/lib/Magick++/SecurityPolicy.h \
-	Magick++/lib/Magick++/Statistic.h \
-	Magick++/lib/Magick++/STL.h \
-	Magick++/lib/Magick++/Thread.h \
-	Magick++/lib/Magick++/TypeMetric.h
+  Magick++/lib/Blob.cpp \
+  Magick++/lib/BlobRef.cpp \
+  Magick++/lib/CoderInfo.cpp \
+  Magick++/lib/Color.cpp \
+  Magick++/lib/Drawable.cpp \
+  Magick++/lib/Exception.cpp \
+  Magick++/lib/Functions.cpp \
+  Magick++/lib/Geometry.cpp \
+  Magick++/lib/Image.cpp \
+  Magick++/lib/ImageRef.cpp \
+  Magick++/lib/Montage.cpp \
+  Magick++/lib/Options.cpp \
+  Magick++/lib/Pixels.cpp \
+  Magick++/lib/ResourceLimits.cpp \
+  Magick++/lib/SecurityPolicy.cpp \
+  Magick++/lib/Statistic.cpp \
+  Magick++/lib/STL.cpp \
+  Magick++/lib/Thread.cpp \
+  Magick++/lib/TypeMetric.cpp \
+  Magick++/lib/Magick++.h \
+  Magick++/lib/Magick++/Blob.h \
+  Magick++/lib/Magick++/BlobRef.h \
+  Magick++/lib/Magick++/CoderInfo.h \
+  Magick++/lib/Magick++/Color.h \
+  Magick++/lib/Magick++/Drawable.h \
+  Magick++/lib/Magick++/Exception.h \
+  Magick++/lib/Magick++/Functions.h \
+  Magick++/lib/Magick++/Geometry.h \
+  Magick++/lib/Magick++/Image.h \
+  Magick++/lib/Magick++/ImageRef.h \
+  Magick++/lib/Magick++/Include.h \
+  Magick++/lib/Magick++/Montage.h \
+  Magick++/lib/Magick++/Options.h \
+  Magick++/lib/Magick++/Pixels.h \
+  Magick++/lib/Magick++/ResourceLimits.h \
+  Magick++/lib/Magick++/SecurityPolicy.h \
+  Magick++/lib/Magick++/Statistic.h \
+  Magick++/lib/Magick++/STL.h \
+  Magick++/lib/Magick++/Thread.h \
+  Magick++/lib/Magick++/TypeMetric.h
 
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS = \
-	$(MAGICKPP_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
+  $(MAGICKPP_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
 
 magickpptopincdir = $(INCLUDE_PATH)
 
@@ -127,22 +127,22 @@
 magickppinc_HEADERS = $(MAGICKPP_INCHEADERS)
 
 MAGICKPP_INCHEADERS_OPT = \
-	Magick++/lib/Magick++/Blob.h \
-	Magick++/lib/Magick++/CoderInfo.h \
-	Magick++/lib/Magick++/Color.h \
-	Magick++/lib/Magick++/Drawable.h \
-	Magick++/lib/Magick++/Exception.h \
-	Magick++/lib/Magick++/Functions.h \
-	Magick++/lib/Magick++/Geometry.h \
-	Magick++/lib/Magick++/Image.h \
-	Magick++/lib/Magick++/Include.h \
-	Magick++/lib/Magick++/Montage.h \
-	Magick++/lib/Magick++/Pixels.h \
-	Magick++/lib/Magick++/ResourceLimits.h \
-	Magick++/lib/Magick++/SecurityPolicy.h \
-	Magick++/lib/Magick++/Statistic.h \
-	Magick++/lib/Magick++/STL.h \
-	Magick++/lib/Magick++/TypeMetric.h
+  Magick++/lib/Magick++/Blob.h \
+  Magick++/lib/Magick++/CoderInfo.h \
+  Magick++/lib/Magick++/Color.h \
+  Magick++/lib/Magick++/Drawable.h \
+  Magick++/lib/Magick++/Exception.h \
+  Magick++/lib/Magick++/Functions.h \
+  Magick++/lib/Magick++/Geometry.h \
+  Magick++/lib/Magick++/Image.h \
+  Magick++/lib/Magick++/Include.h \
+  Magick++/lib/Magick++/Montage.h \
+  Magick++/lib/Magick++/Pixels.h \
+  Magick++/lib/Magick++/ResourceLimits.h \
+  Magick++/lib/Magick++/SecurityPolicy.h \
+  Magick++/lib/Magick++/Statistic.h \
+  Magick++/lib/Magick++/STL.h \
+  Magick++/lib/Magick++/TypeMetric.h
 
 if HAVE_LD_VERSION_SCRIPT
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION =  -Wl,--version-script=$(top_srcdir)/Magick++/lib/libMagick++.map
@@ -157,115 +157,115 @@
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS)
 
 MAGICKPP_CHECK_PGRMS_OPT = \
-	Magick++/demo/analyze \
-	Magick++/demo/button \
-	Magick++/demo/demo \
-	Magick++/demo/detrans \
-	Magick++/demo/flip \
-	Magick++/demo/gravity \
-	Magick++/demo/piddle \
-	Magick++/demo/shapes \
-	Magick++/demo/zoom \
-	Magick++/tests/appendImages \
-	Magick++/tests/attributes \
-	Magick++/tests/averageImages \
-	Magick++/tests/coalesceImages \
-	Magick++/tests/coderInfo \
-	Magick++/tests/color \
-	Magick++/tests/colorHistogram \
-	Magick++/tests/exceptions \
-	Magick++/tests/geometry \
-	Magick++/tests/montageImages \
-	Magick++/tests/morphImages \
-	Magick++/tests/readWriteBlob \
-	Magick++/tests/readWriteImages
+  Magick++/demo/analyze \
+  Magick++/demo/button \
+  Magick++/demo/demo \
+  Magick++/demo/detrans \
+  Magick++/demo/flip \
+  Magick++/demo/gravity \
+  Magick++/demo/piddle \
+  Magick++/demo/shapes \
+  Magick++/demo/zoom \
+  Magick++/tests/appendImages \
+  Magick++/tests/attributes \
+  Magick++/tests/averageImages \
+  Magick++/tests/coalesceImages \
+  Magick++/tests/coderInfo \
+  Magick++/tests/color \
+  Magick++/tests/colorHistogram \
+  Magick++/tests/exceptions \
+  Magick++/tests/geometry \
+  Magick++/tests/montageImages \
+  Magick++/tests/morphImages \
+  Magick++/tests/readWriteBlob \
+  Magick++/tests/readWriteImages
 
-Magick___demo_analyze_SOURCES		= Magick++/demo/analyze.cpp
-Magick___demo_analyze_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_analyze_SOURCES   = Magick++/demo/analyze.cpp
+Magick___demo_analyze_LDADD     = $(MAGICKPP_LDADD)
 Magick___demo_analyze_CPPFLAGS  = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_button_SOURCES		= Magick++/demo/button.cpp
-Magick___demo_button_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_button_SOURCES    = Magick++/demo/button.cpp
+Magick___demo_button_LDADD      = $(MAGICKPP_LDADD)
 Magick___demo_button_CPPFLAGS   = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_demo_SOURCES	   	= Magick++/demo/demo.cpp
-Magick___demo_demo_LDADD		    = $(MAGICKPP_LDADD)
+Magick___demo_demo_SOURCES      = Magick++/demo/demo.cpp
+Magick___demo_demo_LDADD        = $(MAGICKPP_LDADD)
 Magick___demo_demo_CPPFLAGS     = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_detrans_SOURCES		= Magick++/demo/detrans.cpp
-Magick___demo_detrans_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_detrans_SOURCES   = Magick++/demo/detrans.cpp
+Magick___demo_detrans_LDADD     = $(MAGICKPP_LDADD)
 Magick___demo_detrans_CPPFLAGS  = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_flip_SOURCES		  = Magick++/demo/flip.cpp
-Magick___demo_flip_LDADD		    = $(MAGICKPP_LDADD)
+Magick___demo_flip_SOURCES      = Magick++/demo/flip.cpp
+Magick___demo_flip_LDADD        = $(MAGICKPP_LDADD)
 Magick___demo_flip_CPPFLAGS     = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_gravity_SOURCES		= Magick++/demo/gravity.cpp
-Magick___demo_gravity_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_gravity_SOURCES   = Magick++/demo/gravity.cpp
+Magick___demo_gravity_LDADD     = $(MAGICKPP_LDADD)
 Magick___demo_gravity_CPPFLAGS  = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_piddle_SOURCES		= Magick++/demo/piddle.cpp
-Magick___demo_piddle_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_piddle_SOURCES    = Magick++/demo/piddle.cpp
+Magick___demo_piddle_LDADD      = $(MAGICKPP_LDADD)
 Magick___demo_piddle_CPPFLAGS   = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_shapes_SOURCES		= Magick++/demo/shapes.cpp
-Magick___demo_shapes_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_shapes_SOURCES    = Magick++/demo/shapes.cpp
+Magick___demo_shapes_LDADD      = $(MAGICKPP_LDADD)
 Magick___demo_shapes_CPPFLAGS   = $(MAGICKPP_CPPFLAGS)
 
-Magick___demo_zoom_SOURCES		= Magick++/demo/zoom.cpp
-Magick___demo_zoom_LDADD		  = $(MAGICKPP_LDADD)
+Magick___demo_zoom_SOURCES    = Magick++/demo/zoom.cpp
+Magick___demo_zoom_LDADD      = $(MAGICKPP_LDADD)
 Magick___demo_zoom_CPPFLAGS   = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_appendImages_SOURCES	  = Magick++/tests/appendImages.cpp
-Magick___tests_appendImages_LDADD	    = $(MAGICKPP_LDADD)
-Magick___tests_appendImages_CPPFLAGS	= $(MAGICKPP_CPPFLAGS)
+Magick___tests_appendImages_SOURCES   = Magick++/tests/appendImages.cpp
+Magick___tests_appendImages_LDADD     = $(MAGICKPP_LDADD)
+Magick___tests_appendImages_CPPFLAGS  = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_attributes_SOURCES	    = Magick++/tests/attributes.cpp
-Magick___tests_attributes_LDADD		    = $(MAGICKPP_LDADD)
-Magick___tests_attributes_CPPFLAGS	  = $(MAGICKPP_CPPFLAGS)
+Magick___tests_attributes_SOURCES     = Magick++/tests/attributes.cpp
+Magick___tests_attributes_LDADD       = $(MAGICKPP_LDADD)
+Magick___tests_attributes_CPPFLAGS    = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_averageImages_SOURCES	= Magick++/tests/averageImages.cpp
-Magick___tests_averageImages_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_averageImages_SOURCES  = Magick++/tests/averageImages.cpp
+Magick___tests_averageImages_LDADD    = $(MAGICKPP_LDADD)
 Magick___tests_averageImages_CPPFLAGS = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_coalesceImages_SOURCES	= Magick++/tests/coalesceImages.cpp
-Magick___tests_coalesceImages_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_coalesceImages_SOURCES = Magick++/tests/coalesceImages.cpp
+Magick___tests_coalesceImages_LDADD   = $(MAGICKPP_LDADD)
 Magick___tests_coalesceImages_CPPFLAGS= $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_coderInfo_SOURCES	    = Magick++/tests/coderInfo.cpp
-Magick___tests_coderInfo_LDADD		    = $(MAGICKPP_LDADD)
+Magick___tests_coderInfo_SOURCES      = Magick++/tests/coderInfo.cpp
+Magick___tests_coderInfo_LDADD        = $(MAGICKPP_LDADD)
 Magick___tests_coderInfo_CPPFLAGS     = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_color_SOURCES		      = Magick++/tests/color.cpp
-Magick___tests_color_LDADD		        = $(MAGICKPP_LDADD)
+Magick___tests_color_SOURCES          = Magick++/tests/color.cpp
+Magick___tests_color_LDADD            = $(MAGICKPP_LDADD)
 Magick___tests_color_CPPFLAGS         = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_colorHistogram_SOURCES	= Magick++/tests/colorHistogram.cpp
-Magick___tests_colorHistogram_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_colorHistogram_SOURCES = Magick++/tests/colorHistogram.cpp
+Magick___tests_colorHistogram_LDADD   = $(MAGICKPP_LDADD)
 Magick___tests_colorHistogram_CPPFLAGS= $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_exceptions_SOURCES	    = Magick++/tests/exceptions.cpp
-Magick___tests_exceptions_LDADD		    = $(MAGICKPP_LDADD)
+Magick___tests_exceptions_SOURCES     = Magick++/tests/exceptions.cpp
+Magick___tests_exceptions_LDADD       = $(MAGICKPP_LDADD)
 Magick___tests_exceptions_CPPFLAGS    = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_geometry_SOURCES	    = Magick++/tests/geometry.cpp
-Magick___tests_geometry_LDADD		    = $(MAGICKPP_LDADD)
+Magick___tests_geometry_SOURCES     = Magick++/tests/geometry.cpp
+Magick___tests_geometry_LDADD       = $(MAGICKPP_LDADD)
 Magick___tests_geometry_CPPFLAGS    = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_montageImages_SOURCES	= Magick++/tests/montageImages.cpp
-Magick___tests_montageImages_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_montageImages_SOURCES  = Magick++/tests/montageImages.cpp
+Magick___tests_montageImages_LDADD    = $(MAGICKPP_LDADD)
 Magick___tests_montageImages_CPPFLAGS = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_morphImages_SOURCES	  = Magick++/tests/morphImages.cpp
-Magick___tests_morphImages_LDADD	    = $(MAGICKPP_LDADD)
+Magick___tests_morphImages_SOURCES    = Magick++/tests/morphImages.cpp
+Magick___tests_morphImages_LDADD      = $(MAGICKPP_LDADD)
 Magick___tests_morphImages_CPPFLAGS   = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_readWriteBlob_SOURCES	= Magick++/tests/readWriteBlob.cpp
-Magick___tests_readWriteBlob_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_readWriteBlob_SOURCES  = Magick++/tests/readWriteBlob.cpp
+Magick___tests_readWriteBlob_LDADD    = $(MAGICKPP_LDADD)
 Magick___tests_readWriteBlob_CPPFLAGS = $(MAGICKPP_CPPFLAGS)
 
-Magick___tests_readWriteImages_SOURCES	= Magick++/tests/readWriteImages.cpp
-Magick___tests_readWriteImages_LDADD	  = $(MAGICKPP_LDADD)
+Magick___tests_readWriteImages_SOURCES  = Magick++/tests/readWriteImages.cpp
+Magick___tests_readWriteImages_LDADD    = $(MAGICKPP_LDADD)
 Magick___tests_readWriteImages_CPPFLAGS = $(MAGICKPP_CPPFLAGS)
 
 MAGICKPP_LOCAL_TARGETS = www/Magick++/NEWS.html www/Magick++/ChangeLog.html
diff --git a/Magick++/demo/button.cpp b/Magick++/demo/button.cpp
index 88db625..68c5258 100644
--- a/Magick++/demo/button.cpp
+++ b/Magick++/demo/button.cpp
@@ -64,12 +64,14 @@
     Image backgroundTexture( buttonTexture );
     button.texture( backgroundTexture );
 
+#if MAGICKCORE_FREETYPE_DELEGATE
     // Add some text
     button.fillColor( textColor );
     button.fontPointsize( fontPointSize );
     if (getenv("MAGICK_FONT") != 0)
       button.font(string(getenv("MAGICK_FONT")));
     button.annotate( text, CenterGravity );
+#endif
 
     // Add a decorative frame
     button.borderColor( border );
diff --git a/Magick++/demo/demo.cpp b/Magick++/demo/demo.cpp
index b6322e7..b869fb6 100644
--- a/Magick++/demo/demo.cpp
+++ b/Magick++/demo/demo.cpp
@@ -19,11 +19,20 @@
 
 using namespace Magick;
 
+#if MAGICKCORE_FREETYPE_DELEGATE
+  #define MakeLabel(image, text) image.label( (text) )
+#else
+  #define MakeLabel(image, text)
+#endif
+
 int main( int /*argc*/, char ** argv)
 {
 
   // Initialize ImageMagick install location for Windows
   InitializeMagick(*argv);
+
+  const char *const p = getenv("MAGICK_FONT");
+  const string MAGICK_FONT(p ? p : "");
   
   try {
     
@@ -40,12 +49,12 @@
       cout << "Read images ..." << endl;
 
       Image model( srcdir + "model.miff" );
-      model.label( "Magick++" );
+      MakeLabel(model, "Magick++");
       model.borderColor( "black" );
       model.backgroundColor( "black" );
     
       Image smile( srcdir + "smile.miff" );
-      smile.label( "Smile" );
+      MakeLabel(smile, "Smile");
       smile.borderColor( "black" );
     
       //
@@ -68,73 +77,74 @@
       //  4. append image to container
 
       cout << "  add noise ..." << endl;
-      example.label( "Add Noise" );
+      MakeLabel(example, "Add Noise");
       example.addNoise( LaplacianNoise );
       images.push_back( example );
 
       cout << "  add noise (blue) ..." << endl;
-      example.label( "Add Noise\n(Blue Channel)" );
+      MakeLabel(example, "Add Noise\n(Blue Channel)");
       example.addNoiseChannel( BlueChannel, PoissonNoise );
       images.push_back( example );
 
+#if MAGICKCORE_FREETYPE_DELEGATE
       cout << "  annotate ..." << endl;
       example = model;
-      example.label( "Annotate" );
+      MakeLabel(example, "Annotate");
       example.density( "72x72" );
       example.fontPointsize( 18 );
-      if (getenv("MAGICK_FONT") != 0)
-        example.font(string(getenv("MAGICK_FONT")));
+      example.font(MAGICK_FONT);
       example.strokeColor( Color() );
       example.fillColor( "gold" );
       example.annotate( "Magick++", "+0+20", NorthGravity );
       images.push_back( example );
+#endif
 
       cout << "  blur ..." << endl;
       example = model;
-      example.label( "Blur" );
+      MakeLabel(example, "Blur");
       example.blur( 0, 1.5 );
       images.push_back( example );
 
       cout << "  blur red channel ..." << endl;
       example = model;
-      example.label( "Blur Channel\n(Red Channel)" );
+      MakeLabel(example, "Blur Channel\n(Red Channel)");
       example.blurChannel( RedChannel, 0, 3.0 );
       images.push_back( example );
 
       cout << "  border ..." << endl;
       example = model;
-      example.label( "Border" );
+      MakeLabel(example, "Border");
       example.borderColor( "gold" );
       example.border( Geometry(6,6) );
       images.push_back( example );
 
       cout << "  channel ..." << endl;
       example = model;
-      example.label( "Channel\n(Red Channel)" );
+      MakeLabel(example, "Channel\n(Red Channel)");
       example.channel( RedChannel );
       images.push_back( example );
 
       cout << "  charcoal ..." << endl;
       example = model;
-      example.label( "Charcoal" );
+      MakeLabel(example, "Charcoal");
       example.charcoal( );
       images.push_back( example );
 
       cout << "  composite ..." << endl;
       example = model;
-      example.label( "Composite" );
+      MakeLabel(example, "Composite");
       example.composite( smile, "+35+65", OverCompositeOp);
       images.push_back( example );
 
       cout << "  contrast ..." << endl;
       example = model;
-      example.label( "Contrast" );
+      MakeLabel(example, "Contrast");
       example.contrast( false );
       images.push_back( example );
 
       cout << "  convolve ..." << endl;
       example = model;
-      example.label( "Convolve" );
+      MakeLabel(example, "Convolve");
       {
         // 3x3 matrix
         const double kernel[] = { 1, 1, 1, 1, 4, 1, 1, 1, 1 };
@@ -144,19 +154,19 @@
 
       cout << "  crop ..." << endl;
       example = model;
-      example.label( "Crop" );
+      MakeLabel(example, "Crop");
       example.crop( "80x80+25+50" );
       images.push_back( example );
 
       cout << "  despeckle ..." << endl;
       example = model;
-      example.label( "Despeckle" );
+      MakeLabel(example, "Despeckle");
       example.despeckle( );
       images.push_back( example );
 
       cout << "  draw ..." << endl;
       example = model;
-      example.label( "Draw" );
+      MakeLabel(example, "Draw");
       example.fillColor(Color());
       example.strokeColor( "gold" );
       example.strokeWidth( 2 );
@@ -165,62 +175,62 @@
 
       cout << "  edge ..." << endl;
       example = model;
-      example.label( "Detect Edges" );
+      MakeLabel(example, "Detect Edges");
       example.edge( );
       images.push_back( example );
 
       cout << "  emboss ..." << endl;
       example = model;
-      example.label( "Emboss" );
+      MakeLabel(example, "Emboss");
       example.emboss( );
       images.push_back( example );
 
       cout << "  equalize ..." << endl;
       example = model;
-      example.label( "Equalize" );
+      MakeLabel(example, "Equalize");
       example.equalize( );
       images.push_back( example );
     
       cout << "  explode ..." << endl;
       example = model;
-      example.label( "Explode" );
+      MakeLabel(example, "Explode");
       example.backgroundColor( "#000000FF" );
       example.implode( -1 );
       images.push_back( example );
 
       cout << "  flip ..." << endl;
       example = model;
-      example.label( "Flip" );
+      MakeLabel(example, "Flip");
       example.flip( );
       images.push_back( example );
 
       cout << "  flop ..." << endl;
       example = model;
-      example.label( "Flop" );
+      MakeLabel(example, "Flop");
       example.flop();
       images.push_back( example );
 
       cout << "  frame ..." << endl;
       example = model;
-      example.label( "Frame" );
+      MakeLabel(example, "Frame");
       example.frame( );
       images.push_back( example );
 
       cout << "  gamma ..." << endl;
       example = model;
-      example.label( "Gamma" );
+      MakeLabel(example, "Gamma");
       example.gamma( 1.6 );
       images.push_back( example );
 
       cout << "  gaussian blur ..." << endl;
       example = model;
-      example.label( "Gaussian Blur" );
+      MakeLabel(example, "Gaussian Blur");
       example.gaussianBlur( 0.0, 1.5 );
       images.push_back( example );
 
       cout << "  gaussian blur channel ..." << endl;
       example = model;
-      example.label( "Gaussian Blur\n(Green Channel)" );
+      MakeLabel(example, "Gaussian Blur\n(Green Channel)");
       example.gaussianBlurChannel( GreenChannel, 0.0, 1.5 );
       images.push_back( example );
     
@@ -228,49 +238,49 @@
       Image gradient;
       gradient.size( "130x194" );
       gradient.read( "gradient:#20a0ff-#ffff00" );
-      gradient.label( "Gradient" );
+      MakeLabel(gradient, "Gradient");
       images.push_back( gradient );
     
       cout << "  grayscale ..." << endl;
       example = model;
-      example.label( "Grayscale" );
+      MakeLabel(example, "Grayscale");
       example.quantizeColorSpace( GRAYColorspace );
       example.quantize( );
       images.push_back( example );
     
       cout << "  implode ..." << endl;
       example = model;
-      example.label( "Implode" );
+      MakeLabel(example, "Implode");
       example.implode( 0.5 );
       images.push_back( example );
 
       cout << "  level ..." << endl;
       example = model;
-      example.label( "Level" );
+      MakeLabel(example, "Level");
       example.level( 0.20*QuantumRange, 0.90*QuantumRange, 1.20 );
       images.push_back( example );
 
       cout << "  level red channel ..." << endl;
       example = model;
-      example.label( "Level Channel\n(Red Channel)" );
+      MakeLabel(example, "Level Channel\n(Red Channel)");
       example.levelChannel( RedChannel, 0.20*QuantumRange, 0.90*QuantumRange, 1.20 );
       images.push_back( example );
 
       cout << "  median filter ..." << endl;
       example = model;
-      example.label( "Median Filter" );
+      MakeLabel(example, "Median Filter");
       example.medianFilter( );
       images.push_back( example );
 
       cout << "  modulate ..." << endl;
       example = model;
-      example.label( "Modulate" );
+      MakeLabel(example, "Modulate");
       example.modulate( 110, 110, 110 );
       images.push_back( example );
 
       cout << "  monochrome ..." << endl;
       example = model;
-      example.label( "Monochrome" );
+      MakeLabel(example, "Monochrome");
       example.quantizeColorSpace( GRAYColorspace );
       example.quantizeColors( 2 );
       example.quantizeDither( false );
@@ -279,49 +289,49 @@
 
       cout << "  motion blur ..." << endl;
       example = model;
-      example.label( "Motion Blur" );
+      MakeLabel(example, "Motion Blur");
       example.motionBlur( 0.0, 7.0,45 );
       images.push_back( example );
     
       cout << "  negate ..." << endl;
       example = model;
-      example.label( "Negate" );
+      MakeLabel(example, "Negate");
       example.negate( );
       images.push_back( example );
     
       cout << "  normalize ..." << endl;
       example = model;
-      example.label( "Normalize" );
+      MakeLabel(example, "Normalize");
       example.normalize( );
       images.push_back( example );
     
       cout << "  oil paint ..." << endl;
       example = model;
-      example.label( "Oil Paint" );
+      MakeLabel(example, "Oil Paint");
       example.oilPaint( );
       images.push_back( example );
 
       cout << "  ordered dither 2x2 ..." << endl;
       example = model;
-      example.label( "Ordered Dither\n(2x2)" );
+      MakeLabel(example, "Ordered Dither\n(2x2)");
       example.randomThreshold(2,2);
       images.push_back( example );
 
       cout << "  ordered dither 3x3..." << endl;
       example = model;
-      example.label( "Ordered Dither\n(3x3)" );
+      MakeLabel(example, "Ordered Dither\n(3x3)");
       example.randomThreshold(3,3);
       images.push_back( example );
 
       cout << "  ordered dither 4x4..." << endl;
       example = model;
-      example.label( "Ordered Dither\n(4x4)" );
+      MakeLabel(example, "Ordered Dither\n(4x4)");
       example.randomThreshold(4,4);
       images.push_back( example );
     
       cout << "  ordered dither red 4x4..." << endl;
       example = model;
-      example.label( "Ordered Dither\n(Red 4x4)" );
+      MakeLabel(example, "Ordered Dither\n(Red 4x4)");
       example.randomThresholdChannel(RedChannel,4,4);
       images.push_back( example );
 
@@ -329,131 +339,131 @@
       Image plasma;
       plasma.size( "130x194" );
       plasma.read( "plasma:fractal" );
-      plasma.label( "Plasma" );
+      MakeLabel(plasma, "Plasma");
       images.push_back( plasma );
     
       cout << "  quantize ..." << endl;
       example = model;
-      example.label( "Quantize" );
+      MakeLabel(example, "Quantize");
       example.quantize( );
       images.push_back( example );
 
       cout << "  quantum operator ..." << endl;
       example = model;
-      example.label( "Quantum Operator\nRed * 0.4" );
+      MakeLabel(example, "Quantum Operator\nRed * 0.4");
       example.evaluate( RedChannel,MultiplyEvaluateOperator,0.40 );
       images.push_back( example );
 
       cout << "  raise ..." << endl;
       example = model;
-      example.label( "Raise" );
+      MakeLabel(example, "Raise");
       example.raise( );
       images.push_back( example );
     
       cout << "  reduce noise ..." << endl;
       example = model;
-      example.label( "Reduce Noise" );
+      MakeLabel(example, "Reduce Noise");
       example.reduceNoise( 1.0 );
       images.push_back( example );
     
       cout << "  resize ..." << endl;
       example = model;
-      example.label( "Resize" );
+      MakeLabel(example, "Resize");
       example.zoom( "50%" );
       images.push_back( example );
     
       cout << "  roll ..." << endl;
       example = model;
-      example.label( "Roll" );
+      MakeLabel(example, "Roll");
       example.roll( "+20+10" );
       images.push_back( example );
     
       cout << "  rotate ..." << endl;
       example = model;
-      example.label( "Rotate" );
+      MakeLabel(example, "Rotate");
       example.rotate( 45 );
       example.transparent( "black" );
       images.push_back( example );
 
       cout << "  scale ..." << endl;
       example = model;
-      example.label( "Scale" );
+      MakeLabel(example, "Scale");
       example.scale( "60%" );
       images.push_back( example );
     
       cout << "  segment ..." << endl;
       example = model;
-      example.label( "Segment" );
+      MakeLabel(example, "Segment");
       example.segment( 0.5, 0.25 );
       images.push_back( example );
     
       cout << "  shade ..." << endl;
       example = model;
-      example.label( "Shade" );
+      MakeLabel(example, "Shade");
       example.shade( 30, 30, false );
       images.push_back( example );
     
       cout << "  sharpen ..." << endl;
       example = model;
-      example.label("Sharpen");
+      MakeLabel(example, "Sharpen");
       example.sharpen( 0.0, 1.0 );
       images.push_back( example );
     
       cout << "  shave ..." << endl;
       example = model;
-      example.label("Shave");
+      MakeLabel(example, "Shave");
       example.shave( Geometry( 10, 10) );
       images.push_back( example );
     
       cout << "  shear ..." << endl;
       example = model;
-      example.label( "Shear" );
+      MakeLabel(example, "Shear");
       example.shear( 45, 45 );
       example.transparent( "black" );
       images.push_back( example );
     
       cout << "  spread ..." << endl;
       example = model;
-      example.label( "Spread" );
+      MakeLabel(example, "Spread");
       example.spread( 3 );
       images.push_back( example );
     
       cout << "  solarize ..." << endl;
       example = model;
-      example.label( "Solarize" );
+      MakeLabel(example, "Solarize");
       example.solarize( );
       images.push_back( example );
     
       cout << "  swirl ..." << endl;
       example = model;
       example.backgroundColor( "#000000FF" );
-      example.label( "Swirl" );
+      MakeLabel(example, "Swirl");
       example.swirl( 90 );
       images.push_back( example );
 
       cout << "  threshold ..." << endl;
       example = model;
-      example.label( "Threshold" );
+      MakeLabel(example, "Threshold");
       example.threshold( QuantumRange/2.0 );
       images.push_back( example );
 
       cout << "  threshold random ..." << endl;
       example = model;
-      example.label( "Random\nThreshold" );
+      MakeLabel(example, "Random\nThreshold");
       example.randomThreshold( (0.3*QuantumRange),
         (0.85*QuantumRange) );
       images.push_back( example );
     
       cout << "  unsharp mask ..." << endl;
       example = model;
-      example.label( "Unsharp Mask" );
+      MakeLabel(example, "Unsharp Mask");
       //           radius_, sigma_, amount_, threshold_
       example.unsharpmask( 0.0, 1.0, 1.0, 0.05);
       images.push_back( example );
     
       cout << "  wave ..." << endl;
       example = model;
-      example.label( "Wave" );
+      MakeLabel(example, "Wave");
       example.alpha( true );
       example.backgroundColor( "#000000FF" );
       example.wave( 25, 150 );
@@ -474,6 +484,7 @@
       montageOpts.tile( "7x4" );
       montageOpts.backgroundColor( "#ffffff" );
       montageOpts.pointSize( 18 );
+      montageOpts.font(MAGICK_FONT);
       montageOpts.fillColor( "#600" );
       montageOpts.strokeColor( Color() );
       montageOpts.fileName( "Magick++ Demo" );
diff --git a/Magick++/demo/piddle.cpp b/Magick++/demo/piddle.cpp
index 16e84c3..251d8f4 100644
--- a/Magick++/demo/piddle.cpp
+++ b/Magick++/demo/piddle.cpp
@@ -143,6 +143,7 @@
     //
     // Draw text.
     //
+#if MAGICKCORE_FREETYPE_DELEGATE
     if (getenv("MAGICK_FONT") != 0)
       drawList.push_back(DrawableFont(string(getenv("MAGICK_FONT"))));
     drawList.push_back(DrawableFillColor("green"));
@@ -151,6 +152,7 @@
     drawList.push_back(DrawableTranslation(30,140));
     drawList.push_back(DrawableRotation(45.0));
     drawList.push_back(DrawableText(0,0,"This is a test!"));
+#endif
 
     // Finish drawing by popping back to base context.
     drawList.push_back(DrawablePopGraphicContext());
diff --git a/Magick++/demo/shapes.cpp b/Magick++/demo/shapes.cpp
index 380d3fc..806366d 100644
--- a/Magick++/demo/shapes.cpp
+++ b/Magick++/demo/shapes.cpp
@@ -87,16 +87,22 @@
     if (getenv("MAGICK_FONT") != 0)
       image.font(string(getenv("MAGICK_FONT")));
     image.fontPointsize( 18 );
+#if MAGICKCORE_FREETYPE_DELEGATE
     image.annotate( "Hello world!", "+150+20" );
+#endif
 
     image.fillColor( "blue" );
     image.fontPointsize( 14 );
+#if MAGICKCORE_FREETYPE_DELEGATE
     image.annotate( "Goodbye cruel world!", "+150+38" );
+#endif
 
     image.fillColor( "black" );
     image.fontPointsize( 14 );
+#if MAGICKCORE_FREETYPE_DELEGATE
     image.annotate( "I'm climbing the wall!", "+280+120",
                     NorthWestGravity, 90.0 );
+#endif
     //image.display();
     //
     // Write image.
diff --git a/Magick++/fuzz/build.sh b/Magick++/fuzz/build.sh
index c7967a5..cf7f233 100644
--- a/Magick++/fuzz/build.sh
+++ b/Magick++/fuzz/build.sh
@@ -72,7 +72,7 @@
 # Build libheif
 pushd "$SRC/libheif"
 ./autogen.sh
-./configure --disable-shared --prefix="$WORK" PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
+./configure --disable-shared --disable-go --prefix="$WORK" PKG_CONFIG_PATH="$WORK/lib/pkgconfig"
 make -j$(nproc)
 make install
 popd
@@ -102,7 +102,8 @@
 MAGICK_COMPILER_FLAGS=$CXXFLAGS
 MAGICK_INCLUDE="$WORK/include/ImageMagick-7"
 MAGICK_SRC="$SRC/imagemagick/Magick++/fuzz"
-MAGICK_LIBS="-lFuzzingEngine $WORK/lib/libMagick++-7.Q16HDRI.a $WORK/lib/libMagickWand-7.Q16HDRI.a $WORK/lib/libMagickCore-7.Q16HDRI.a $WORK/lib/libz.a $WORK/lib/liblzma.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/liblcms2.a $WORK/lib/libheif.a $WORK/lib/libde265.a $WORK/lib/libopenjp2.a $WORK/lib/libwebp.a $WORK/lib/libturbojpeg.a $WORK/lib/libjpeg.a $WORK/lib/libfreetype.a $WORK/lib/libraw.a"
+MAGICK_LIBS_NO_FUZZ="$WORK/lib/libMagick++-7.Q16HDRI.a $WORK/lib/libMagickWand-7.Q16HDRI.a $WORK/lib/libMagickCore-7.Q16HDRI.a $WORK/lib/libpng.a $WORK/lib/libtiff.a $WORK/lib/libheif.a $WORK/lib/libde265.a $WORK/lib/libopenjp2.a $WORK/lib/libwebp.a $WORK/lib/libturbojpeg.a $WORK/lib/libjpeg.a $WORK/lib/libfreetype.a $WORK/lib/libraw.a $WORK/lib/liblzma.a $WORK/lib/liblcms2.a $WORK/lib/libz.a"
+MAGICK_LIBS="$LIB_FUZZING_ENGINE $MAGICK_LIBS_NO_FUZZ"
 MAGICK_OUTPUT=$OUT
 MAGICK_FAST_BUILD=0
 
diff --git a/Magick++/fuzz/build_fuzzers.sh b/Magick++/fuzz/build_fuzzers.sh
index 87592eb..aefbeef 100644
--- a/Magick++/fuzz/build_fuzzers.sh
+++ b/Magick++/fuzz/build_fuzzers.sh
@@ -3,7 +3,7 @@
 MAGICK_COMPILER_FLAGS="$MAGICK_COMPILER_FLAGS -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"
 
 $MAGICK_COMPILER $MAGICK_COMPILER_FLAGS -std=c++11 -I$MAGICK_INCLUDE "$MAGICK_SRC/encoder_list.cc" \
-    -o "$MAGICK_SRC/encoder_list" $MAGICK_LIBS
+    -o "$MAGICK_SRC/encoder_list" $MAGICK_LIBS_NO_FUZZ
 
 for f in $MAGICK_SRC/*_fuzzer.cc; do
     fuzzer=$(basename "$f" _fuzzer.cc)
diff --git a/Magick++/fuzz/encoder_fuzzer.cc b/Magick++/fuzz/encoder_fuzzer.cc
index 33dd5a9..b29d772 100644
--- a/Magick++/fuzz/encoder_fuzzer.cc
+++ b/Magick++/fuzz/encoder_fuzzer.cc
@@ -33,7 +33,10 @@
   return 0;
 }
 
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
+  if (Size < 1)
+    return 0;
   Magick::Image image;
   const ssize_t offset = EncoderInitializer(Data, Size, image);
   if (offset < 0)
diff --git a/Magick++/fuzz/encoder_list.cc b/Magick++/fuzz/encoder_list.cc
index f9fc257..b3b4249 100644
--- a/Magick++/fuzz/encoder_list.cc
+++ b/Magick++/fuzz/encoder_list.cc
@@ -5,11 +5,11 @@
 #include <Magick++/Image.h>
 #include <Magick++/STL.h>
 
-static std::string getInitializer(const std::string module)
+static std::string getInitializer(const std::string magick_module)
 {
-  if ((module == "BGR") || (module == "CMYK") || (module =="RGB") || (module =="YUV"))
+  if ((magick_module == "BGR") || (magick_module == "CMYK") || (magick_module =="RGB") || (magick_module =="YUV"))
     return "interlace";
-  if (module == "PNG")
+  if (magick_module == "PNG")
     return "png";
   return "";
 }
diff --git a/Magick++/fuzz/main.cc b/Magick++/fuzz/main.cc
index aa12b83..2f1f523 100644
--- a/Magick++/fuzz/main.cc
+++ b/Magick++/fuzz/main.cc
@@ -30,6 +30,9 @@
       return(false);
 
     size = file.tellg();
+    if (size < 1)
+      return(false);
+
     _size = size;
     _data = new char[_size];
     file.seekg(0, ios::beg);
diff --git a/Magick++/fuzz/utils.cc b/Magick++/fuzz/utils.cc
index 0f3e8a4..95b9ba0 100644
--- a/Magick++/fuzz/utils.cc
+++ b/Magick++/fuzz/utils.cc
@@ -9,13 +9,19 @@
 class FuzzingInitializer {
 public:
   FuzzingInitializer() {
+
+    // Disable SIMD in jpeg turbo.
+    (void) putenv(const_cast<char *>("JSIMD_FORCENONE=1"));
+
     Magick::InitializeMagick((const char *) NULL);
+    Magick::SecurityPolicy::anonymousCacheMemoryMap();
+    Magick::SecurityPolicy::anonymousSystemMemoryMap();
     Magick::SecurityPolicy::maxMemoryRequest(256000000);
     Magick::ResourceLimits::memory(1000000000);
     Magick::ResourceLimits::map(500000000);
     Magick::ResourceLimits::width(FUZZ_MAX_SIZE);
     Magick::ResourceLimits::height(FUZZ_MAX_SIZE);
-    Magick::ResourceLimits::listLength(32);
+    Magick::ResourceLimits::listLength(16);
   }
 };
 
diff --git a/Magick++/lib/CoderInfo.cpp b/Magick++/lib/CoderInfo.cpp
index 1154e79..425eb29 100644
--- a/Magick++/lib/CoderInfo.cpp
+++ b/Magick++/lib/CoderInfo.cpp
@@ -75,7 +75,7 @@
         NULL) ? false : true);
       _mimeType=std::string(magickInfo->mime_type != (char *) NULL ?
         magickInfo->mime_type : "");
-      _module=std::string(magickInfo->module);
+      _module=std::string(magickInfo->magick_module);
       _name=std::string(magickInfo->name);
     }
 }
@@ -150,4 +150,4 @@
 bool Magick::CoderInfo::unregister(void) const
 {
   return(UnregisterMagickInfo(_name.c_str()) != MagickFalse);
-}
\ No newline at end of file
+}
diff --git a/Magick++/lib/Magick++/Include.h b/Magick++/lib/Magick++/Include.h
index 6bf79af..a7fe523 100644
--- a/Magick++/lib/Magick++/Include.h
+++ b/Magick++/lib/Magick++/Include.h
@@ -27,6 +27,9 @@
 #include <math.h>
 #include <sys/types.h>
 
+#include <errno.h>
+#include <stdint.h>
+
 #if defined(__BORLANDC__)
 #  include <vcl.h> /* Borland C++ Builder 4.0 requirement */
 #endif // defined(__BORLANDC__)
@@ -119,6 +122,9 @@
 #        if defined(MAGICKCORE_JPEG_DELEGATE)
 #          pragma comment(lib, "CORE_DB_jpeg_.lib")
 #        endif
+#        if defined(MAGICKCORE_JXL_DELEGATE)
+#          pragma comment(lib, "CORE_DB_jxl_.lib")
+#        endif
 #        if defined(MAGICKCORE_LCMS_DELEGATE)
 #          pragma comment(lib, "CORE_DB_lcms_.lib")
 #        endif
@@ -193,6 +199,9 @@
 #        if defined(MAGICKCORE_JPEG_DELEGATE)
 #          pragma comment(lib, "CORE_RL_jpeg_.lib")
 #        endif
+#        if defined(MAGICKCORE_JXL_DELEGATE)
+#          pragma comment(lib, "CORE_RL_jxl_.lib")
+#        endif
 #        if defined(MAGICKCORE_LCMS_DELEGATE)
 #          pragma comment(lib, "CORE_RL_lcms_.lib")
 #        endif
@@ -504,6 +513,8 @@
   using MagickCore::B44ACompression;
   using MagickCore::B44Compression;
   using MagickCore::BZipCompression;
+  using MagickCore::DWAACompression;
+  using MagickCore::DWABCompression;
   using MagickCore::DXT1Compression;
   using MagickCore::DXT3Compression;
   using MagickCore::DXT5Compression;
@@ -890,7 +901,7 @@
   using MagickCore::RightTopOrientation;
   using MagickCore::RightBottomOrientation;
   using MagickCore::LeftBottomOrientation;
-  
+
   // Paint methods
   using MagickCore::PaintMethod;
   using MagickCore::UndefinedMethod;
@@ -1035,7 +1046,7 @@
   using MagickCore::PerceptualIntent;
   using MagickCore::AbsoluteIntent;
   using MagickCore::RelativeIntent;
-  
+
   // Resource types
   using MagickCore::ResourceType;
   using MagickCore::UndefinedResource;
diff --git a/Magick++/lib/Magick++/STL.h b/Magick++/lib/Magick++/STL.h
index 6032796..96e31f9 100644
--- a/Magick++/lib/Magick++/STL.h
+++ b/Magick++/lib/Magick++/STL.h
@@ -2236,7 +2236,7 @@
   template<class InputIterator >
   void combineImages(Image *combinedImage_,InputIterator first_,
     InputIterator last_,const ChannelType channel_,
-    const ColorspaceType colorspace_)
+    const ColorspaceType colorspace_ = MagickCore::sRGBColorspace)
   {
     MagickCore::Image
       *image;
diff --git a/Magick++/tests/appendImages.cpp b/Magick++/tests/appendImages.cpp
index 6c1ebb2..b558a24 100644
--- a/Magick++/tests/appendImages.cpp
+++ b/Magick++/tests/appendImages.cpp
@@ -41,9 +41,11 @@
     // Horizontal
     appendImages( &appended, imageList.begin(), imageList.end() );
     // appended.display();
-    if (( appended.signature() != "3a90bb0bb8f69f6788ab99e9e25598a0d6c5cdbbb797f77ad68011e0a8b1689d" ) &&
-        ( appended.signature() != "493106ee32cdeab9e386fe50aafede73c23c1150af564a4ad71ca1deccc1fa10" ) &&
-        ( appended.signature() != "b98c42c55fc4e661cb3684154256809c03c0c6b53da2738b6ce8066e1b6ddef0" ))
+    if (
+        ( appended.signature() != "f5ed4a96632126a30c353340a1ddc4e0745295bb1f4bbbb6e020138c972c2f5e" ) &&
+        ( appended.signature() != "aa8789792be68dde5d686ddcbce4f551cbe8093cf3c782f5313443594abff8c0" ) &&
+        ( appended.signature() != "d2b63ade27f08ba413533c56239fd5dca7ac5cdfcae7a15d48980209dbfc0a40" ) &&
+        ( appended.signature() != "f48dd74b57ed277c9c62da1a65788186a910b8f2faa47851fcf1f4572640ed9c" ))
       {
 	++failures;
 	cout << "Line: " << __LINE__
@@ -55,9 +57,11 @@
 
     // Vertical
     appendImages( &appended, imageList.begin(), imageList.end(), true );
-    if (( appended.signature() != "a22fbe9ca8e3dc3b34f137d175d51841daf56d231bedd8b18ad55415af558265" ) &&
-        ( appended.signature() != "11b97ba6ac1664aa1c2faed4c86195472ae9cce2ed75402d975bb4ffcf1de751" ) &&
-        ( appended.signature() != "cae4815eeb3cb689e73b94d897a9957d3414d1d4f513e8b5e52579b05d164bfe" ))
+    if (
+        ( appended.signature() != "de891eb85d168bd2177ee92940ab0e29d32c9f8e4be41906f9272a88925d9dd3" ) &&
+        ( appended.signature() != "5e119331c70db1b0bc3fdf51920b85449b4b02f63653250c34b68c1528171bb2" ) &&
+        ( appended.signature() != "bb411d8cc99700f29547e8ca60d925d0d3be3aaf16e70260a3506428e61339de" ) &&
+        ( appended.signature() != "9cfe22dacae97e4e0fe1c12567a5d7e111f4680ec65a40da16281928cf4ba6be" ))
       {
 	++failures;
 	cout << "Line: " << __LINE__
diff --git a/Magick++/tests/attributes.cpp b/Magick++/tests/attributes.cpp
index 04d25fc..84a0728 100644
--- a/Magick++/tests/attributes.cpp
+++ b/Magick++/tests/attributes.cpp
@@ -154,7 +154,7 @@
     //
 
     // Test default value.
-    if ( image.backgroundColor() != string(ColorRGB("white")) )
+    if ( string(image.backgroundColor()) != string(ColorRGB("white")) )
       {
 	++failures;
 	cout << "Line: " << __LINE__ << ", backgroundColor default ("
@@ -174,7 +174,8 @@
     else
       if ( string(image.backgroundColor()) != "#0000FF" &&
 	   string(image.backgroundColor()) != "#00000000FFFF" &&
-	   string(image.backgroundColor()) != "#0000000000000000FFFFFFFF" )
+	   string(image.backgroundColor()) != "#0000000000000000FFFFFFFF" &&
+	   string(image.backgroundColor()) != "#00000000000000000000000000000000FFFFFFFFFFFFFFFF" )
 	{
 	  ++failures;
 	  cout << "Line: " << __LINE__ << ", backgroundColor ("
@@ -194,7 +195,8 @@
     else
       if ( string(image.backgroundColor()) != "#00AAFF" && 
 	   string(image.backgroundColor()) != "#0000AAAAFFFF" && 
-	   string(image.backgroundColor()) != "#00000000AAAAAAAAFFFFFFFF" )
+	   string(image.backgroundColor()) != "#00000000AAAAAAAAFFFFFFFF" &&
+	   string(image.backgroundColor()) != "#0000000000000000AAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFF" )
 	{
 	  ++failures;
 	  cout << "Line: " << __LINE__
@@ -260,7 +262,8 @@
     // Base filename is color for xc images
     if ( image.baseFilename() != "xc:#FF0000" &&
 	 image.baseFilename() != "xc:#FFFF00000000" &&
-	 image.baseFilename() != "xc:#FFFFFFFF0000000000000000")
+	 image.baseFilename() != "xc:#FFFFFFFF0000000000000000" &&
+	 image.baseFilename() != "xc:#FFFFFFFFFFFFFFFF00000000000000000000000000000000")
       {
 	++failures;
 	cout << "Line: " << __LINE__
@@ -1269,10 +1272,14 @@
     // signature
     //
 
-    if ( image.signature() !=  "146366a0f4150adc7b28f4f5da750ec2ca2c50ff8b14f894ce1e4d7d4058f465" &&
-	 image.signature() != "b89bff8473dd6fe2302bcfd365e7d20daf7bd97ad667fe42d1a87469fce0d138" &&
-	 image.signature() != "5caa527c00cf9e59345de4aaef4f0c2312d1955c2f391ccafa98f8e11370e6e0" &&
-   image.signature() != "b891ddb1d32cd45c6329180e5bd733eebb8dd06c401a9c721841ec43e4a662f8")
+    if (
+        ( image.signature() != "373ba105dfe1c3e35a0ad70c18534db5c253911b32f1ef5b94b564b5fbd3f87d") &&
+        ( image.signature() != "5e32612a0a3f2f1632d135f8c2df360604b0b84e9f082ddc20efbb0de752a53e") &&
+        ( image.signature() != "dba5480face4d9eb973a116fe32ef37a7b47211e563900d21f47d6f0904aba22") &&
+        ( image.signature() != "eccb7a8ac230b0deb76c8dd10ddeeb76a0918cbe6e3469d2d9f223d35c66498b") &&
+        ( image.signature() != "a0747a8a5a0e6a1ec960ab8994986ba087d518db97db6f17e7bb4da3bbc3c91d") &&
+        ( image.signature() != "6857675cd7d967e1e3ff094e1b3e5f4bb3fb9ba2557eb6d083d37881db0a2039")
+       )
       {
 	++failures;
 	cout << "Line: " << __LINE__ << ", signature ("
diff --git a/Magick++/tests/averageImages.cpp b/Magick++/tests/averageImages.cpp
index 0c94ee8..424c35d 100644
--- a/Magick++/tests/averageImages.cpp
+++ b/Magick++/tests/averageImages.cpp
@@ -39,11 +39,15 @@
     Image averaged;
     averageImages( &averaged, imageList.begin(), imageList.end() );
     // averaged.display();
-    if ( 0 && averaged.signature() != "d4b4ffb8b70c4e9b0e50445542deb26fbcdf8c393c793123cbc92fb35341e44d" &&
-         averaged.signature() != "62d46d6d239b9fbd3b8ff2271aed1b5dde6303e0d5228dd8d833f61a7b012a79" &&
-         averaged.signature() != "fdc76a2689d19061e1f7f6adfd79a2c04bc4608125a2cd2a1bce0d981774e13f" &&
-         averaged.signature() != "66dfb88c21405a6bf582c9a542d87fd14db176aae1f34bc30b0b3e2443b49aa8" &&
-         averaged.signature() != "f3bc318abc0b842c656b6545d1d7159eedb61f559a95fc5df671db7d0c0639de")
+    if (
+        ( averaged.signature() != "be10086221b349ccf2ca03bf4e18d68c75a4ab434814e16de8c9a347f3b7d68f") &&
+        ( averaged.signature() != "9706be2595aabde3ad70b70968e9a6a22de40c73da46c52b32539c05958f4813") &&
+        ( averaged.signature() != "90c4ba4b092f37a0600d51356f9aba89e7402ba3f59ac591ae216bace4a9d10b") &&
+        ( averaged.signature() != "2e9af094ccbb8c3c824980f597321aeef15d7accea84a5d233ba23e615d0c891") &&
+        ( averaged.signature() != "a88e978776d45b73bc8c9f37f6726cc9f14a3118b9a82384ee5acf488c5c2863") &&
+        ( averaged.signature() != "6bda37a8b6734ac271595f5b583d801cfb2479637401d056eae9be97127f558f") &&
+        ( averaged.signature() != "919a9e18a5e5ded83c2c4e5cfcd21d654802fcc14b06b02898d96fe28f04a1a1")
+       )
       {
 	cout << "Line: " << __LINE__
 	     << "  Averaging image failed, signature = "
diff --git a/Magick++/tests/montageImages.cpp b/Magick++/tests/montageImages.cpp
index fb0058a..6ea74a9 100644
--- a/Magick++/tests/montageImages.cpp
+++ b/Magick++/tests/montageImages.cpp
@@ -21,6 +21,9 @@
   // Initialize ImageMagick install location for Windows
   // InitializeMagick(*argv);
   InitializeMagick("");
+
+  const char *const p = getenv("MAGICK_FONT");
+  const string MAGICK_FONT(p ? p : "");
   
   int failures=0;
 
@@ -39,6 +42,7 @@
 
     vector<Image> montage;
     MontageFramed montageOpts;
+    montageOpts.font(MAGICK_FONT);
 
     // Default montage
     montageImages( &montage, imageList.begin(), imageList.end(), montageOpts );
diff --git a/MagickCore/Android.bp b/MagickCore/Android.bp
index d0dcf48..ee9a33b 100644
--- a/MagickCore/Android.bp
+++ b/MagickCore/Android.bp
@@ -32,4 +32,5 @@
 
     header_libs: ["Magick_headers"],
     export_header_lib_headers: ["Magick_headers"],
+    visibility: ["//vendor:__subpackages__"],
 }
diff --git a/MagickCore/MagickCore-config b/MagickCore/MagickCore-config
new file mode 100755
index 0000000..e65e30f
--- /dev/null
+++ b/MagickCore/MagickCore-config
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Configure options script for re-calling MagickCore compilation options
+# required to use the MagickCore library.
+#
+
+prefix=/usr/local
+exec_prefix=${prefix}
+
+usage="\
+Usage: MagickCore-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]"
+
+if test $# -eq 0; then
+      echo "${usage}" 1>&2
+      echo "Example: gcc \`MagickCore-config --cflags --cppflags\` -o core core.c \`Magick-config --ldflags --libs\`" 1>&2
+      exit 1
+fi
+
+while test $# -gt 0; do
+  case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+  esac
+  case $1 in
+    --prefix=*)
+      prefix=$optarg
+      ;;
+    --prefix)
+      echo $prefix
+      ;;
+    --exec-prefix=*)
+      exec_prefix=$optarg
+      ;;
+    --exec-prefix)
+      echo $exec_prefix
+      ;;
+    --version)
+      echo '7.0.9 Q16 HDRI'
+      ;;
+    --cflags)
+      /usr/bin/pkg-config --cflags MagickCore
+      ;;
+    --cxxflags)
+      /usr/bin/pkg-config --cflags MagickCore
+      ;;
+    --cppflags)
+      /usr/bin/pkg-config --cflags MagickCore
+      ;;
+    --ldflags)
+      /usr/bin/pkg-config --libs MagickCore
+      ;;
+    --libs)
+      /usr/bin/pkg-config --libs MagickCore
+      ;;
+    --coder-path)
+      echo "/usr/local/lib/ImageMagick-7.0.9/modules-Q16HDRI/coders"
+      ;;
+    --filter-path)
+      echo "/usr/local/lib/ImageMagick-7.0.9/modules-Q16HDRI/filters"
+      ;;
+    *)
+      echo "${usage}" 1>&2
+      exit 1
+      ;;
+  esac
+  shift
+done
diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index 517223a..10413a0 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <math.h>
 #include <sys/types.h>
 #include <time.h>
@@ -159,6 +160,7 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/version.h"
 #include "MagickCore/vision.h"
+#include "MagickCore/visual-effects.h"
 #include "MagickCore/xml-tree.h"
 #include "MagickCore/xwindow.h"
 
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 9d8fd11..5b5a2f6 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -13,25 +13,25 @@
 #  limitations under the License.
 #
 #  Makefile for building the MagickCore API.
-# 
+#
 
 MagickCoreincdir = $(INCLUDE_PATH)/MagickCore
 MagickCoreincarchdir = $(INCLUDEARCH_PATH)/MagickCore
 
 # Headers which are installed
 MagickCoreinc_HEADERS = \
-	$(MAGICKCORE_INCLUDE_HDRS)
+  $(MAGICKCORE_INCLUDE_HDRS)
 MagickCoreincarch_HEADERS = \
-	$(MAGICKCORE_INCLUDEARCH_HDRS)
+  $(MAGICKCORE_INCLUDEARCH_HDRS)
 
 MAGICKCORE_BIN_SCRPTS = \
   MagickCore/MagickCore-config
 
 MAGICKCORE_PKGCONFIG = \
   MagickCore/ImageMagick.pc \
-	MagickCore/MagickCore.pc \
-	MagickCore/ImageMagick-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc \
-	MagickCore/MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc 
+  MagickCore/MagickCore.pc \
+  MagickCore/ImageMagick-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc \
+  MagickCore/MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 OSX_GCOV_LDFLAG = @OSX_GCOV_LDFLAG@
 
@@ -47,6 +47,8 @@
 MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = $(MAGICKCORE_BASE_SRCS) $(MAGICKCORE_PLATFORM_SRCS) $(MAGICKCORE_CODER_SRCS) $(MAGICKCORE_FILTER_SRCS)
 MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICK_DEP_LIBS)
 endif # WITH_MODULES
+
+nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES =
 MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
 
 if HAVE_LD_VERSION_SCRIPT
@@ -63,236 +65,241 @@
 
 # Library base sources
 MAGICKCORE_BASE_SRCS = \
-	MagickCore/MagickCore.h \
-	MagickCore/accelerate.c \
-	MagickCore/accelerate-private.h \
-	MagickCore/accelerate-kernels-private.h \
-	MagickCore/animate.c \
-	MagickCore/animate.h \
-	MagickCore/animate-private.h \
-	MagickCore/annotate.c \
-	MagickCore/annotate.h \
-	MagickCore/artifact.c \
-	MagickCore/artifact.h \
-	MagickCore/attribute.c \
-	MagickCore/attribute.h \
-	MagickCore/blob.c \
-	MagickCore/blob.h \
-	MagickCore/blob-private.h \
-	MagickCore/cache.c \
-	MagickCore/cache.h \
-	MagickCore/cache-private.h \
-	MagickCore/cache-view.c \
-	MagickCore/cache-view.h \
-	MagickCore/channel.c \
-	MagickCore/channel.h \
-	MagickCore/cipher.c \
-	MagickCore/cipher.h \
-	MagickCore/client.c \
-	MagickCore/client.h \
-	MagickCore/coder.c \
-	MagickCore/coder.h \
-	MagickCore/color.c \
-	MagickCore/color.h \
-	MagickCore/color-private.h \
-	MagickCore/colormap.c \
-	MagickCore/colormap.h \
-	MagickCore/colormap-private.h \
-	MagickCore/colorspace.c \
-	MagickCore/colorspace.h \
-	MagickCore/colorspace-private.h \
-	MagickCore/compare.c \
-	MagickCore/compare.h \
-	MagickCore/composite.c \
-	MagickCore/composite.h \
-	MagickCore/composite-private.h \
-	MagickCore/compress.c \
-	MagickCore/compress.h \
-	MagickCore/configure.c \
-	MagickCore/configure.h \
-	MagickCore/constitute.c \
-	MagickCore/constitute.h \
-	MagickCore/decorate.c \
-	MagickCore/decorate.h \
-	MagickCore/delegate.c \
-	MagickCore/delegate.h \
-	MagickCore/delegate-private.h \
-	MagickCore/deprecate.c \
-	MagickCore/deprecate.h \
-	MagickCore/display.c \
-	MagickCore/display.h \
-	MagickCore/display-private.h \
-	MagickCore/distort.c \
-	MagickCore/distort.h \
-	MagickCore/distribute-cache.c \
-	MagickCore/distribute-cache.h \
-	MagickCore/distribute-cache-private.h \
-	MagickCore/draw.c \
-	MagickCore/draw.h \
-	MagickCore/draw-private.h \
-	MagickCore/effect.c \
-	MagickCore/effect.h \
-	MagickCore/enhance.c \
-	MagickCore/enhance.h \
-	MagickCore/exception.c \
-	MagickCore/exception.h \
-	MagickCore/exception-private.h \
-	MagickCore/feature.c \
-	MagickCore/feature.h \
-	MagickCore/fourier.c \
-	MagickCore/fourier.h \
-	MagickCore/fx.c \
-	MagickCore/fx.h \
-	MagickCore/fx-private.h \
-	MagickCore/gem.c \
-	MagickCore/gem.h \
-	MagickCore/gem-private.h \
-	MagickCore/geometry.c \
-	MagickCore/geometry.h \
-	MagickCore/histogram.c \
-	MagickCore/histogram.h \
-	MagickCore/identify.c \
-	MagickCore/identify.h \
-	MagickCore/image.c \
-	MagickCore/image.h \
-	MagickCore/image-private.h \
-	MagickCore/image-view.c \
-	MagickCore/image-view.h \
-	MagickCore/layer.c \
-	MagickCore/layer.h \
-	MagickCore/linked-list.c \
-	MagickCore/linked-list.h \
-	MagickCore/list.c \
-	MagickCore/list.h \
-	MagickCore/locale.c \
-	MagickCore/locale_.h \
-	MagickCore/log.c \
-	MagickCore/log.h \
-	MagickCore/magic.c \
-	MagickCore/magic.h \
-	MagickCore/magick.c \
-	MagickCore/magick-baseconfig.h \
-	MagickCore/magick-config.h \
-	MagickCore/magick-type.h \
-	MagickCore/magick.h \
-	MagickCore/matrix.c \
-	MagickCore/matrix.h \
-	MagickCore/matrix-private.h \
-	MagickCore/memory.c \
-	MagickCore/memory_.h \
-	MagickCore/memory-private.h \
-	MagickCore/method-attribute.h \
-	MagickCore/methods.h \
-	MagickCore/mime.c \
-	MagickCore/mime.h \
-	MagickCore/module.c \
-	MagickCore/module.h \
-	MagickCore/monitor.c \
-	MagickCore/monitor.h \
-	MagickCore/monitor-private.h \
-	MagickCore/montage.c \
-	MagickCore/montage.h \
-	MagickCore/morphology.c \
-	MagickCore/morphology.h \
-	MagickCore/morphology-private.h \
-	MagickCore/nt-base.h \
+  MagickCore/MagickCore.h \
+  MagickCore/accelerate.c \
+  MagickCore/accelerate-private.h \
+  MagickCore/accelerate-kernels-private.h \
+  MagickCore/animate.c \
+  MagickCore/animate.h \
+  MagickCore/animate-private.h \
+  MagickCore/annotate.c \
+  MagickCore/annotate.h \
+  MagickCore/artifact.c \
+  MagickCore/artifact.h \
+  MagickCore/attribute.c \
+  MagickCore/attribute.h \
+  MagickCore/blob.c \
+  MagickCore/blob.h \
+  MagickCore/blob-private.h \
+  MagickCore/cache.c \
+  MagickCore/cache.h \
+  MagickCore/cache-private.h \
+  MagickCore/cache-view.c \
+  MagickCore/cache-view.h \
+  MagickCore/channel.c \
+  MagickCore/channel.h \
+  MagickCore/cipher.c \
+  MagickCore/cipher.h \
+  MagickCore/client.c \
+  MagickCore/client.h \
+  MagickCore/coder.c \
+  MagickCore/coder.h \
+  MagickCore/color.c \
+  MagickCore/color.h \
+  MagickCore/color-private.h \
+  MagickCore/colormap.c \
+  MagickCore/colormap.h \
+  MagickCore/colormap-private.h \
+  MagickCore/colorspace.c \
+  MagickCore/colorspace.h \
+  MagickCore/colorspace-private.h \
+  MagickCore/compare.c \
+  MagickCore/compare.h \
+  MagickCore/composite.c \
+  MagickCore/composite.h \
+  MagickCore/composite-private.h \
+  MagickCore/compress.c \
+  MagickCore/compress.h \
+  MagickCore/configure.c \
+  MagickCore/configure.h \
+  MagickCore/constitute.c \
+  MagickCore/constitute.h \
+  MagickCore/decorate.c \
+  MagickCore/decorate.h \
+  MagickCore/delegate.c \
+  MagickCore/delegate.h \
+  MagickCore/delegate-private.h \
+  MagickCore/deprecate.c \
+  MagickCore/deprecate.h \
+  MagickCore/display.c \
+  MagickCore/display.h \
+  MagickCore/display-private.h \
+  MagickCore/distort.c \
+  MagickCore/distort.h \
+  MagickCore/distribute-cache.c \
+  MagickCore/distribute-cache.h \
+  MagickCore/distribute-cache-private.h \
+  MagickCore/draw.c \
+  MagickCore/draw.h \
+  MagickCore/draw-private.h \
+  MagickCore/effect.c \
+  MagickCore/effect.h \
+  MagickCore/enhance.c \
+  MagickCore/enhance.h \
+  MagickCore/exception.c \
+  MagickCore/exception.h \
+  MagickCore/exception-private.h \
+  MagickCore/feature.c \
+  MagickCore/feature.h \
+  MagickCore/fourier.c \
+  MagickCore/fourier.h \
+  MagickCore/fx.c \
+  MagickCore/fx.h \
+  MagickCore/fx-private.h \
+  MagickCore/gem.c \
+  MagickCore/gem.h \
+  MagickCore/gem-private.h \
+  MagickCore/geometry.c \
+  MagickCore/geometry.h \
+  MagickCore/histogram.c \
+  MagickCore/histogram.h \
+  MagickCore/identify.c \
+  MagickCore/identify.h \
+  MagickCore/image.c \
+  MagickCore/image.h \
+  MagickCore/image-private.h \
+  MagickCore/image-view.c \
+  MagickCore/image-view.h \
+  MagickCore/layer.c \
+  MagickCore/layer.h \
+  MagickCore/linked-list.c \
+  MagickCore/linked-list.h \
+  MagickCore/list.c \
+  MagickCore/list.h \
+  MagickCore/locale.c \
+  MagickCore/locale_.h \
+  MagickCore/log.c \
+  MagickCore/log.h \
+  MagickCore/magic.c \
+  MagickCore/magic.h \
+  MagickCore/magick.c \
+  MagickCore/magick-baseconfig.h \
+  MagickCore/magick-config.h \
+  MagickCore/magick-type.h \
+  MagickCore/magick.h \
+  MagickCore/matrix.c \
+  MagickCore/matrix.h \
+  MagickCore/matrix-private.h \
+  MagickCore/memory.c \
+  MagickCore/memory_.h \
+  MagickCore/memory-private.h \
+  MagickCore/method-attribute.h \
+  MagickCore/methods.h \
+  MagickCore/mime.c \
+  MagickCore/mime.h \
+  MagickCore/module.c \
+  MagickCore/module.h \
+  MagickCore/monitor.c \
+  MagickCore/monitor.h \
+  MagickCore/monitor-private.h \
+  MagickCore/montage.c \
+  MagickCore/montage.h \
+  MagickCore/morphology.c \
+  MagickCore/morphology.h \
+  MagickCore/morphology-private.h \
+  MagickCore/mutex.h \
+  MagickCore/nt-base.h \
   MagickCore/nt-base-private.h \
-	MagickCore/nt-feature.h \
-	MagickCore/opencl.c \
-	MagickCore/opencl.h \
-	MagickCore/opencl-private.h \
-	MagickCore/option.c \
-	MagickCore/option.h \
-	MagickCore/option-private.h \
-	MagickCore/paint.c \
-	MagickCore/paint.h \
-	MagickCore/pixel.c \
-	MagickCore/pixel.h \
-	MagickCore/pixel-accessor.h \
-	MagickCore/pixel-private.h \
-	MagickCore/policy.c \
-	MagickCore/policy.h \
-	MagickCore/prepress.c \
-	MagickCore/prepress.h \
-	MagickCore/property.c \
-	MagickCore/property.h \
-	MagickCore/profile.c \
-	MagickCore/profile.h \
-	MagickCore/profile-private.h \
-	MagickCore/quantize.c \
-	MagickCore/quantize.h \
-	MagickCore/quantum.c \
-	MagickCore/quantum.h \
-	MagickCore/quantum-export.c \
-	MagickCore/quantum-import.c \
-	MagickCore/quantum-private.h \
-	MagickCore/random.c \
-	MagickCore/random_.h \
-	MagickCore/random-private.h \
-	MagickCore/registry.c \
-	MagickCore/registry.h \
-	MagickCore/resample.c \
-	MagickCore/resample.h \
-	MagickCore/resample-private.h \
-	MagickCore/resize.c \
-	MagickCore/resize.h \
-	MagickCore/resize-private.h \
-	MagickCore/resource.c \
-	MagickCore/resource_.h \
-	MagickCore/resource-private.h \
-	MagickCore/segment.c \
-	MagickCore/segment.h \
-	MagickCore/semaphore.c \
-	MagickCore/semaphore.h \
-	MagickCore/semaphore-private.h \
-	MagickCore/shear.c \
-	MagickCore/shear.h \
-	MagickCore/signature.c \
-	MagickCore/signature.h \
-	MagickCore/signature-private.h \
-	MagickCore/splay-tree.c \
-	MagickCore/splay-tree.h \
-	MagickCore/static.c \
-	MagickCore/static.h \
-	MagickCore/statistic.c \
-	MagickCore/statistic.h \
-	MagickCore/stream.c \
-	MagickCore/stream.h \
-	MagickCore/stream-private.h \
-	MagickCore/string.c \
-	MagickCore/string_.h \
-	MagickCore/string-private.h \
-	MagickCore/studio.h \
-	MagickCore/thread.c \
-	MagickCore/thread_.h \
-	MagickCore/thread-private.h \
-	MagickCore/timer.c \
-	MagickCore/timer.h \
-	MagickCore/token.c \
-	MagickCore/token.h \
-	MagickCore/token-private.h \
-	MagickCore/transform.c \
-	MagickCore/transform.h \
-	MagickCore/threshold.c \
-	MagickCore/threshold.h \
-	MagickCore/type.c \
-	MagickCore/type.h \
-	MagickCore/utility.c \
-	MagickCore/utility.h \
-	MagickCore/utility-private.h \
-	MagickCore/version.c \
-	MagickCore/version.h \
-	MagickCore/version-private.h \
-	MagickCore/vision.c \
-	MagickCore/vision.h \
-	MagickCore/widget.c \
-	MagickCore/widget.h \
-	MagickCore/widget-private.h \
-	MagickCore/xml-tree.c \
-	MagickCore/xml-tree.h \
-	MagickCore/xml-tree-private.h \
-	MagickCore/xwindow.c \
-	MagickCore/xwindow.h 
+  MagickCore/nt-feature.h \
+  MagickCore/opencl.c \
+  MagickCore/opencl.h \
+  MagickCore/opencl-private.h \
+  MagickCore/option.c \
+  MagickCore/option.h \
+  MagickCore/option-private.h \
+  MagickCore/paint.c \
+  MagickCore/paint.h \
+  MagickCore/pixel.c \
+  MagickCore/pixel.h \
+  MagickCore/pixel-accessor.h \
+  MagickCore/pixel-private.h \
+  MagickCore/policy.c \
+  MagickCore/policy.h \
+  MagickCore/policy-private.h \
+  MagickCore/prepress.c \
+  MagickCore/prepress.h \
+  MagickCore/property.c \
+  MagickCore/property.h \
+  MagickCore/profile.c \
+  MagickCore/profile.h \
+  MagickCore/profile-private.h \
+  MagickCore/quantize.c \
+  MagickCore/quantize.h \
+  MagickCore/quantum.c \
+  MagickCore/quantum.h \
+  MagickCore/quantum-export.c \
+  MagickCore/quantum-import.c \
+  MagickCore/quantum-private.h \
+  MagickCore/random.c \
+  MagickCore/random_.h \
+  MagickCore/random-private.h \
+  MagickCore/registry.c \
+  MagickCore/registry.h \
+  MagickCore/resample.c \
+  MagickCore/resample.h \
+  MagickCore/resample-private.h \
+  MagickCore/resize.c \
+  MagickCore/resize.h \
+  MagickCore/resize-private.h \
+  MagickCore/resource.c \
+  MagickCore/resource_.h \
+  MagickCore/resource-private.h \
+  MagickCore/segment.c \
+  MagickCore/segment.h \
+  MagickCore/semaphore.c \
+  MagickCore/semaphore.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/shear.c \
+  MagickCore/shear.h \
+  MagickCore/signature.c \
+  MagickCore/signature.h \
+  MagickCore/signature-private.h \
+  MagickCore/splay-tree.c \
+  MagickCore/splay-tree.h \
+  MagickCore/static.c \
+  MagickCore/static.h \
+  MagickCore/statistic.c \
+  MagickCore/statistic.h \
+  MagickCore/stream.c \
+  MagickCore/stream.h \
+  MagickCore/stream-private.h \
+  MagickCore/string.c \
+  MagickCore/string_.h \
+  MagickCore/string-private.h \
+  MagickCore/studio.h \
+  MagickCore/thread.c \
+  MagickCore/thread_.h \
+  MagickCore/thread-private.h \
+  MagickCore/timer.c \
+  MagickCore/timer.h \
+  MagickCore/timer-private.h \
+  MagickCore/token.c \
+  MagickCore/token.h \
+  MagickCore/token-private.h \
+  MagickCore/transform.c \
+  MagickCore/transform.h \
+  MagickCore/threshold.c \
+  MagickCore/threshold.h \
+  MagickCore/type.c \
+  MagickCore/type.h \
+  MagickCore/utility.c \
+  MagickCore/utility.h \
+  MagickCore/utility-private.h \
+  MagickCore/version.c \
+  MagickCore/version.h \
+  MagickCore/version-private.h \
+  MagickCore/visual-effects.c \
+  MagickCore/visual-effects.h \
+  MagickCore/vision.c \
+  MagickCore/vision.h \
+  MagickCore/widget.c \
+  MagickCore/widget.h \
+  MagickCore/widget-private.h \
+  MagickCore/xml-tree.c \
+  MagickCore/xml-tree.h \
+  MagickCore/xml-tree-private.h \
+  MagickCore/xwindow.c \
+  MagickCore/xwindow.h
 
 if WIN32_NATIVE_BUILD
 MAGICKCORE_PLATFORM_SRCS = \
@@ -312,178 +319,189 @@
 endif # if WIN32_NATIVE_BUILD
 
 MAGICKCORE_INCLUDE_HDRS = \
-	MagickCore/MagickCore.h \
-	MagickCore/animate.h \
-	MagickCore/annotate.h \
-	MagickCore/artifact.h \
-	MagickCore/attribute.h \
-	MagickCore/blob.h \
-	MagickCore/cache.h \
-	MagickCore/cache-view.h \
-	MagickCore/channel.h \
-	MagickCore/cipher.h \
-	MagickCore/client.h \
-	MagickCore/coder.h \
-	MagickCore/color.h \
-	MagickCore/colormap.h \
-	MagickCore/colorspace.h \
-	MagickCore/compare.h \
-	MagickCore/composite.h \
-	MagickCore/compress.h \
-	MagickCore/configure.h \
-	MagickCore/constitute.h \
-	MagickCore/decorate.h \
-	MagickCore/delegate.h \
-	MagickCore/deprecate.h \
-	MagickCore/display.h \
-	MagickCore/distort.h \
-	MagickCore/distribute-cache.h \
-	MagickCore/draw.h \
-	MagickCore/effect.h \
-	MagickCore/enhance.h \
-	MagickCore/exception.h \
-	MagickCore/feature.h \
-	MagickCore/fourier.h \
-	MagickCore/fx.h \
-	MagickCore/gem.h \
-	MagickCore/geometry.h \
-	MagickCore/histogram.h \
-	MagickCore/identify.h \
-	MagickCore/image.h \
-	MagickCore/image-view.h \
-	MagickCore/layer.h \
-	MagickCore/linked-list.h \
-	MagickCore/list.h \
-	MagickCore/locale_.h \
-	MagickCore/log.h \
-	MagickCore/magic.h \
-	MagickCore/magick.h \
-	MagickCore/magick-config.h \
-	MagickCore/magick-type.h \
-	MagickCore/matrix.h \
-	MagickCore/memory_.h \
-	MagickCore/method-attribute.h \
-	MagickCore/methods.h \
-	MagickCore/mime.h \
-	MagickCore/module.h \
-	MagickCore/monitor.h \
-	MagickCore/montage.h \
-	MagickCore/morphology.h \
-	MagickCore/nt-base.h \
-	MagickCore/opencl.h \
-	MagickCore/option.h \
-	MagickCore/paint.h \
-	MagickCore/pixel.h \
-	MagickCore/pixel-accessor.h \
-	MagickCore/policy.h \
-	MagickCore/prepress.h \
-	MagickCore/profile.h \
-	MagickCore/property.h \
-	MagickCore/quantize.h \
-	MagickCore/quantum.h \
-	MagickCore/random_.h \
-	MagickCore/registry.h \
-	MagickCore/resample.h \
-	MagickCore/resize.h \
-	MagickCore/resource_.h \
-	MagickCore/segment.h \
-	MagickCore/semaphore.h \
-	MagickCore/shear.h \
-	MagickCore/signature.h \
-	MagickCore/splay-tree.h \
-	MagickCore/static.h \
-	MagickCore/statistic.h \
-	MagickCore/stream.h \
-	MagickCore/string_.h \
-	MagickCore/studio.h \
-	MagickCore/timer.h \
-	MagickCore/token.h \
-	MagickCore/transform.h \
-	MagickCore/threshold.h \
-	MagickCore/type.h \
-	MagickCore/utility.h \
-	MagickCore/version.h \
-	MagickCore/vision.h \
-	MagickCore/widget.h \
-	MagickCore/xml-tree.h \
-	MagickCore/xwindow.h
+  MagickCore/MagickCore.h \
+  MagickCore/animate.h \
+  MagickCore/annotate.h \
+  MagickCore/artifact.h \
+  MagickCore/attribute.h \
+  MagickCore/blob.h \
+  MagickCore/cache.h \
+  MagickCore/cache-view.h \
+  MagickCore/channel.h \
+  MagickCore/cipher.h \
+  MagickCore/client.h \
+  MagickCore/coder.h \
+  MagickCore/color.h \
+  MagickCore/colormap.h \
+  MagickCore/colorspace.h \
+  MagickCore/compare.h \
+  MagickCore/composite.h \
+  MagickCore/compress.h \
+  MagickCore/configure.h \
+  MagickCore/constitute.h \
+  MagickCore/decorate.h \
+  MagickCore/delegate.h \
+  MagickCore/deprecate.h \
+  MagickCore/display.h \
+  MagickCore/distort.h \
+  MagickCore/distribute-cache.h \
+  MagickCore/draw.h \
+  MagickCore/effect.h \
+  MagickCore/enhance.h \
+  MagickCore/exception.h \
+  MagickCore/feature.h \
+  MagickCore/fourier.h \
+  MagickCore/fx.h \
+  MagickCore/gem.h \
+  MagickCore/geometry.h \
+  MagickCore/histogram.h \
+  MagickCore/identify.h \
+  MagickCore/image.h \
+  MagickCore/image-view.h \
+  MagickCore/layer.h \
+  MagickCore/linked-list.h \
+  MagickCore/list.h \
+  MagickCore/locale_.h \
+  MagickCore/log.h \
+  MagickCore/magic.h \
+  MagickCore/magick.h \
+  MagickCore/magick-config.h \
+  MagickCore/magick-type.h \
+  MagickCore/matrix.h \
+  MagickCore/memory_.h \
+  MagickCore/method-attribute.h \
+  MagickCore/methods.h \
+  MagickCore/mime.h \
+  MagickCore/module.h \
+  MagickCore/monitor.h \
+  MagickCore/montage.h \
+  MagickCore/morphology.h \
+  MagickCore/nt-base.h \
+  MagickCore/opencl.h \
+  MagickCore/option.h \
+  MagickCore/paint.h \
+  MagickCore/pixel.h \
+  MagickCore/pixel-accessor.h \
+  MagickCore/policy.h \
+  MagickCore/prepress.h \
+  MagickCore/profile.h \
+  MagickCore/property.h \
+  MagickCore/quantize.h \
+  MagickCore/quantum.h \
+  MagickCore/random_.h \
+  MagickCore/registry.h \
+  MagickCore/resample.h \
+  MagickCore/resize.h \
+  MagickCore/resource_.h \
+  MagickCore/segment.h \
+  MagickCore/semaphore.h \
+  MagickCore/shear.h \
+  MagickCore/signature.h \
+  MagickCore/splay-tree.h \
+  MagickCore/static.h \
+  MagickCore/statistic.h \
+  MagickCore/stream.h \
+  MagickCore/string_.h \
+  MagickCore/studio.h \
+  MagickCore/timer.h \
+  MagickCore/token.h \
+  MagickCore/transform.h \
+  MagickCore/threshold.h \
+  MagickCore/type.h \
+  MagickCore/utility.h \
+  MagickCore/version.h \
+  MagickCore/vision.h \
+  MagickCore/visual-effects.h \
+  MagickCore/widget.h \
+  MagickCore/xml-tree.h \
+  MagickCore/xwindow.h
 
 MAGICKCORE_NOINST_HDRS = \
-	MagickCore/accelerate-private.h \
-	MagickCore/accelerate-kernels-private.h \
-	MagickCore/animate-private.h \
-	MagickCore/annotate-private.h \
-	MagickCore/blob-private.h \
- 	MagickCore/cache-private.h \
-	MagickCore/cache-private.h \
- 	MagickCore/coder-private.h \
-	MagickCore/colormap-private.h \
- 	MagickCore/color-private.h \
-	MagickCore/color-private.h \
-	MagickCore/colorspace-private.h \
-	MagickCore/composite-private.h \
- 	MagickCore/configure-private.h \
- 	MagickCore/constitute-private.h \
- 	MagickCore/delegate-private.h \
-	MagickCore/delegate-private.h \
-	MagickCore/display-private.h \
-	MagickCore/distribute-cache-private.h \
-	MagickCore/draw-private.h \
-	MagickCore/exception-private.h \
-	MagickCore/fx-private.h \
-	MagickCore/gem-private.h \
-	MagickCore/image-private.h \
- 	MagickCore/locale-private.h \
- 	MagickCore/log-private.h \
- 	MagickCore/magick-private.h \
- 	MagickCore/magic-private.h \
-	MagickCore/matrix-private.h \
-	MagickCore/memory-private.h \
- 	MagickCore/methods-private.h \
- 	MagickCore/mime-private.h \
-	MagickCore/mime-private.h \
- 	MagickCore/module-private.h \
-	MagickCore/monitor-private.h \
-	MagickCore/morphology-private.h \
-	MagickCore/nt-base.h \
-	MagickCore/nt-feature.h \
-	MagickCore/opencl-private.h \
-	MagickCore/option-private.h \
- 	MagickCore/pixel-private.h \
- 	MagickCore/policy-private.h \
- 	MagickCore/profile-private.h \
-	MagickCore/quantum-private.h \
- 	MagickCore/random_-private.h \
-	MagickCore/random-private.h \
- 	MagickCore/registry-private.h \
-	MagickCore/resample-private.h \
-	MagickCore/resize-private.h \
- 	MagickCore/resource-private.h \
-	MagickCore/resource-private.h \
- 	MagickCore/semaphore-private.h \
-	MagickCore/semaphore-private.h \
-	MagickCore/signature-private.h \
-	MagickCore/stream-private.h \
-	MagickCore/string-private.h \
-	MagickCore/thread_.h \
-	MagickCore/thread-private.h \
-	MagickCore/token-private.h \
-	MagickCore/transform-private.h \
- 	MagickCore/type-private.h \
-	MagickCore/utility-private.h \
-	MagickCore/version-private.h \
- 	MagickCore/widget-private.h \
-	MagickCore/xml-tree-private.h \
-	MagickCore/xwindow-private.h
+  MagickCore/accelerate-private.h \
+  MagickCore/accelerate-kernels-private.h \
+  MagickCore/animate-private.h \
+  MagickCore/annotate-private.h \
+  MagickCore/blob-private.h \
+  MagickCore/cache-private.h \
+  MagickCore/cache-private.h \
+  MagickCore/coder-private.h \
+  MagickCore/colormap-private.h \
+  MagickCore/color-private.h \
+  MagickCore/color-private.h \
+  MagickCore/colorspace-private.h \
+  MagickCore/composite-private.h \
+  MagickCore/configure-private.h \
+  MagickCore/constitute-private.h \
+  MagickCore/delegate-private.h \
+  MagickCore/delegate-private.h \
+  MagickCore/display-private.h \
+  MagickCore/distribute-cache-private.h \
+  MagickCore/draw-private.h \
+  MagickCore/exception-private.h \
+  MagickCore/fx-private.h \
+  MagickCore/gem-private.h \
+  MagickCore/image-private.h \
+  MagickCore/locale-private.h \
+  MagickCore/log-private.h \
+  MagickCore/magick-private.h \
+  MagickCore/magic-private.h \
+  MagickCore/matrix-private.h \
+  MagickCore/memory-private.h \
+  MagickCore/methods-private.h \
+  MagickCore/mime-private.h \
+  MagickCore/mime-private.h \
+  MagickCore/module-private.h \
+  MagickCore/monitor-private.h \
+  MagickCore/morphology-private.h \
+  MagickCore/mutex.h \
+  MagickCore/nt-base.h \
+  MagickCore/nt-feature.h \
+  MagickCore/opencl-private.h \
+  MagickCore/option-private.h \
+  MagickCore/pixel-private.h \
+  MagickCore/policy-private.h \
+  MagickCore/profile-private.h \
+  MagickCore/quantum-private.h \
+  MagickCore/random-private.h \
+  MagickCore/registry-private.h \
+  MagickCore/resample-private.h \
+  MagickCore/resize-private.h \
+  MagickCore/resource-private.h \
+  MagickCore/resource-private.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/signature-private.h \
+  MagickCore/stream-private.h \
+  MagickCore/string-private.h \
+  MagickCore/thread_.h \
+  MagickCore/thread-private.h \
+  MagickCore/timer-private.h \
+  MagickCore/token-private.h \
+  MagickCore/transform-private.h \
+  MagickCore/type-private.h \
+  MagickCore/utility-private.h \
+  MagickCore/version-private.h \
+  MagickCore/widget-private.h \
+  MagickCore/xml-tree-private.h \
+  MagickCore/xwindow-private.h
 
 MAGICKCORE_INCLUDEARCH_HDRS = \
-	MagickCore/magick-baseconfig.h
+  MagickCore/magick-baseconfig.h
 
 MAGICKCORE_EXTRA_DIST = \
-	MagickCore/MagickCore-config.in \
-	$(MAGICKCORE_MANS) \
-	MagickCore/ImageMagick.pc.in \
-	MagickCore/MagickCore.pc.in \
-	MagickCore/libMagickCore.map \
-	MagickCore/nt-base.c \
-	MagickCore/nt-feature.c
+  MagickCore/MagickCore-config.in \
+  $(MAGICKCORE_MANS) \
+  MagickCore/ImageMagick.pc.in \
+  MagickCore/MagickCore.pc.in \
+  MagickCore/libMagickCore.map \
+  MagickCore/nt-base.c \
+  MagickCore/nt-feature.c
+
+if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+libMagickCore_threshold_target = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-threshold.lo
+$(libMagickCore_threshold_target): MagickCore/threshold-map.h
+nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES += MagickCore/threshold-map.h
+CLEANFILES += MagickCore/threshold-map.h
+MagickCore/threshold-map.h: config/thresholds.xml Makefile
+	$(AM_V_GEN){ printf '%s\n  %s=\n' 'static const char *const' BuiltinMap; sed -e 's/"/\\"/g; s/^.*$$/    "&\\n"/; $$s/$$/;/' $<; } >$@
+endif
diff --git a/MagickCore/accelerate-kernels-private.h b/MagickCore/accelerate-kernels-private.h
index 7b11005..d57a4c4 100644
--- a/MagickCore/accelerate-kernels-private.h
+++ b/MagickCore/accelerate-kernels-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -277,7 +277,7 @@
 OPENCL_IF((MAGICKCORE_QUANTUM_DEPTH == 8))
 
   STRINGIFY(
-    inline CLQuantum ScaleCharToQuantum(const unsigned char value)
+    static inline CLQuantum ScaleCharToQuantum(const unsigned char value)
     {
       return((CLQuantum) value);
     }
@@ -286,7 +286,7 @@
 OPENCL_ELIF((MAGICKCORE_QUANTUM_DEPTH == 16))
 
   STRINGIFY(
-    inline CLQuantum ScaleCharToQuantum(const unsigned char value)
+    static inline CLQuantum ScaleCharToQuantum(const unsigned char value)
     {
       return((CLQuantum) (257.0f*value));
     }
@@ -295,7 +295,7 @@
 OPENCL_ELIF((MAGICKCORE_QUANTUM_DEPTH == 32))
 
   STRINGIFY(
-    inline CLQuantum ScaleCharToQuantum(const unsigned char value)
+    static inline CLQuantum ScaleCharToQuantum(const unsigned char value)
     {
       return((CLQuantum) (16843009.0*value));
     }
@@ -306,7 +306,7 @@
 OPENCL_IF((MAGICKCORE_HDRI_SUPPORT == 1))
 
   STRINGIFY(
-    inline CLQuantum ClampToQuantum(const float value)
+    static inline CLQuantum ClampToQuantum(const float value)
       {
         return (CLQuantum) clamp(value, 0.0f, QuantumRange);
       }
@@ -315,7 +315,7 @@
 OPENCL_ELSE()
 
   STRINGIFY(
-    inline CLQuantum ClampToQuantum(const float value)
+    static inline CLQuantum ClampToQuantum(const float value)
       {
         return (CLQuantum) (clamp(value, 0.0f, QuantumRange) + 0.5f);
       }
@@ -324,14 +324,14 @@
 OPENCL_ENDIF()
 
   STRINGIFY(
-    inline int ClampToCanvas(const int offset,const int range)
+    static inline int ClampToCanvas(const int offset,const int range)
       {
         return clamp(offset, (int)0, range-1);
       }
   )
 
   STRINGIFY(
-    inline uint ScaleQuantumToMap(CLQuantum value)
+    static inline uint ScaleQuantumToMap(CLQuantum value)
       {
         if (value >= (CLQuantum) MaxMap)
           return ((uint)MaxMap);
@@ -341,7 +341,7 @@
   )
 
   STRINGIFY(
-    inline float PerceptibleReciprocal(const float x)
+    static inline float PerceptibleReciprocal(const float x)
     {
       float sign = x < (float) 0.0 ? (float) -1.0 : (float) 1.0;
       return((sign*x) >= MagickEpsilon ? (float) 1.0/x : sign*((float) 1.0/MagickEpsilon));
@@ -349,7 +349,7 @@
   )
 
   STRINGIFY(
-  inline float RoundToUnity(const float value)
+  static inline float RoundToUnity(const float value)
    {
      return clamp(value,0.0f,1.0f);
    }
@@ -357,43 +357,43 @@
 
   STRINGIFY(
 
-  inline unsigned int getPixelIndex(const unsigned int number_channels,
+  static inline unsigned int getPixelIndex(const unsigned int number_channels,
     const unsigned int columns, const unsigned int x, const unsigned int y)
   {
     return (x * number_channels) + (y * columns * number_channels);
   }
 
-  inline float getPixelRed(const __global CLQuantum *p)   { return (float)*p; }
-  inline float getPixelGreen(const __global CLQuantum *p) { return (float)*(p+1); }
-  inline float getPixelBlue(const __global CLQuantum *p)  { return (float)*(p+2); }
-  inline float getPixelAlpha(const __global CLQuantum *p,const unsigned int number_channels) { return (float)*(p+number_channels-1); }
+  static inline float getPixelRed(const __global CLQuantum *p)   { return (float)*p; }
+  static inline float getPixelGreen(const __global CLQuantum *p) { return (float)*(p+1); }
+  static inline float getPixelBlue(const __global CLQuantum *p)  { return (float)*(p+2); }
+  static inline float getPixelAlpha(const __global CLQuantum *p,const unsigned int number_channels) { return (float)*(p+number_channels-1); }
 
-  inline void setPixelRed(__global CLQuantum *p,const CLQuantum value)   { *p=value; }
-  inline void setPixelGreen(__global CLQuantum *p,const CLQuantum value) { *(p+1)=value; }
-  inline void setPixelBlue(__global CLQuantum *p,const CLQuantum value)  { *(p+2)=value; }
-  inline void setPixelAlpha(__global CLQuantum *p,const unsigned int number_channels,const CLQuantum value) { *(p+number_channels-1)=value; }
+  static inline void setPixelRed(__global CLQuantum *p,const CLQuantum value)   { *p=value; }
+  static inline void setPixelGreen(__global CLQuantum *p,const CLQuantum value) { *(p+1)=value; }
+  static inline void setPixelBlue(__global CLQuantum *p,const CLQuantum value)  { *(p+2)=value; }
+  static inline void setPixelAlpha(__global CLQuantum *p,const unsigned int number_channels,const CLQuantum value) { *(p+number_channels-1)=value; }
 
-  inline CLQuantum getBlue(CLPixelType p)               { return p.x; }
-  inline void setBlue(CLPixelType* p, CLQuantum value)  { (*p).x = value; }
-  inline float getBlueF4(float4 p)                      { return p.x; }
-  inline void setBlueF4(float4* p, float value)         { (*p).x = value; }
+  static inline CLQuantum getBlue(CLPixelType p)               { return p.x; }
+  static inline void setBlue(CLPixelType* p, CLQuantum value)  { (*p).x = value; }
+  static inline float getBlueF4(float4 p)                      { return p.x; }
+  static inline void setBlueF4(float4* p, float value)         { (*p).x = value; }
 
-  inline CLQuantum getGreen(CLPixelType p)              { return p.y; }
-  inline void setGreen(CLPixelType* p, CLQuantum value) { (*p).y = value; }
-  inline float getGreenF4(float4 p)                     { return p.y; }
-  inline void setGreenF4(float4* p, float value)        { (*p).y = value; }
+  static inline CLQuantum getGreen(CLPixelType p)              { return p.y; }
+  static inline void setGreen(CLPixelType* p, CLQuantum value) { (*p).y = value; }
+  static inline float getGreenF4(float4 p)                     { return p.y; }
+  static inline void setGreenF4(float4* p, float value)        { (*p).y = value; }
 
-  inline CLQuantum getRed(CLPixelType p)                { return p.z; }
-  inline void setRed(CLPixelType* p, CLQuantum value)   { (*p).z = value; }
-  inline float getRedF4(float4 p)                       { return p.z; }
-  inline void setRedF4(float4* p, float value)          { (*p).z = value; }
+  static inline CLQuantum getRed(CLPixelType p)                { return p.z; }
+  static inline void setRed(CLPixelType* p, CLQuantum value)   { (*p).z = value; }
+  static inline float getRedF4(float4 p)                       { return p.z; }
+  static inline void setRedF4(float4* p, float value)          { (*p).z = value; }
 
-  inline CLQuantum getAlpha(CLPixelType p)              { return p.w; }
-  inline void setAlpha(CLPixelType* p, CLQuantum value) { (*p).w = value; }
-  inline float getAlphaF4(float4 p)                     { return p.w; }
-  inline void setAlphaF4(float4* p, float value)        { (*p).w = value; }
+  static inline CLQuantum getAlpha(CLPixelType p)              { return p.w; }
+  static inline void setAlpha(CLPixelType* p, CLQuantum value) { (*p).w = value; }
+  static inline float getAlphaF4(float4 p)                     { return p.w; }
+  static inline void setAlphaF4(float4* p, float value)        { (*p).w = value; }
 
-  inline void ReadChannels(const __global CLQuantum *p, const unsigned int number_channels,
+  static inline void ReadChannels(const __global CLQuantum *p, const unsigned int number_channels,
     const ChannelType channel, float *red, float *green, float *blue, float *alpha)
   {
     if ((channel & RedChannel) != 0)
@@ -413,7 +413,7 @@
       *alpha=getPixelAlpha(p,number_channels);
   }
 
-  inline float4 ReadAllChannels(const __global CLQuantum *image, const unsigned int number_channels,
+  static inline float4 ReadAllChannels(const __global CLQuantum *image, const unsigned int number_channels,
     const unsigned int columns, const unsigned int x, const unsigned int y)
   {
     const __global CLQuantum *p = image + getPixelIndex(number_channels, columns, x, y);
@@ -433,7 +433,7 @@
     return(pixel);
   }
 
-  inline float4 ReadFloat4(const __global CLQuantum *image, const unsigned int number_channels,
+  static inline float4 ReadFloat4(const __global CLQuantum *image, const unsigned int number_channels,
     const unsigned int columns, const unsigned int x, const unsigned int y, const ChannelType channel)
   {
     const __global CLQuantum *p = image + getPixelIndex(number_channels, columns, x, y);
@@ -447,7 +447,7 @@
     return (float4)(red, green, blue, alpha);
   }
 
-  inline void WriteChannels(__global CLQuantum *p, const unsigned int number_channels,
+  static inline void WriteChannels(__global CLQuantum *p, const unsigned int number_channels,
     const ChannelType channel, float red, float green, float blue, float alpha)
   {
     if ((channel & RedChannel) != 0)
@@ -467,7 +467,7 @@
       setPixelAlpha(p,number_channels,ClampToQuantum(alpha));
   }
 
-  inline void WriteAllChannels(__global CLQuantum *image, const unsigned int number_channels,
+  static inline void WriteAllChannels(__global CLQuantum *image, const unsigned int number_channels,
     const unsigned int columns, const unsigned int x, const unsigned int y, float4 pixel)
   {
     __global CLQuantum *p = image + getPixelIndex(number_channels, columns, x, y);
@@ -484,7 +484,7 @@
       setPixelAlpha(p,number_channels,ClampToQuantum(pixel.w));
   }
 
-  inline void WriteFloat4(__global CLQuantum *image, const unsigned int number_channels,
+  static inline void WriteFloat4(__global CLQuantum *image, const unsigned int number_channels,
     const unsigned int columns, const unsigned int x, const unsigned int y, const ChannelType channel,
     float4 pixel)
   {
@@ -492,7 +492,7 @@
     WriteChannels(p, number_channels, channel, pixel.x, pixel.y, pixel.z, pixel.w);
   }
 
-  inline float GetPixelIntensity(const unsigned int colorspace,
+  static inline float GetPixelIntensity(const unsigned int colorspace,
     const unsigned int method,float red,float green,float blue)
   {
     float intensity;
@@ -588,12 +588,12 @@
     return intensity;
   }
 
-  inline int mirrorBottom(int value)
+  static inline int mirrorBottom(int value)
   {
       return (value < 0) ? - (value) : value;
   }
 
-  inline int mirrorTop(int value, int width)
+  static inline int mirrorTop(int value, int width)
   {
       return (value >= width) ? (2 * width - value - 1) : value;
   }
@@ -1022,7 +1022,7 @@
 
   STRINGIFY(
 
-  inline float4 ConvertRGBToHSB(const float4 pixel)
+  static inline float4 ConvertRGBToHSB(const float4 pixel)
   {
     float4 result=0.0f;
     result.w=pixel.w;
@@ -1046,7 +1046,7 @@
     return(result);
   }
 
-  inline float4 ConvertHSBToRGB(const float4 pixel)
+  static inline float4 ConvertHSBToRGB(const float4 pixel)
   {
     float hue=pixel.x;
     float saturation=pixel.y;
@@ -1972,7 +1972,7 @@
 
   STRINGIFY(
 
-  inline void ConvertRGBToHSL(const CLQuantum red,const CLQuantum green, const CLQuantum blue,
+  static inline void ConvertRGBToHSL(const CLQuantum red,const CLQuantum green, const CLQuantum blue,
     float *hue, float *saturation, float *lightness)
   {
   float
@@ -2015,7 +2015,7 @@
     *saturation=c/(2.0-2.0*(*lightness));
   }
 
-  inline void ConvertHSLToRGB(const float hue,const float saturation, const float lightness,
+  static inline void ConvertHSLToRGB(const float hue,const float saturation, const float lightness,
       CLQuantum *red,CLQuantum *green,CLQuantum *blue)
   {
     float
@@ -2095,7 +2095,7 @@
     *blue=ClampToQuantum(QuantumRange*b);
   }
 
-  inline void ModulateHSL(const float percent_hue, const float percent_saturation,const float percent_lightness, 
+  static inline void ModulateHSL(const float percent_hue, const float percent_saturation,const float percent_lightness, 
     CLQuantum *red,CLQuantum *green,CLQuantum *blue)
   {
     float
@@ -2382,7 +2382,7 @@
   )
 
   STRINGIFY(
-  inline float applyResizeFilter(const float x, const ResizeWeightingFunctionType filterType, const __global float* filterCoefficients)
+  static inline float applyResizeFilter(const float x, const ResizeWeightingFunctionType filterType, const __global float* filterCoefficients)
   {
     switch (filterType)
     {
@@ -2412,7 +2412,7 @@
 
 
   STRINGIFY(
-  inline float getResizeFilterWeight(const __global float* resizeFilterCubicCoefficients, const ResizeWeightingFunctionType resizeFilterType
+  static inline float getResizeFilterWeight(const __global float* resizeFilterCubicCoefficients, const ResizeWeightingFunctionType resizeFilterType
            , const ResizeWeightingFunctionType resizeWindowType
            , const float resizeFilterScale, const float resizeWindowSupport, const float resizeFilterBlur, const float x)
   {
@@ -2439,13 +2439,13 @@
 
   STRINGIFY(
 
-  inline unsigned int getNumWorkItemsPerPixel(const unsigned int pixelPerWorkgroup, const unsigned int numWorkItems) {
+  static inline unsigned int getNumWorkItemsPerPixel(const unsigned int pixelPerWorkgroup, const unsigned int numWorkItems) {
     return (numWorkItems/pixelPerWorkgroup);
   }
 
   // returns the index of the pixel for the current workitem to compute.
   // returns -1 if this workitem doesn't need to participate in any computation
-  inline int pixelToCompute(const unsigned itemID, const unsigned int pixelPerWorkgroup, const unsigned int numWorkItems) {
+  static inline int pixelToCompute(const unsigned itemID, const unsigned int pixelPerWorkgroup, const unsigned int numWorkItems) {
     const unsigned int numWorkItemsPerPixel = getNumWorkItemsPerPixel(pixelPerWorkgroup, numWorkItems);
     int pixelIndex = itemID/numWorkItemsPerPixel;
     pixelIndex = (pixelIndex<pixelPerWorkgroup)?pixelIndex:-1;
diff --git a/MagickCore/accelerate-private.h b/MagickCore/accelerate-private.h
index 1240725..36b2c7e 100644
--- a/MagickCore/accelerate-private.h
+++ b/MagickCore/accelerate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -19,11 +19,11 @@
 #ifndef MAGICKCORE_ACCELERATE_PRIVATE_H
 #define MAGICKCORE_ACCELERATE_PRIVATE_H
 
-#include "MagickCore/fx.h"
 #include "MagickCore/morphology.h"
 #include "MagickCore/resample.h"
 #include "MagickCore/resize.h"
 #include "MagickCore/statistic.h"
+#include "MagickCore/visual-effects.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c
index a5f7ba0..7faa7c7 100644
--- a/MagickCore/accelerate.c
+++ b/MagickCore/accelerate.c
@@ -21,7 +21,7 @@
 %                                April 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -652,6 +652,11 @@
   blurColumnKernel=NULL;
   outputReady=MagickFalse;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   device=RequestOpenCLDevice(clEnv);
   queue=AcquireOpenCLCommandQueue(device);
   filteredImage=cloneImage(image,exception);
@@ -784,6 +789,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if (checkAccelerateCondition(image) == MagickFalse)
     return((Image *) NULL);
@@ -837,6 +844,11 @@
     gsize[2],
     i;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   contrastKernel=NULL;
   imageBuffer=NULL;
   outputReady=MagickFalse;
@@ -900,6 +912,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if (checkAccelerateCondition(image) == MagickFalse)
     return(MagickFalse);
@@ -988,6 +1002,11 @@
     *hostPtr,
     *inputPixels;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   histogram=NULL;
   stretch_map=NULL;
   inputPixels = NULL;
@@ -999,12 +1018,6 @@
   queue = NULL;
   outputReady = MagickFalse;
 
-
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-
   /* exception=(&image->exception); */
 
   /*
@@ -1462,6 +1475,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if ((checkAccelerateConditionRGBA(image) == MagickFalse) ||
       (checkHistogramCondition(image,image->intensity) == MagickFalse))
@@ -2308,6 +2323,11 @@
     *hostPtr,
     *inputPixels;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   map=NULL;
   histogram=NULL;
   equalize_map=NULL;
@@ -2320,11 +2340,6 @@
   queue = NULL;
   outputReady = MagickFalse;
 
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-
   /*
    * initialize opencl env
    */
@@ -2669,6 +2684,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if ((checkAccelerateConditionRGBA(image) == MagickFalse) ||
       (checkHistogramCondition(image,image->intensity) == MagickFalse))
@@ -2728,8 +2745,12 @@
     gsize[2],
     i;
 
-  outputReady=MagickFalse;
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
+  outputReady=MagickFalse;
   imageBuffer=NULL;
   functionKernel=NULL;
   parametersBuffer=NULL;
@@ -2815,6 +2836,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if (checkAccelerateCondition(image) == MagickFalse)
     return(MagickFalse);
@@ -2870,12 +2893,15 @@
     gsize[2],
     i;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   outputReady=MagickFalse;
   imageBuffer=NULL;
   grayscaleKernel=NULL;
 
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
   device=RequestOpenCLDevice(clEnv);
   queue=AcquireOpenCLCommandQueue(device);
   imageBuffer=GetAuthenticOpenCLBuffer(image,device,exception);
@@ -2937,6 +2963,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if ((checkAccelerateCondition(image) == MagickFalse) ||
       (checkPixelIntensity(image,method) == MagickFalse))
@@ -3368,15 +3396,15 @@
   void
     *inputPixels;
 
-  inputPixels = NULL;
-  imageBuffer = NULL;
-  modulateKernel = NULL;
-
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
+  inputPixels = NULL;
+  imageBuffer = NULL;
+  modulateKernel = NULL;
+
   /*
    * initialize opencl env
    */
@@ -3504,6 +3532,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if (checkAccelerateConditionRGBA(image) == MagickFalse)
     return(MagickFalse);
@@ -3602,6 +3632,11 @@
     *filteredPixels,
     *hostPtr;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   outputReady = MagickFalse;
   filteredImage = NULL;
   filteredImage_view = NULL;
@@ -3616,7 +3651,8 @@
   /* Create and initialize OpenCL buffers. */
 
   image_view=AcquireAuthenticCacheView(image,exception);
-  inputPixels=GetCacheViewAuthenticPixels(image_view,0,0,image->columns,image->rows,exception);
+  inputPixels=GetCacheViewAuthenticPixels(image_view,0,0,image->columns,
+    image->rows,exception);
   if (inputPixels == (const void *) NULL)
   {
     (void) ThrowMagickException(exception,GetMagickModule(),CacheError,
@@ -4535,6 +4571,11 @@
     gsize[2],
     i;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+
   filteredImage=NULL;
   imageBuffer=NULL;
   filteredImageBuffer=NULL;
@@ -4659,6 +4700,8 @@
 
   assert(image != NULL);
   assert(exception != (ExceptionInfo *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
 
   if (checkAccelerateCondition(image) == MagickFalse)
     return((Image *) NULL);
diff --git a/MagickCore/animate-private.h b/MagickCore/animate-private.h
index 2c7d78e..770b02a 100644
--- a/MagickCore/animate-private.h
+++ b/MagickCore/animate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index e79715c..94128e0 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -67,6 +67,7 @@
 #include "MagickCore/resource_.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
@@ -91,78 +92,77 @@
   Static declarations.
 */
 static const char
-  *AnimateHelp[]=
+  AnimateHelp[] =
   {
-    "BUTTONS",
-    "",
-    "  Press any button to map or unmap the Command widget.",
-    "",
-    "COMMAND WIDGET",
-    "  The Command widget lists a number of sub-menus and commands.",
-    "  They are",
-    "",
-    "    Animate",
-    "      Open...",
-    "      Save...",
-    "      Play",
-    "      Step",
-    "      Repeat",
-    "      Auto Reverse",
-    "    Speed",
-    "      Slower",
-    "      Faster",
-    "    Direction",
-    "      Forward",
-    "      Reverse",
-    "      Help",
-    "        Overview",
-    "        Browse Documentation",
-    "        About Animate",
-    "    Image Info",
-    "    Quit",
-    "",
-    "  Menu items with a indented triangle have a sub-menu.  They",
-    "  are represented above as the indented items.  To access a",
-    "  sub-menu item, move the pointer to the appropriate menu and",
-    "  press a button and drag.  When you find the desired sub-menu",
-    "  item, release the button and the command is executed.  Move",
-    "  the pointer away from the sub-menu if you decide not to",
-    "  execute a particular command.",
-    "",
-    "KEYBOARD ACCELERATORS",
-    "  Accelerators are one or two key presses that effect a",
-    "  particular command.  The keyboard accelerators that",
-    "  animate(1) understands is:",
-    "",
-    "  Ctl+O  Press to open an image from a file.",
-    "",
-    "  space  Press to display the next image in the sequence.",
-    "",
-    "  <      Press to speed-up the display of the images.  Refer to",
-    "         -delay for more information.",
-    "",
-    "  >      Press to slow the display of the images.  Refer to",
-    "         -delay for more information.",
-    "",
-    "  F1     Press to display helpful information about animate(1).",
-    "",
-    "  Find   Press to browse documentation about ImageMagick.",
-    "",
-    "  ?      Press to display information about the image.  Press",
-    "         any key or button to erase the information.",
-    "",
-    "         This information is printed: image name;  image size;",
-    "         and the total number of unique colors in the image.",
-    "",
-    "  Ctl-q  Press to discard all images and exit program.",
-    (char *) NULL
+    "BUTTONS\n"
+    "\n"
+    "  Press any button to map or unmap the Command widget.\n"
+    "\n"
+    "COMMAND WIDGET\n"
+    "  The Command widget lists a number of sub-menus and commands.\n"
+    "  They are\n"
+    "\n"
+    "    Animate\n"
+    "      Open...\n"
+    "      Save...\n"
+    "      Play\n"
+    "      Step\n"
+    "      Repeat\n"
+    "      Auto Reverse\n"
+    "    Speed\n"
+    "      Slower\n"
+    "      Faster\n"
+    "    Direction\n"
+    "      Forward\n"
+    "      Reverse\n"
+    "      Help\n"
+    "        Overview\n"
+    "        Browse Documentation\n"
+    "        About Animate\n"
+    "    Image Info\n"
+    "    Quit\n"
+    "\n"
+    "  Menu items with a indented triangle have a sub-menu.  They\n"
+    "  are represented above as the indented items.  To access a\n"
+    "  sub-menu item, move the pointer to the appropriate menu and\n"
+    "  press a button and drag.  When you find the desired sub-menu\n"
+    "  item, release the button and the command is executed.  Move\n"
+    "  the pointer away from the sub-menu if you decide not to\n"
+    "  execute a particular command.\n"
+    "\n"
+    "KEYBOARD ACCELERATORS\n"
+    "  Accelerators are one or two key presses that effect a\n"
+    "  particular command.  The keyboard accelerators that\n"
+    "  animate(1) understands is:\n"
+    "\n"
+    "  Ctl+O  Press to open an image from a file.\n"
+    "\n"
+    "  space  Press to display the next image in the sequence.\n"
+    "\n"
+    "  <      Press to speed-up the display of the images.  Refer to\n"
+    "         -delay for more information.\n"
+    "\n"
+    "  >      Press to slow the display of the images.  Refer to\n"
+    "         -delay for more information.\n"
+    "\n"
+    "  F1     Press to display helpful information about animate(1).\n"
+    "\n"
+    "  Find   Press to browse documentation about ImageMagick.\n"
+    "\n"
+    "  ?      Press to display information about the image.  Press\n"
+    "         any key or button to erase the information.\n"
+    "\n"
+    "         This information is printed: image name;  image size;\n"
+    "         and the total number of unique colors in the image.\n"
+    "\n"
+    "  Ctl-q  Press to discard all images and exit program.\n"
   };
 
 /*
   Constant declarations.
 */
 static const char
-  *PageSizes[]=
+  *PageSizes[] =
   {
     "Letter",
     "Tabloid",
@@ -480,7 +480,8 @@
     case PlayCommand:
     {
       char
-        basename[MagickPathExtent];
+        basename[MagickPathExtent],
+        name[MagickPathExtent];
 
       int
         status;
@@ -491,8 +492,9 @@
       *state|=PlayAnimationState;
       *state&=(~AutoReverseAnimationState);
       GetPathComponent((*image)->magick_filename,BasePath,basename);
-      (void) FormatLocaleString(windows->image.name,MagickPathExtent,
-        "%s: %s",MagickPackageName,basename);
+      (void) FormatLocaleString(name,MagickPathExtent,"%s: %s",
+        MagickPackageName,basename);
+      (void) CloneString(&windows->image.name,name);
       if (resource_info->title != (char *) NULL)
         {
           char
@@ -500,7 +502,7 @@
 
           title=InterpretImageProperties(resource_info->image_info,*image,
             resource_info->title,exception);
-          (void) CopyMagickString(windows->image.name,title,MagickPathExtent);
+          (void) CloneString(&windows->image.name,title);
           title=DestroyString(title);
         }
       status=XStringListToTextProperty(&windows->image.name,1,&window_name);
@@ -593,7 +595,7 @@
       /*
         User requested help.
       */
-      XTextViewWidget(display,resource_info,windows,MagickFalse,
+      XTextViewHelp(display,resource_info,windows,MagickFalse,
         "Help Viewer - Animate",AnimateHelp);
       break;
     }
@@ -1214,8 +1216,8 @@
 #define MaXWindows  8
 #define MagickTitle  "Commands"
 
-  static const char
-    *CommandMenu[]=
+  const char
+    *const CommandMenu[]=
     {
       "Animate",
       "Speed",
@@ -1225,7 +1227,7 @@
       "Quit",
       (char *) NULL
     },
-    *AnimateMenu[]=
+    *const AnimateMenu[]=
     {
       "Open...",
       "Play",
@@ -1235,19 +1237,19 @@
       "Save...",
       (char *) NULL
     },
-    *SpeedMenu[]=
+    *const SpeedMenu[]=
     {
       "Faster",
       "Slower",
       (char *) NULL
     },
-    *DirectionMenu[]=
+    *const DirectionMenu[]=
     {
       "Forward",
       "Reverse",
       (char *) NULL
     },
-    *HelpMenu[]=
+    *const HelpMenu[]=
     {
       "Overview",
       "Browse Documentation",
@@ -1255,8 +1257,8 @@
       (char *) NULL
     };
 
-  static const char
-    **Menus[MagickMenus]=
+  const char
+    *const *Menus[MagickMenus]=
     {
       AnimateMenu,
       SpeedMenu,
@@ -1664,23 +1666,25 @@
 
       title=InterpretImageProperties(resource_info->image_info,display_image,
         resource_info->title,exception);
-      (void) CopyMagickString(windows->image.name,title,MagickPathExtent);
-      (void) CopyMagickString(windows->image.icon_name,title,MagickPathExtent);
+      (void) CloneString(&windows->image.name,title);
+      (void) CloneString(&windows->image.icon_name,title);
       title=DestroyString(title);
     }
   else
     {
       char
-        filename[MagickPathExtent];
+        filename[MagickPathExtent],
+        window_name[MagickPathExtent];
 
       /*
         Window name is the base of the filename.
       */
       GetPathComponent(display_image->magick_filename,TailPath,filename);
-      (void) FormatLocaleString(windows->image.name,MagickPathExtent,
+      (void) FormatLocaleString(window_name,MagickPathExtent,
         "%s: %s[scene: %.20g frames: %.20g]",MagickPackageName,filename,(double)
         display_image->scene,(double) number_scenes);
-      (void) CopyMagickString(windows->image.icon_name,filename,MagickPathExtent);
+      (void) CloneString(&windows->image.name,window_name);
+      (void) CloneString(&windows->image.icon_name,filename);
     }
   if (resource_info->immutable != MagickFalse)
     windows->image.immutable=MagickTrue;
@@ -1974,18 +1978,22 @@
 
         title=InterpretImageProperties(resource_info->image_info,
           image_list[scene],resource_info->title,exception);
-        (void) CopyMagickString(windows->image.name,title,MagickPathExtent);
+        (void) CloneString(&windows->image.name,title);
         title=DestroyString(title);
       }
     else
       {
+        char
+          window_name[MaxTextExtent];
+
         p=image_list[scene]->magick_filename+
           strlen(image_list[scene]->magick_filename)-1;
         while ((p > image_list[scene]->magick_filename) && (*(p-1) != '/'))
           p--;
-        (void) FormatLocaleString(windows->image.name,MagickPathExtent,
+        (void) FormatLocaleString(window_name,MagickPathExtent,
           "%s: %s[%.20g of %.20g]",MagickPackageName,p,(double) scene+1,
           (double) number_scenes);
+        (void) CloneString(&windows->image.name,window_name);
       }
     status=XStringListToTextProperty(&windows->image.name,1,&window_name);
     if (status != Success)
@@ -2095,6 +2103,9 @@
           if ((state & StepAnimationState) ||
               (resource_info->title != (char *) NULL))
             {
+              char
+                name[MaxTextExtent];
+
               /*
                 Update window title.
               */
@@ -2102,9 +2113,10 @@
                 strlen(image_list[scene]->filename)-1;
               while ((p > image_list[scene]->filename) && (*(p-1) != '/'))
                 p--;
-              (void) FormatLocaleString(windows->image.name,MagickPathExtent,
+              (void) FormatLocaleString(name,MagickPathExtent,
                 "%s: %s[%.20g of %.20g]",MagickPackageName,p,(double)
                 scene+1,(double) number_scenes);
+              (void) CloneString(&windows->image.name,name);
               if (resource_info->title != (char *) NULL)
                 {
                   char
@@ -2112,8 +2124,7 @@
 
                   title=InterpretImageProperties(resource_info->image_info,
                     image,resource_info->title,exception);
-                  (void) CopyMagickString(windows->image.name,title,
-                    MagickPathExtent);
+                  (void) CloneString(&windows->image.name,title);
                   title=DestroyString(title);
                 }
               status=XStringListToTextProperty(&windows->image.name,1,
@@ -2173,10 +2184,10 @@
     /*
       Handle a window event.
     */
-    timestamp=time((time_t *) NULL);
+    timestamp=GetMagickTime();
     (void) XNextEvent(display,&event);
     if (windows->image.stasis == MagickFalse)
-      windows->image.stasis=(time((time_t *) NULL)-timestamp) > 0 ?
+      windows->image.stasis=(GetMagickTime()-timestamp) > 0 ?
         MagickTrue : MagickFalse;
     if (event.xany.window == windows->command.id)
       {
diff --git a/MagickCore/animate.h b/MagickCore/animate.h
index a3d36d8..ff30745 100644
--- a/MagickCore/animate.h
+++ b/MagickCore/animate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/annotate-private.h b/MagickCore/annotate-private.h
index 7e9d155..4cc19c6 100644
--- a/MagickCore/annotate-private.h
+++ b/MagickCore/annotate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 6106246..bcbe104 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -203,57 +203,7 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  AnnotateImage() annotates an image with text.  Optionally you can include
-%  any of the following bits of information about the image by embedding
-%  the appropriate special characters:
-%
-%    \n   newline
-%    \r   carriage return
-%    <    less-than character.
-%    >    greater-than character.
-%    &    ampersand character.
-%    %%   a percent sign
-%    %b   file size of image read in
-%    %c   comment meta-data property
-%    %d   directory component of path
-%    %e   filename extension or suffix
-%    %f   filename (including suffix)
-%    %g   layer canvas page geometry   (equivalent to "%Wx%H%X%Y")
-%    %h   current image height in pixels
-%    %i   image filename (note: becomes output filename for "info:")
-%    %k   CALCULATED: number of unique colors
-%    %l   label meta-data property
-%    %m   image file format (file magic)
-%    %n   number of images in current image sequence
-%    %o   output filename  (used for delegates)
-%    %p   index of image in current image list
-%    %q   quantum depth (compile-time constant)
-%    %r   image class and colorspace
-%    %s   scene number (from input unless re-assigned)
-%    %t   filename without directory or extension (suffix)
-%    %u   unique temporary filename (used for delegates)
-%    %w   current width in pixels
-%    %x   x resolution (density)
-%    %y   y resolution (density)
-%    %z   image depth (as read in unless modified, image save depth)
-%    %A   image transparency channel enabled (true/false)
-%    %C   image compression type
-%    %D   image GIF dispose method
-%    %G   original image size (%wx%h; before any resizes)
-%    %H   page (canvas) height
-%    %M   Magick filename (original file exactly as given,  including read mods)
-%    %O   page (canvas) offset ( = %X%Y )
-%    %P   page (canvas) size ( = %Wx%H )
-%    %Q   image compression quality ( 0 = default )
-%    %S   ?? scenes ??
-%    %T   image time delay (in centi-seconds)
-%    %U   image resolution units
-%    %W   page (canvas) width
-%    %X   page (canvas) x offset (including sign)
-%    %Y   page (canvas) y offset (including sign)
-%    %Z   unique filename (used for delegates)
-%    %@   CALCULATED: trim bounding box (without actually trimming)
-%    %#   CALCULATED: 'signature' hash of image values
+%  AnnotateImage() annotates an image with text.
 %
 %  The format of the AnnotateImage method is:
 %
@@ -273,7 +223,10 @@
   const DrawInfo *draw_info,ExceptionInfo *exception)
 {
   char
+    *p,
+    color[MagickPathExtent],
     primitive[MagickPathExtent],
+    *text,
     **textlist;
 
   DrawInfo
@@ -286,6 +239,9 @@
   MagickBooleanType
     status;
 
+  PixelInfo
+    pixel;
+
   PointInfo
     offset;
 
@@ -295,9 +251,6 @@
   register ssize_t
     i;
 
-  size_t
-    length;
-
   TypeMetric
     metrics;
 
@@ -315,16 +268,41 @@
     return(MagickFalse);
   if (*draw_info->text == '\0')
     return(MagickTrue);
-  textlist=StringToList(draw_info->text);
-  if (textlist == (char **) NULL)
-    return(MagickFalse);
-  length=strlen(textlist[0]);
-  for (i=1; textlist[i] != (char *) NULL; i++)
-    if (strlen(textlist[i]) > length)
-      length=strlen(textlist[i]);
-  number_lines=(size_t) i;
   annotate=CloneDrawInfo((ImageInfo *) NULL,draw_info);
+  text=annotate->text;
+  annotate->text=(char *) NULL;
   annotate_info=CloneDrawInfo((ImageInfo *) NULL,draw_info);
+  number_lines=1;
+  for (p=text; *p != '\0'; p++)
+    if (*p == '\n')
+      number_lines++;
+  textlist=(char **) AcquireQuantumMemory(number_lines+1,sizeof(*textlist));
+  if (textlist == (char **) NULL)
+    {
+      annotate_info=DestroyDrawInfo(annotate_info);
+      annotate=DestroyDrawInfo(annotate);
+      text=DestroyString(text);
+      return(MagickFalse);
+    }
+  p=text;
+  for (i=0; i < (ssize_t) number_lines; i++)
+  {
+    char
+      *q;
+
+    textlist[i]=p;
+    for (q=p; *q != '\0'; q++)
+      if ((*q == '\r') || (*q == '\n'))
+        break;
+    if (*q == '\r')
+      {
+        *q='\0';
+        q++;
+      }
+    *q='\0';
+    p=q+1;
+  }
+  textlist[i]=(char *) NULL;
   SetGeometry(image,&geometry);
   SetGeometryInfo(&geometry_info);
   if (annotate_info->geometry != (char *) NULL)
@@ -334,19 +312,29 @@
       (void) ParseGeometry(annotate_info->geometry,&geometry_info);
     }
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
-    return(MagickFalse);
+    {
+      annotate_info=DestroyDrawInfo(annotate_info);
+      annotate=DestroyDrawInfo(annotate);
+      textlist=(char **) RelinquishMagickMemory(textlist);
+      text=DestroyString(text);
+      return(MagickFalse);
+    }
   if (IsGrayColorspace(image->colorspace) != MagickFalse)
     (void) SetImageColorspace(image,sRGBColorspace,exception);
   status=MagickTrue;
+  (void) memset(&metrics,0,sizeof(metrics));
   for (i=0; textlist[i] != (char *) NULL; i++)
   {
+    if (*textlist[i] == '\0')
+      continue;
     /*
       Position text relative to image.
     */
     annotate_info->affine.tx=geometry_info.xi-image->page.x;
     annotate_info->affine.ty=geometry_info.psi-image->page.y;
     (void) CloneString(&annotate->text,textlist[i]);
-    (void) GetTypeMetrics(image,annotate,&metrics,exception);
+    if ((metrics.width == 0) || (annotate->gravity != NorthWestGravity))
+      (void) GetTypeMetrics(image,annotate,&metrics,exception);
     height=(ssize_t) (metrics.ascent-metrics.descent+
       draw_info->interline_spacing+0.5);
     switch (annotate->gravity)
@@ -510,45 +498,55 @@
       }
     annotate_info->affine.tx=offset.x;
     annotate_info->affine.ty=offset.y;
-    (void) FormatLocaleString(primitive,MagickPathExtent,"stroke-width %g "
-      "line 0,0 %g,0",metrics.underline_thickness,metrics.width);
-    if (annotate->decorate == OverlineDecoration)
+    pixel=annotate_info->fill;
+    if (annotate_info->stroke.alpha != TransparentAlpha)
+      pixel=annotate_info->stroke;
+    (void) QueryColorname(image,&pixel,AllCompliance,color,exception);
+    (void) FormatLocaleString(primitive,MagickPathExtent,"stroke %s "
+      "stroke-width %g line 0,0 %g,0",color,(double)
+      metrics.underline_thickness,(double) metrics.width);
+    /*
+      Annotate image with text.
+    */
+    switch (annotate->decorate)
+    {
+      case OverlineDecoration:
       {
         annotate_info->affine.ty-=(draw_info->affine.sy*(metrics.ascent+
           metrics.descent-metrics.underline_position));
         (void) CloneString(&annotate_info->primitive,primitive);
         (void) DrawImage(image,annotate_info,exception);
+        break;
       }
-    else
-      if (annotate->decorate == UnderlineDecoration)
-        {
-          annotate_info->affine.ty-=(draw_info->affine.sy*
-            metrics.underline_position);
-          (void) CloneString(&annotate_info->primitive,primitive);
-          (void) DrawImage(image,annotate_info,exception);
-        }
-    /*
-      Annotate image with text.
-    */
+      case UnderlineDecoration:
+      {
+        annotate_info->affine.ty-=(draw_info->affine.sy*
+          metrics.underline_position);
+        (void) CloneString(&annotate_info->primitive,primitive);
+        (void) DrawImage(image,annotate_info,exception);
+        break;
+      }
+      default:
+        break;
+    }
     status=RenderType(image,annotate,&offset,&metrics,exception);
     if (status == MagickFalse)
       break;
-    if (annotate->decorate == LineThroughDecoration)
-      {
+
+    if (annotate->decorate == LineThroughDecoration) {
         annotate_info->affine.ty-=(draw_info->affine.sy*(height+
-          metrics.underline_position+metrics.descent)/2.0);
+          metrics.underline_position+metrics.descent*2)/2.0);
         (void) CloneString(&annotate_info->primitive,primitive);
         (void) DrawImage(image,annotate_info,exception);
-      }
+    }
   }
   /*
     Relinquish resources.
   */
   annotate_info=DestroyDrawInfo(annotate_info);
   annotate=DestroyDrawInfo(annotate);
-  for (i=0; textlist[i] != (char *) NULL; i++)
-    textlist[i]=DestroyString(textlist[i]);
   textlist=(char **) RelinquishMagickMemory(textlist);
+  text=DestroyString(text);
   return(status);
 }
 
@@ -1077,7 +1075,7 @@
   raqm_glyph_t
     *glyphs;
 
-  register size_t
+  register ssize_t
     i;
 
   size_t
@@ -1161,12 +1159,11 @@
   ssize_t
     last_glyph;
 
-  magick_unreferenced(image);
-  magick_unreferenced(exception);
-
   /*
     Simple layout for bi-directional text (right-to-left or left-to-right).
   */
+  magick_unreferenced(image);
+  magick_unreferenced(exception);
   *grapheme=(GraphemeInfo *) AcquireQuantumMemory(length+1,sizeof(**grapheme));
   if (*grapheme == (GraphemeInfo *) NULL)
     return(0);
@@ -1317,12 +1314,16 @@
   FT_Open_Args
     args;
 
+  FT_UInt
+    first_glyph_id,
+    last_glyph_id,
+    missing_glyph_id;
+
   FT_Vector
     origin;
 
   GlyphInfo
-    glyph,
-    last_glyph;
+    glyph;
 
   GraphemeInfo
     *grapheme;
@@ -1482,9 +1483,14 @@
   metrics->bounds.y1=metrics->descent;
   metrics->bounds.x2=metrics->ascent+metrics->descent;
   metrics->bounds.y2=metrics->ascent+metrics->descent;
-  metrics->underline_position=face->underline_position/64.0;
-  metrics->underline_thickness=face->underline_thickness/64.0;
-  if ((draw_info->text == (char *) NULL) || (*draw_info->text == '\0'))
+  metrics->underline_position=face->underline_position*
+    (metrics->pixels_per_em.x/face->units_per_EM);
+  metrics->underline_thickness=face->underline_thickness*
+    (metrics->pixels_per_em.x/face->units_per_EM);
+  first_glyph_id=0;
+  FT_Get_First_Char(face,&first_glyph_id);
+  if ((draw_info->text == (char *) NULL) || (*draw_info->text == '\0') ||
+      (first_glyph_id == 0))
     {
       (void) FT_Done_Face(face);
       (void) FT_Done_FreeType(library);
@@ -1517,9 +1523,8 @@
   if ((value != (const char *) NULL) && (LocaleCompare(value,"off") == 0))
     flags|=FT_LOAD_NO_HINTING;
   glyph.id=0;
-  glyph.image=NULL;
-  last_glyph.id=0;
-  last_glyph.image=NULL;
+  glyph.image=(FT_Glyph) NULL;
+  last_glyph_id=0;
   origin.x=0;
   origin.y=0;
   affine.xx=65536L;
@@ -1562,6 +1567,7 @@
   grapheme=(GraphemeInfo *) NULL;
   length=ComplexTextLayout(image,draw_info,p,strlen(p),face,flags,&grapheme,
     exception);
+  missing_glyph_id=FT_Get_Char_Index(face,' ');
   code=0;
   for (i=0; i < (ssize_t) length; i++)
   {
@@ -1573,13 +1579,17 @@
     */
     glyph.id=(FT_UInt) grapheme[i].index;
     if (glyph.id == 0)
-      glyph.id=FT_Get_Char_Index(face,' ');
-    if ((glyph.id != 0) && (last_glyph.id != 0))
+      glyph.id=missing_glyph_id;
+    if ((glyph.id != 0) && (last_glyph_id != 0))
       origin.x+=(FT_Pos) (64.0*draw_info->kerning);
     glyph.origin=origin;
     glyph.origin.x+=(FT_Pos) grapheme[i].x_offset;
     glyph.origin.y+=(FT_Pos) grapheme[i].y_offset;
-    glyph.image=0;
+    if (glyph.image != (FT_Glyph) NULL)
+      {
+        FT_Done_Glyph(glyph.image);
+        glyph.image=(FT_Glyph) NULL;
+      }
     ft_status=FT_Load_Glyph(face,glyph.id,flags);
     if (ft_status != 0)
       continue;
@@ -1711,8 +1721,7 @@
             if (transparent_fill == MagickFalse)
               {
                 GetPixelInfo(image,&fill_color);
-                GetFillColor(draw_info,x_offset,y_offset,&fill_color,
-                  exception);
+                GetFillColor(draw_info,x_offset,y_offset,&fill_color,exception);
                 fill_opacity=fill_opacity*fill_color.alpha;
                 CompositePixelOver(image,&fill_color,fill_opacity,q,
                   GetPixelAlpha(image,q),q);
@@ -1767,22 +1776,17 @@
     metrics->origin.y=(double) origin.y;
     if (metrics->origin.x > metrics->width)
       metrics->width=metrics->origin.x;
-    if (last_glyph.image != 0)
-      {
-        FT_Done_Glyph(last_glyph.image);
-        last_glyph.image=0;
-      }
-    last_glyph=glyph;
+    last_glyph_id=glyph.id;
     code=GetUTFCode(p+grapheme[i].cluster);
   }
   if (grapheme != (GraphemeInfo *) NULL)
     grapheme=(GraphemeInfo *) RelinquishMagickMemory(grapheme);
   if (utf8 != (unsigned char *) NULL)
     utf8=(unsigned char *) RelinquishMagickMemory(utf8);
-  if (glyph.image != 0)
+  if (glyph.image != (FT_Glyph) NULL)
     {
       FT_Done_Glyph(glyph.image);
-      glyph.image=0;
+      glyph.image=(FT_Glyph) NULL;
     }
   /*
     Determine font metrics.
diff --git a/MagickCore/annotate.h b/MagickCore/annotate.h
index ef7fbba..d74ae70 100644
--- a/MagickCore/annotate.h
+++ b/MagickCore/annotate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/artifact.c b/MagickCore/artifact.c
index e861110..e1c0e00 100644
--- a/MagickCore/artifact.c
+++ b/MagickCore/artifact.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/artifact.h b/MagickCore/artifact.h
index b674ce6..02fdad6 100644
--- a/MagickCore/artifact.h
+++ b/MagickCore/artifact.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c
index 13dd0d4..1dc001d 100644
--- a/MagickCore/attribute.c
+++ b/MagickCore/attribute.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -141,6 +141,9 @@
   CacheView
     *edge_view;
 
+  const char
+    *artifact;
+
   double
     factor;
 
@@ -195,6 +198,9 @@
     }
   }
   GetPixelInfoPixel(image,p,&background);
+  artifact=GetImageArtifact(image,"trim:background-color");
+  if (artifact != (const char *) NULL)
+    (void) QueryColorCompliance(artifact,AllCompliance,&background,exception);
   edge_geometry.width=width;
   edge_geometry.height=height;
   edge_geometry.x=x_offset;
@@ -237,7 +243,7 @@
   return(factor);
 }
 
-MagickExport RectangleInfo GetImageBoundingBox(const Image *image,
+static RectangleInfo GetEdgeBoundingBox(const Image *image,
   ExceptionInfo *exception)
 {
   CacheView
@@ -376,6 +382,137 @@
       "GeometryDoesNotContainImage","`%s'",image->filename);
   return(bounds);
 }
+
+MagickExport RectangleInfo GetImageBoundingBox(const Image *image,
+  ExceptionInfo *exception)
+{
+  CacheView
+    *image_view;
+
+  const char
+    *artifact;
+
+  MagickBooleanType
+    status;
+
+  PixelInfo
+    target[3],
+    zero;
+
+  RectangleInfo
+    bounds;
+
+  register const Quantum
+    *p;
+
+  ssize_t
+    y;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  artifact=GetImageArtifact(image,"trim:percent-background");
+  if (artifact != (const char *) NULL)
+    return(GetEdgeBoundingBox(image,exception));
+  bounds.width=0;
+  bounds.height=0;
+  bounds.x=(ssize_t) image->columns;
+  bounds.y=(ssize_t) image->rows;
+  GetPixelInfo(image,&target[0]);
+  image_view=AcquireVirtualCacheView(image,exception);
+  p=GetCacheViewVirtualPixels(image_view,0,0,1,1,exception);
+  if (p == (const Quantum *) NULL)
+    {
+      image_view=DestroyCacheView(image_view);
+      return(bounds);
+    }
+  GetPixelInfoPixel(image,p,&target[0]);
+  GetPixelInfo(image,&target[1]);
+  p=GetCacheViewVirtualPixels(image_view,(ssize_t) image->columns-1,0,1,1,
+    exception);
+  if (p != (const Quantum *) NULL)
+    GetPixelInfoPixel(image,p,&target[1]);
+  GetPixelInfo(image,&target[2]);
+  p=GetCacheViewVirtualPixels(image_view,0,(ssize_t) image->rows-1,1,1,
+    exception);
+  if (p != (const Quantum *) NULL)
+    GetPixelInfoPixel(image,p,&target[2]);
+  status=MagickTrue;
+  GetPixelInfo(image,&zero);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(status) \
+    magick_number_threads(image,image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    PixelInfo
+      pixel;
+
+    RectangleInfo
+      bounding_box;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+#  pragma omp critical (MagickCore_GetImageBoundingBox)
+#endif
+    bounding_box=bounds;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    if (p == (const Quantum *) NULL)
+      {
+        status=MagickFalse;
+        continue;
+      }
+    pixel=zero;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      GetPixelInfoPixel(image,p,&pixel);
+      if ((x < bounding_box.x) &&
+          (IsFuzzyEquivalencePixelInfo(&pixel,&target[0]) == MagickFalse))
+        bounding_box.x=x;
+      if ((x > (ssize_t) bounding_box.width) &&
+          (IsFuzzyEquivalencePixelInfo(&pixel,&target[1]) == MagickFalse))
+        bounding_box.width=(size_t) x;
+      if ((y < bounding_box.y) &&
+          (IsFuzzyEquivalencePixelInfo(&pixel,&target[0]) == MagickFalse))
+        bounding_box.y=y;
+      if ((y > (ssize_t) bounding_box.height) &&
+          (IsFuzzyEquivalencePixelInfo(&pixel,&target[2]) == MagickFalse))
+        bounding_box.height=(size_t) y;
+      p+=GetPixelChannels(image);
+    }
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+#  pragma omp critical (MagickCore_GetImageBoundingBox)
+#endif
+    {
+      if (bounding_box.x < bounds.x)
+        bounds.x=bounding_box.x;
+      if (bounding_box.y < bounds.y)
+        bounds.y=bounding_box.y;
+      if (bounding_box.width > bounds.width)
+        bounds.width=bounding_box.width;
+      if (bounding_box.height > bounds.height)
+        bounds.height=bounding_box.height;
+    }
+  }
+  image_view=DestroyCacheView(image_view);
+  if ((bounds.width == 0) || (bounds.height == 0))
+    (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning,
+      "GeometryDoesNotContainImage","`%s'",image->filename);
+  else
+    {
+      bounds.width-=(bounds.x-1);
+      bounds.height-=(bounds.y-1);
+    }
+  return(bounds);
+}
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/attribute.h b/MagickCore/attribute.h
index 2001247..677e07b 100644
--- a/MagickCore/attribute.h
+++ b/MagickCore/attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/blob-private.h b/MagickCore/blob-private.h
index 45af72e..0751c87 100644
--- a/MagickCore/blob-private.h
+++ b/MagickCore/blob-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -67,7 +67,8 @@
   *GetBlobProperties(const Image *);
 
 extern MagickExport const void
-  *ReadBlobStream(Image *,const size_t,void *,ssize_t *);
+  *ReadBlobStream(Image *,const size_t,void *magick_restrict ,ssize_t *)
+    magick_hot_spot;
 
 extern MagickExport double
   ReadBlobDouble(Image *);
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 2dc1709..c64e2be 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -68,6 +68,7 @@
 #include "MagickCore/semaphore.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
@@ -666,7 +667,8 @@
       break;
     case FileStream:
     {
-      status=fclose(blob_info->file_info.file);
+      if (fileno(blob_info->file_info.file) != -1)
+        status=fclose(blob_info->file_info.file);
       break;
     }
     case PipeStream:
@@ -994,6 +996,7 @@
   if (blob_info->mapped != MagickFalse)
     {
       (void) UnmapBlob(blob_info->data,blob_info->length);
+      blob_info->data=NULL;
       RelinquishMagickResource(MapResource,blob_info->length);
     }
   blob_info->mapped=MagickFalse;
@@ -1102,7 +1105,7 @@
     count;
 
   unsigned char
-    buffer[16384];
+    buffer[MagickMinBufferExtent >> 1];
 
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
@@ -1534,9 +1537,8 @@
 %    o filename: the filename.
 %
 */
-
 static inline ssize_t WriteBlobStream(Image *image,const size_t length,
-  const void *data)
+  const void *magick_restrict data)
 {
   BlobInfo
     *magick_restrict blob_info;
@@ -1545,7 +1547,7 @@
     extent;
 
   register unsigned char
-    *q;
+    *magick_restrict q;
 
   assert(image->blob != (BlobInfo *) NULL);
   assert(image->blob->type != UndefinedStream);
@@ -1735,7 +1737,7 @@
   (void) memset(blob_info,0,sizeof(*blob_info));
   blob_info->type=UndefinedStream;
   blob_info->quantum=(size_t) MagickMaxBlobExtent;
-  blob_info->properties.st_mtime=time((time_t *) NULL);
+  blob_info->properties.st_mtime=GetMagickTime();
   blob_info->properties.st_ctime=blob_info->properties.st_mtime;
   blob_info->debug=IsEventLogging();
   blob_info->reference_count=1;
@@ -1822,7 +1824,16 @@
     }
     case FileStream:
     {
-      if (fstat(fileno(blob_info->file_info.file),&blob_info->properties) == 0)
+      int
+        file_descriptor;
+
+      extent=(MagickSizeType) blob_info->properties.st_size;
+      if (extent == 0)
+        extent=blob_info->size;
+      file_descriptor=fileno(blob_info->file_info.file);
+      if (file_descriptor == -1)
+        break;
+      if (fstat(file_descriptor,&blob_info->properties) == 0)
         extent=(MagickSizeType) blob_info->properties.st_size;
       break;
     }
@@ -3151,7 +3162,7 @@
   size_t
     size;
 
-  size=16384;
+  size=MagickMinBufferExtent;
   option=GetImageOption(image_info,"stream:buffer-size");
   if (option != (const char *) NULL)
     size=StringToUnsignedLong(option);
@@ -4683,8 +4694,8 @@
 %
 %  The format of the ReadBlobStream method is:
 %
-%      const void *ReadBlobStream(Image *image,const size_t length,void *data,
-%        ssize_t *count)
+%      const void *ReadBlobStream(Image *image,const size_t length,
+%        void *magick_restrict data,ssize_t *count)
 %
 %  A description of each parameter follows:
 %
@@ -4699,8 +4710,8 @@
 %      file.
 %
 */
-MagickExport const void *ReadBlobStream(Image *image,const size_t length,
-  void *data,ssize_t *count)
+MagickExport magick_hot_spot const void *ReadBlobStream(Image *image,
+  const size_t length,void *magick_restrict data,ssize_t *count)
 {
   BlobInfo
     *magick_restrict blob_info;
diff --git a/MagickCore/blob.h b/MagickCore/blob.h
index d0e4259..cb62f64 100644
--- a/MagickCore/blob.h
+++ b/MagickCore/blob.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -23,6 +23,7 @@
 #endif
 
 #define MagickMaxBufferExtent  81920
+#define MagickMinBufferExtent  16384
 
 typedef enum
 {
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index c37468b..03dbd18 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -124,6 +124,9 @@
 
   size_t
     signature;
+
+  struct _NexusInfo
+    *virtual_nexus;
 } NexusInfo;
 
 typedef struct _CacheInfo
@@ -226,6 +229,10 @@
 
   MagickBooleanType
     composite_mask;
+
+  MagickSizeType
+    width_limit,
+    height_limit;
 } CacheInfo;
 
 extern MagickPrivate Cache
diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index 535e8e9..e7fb08f 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -23,7 +23,7 @@
 %                               February 2000                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/cache-view.h b/MagickCore/cache-view.h
index 58924bb..128c32e 100644
--- a/MagickCore/cache-view.h
+++ b/MagickCore/cache-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index 33ea965..476f25e 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -70,6 +70,7 @@
 #include "MagickCore/splay-tree.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
@@ -135,8 +136,9 @@
     const size_t,ExceptionInfo *),
   *QueueAuthenticPixelsCache(Image *,const ssize_t,const ssize_t,const size_t,
     const size_t,ExceptionInfo *),
-  *SetPixelCacheNexusPixels(const CacheInfo *,const MapMode,
-    const RectangleInfo *,const MagickBooleanType,NexusInfo *,ExceptionInfo *)
+  *SetPixelCacheNexusPixels(const CacheInfo *magick_restrict,const MapMode,
+    const ssize_t,const ssize_t,const size_t,const size_t,
+    const MagickBooleanType,NexusInfo *magick_restrict,ExceptionInfo *)
     magick_hot_spot;
 
 #if defined(MAGICKCORE_OPENCL_SUPPORT)
@@ -222,6 +224,8 @@
       cache_info->synchronize=IsStringTrue(value);
       value=DestroyString(value);
     }
+  cache_info->width_limit=GetMagickResourceLimit(WidthResource);
+  cache_info->height_limit=GetMagickResourceLimit(HeightResource);
   cache_info->semaphore=AcquireSemaphoreInfo();
   cache_info->reference_count=1;
   cache_info->file_semaphore=AcquireSemaphoreInfo();
@@ -260,18 +264,20 @@
   register ssize_t
     i;
 
-  nexus_info=(NexusInfo **) MagickAssumeAligned(AcquireAlignedMemory(
+  nexus_info=(NexusInfo **) MagickAssumeAligned(AcquireAlignedMemory(2*
     number_threads,sizeof(*nexus_info)));
   if (nexus_info == (NexusInfo **) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
-  nexus_info[0]=(NexusInfo *) AcquireQuantumMemory(number_threads,
+  *nexus_info=(NexusInfo *) AcquireQuantumMemory(2*number_threads,
     sizeof(**nexus_info));
-  if (nexus_info[0] == (NexusInfo *) NULL)
+  if (*nexus_info == (NexusInfo *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
-  (void) memset(nexus_info[0],0,number_threads*sizeof(**nexus_info));
-  for (i=0; i < (ssize_t) number_threads; i++)
+  (void) memset(*nexus_info,0,2*number_threads*sizeof(**nexus_info));
+  for (i=0; i < (ssize_t) (2*number_threads); i++)
   {
-    nexus_info[i]=(&nexus_info[0][i]);
+    nexus_info[i]=(*nexus_info+i);
+    if (i < (ssize_t) number_threads)
+      nexus_info[i]->virtual_nexus=(*nexus_info+number_threads+i);
     nexus_info[i]->signature=MagickCoreSignature;
   }
   return(nexus_info);
@@ -414,9 +420,6 @@
   MagickSizeType
     number_pixels;
 
-  NexusInfo
-    **magick_restrict image_nexus;
-
   register Quantum
     *magick_restrict p,
     *magick_restrict q;
@@ -431,13 +434,14 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if ((image->channels & WriteMaskChannel) == 0)
     return(MagickTrue);
+  if ((nexus_info->region.width == 0) || (nexus_info->region.height == 0))
+    return(MagickTrue);
   cache_info=(CacheInfo *) image->cache;
   if (cache_info == (Cache) NULL)
     return(MagickFalse);
-  image_nexus=AcquirePixelCacheNexus(1);
   p=GetAuthenticPixelCacheNexus(image,nexus_info->region.x,nexus_info->region.y,
-    nexus_info->region.width,nexus_info->region.height,image_nexus[0],
-    exception);
+    nexus_info->region.width,nexus_info->region.height,
+    nexus_info->virtual_nexus,exception);
   q=nexus_info->pixels;
   number_pixels=(MagickSizeType) nexus_info->region.width*
     nexus_info->region.height;
@@ -469,10 +473,7 @@
     p+=GetPixelChannels(image);
     q+=GetPixelChannels(image);
   }
-  image_nexus=DestroyPixelCacheNexus(image_nexus,1);
-  if (n < (ssize_t) number_pixels)
-    return(MagickFalse);
-  return(MagickTrue);
+  return(n < (ssize_t) number_pixels ? MagickFalse : MagickTrue);
 }
 
 /*
@@ -703,8 +704,8 @@
   /*
     Mismatched pixel cache morphology.
   */
-  cache_nexus=AcquirePixelCacheNexus(MaxCacheThreads);
-  clone_nexus=AcquirePixelCacheNexus(MaxCacheThreads);
+  cache_nexus=AcquirePixelCacheNexus(cache_info->number_threads);
+  clone_nexus=AcquirePixelCacheNexus(clone_info->number_threads);
   length=cache_info->number_channels*sizeof(*cache_info->channel_map);
   optimize=(cache_info->number_channels == clone_info->number_channels) &&
     (memcmp(cache_info->channel_map,clone_info->channel_map,length) == 0) ?
@@ -724,9 +725,6 @@
     Quantum
       *pixels;
 
-    RectangleInfo
-      region;
-
     register ssize_t
       x;
 
@@ -734,20 +732,15 @@
       continue;
     if (y >= (ssize_t) clone_info->rows)
       continue;
-    region.width=cache_info->columns;
-    region.height=1;
-    region.x=0;
-    region.y=y;
-    pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,&region,MagickFalse,
-      cache_nexus[id],exception);
+    pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,0,y,
+      cache_info->columns,1,MagickFalse,cache_nexus[id],exception);
     if (pixels == (Quantum *) NULL)
       continue;
     status=ReadPixelCachePixels(cache_info,cache_nexus[id],exception);
     if (status == MagickFalse)
       continue;
-    region.width=clone_info->columns;
-    pixels=SetPixelCacheNexusPixels(clone_info,WriteMode,&region,MagickFalse,
-      clone_nexus[id],exception);
+    pixels=SetPixelCacheNexusPixels(clone_info,WriteMode,0,y,
+      clone_info->columns,1,MagickFalse,clone_nexus[id],exception);
     if (pixels == (Quantum *) NULL)
       continue;
     (void) memset(clone_nexus[id]->pixels,0,(size_t) clone_nexus[id]->length);
@@ -813,27 +806,19 @@
         Quantum
           *pixels;
 
-        RectangleInfo
-          region;
-
         if (status == MagickFalse)
           continue;
         if (y >= (ssize_t) clone_info->rows)
           continue;
-        region.width=cache_info->columns;
-        region.height=1;
-        region.x=0;
-        region.y=y;
-        pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,&region,MagickFalse,
-          cache_nexus[id],exception);
+        pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,0,y,
+          cache_info->columns,1,MagickFalse,cache_nexus[id],exception);
         if (pixels == (Quantum *) NULL)
           continue;
         status=ReadPixelCacheMetacontent(cache_info,cache_nexus[id],exception);
         if (status == MagickFalse)
           continue;
-        region.width=clone_info->columns;
-        pixels=SetPixelCacheNexusPixels(clone_info,WriteMode,&region,
-          MagickFalse,clone_nexus[id],exception);
+        pixels=SetPixelCacheNexusPixels(clone_info,WriteMode,0,y,
+          clone_info->columns,1,MagickFalse,clone_nexus[id],exception);
         if (pixels == (Quantum *) NULL)
           continue;
         if ((clone_nexus[id]->metacontent != (void *) NULL) &&
@@ -843,8 +828,8 @@
         status=WritePixelCacheMetacontent(clone_info,clone_nexus[id],exception);
       }
     }
-  cache_nexus=DestroyPixelCacheNexus(cache_nexus,MaxCacheThreads);
-  clone_nexus=DestroyPixelCacheNexus(clone_nexus,MaxCacheThreads);
+  clone_nexus=DestroyPixelCacheNexus(clone_nexus,clone_info->number_threads);
+  cache_nexus=DestroyPixelCacheNexus(cache_nexus,cache_info->number_threads);
   if (cache_info->debug != MagickFalse)
     {
       char
@@ -1120,13 +1105,13 @@
     i;
 
   assert(nexus_info != (NexusInfo **) NULL);
-  for (i=0; i < (ssize_t) number_threads; i++)
+  for (i=0; i < (ssize_t) (2*number_threads); i++)
   {
     if (nexus_info[i]->cache != (Quantum *) NULL)
       RelinquishCacheNexusPixels(nexus_info[i]);
     nexus_info[i]->signature=(~MagickCoreSignature);
   }
-  nexus_info[0]=(NexusInfo *) RelinquishMagickMemory(nexus_info[0]);
+  *nexus_info=(NexusInfo *) RelinquishMagickMemory(*nexus_info);
   nexus_info=(NexusInfo **) RelinquishAlignedMemory(nexus_info);
   return(nexus_info);
 }
@@ -1699,10 +1684,10 @@
         Set the expire time in seconds.
       */
       cache_timelimit=GetMagickResourceLimit(TimeResource);
-      cache_epoch=time((time_t *) NULL);
+      cache_epoch=GetMagickTime();
     }
   if ((cache_timelimit != MagickResourceInfinity) &&
-      ((MagickSizeType) (time((time_t *) NULL)-cache_epoch) >= cache_timelimit))
+      ((MagickSizeType) (GetMagickTime()-cache_epoch) >= cache_timelimit))
     {
 #if defined(ECANCELED)
       errno=ECANCELED;
@@ -1765,9 +1750,9 @@
       /*
         Ensure the image matches the pixel cache morphology.
       */
-      image->type=UndefinedType;
       if (ValidatePixelCacheMorphology(image) == MagickFalse)
         {
+          image->type=UndefinedType;
           status=OpenPixelCache(image,IOMode,exception);
           cache_info=(CacheInfo *) image->cache;
           if (cache_info->file != -1)
@@ -2141,11 +2126,11 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  GetPixelCacheColorspace() returns the class type of the pixel cache.
+%  GetPixelCacheColorspace() returns the colorspace of the pixel cache.
 %
 %  The format of the GetPixelCacheColorspace() method is:
 %
-%      Colorspace GetPixelCacheColorspace(Cache cache)
+%      Colorspace GetPixelCacheColorspace(const Cache cache)
 %
 %  A description of each parameter follows:
 %
@@ -2411,9 +2396,9 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   cache_info=(CacheInfo *) image->cache;
   assert(cache_info->signature == MagickCoreSignature);
-  *width=2048UL/(cache_info->number_channels*sizeof(Quantum));
+  *width=2048UL/(MagickMax(cache_info->number_channels,1)*sizeof(Quantum));
   if (GetImagePixelCacheType(image) == DiskCache)
-    *width=8192UL/(cache_info->number_channels*sizeof(Quantum));
+    *width=8192UL/(MagickMax(cache_info->number_channels,1)*sizeof(Quantum));
   *height=(*width);
 }
 
@@ -2698,17 +2683,13 @@
   MagickModulo
     modulo;
 
-  /*
-    Compute the remainder of dividing offset by extent.  It returns not only
-    the quotient (tile the offset falls in) but also the positive remainer
-    within that tile such that 0 <= remainder < extent.  This method is
-    essentially a ldiv() using a floored modulo division rather than the
-    normal default truncated modulo division.
-  */
-  modulo.quotient=offset/(ssize_t) extent;
-  if ((offset < 0L) && (modulo.quotient > (ssize_t) (-SSIZE_MAX)))
-    modulo.quotient--;
-  modulo.remainder=(ssize_t) (offset-(double) modulo.quotient*extent);
+  modulo.quotient=offset/((ssize_t) extent);
+  modulo.remainder=offset % ((ssize_t) extent);
+  if ((modulo.remainder != 0) && ((offset ^ ((ssize_t) extent)) < 0))
+    {
+      modulo.quotient-=1;
+      modulo.remainder+=((ssize_t) extent);
+    }
   return(modulo);
 }
 
@@ -2728,15 +2709,12 @@
     number_pixels;
 
   NexusInfo
-    **magick_restrict virtual_nexus;
+    *magick_restrict virtual_nexus;
 
   Quantum
     *magick_restrict pixels,
     virtual_pixel[MaxPixelChannels];
 
-  RectangleInfo
-    region;
-
   register const Quantum
     *magick_restrict p;
 
@@ -2772,11 +2750,7 @@
 #if defined(MAGICKCORE_OPENCL_SUPPORT)
   CopyOpenCLBuffer(cache_info);
 #endif
-  region.x=x;
-  region.y=y;
-  region.width=columns;
-  region.height=rows;
-  pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,&region,
+  pixels=SetPixelCacheNexusPixels(cache_info,ReadMode,x,y,columns,rows,
     ((image->channels & WriteMaskChannel) != 0) ||
     ((image->channels & CompositeMaskChannel) != 0) ? MagickTrue : MagickFalse,
     nexus_info,exception);
@@ -2789,8 +2763,8 @@
     nexus_info->region.width-1L;
   number_pixels=(MagickSizeType) cache_info->columns*cache_info->rows;
   if ((offset >= 0) && (((MagickSizeType) offset+length) < number_pixels))
-    if ((x >= 0) && ((ssize_t) (x+columns) <= (ssize_t) cache_info->columns) &&
-        (y >= 0) && ((ssize_t) (y+rows) <= (ssize_t) cache_info->rows))
+    if ((x >= 0) && ((ssize_t) (x+columns-1) < (ssize_t) cache_info->columns) &&
+        (y >= 0) && ((ssize_t) (y+rows-1) < (ssize_t) cache_info->rows))
       {
         MagickBooleanType
           status;
@@ -2814,8 +2788,8 @@
   /*
     Pixel request is outside cache extents.
   */
+  virtual_nexus=nexus_info->virtual_nexus;
   s=(unsigned char *) nexus_info->metacontent;
-  virtual_nexus=AcquirePixelCacheNexus(1);
   (void) memset(virtual_pixel,0,cache_info->number_channels*
     sizeof(*virtual_pixel));
   virtual_metacontent=(void *) NULL;
@@ -2841,7 +2815,6 @@
             cache_info->metacontent_extent);
           if (virtual_metacontent == (void *) NULL)
             {
-              virtual_nexus=DestroyPixelCacheNexus(virtual_nexus,1);
               (void) ThrowMagickException(exception,GetMagickModule(),
                 CacheError,"UnableToGetCacheNexus","`%s'",image->filename);
               return((const Quantum *) NULL);
@@ -2935,9 +2908,10 @@
             {
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
                 EdgeX(x_offset,cache_info->columns),
-                EdgeY(y_offset,cache_info->rows),1UL,1UL,*virtual_nexus,
+                EdgeY(y_offset,cache_info->rows),1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,
+                nexus_info->virtual_nexus);
               break;
             }
             case RandomVirtualPixelMethod:
@@ -2947,17 +2921,17 @@
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
                 RandomX(cache_info->random_info,cache_info->columns),
                 RandomY(cache_info->random_info,cache_info->rows),1UL,1UL,
-                *virtual_nexus,exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+                virtual_nexus,exception);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case DitherVirtualPixelMethod:
             {
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
                 DitherX(x_offset,cache_info->columns),
-                DitherY(y_offset,cache_info->rows),1UL,1UL,*virtual_nexus,
+                DitherY(y_offset,cache_info->rows),1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case TileVirtualPixelMethod:
@@ -2965,9 +2939,9 @@
               x_modulo=VirtualPixelModulo(x_offset,cache_info->columns);
               y_modulo=VirtualPixelModulo(y_offset,cache_info->rows);
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
-                x_modulo.remainder,y_modulo.remainder,1UL,1UL,*virtual_nexus,
+                x_modulo.remainder,y_modulo.remainder,1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case MirrorVirtualPixelMethod:
@@ -2981,9 +2955,9 @@
                 y_modulo.remainder=(ssize_t) cache_info->rows-
                   y_modulo.remainder-1L;
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
-                x_modulo.remainder,y_modulo.remainder,1UL,1UL,*virtual_nexus,
+                x_modulo.remainder,y_modulo.remainder,1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case HorizontalTileEdgeVirtualPixelMethod:
@@ -2991,8 +2965,8 @@
               x_modulo=VirtualPixelModulo(x_offset,cache_info->columns);
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
                 x_modulo.remainder,EdgeY(y_offset,cache_info->rows),1UL,1UL,
-                *virtual_nexus,exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+                virtual_nexus,exception);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case VerticalTileEdgeVirtualPixelMethod:
@@ -3000,8 +2974,8 @@
               y_modulo=VirtualPixelModulo(y_offset,cache_info->rows);
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
                 EdgeX(x_offset,cache_info->columns),y_modulo.remainder,1UL,1UL,
-                *virtual_nexus,exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+                virtual_nexus,exception);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case BackgroundVirtualPixelMethod:
@@ -3026,9 +3000,9 @@
                   break;
                 }
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
-                x_modulo.remainder,y_modulo.remainder,1UL,1UL,*virtual_nexus,
+                x_modulo.remainder,y_modulo.remainder,1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case HorizontalTileVirtualPixelMethod:
@@ -3042,9 +3016,9 @@
               x_modulo=VirtualPixelModulo(x_offset,cache_info->columns);
               y_modulo=VirtualPixelModulo(y_offset,cache_info->rows);
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
-                x_modulo.remainder,y_modulo.remainder,1UL,1UL,*virtual_nexus,
+                x_modulo.remainder,y_modulo.remainder,1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
             case VerticalTileVirtualPixelMethod:
@@ -3058,9 +3032,9 @@
               x_modulo=VirtualPixelModulo(x_offset,cache_info->columns);
               y_modulo=VirtualPixelModulo(y_offset,cache_info->rows);
               p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,
-                x_modulo.remainder,y_modulo.remainder,1UL,1UL,*virtual_nexus,
+                x_modulo.remainder,y_modulo.remainder,1UL,1UL,virtual_nexus,
                 exception);
-              r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+              r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
               break;
             }
           }
@@ -3080,10 +3054,10 @@
         Transfer a run of pixels.
       */
       p=GetVirtualPixelCacheNexus(image,virtual_pixel_method,x_offset,y_offset,
-        (size_t) length,1UL,*virtual_nexus,exception);
+        (size_t) length,1UL,virtual_nexus,exception);
       if (p == (const Quantum *) NULL)
         break;
-      r=GetVirtualMetacontentFromNexus(cache_info,*virtual_nexus);
+      r=GetVirtualMetacontentFromNexus(cache_info,virtual_nexus);
       (void) memcpy(q,p,(size_t) (cache_info->number_channels*length*
         sizeof(*p)));
       q+=cache_info->number_channels*length;
@@ -3101,7 +3075,6 @@
   */
   if (virtual_metacontent != (void *) NULL)
     virtual_metacontent=(void *) RelinquishMagickMemory(virtual_metacontent);
-  virtual_nexus=DestroyPixelCacheNexus(virtual_nexus,1);
   if (v < (ssize_t) rows)
     return((const Quantum *) NULL);
   return(pixels);
@@ -3400,11 +3373,16 @@
   double
     mask_alpha;
 
+  Quantum
+    pixel;
+
   if (fabs(alpha-OpaqueAlpha) < MagickEpsilon)
     return(p);
   mask_alpha=1.0-QuantumScale*QuantumScale*alpha*beta;
   mask_alpha=PerceptibleReciprocal(mask_alpha);
-  return(ClampToQuantum(mask_alpha*MagickOver_((double) p,alpha,(double) q,beta)));
+  pixel=ClampToQuantum(mask_alpha*MagickOver_((double) p,alpha,(double) q,
+    beta));
+  return(pixel);
 }
 
 static MagickBooleanType MaskPixelCacheNexus(Image *image,NexusInfo *nexus_info,
@@ -3416,9 +3394,6 @@
   MagickSizeType
     number_pixels;
 
-  NexusInfo
-    **magick_restrict image_nexus;
-
   register Quantum
     *magick_restrict p,
     *magick_restrict q;
@@ -3433,13 +3408,14 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if ((image->channels & CompositeMaskChannel) == 0)
     return(MagickTrue);
+  if ((nexus_info->region.width == 0) || (nexus_info->region.height == 0))
+    return(MagickTrue);
   cache_info=(CacheInfo *) image->cache;
   if (cache_info == (Cache) NULL)
     return(MagickFalse);
-  image_nexus=AcquirePixelCacheNexus(1);
   p=GetAuthenticPixelCacheNexus(image,nexus_info->region.x,nexus_info->region.y,
-    nexus_info->region.width,nexus_info->region.height,image_nexus[0],
-    exception);
+    nexus_info->region.width,nexus_info->region.height,
+    nexus_info->virtual_nexus,exception);
   q=nexus_info->pixels;
   number_pixels=(MagickSizeType) nexus_info->region.width*
     nexus_info->region.height;
@@ -3460,13 +3436,12 @@
       PixelTrait traits = GetPixelChannelTraits(image,channel);
       if ((traits & UpdatePixelTrait) == 0)
         continue;
-      q[i]=ApplyPixelCompositeMask(p[i],mask_alpha,q[i],
-        (MagickRealType) GetPixelAlpha(image,q));
+      q[i]=ApplyPixelCompositeMask(p[i],mask_alpha,q[i],(MagickRealType)
+        GetPixelAlpha(image,q));
     }
     p+=GetPixelChannels(image);
     q+=GetPixelChannels(image);
   }
-  image_nexus=DestroyPixelCacheNexus(image_nexus,1);
   if (n < (ssize_t) number_pixels)
     return(MagickFalse);
   return(MagickTrue);
@@ -3694,8 +3669,8 @@
     ThrowBinaryException(CacheError,"NoPixelsDefinedInCache",image->filename);
   cache_info=(CacheInfo *) image->cache;
   assert(cache_info->signature == MagickCoreSignature);
-  if ((AcquireMagickResource(WidthResource,image->columns) == MagickFalse) ||
-      (AcquireMagickResource(HeightResource,image->rows) == MagickFalse))
+  if (((MagickSizeType) image->columns > cache_info->width_limit) ||
+      ((MagickSizeType) image->rows > cache_info->height_limit))
     ThrowBinaryException(ImageError,"WidthOrHeightExceedsLimit",
       image->filename);
   length=GetImageListLength(image);
@@ -3744,7 +3719,8 @@
     cache_info->metacontent_extent);
   if ((status != MagickFalse) &&
       (length == (MagickSizeType) ((size_t) length)) &&
-      ((cache_info->type == UndefinedCache) || (cache_info->type == MemoryCache)))
+      ((cache_info->type == UndefinedCache) ||
+       (cache_info->type == MemoryCache)))
     {
       status=AcquireMagickResource(MemoryResource,cache_info->length);
       if (status != MagickFalse)
@@ -3799,7 +3775,13 @@
                   (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
                     message);
                 }
-              return(status == 0 ? MagickFalse : MagickTrue);
+              cache_info->storage_class=image->storage_class;
+              if (status == 0)
+                {
+                  cache_info->type=UndefinedCache;
+                  return(MagickFalse);
+                }
+              return(MagickTrue);
             }
         }
     }
@@ -3860,7 +3842,12 @@
                   (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
                     message);
                 }
-              return(status == 0 ? MagickFalse : MagickTrue);
+              if (status == 0)
+                {
+                  cache_info->type=UndefinedCache;
+                  return(MagickFalse);
+                }
+              return(MagickTrue);
             }
         }
       cache_info->type=UndefinedCache;
@@ -3886,6 +3873,7 @@
     }
   if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse)
     {
+      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToOpenPixelCache",
         image->filename);
       return(MagickFalse);
@@ -3894,6 +3882,7 @@
     cache_info->length);
   if (status == MagickFalse)
     {
+      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToExtendCache",
         image->filename);
       return(MagickFalse);
@@ -3958,7 +3947,12 @@
                     (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",
                       message);
                   }
-                return(status == 0 ? MagickFalse : MagickTrue);
+                if (status == 0)
+                  {
+                    cache_info->type=UndefinedCache;
+                    return(MagickFalse);
+                  }
+                return(MagickTrue);
               }
         }
     }
@@ -3981,7 +3975,12 @@
         cache_info->number_channels,format);
       (void) LogMagickEvent(CacheEvent,GetMagickModule(),"%s",message);
     }
-  return(status == 0 ? MagickFalse : MagickTrue);
+  if (status == 0)
+    {
+      cache_info->type=UndefinedCache;
+      return(MagickFalse);
+    }
+  return(MagickTrue);
 }
 
 /*
@@ -4058,12 +4057,12 @@
           "attach persistent cache");
       (void) CopyMagickString(cache_info->cache_filename,filename,
         MagickPathExtent);
-      cache_info->type=DiskCache;
+      cache_info->type=MapCache;
       cache_info->offset=(*offset);
       if (OpenPixelCache(image,ReadMode,exception) == MagickFalse)
         return(MagickFalse);
       *offset+=cache_info->length+page_size-(cache_info->length % page_size);
-      return(SyncImagePixelCache(image,exception));
+      return(MagickTrue);
     }
   /*
     Clone persistent pixel cache.
@@ -4152,9 +4151,6 @@
   Quantum
     *magick_restrict pixels;
 
-  RectangleInfo
-    region;
-
   /*
     Validate pixel cache geometry.
   */
@@ -4183,11 +4179,7 @@
   /*
     Return pixel cache.
   */
-  region.x=x;
-  region.y=y;
-  region.width=columns;
-  region.height=rows;
-  pixels=SetPixelCacheNexusPixels(cache_info,WriteMode,&region,
+  pixels=SetPixelCacheNexusPixels(cache_info,WriteMode,x,y,columns,rows,
     ((image->channels & WriteMaskChannel) != 0) ||
     ((image->channels & CompositeMaskChannel) != 0) ? MagickTrue : MagickFalse,
     nexus_info,exception);
@@ -4941,9 +4933,10 @@
 %
 %  The format of the SetPixelCacheNexusPixels() method is:
 %
-%      Quantum SetPixelCacheNexusPixels(const CacheInfo *cache_info,
-%        const MapMode mode,const RectangleInfo *region,
-%        const MagickBooleanType buffered,NexusInfo *nexus_info,
+%      Quantum SetPixelCacheNexusPixels(
+%        const CacheInfo *magick_restrict cache_info,const MapMode mode,
+%        const ssize_t x,const ssize_t y,const size_t width,const size_t height,
+%        const MagickBooleanType buffered,NexusInfo *magick_restrict nexus_info,
 %        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
@@ -4952,8 +4945,7 @@
 %
 %    o mode: ReadMode, WriteMode, or IOMode.
 %
-%    o region: A pointer to the RectangleInfo structure that defines the
-%      region of this particular cache nexus.
+%    o x,y,width,height: define the region of this particular cache nexus.
 %
 %    o buffered: if true, nexus pixels are buffered.
 %
@@ -4965,7 +4957,7 @@
 
 static inline MagickBooleanType AcquireCacheNexusPixels(
   const CacheInfo *magick_restrict cache_info,const MagickSizeType length,
-  NexusInfo *nexus_info,ExceptionInfo *exception)
+  NexusInfo *magick_restrict nexus_info,ExceptionInfo *exception)
 {
   if (length != (MagickSizeType) ((size_t) length))
     {
@@ -5014,9 +5006,10 @@
   MagickCachePrefetch((unsigned char *) nexus_info->pixels+CACHE_LINE_SIZE,1,1);
 }
 
-static Quantum *SetPixelCacheNexusPixels(const CacheInfo *cache_info,
-  const MapMode mode,const RectangleInfo *region,
-  const MagickBooleanType buffered,NexusInfo *nexus_info,
+static Quantum *SetPixelCacheNexusPixels(
+  const CacheInfo *magick_restrict cache_info,const MapMode mode,
+  const ssize_t x,const ssize_t y,const size_t width,const size_t height,
+  const MagickBooleanType buffered,NexusInfo *magick_restrict nexus_info,
   ExceptionInfo *exception)
 {
   MagickBooleanType
@@ -5030,27 +5023,21 @@
   assert(cache_info->signature == MagickCoreSignature);
   if (cache_info->type == UndefinedCache)
     return((Quantum *) NULL);
+  assert(nexus_info->signature == MagickCoreSignature);
   (void) memset(&nexus_info->region,0,sizeof(nexus_info->region));
-  if ((region->width == 0) || (region->height == 0))
+  if ((width == 0) || (height == 0))
     {
       (void) ThrowMagickException(exception,GetMagickModule(),CacheError,
         "NoPixelsDefinedInCache","`%s'",cache_info->filename);
       return((Quantum *) NULL);
     }
-  assert(nexus_info->signature == MagickCoreSignature);
   if (((cache_info->type == MemoryCache) || (cache_info->type == MapCache)) &&
       (buffered == MagickFalse))
     {
-      ssize_t
-        x,
-        y;
-
-      x=(ssize_t) region->width+region->x-1;
-      y=(ssize_t) region->height+region->y-1;
-      if (((region->x >= 0) &&
-           (region->y >= 0) && (y < (ssize_t) cache_info->rows)) &&
-          (((region->x == 0) && (region->width == cache_info->columns)) ||
-           ((region->height == 1) && (x < (ssize_t) cache_info->columns))))
+      if (((x >= 0) && (y >= 0) &&
+          (((ssize_t) height+y-1) < (ssize_t) cache_info->rows)) &&
+          (((x == 0) && (width == cache_info->columns)) || ((height == 1) &&
+          (((ssize_t) width+x-1) < (ssize_t) cache_info->columns))))
         {
           MagickOffsetType
             offset;
@@ -5058,14 +5045,17 @@
           /*
             Pixels are accessed directly from memory.
           */
-          offset=(MagickOffsetType) region->y*cache_info->columns+region->x;
+          offset=(MagickOffsetType) y*cache_info->columns+x;
           nexus_info->pixels=cache_info->pixels+cache_info->number_channels*
             offset;
           nexus_info->metacontent=(void *) NULL;
           if (cache_info->metacontent_extent != 0)
             nexus_info->metacontent=(unsigned char *) cache_info->metacontent+
               offset*cache_info->metacontent_extent;
-          nexus_info->region=(*region);
+          nexus_info->region.width=width;
+          nexus_info->region.height=height;
+          nexus_info->region.x=x;
+          nexus_info->region.y=y;
           nexus_info->authentic_pixel_cache=MagickTrue;
           PrefetchPixelCacheNexusPixels(nexus_info,mode);
           return(nexus_info->pixels);
@@ -5074,18 +5064,16 @@
   /*
     Pixels are stored in a staging region until they are synced to the cache.
   */
-  if (((region->x != (ssize_t) nexus_info->region.width) ||
-       (region->y != (ssize_t) nexus_info->region.height)) &&
-      ((AcquireMagickResource(WidthResource,region->width) == MagickFalse) ||
-       (AcquireMagickResource(HeightResource,region->height) == MagickFalse)))
+  if (((MagickSizeType) width > cache_info->width_limit) ||
+      ((MagickSizeType) height > cache_info->height_limit))
     {
       (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
         "WidthOrHeightExceedsLimit","`%s'",cache_info->filename);
       return((Quantum *) NULL);
     }
-  number_pixels=(MagickSizeType) region->width*region->height;
-  length=MagickMax(number_pixels,cache_info->columns)*
-    cache_info->number_channels*sizeof(*nexus_info->pixels);
+  number_pixels=(MagickSizeType) width*height;
+  length=MagickMax(number_pixels,MagickMax(cache_info->columns,
+    cache_info->rows))*cache_info->number_channels*sizeof(*nexus_info->pixels);
   if (cache_info->metacontent_extent != 0)
     length+=number_pixels*cache_info->metacontent_extent;
   status=MagickTrue;
@@ -5104,7 +5092,10 @@
   if (cache_info->metacontent_extent != 0)
     nexus_info->metacontent=(void *) (nexus_info->pixels+
       cache_info->number_channels*number_pixels);
-  nexus_info->region=(*region);
+  nexus_info->region.width=width;
+  nexus_info->region.height=height;
+  nexus_info->region.x=x;
+  nexus_info->region.y=y;
   nexus_info->authentic_pixel_cache=cache_info->type == PingCache ?
     MagickTrue : MagickFalse;
   PrefetchPixelCacheNexusPixels(nexus_info,mode);
@@ -5351,7 +5342,8 @@
     }
   if (nexus_info->authentic_pixel_cache != MagickFalse)
     {
-      image->taint=MagickTrue;
+      if (image->taint == MagickFalse)
+        image->taint=MagickTrue;
       return(MagickTrue);
     }
   assert(cache_info->signature == MagickCoreSignature);
@@ -5359,7 +5351,7 @@
   if ((cache_info->metacontent_extent != 0) &&
       (WritePixelCacheMetacontent(cache_info,nexus_info,exception) == MagickFalse))
     return(MagickFalse);
-  if (status != MagickFalse)
+  if ((status != MagickFalse) && (image->taint == MagickFalse))
     image->taint=MagickTrue;
   return(status);
 }
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index abe9da2..4c2f07e 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/channel.c b/MagickCore/channel.c
index 9737388..deb19da 100644
--- a/MagickCore/channel.c
+++ b/MagickCore/channel.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -249,7 +249,7 @@
   channel_mask=UndefinedChannel;
   pixel=0.0;
   p=(char *) expression;
-  GetNextToken(p,&p,MagickPathExtent,token);
+  (void) GetNextToken(p,&p,MagickPathExtent,token);
   channel_op=ExtractChannelOp;
   for (channels=0; *token != '\0'; )
   {
@@ -263,7 +263,7 @@
     {
       case ',':
       {
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         break;
       }
       case '|':
@@ -272,7 +272,7 @@
           source_image=GetNextImageInList(source_image);
         else
           source_image=GetFirstImageInList(source_image);
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         break;
       }
       case ';':
@@ -301,7 +301,7 @@
             destination_image=GetLastImageInList(destination_image);
             return((Image *) NULL);
           }
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         channels=0;
         destination_channel=RedPixelChannel;
         channel_mask=UndefinedChannel;
@@ -320,23 +320,23 @@
       }
     source_channel=(PixelChannel) i;
     channel_op=ExtractChannelOp;
-    GetNextToken(p,&p,MagickPathExtent,token);
+    (void) GetNextToken(p,&p,MagickPathExtent,token);
     if (*token == '<')
       {
         channel_op=ExchangeChannelOp;
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
       }
     if (*token == '=')
       {
         if (channel_op != ExchangeChannelOp)
           channel_op=AssignChannelOp;
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
       }
     if (*token == '>')
       {
         if (channel_op != ExchangeChannelOp)
           channel_op=TransferChannelOp;
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
       }
     switch (channel_op)
     {
@@ -407,7 +407,7 @@
         if (((channels >= 1)  || (destination_channel >= 1)) &&
             (IsGrayColorspace(destination_image->colorspace) != MagickFalse))
           (void) SetImageColorspace(destination_image,sRGBColorspace,exception);
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         break;
       }
       default:
@@ -1259,17 +1259,54 @@
     }
     case ShapeAlphaChannel:
     {
+      PixelInfo
+        background;
+
       /*
-        Set alpha channel by shape.
+        Remove transparency.
       */
+      ConformPixelInfo(image,&image->background_color,&background,exception);
+      background.alpha_trait=BlendPixelTrait;
+      image->alpha_trait=BlendPixelTrait;
       status=SetImageStorageClass(image,DirectClass,exception);
       if (status == MagickFalse)
         break;
-      image->alpha_trait=UpdatePixelTrait;
-      (void) SetImageMask(image,WritePixelMask,image,exception);
-      (void) LevelImageColors(image,&image->background_color,
-        &image->background_color,MagickTrue,exception);
-      (void) SetImageMask(image,WritePixelMask,(Image *) NULL,exception);
+      image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static) shared(status) \
+        magick_number_threads(image,image,image->rows,1)
+#endif
+      for (y=0; y < (ssize_t) image->rows; y++)
+      {
+        PixelInfo
+          pixel;
+
+        register Quantum
+          *magick_restrict q;
+
+        register ssize_t
+          x;
+
+        if (status == MagickFalse)
+          continue;
+        q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
+          exception);
+        if (q == (Quantum *) NULL)
+          {
+            status=MagickFalse;
+            continue;
+          }
+        pixel=background;
+        for (x=0; x < (ssize_t) image->columns; x++)
+        {
+          pixel.alpha=GetPixelIntensity(image,q);
+          SetPixelViaPixelInfo(image,&pixel,q);
+          q+=GetPixelChannels(image);
+        }
+        if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+          status=MagickFalse;
+      }
+      image_view=DestroyCacheView(image_view);
       break;
     }
     case TransparentAlphaChannel:
diff --git a/MagickCore/channel.h b/MagickCore/channel.h
index 5f47718..3d379de 100644
--- a/MagickCore/channel.h
+++ b/MagickCore/channel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index f504883..9082664 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -16,7 +16,7 @@
 %                               March  2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/cipher.h b/MagickCore/cipher.h
index 0291c51..77939a3 100644
--- a/MagickCore/cipher.h
+++ b/MagickCore/cipher.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/client.c b/MagickCore/client.c
index e09c5dc..4f758cd 100644
--- a/MagickCore/client.c
+++ b/MagickCore/client.c
@@ -17,7 +17,7 @@
 %                               March 2003                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -41,6 +41,7 @@
 */
 #include "MagickCore/studio.h"
 #include "MagickCore/client.h"
+#include "MagickCore/log.h"
 #include "MagickCore/string_.h"
 
 /*
@@ -114,11 +115,14 @@
 MagickExport const char *SetClientName(const char *name)
 {
   static char
-    client_name[MagickPathExtent] = "Magick";
+    client_name[256] = "";
 
   if ((name != (char *) NULL) && (*name != '\0'))
-    (void) CopyMagickString(client_name,name,MagickPathExtent);
-  return(client_name);
+    {
+      (void) CopyMagickString(client_name,name,sizeof(client_name));
+      (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),"%s",client_name);
+    }
+  return(*client_name == '\0' ? "Magick" : client_name);
 }
 
 /*
@@ -151,6 +155,9 @@
     client_path[MagickPathExtent] = "";
 
   if ((path != (char *) NULL) && (*path != '\0'))
-    (void) CopyMagickString(client_path,path,MagickPathExtent);
+    {
+      (void) CopyMagickString(client_path,path,MagickPathExtent);
+      (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),"%s",path);
+    }
   return(client_path);
 }
diff --git a/MagickCore/client.h b/MagickCore/client.h
index 71beb69..a475c70 100644
--- a/MagickCore/client.h
+++ b/MagickCore/client.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/coder-private.h b/MagickCore/coder-private.h
index fac1888..31a6665 100644
--- a/MagickCore/coder-private.h
+++ b/MagickCore/coder-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/coder.c b/MagickCore/coder.c
index 8bc688f..8b0abaf 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/coder.h b/MagickCore/coder.h
index 4238838..8cc146f 100644
--- a/MagickCore/coder.h
+++ b/MagickCore/coder.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/color-private.h b/MagickCore/color-private.h
index 8a98768..65fce46 100644
--- a/MagickCore/color-private.h
+++ b/MagickCore/color-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/color.c b/MagickCore/color.c
index 00fd814..4fd7d56 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -16,7 +16,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -56,7 +56,6 @@
 #include "MagickCore/geometry.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/option.h"
@@ -66,6 +65,7 @@
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/semaphore.h"
 #include "MagickCore/string_.h"
+#include "MagickCore/string-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
@@ -80,10 +80,10 @@
 /*
   Typedef declarations.
 */
-typedef struct _ColorMapInfo
+typedef struct _ColormapInfo
 {
   const char
-    *name;
+    name[21];
 
   const unsigned char
     red,
@@ -95,13 +95,13 @@
 
   const ssize_t
     compliance;
-} ColorMapInfo;
+} ColormapInfo;
 
 /*
   Static declarations.
 */
-static const ColorMapInfo
-  ColorMap[] =
+static const ColormapInfo
+  Colormap[] =
   {
     { "none", 0, 0, 0, 0, SVGCompliance | XPMCompliance },
     { "black", 0, 0, 0, 1, SVGCompliance | X11Compliance | XPMCompliance },
@@ -796,9 +796,13 @@
   Forward declarations.
 */
 static MagickBooleanType
-  IsColorCacheInstantiated(ExceptionInfo *),
+  IsColorCacheInstantiated(ExceptionInfo *);
+
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+static MagickBooleanType
   LoadColorCache(LinkedListInfo *,const char *,const char *,const size_t,
     ExceptionInfo *);
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -843,7 +847,7 @@
   */
   cache=NewLinkedList(0);
   status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -865,15 +869,15 @@
   /*
     Load built-in color map.
   */
-  for (i=0; i < (ssize_t) (sizeof(ColorMap)/sizeof(*ColorMap)); i++)
+  for (i=0; i < (ssize_t) (sizeof(Colormap)/sizeof(*Colormap)); i++)
   {
     ColorInfo
       *color_info;
 
-    register const ColorMapInfo
+    register const ColormapInfo
       *p;
 
-    p=ColorMap+i;
+    p=Colormap+i;
     color_info=(ColorInfo *) AcquireMagickMemory(sizeof(*color_info));
     if (color_info == (ColorInfo *) NULL)
       {
@@ -1127,30 +1131,66 @@
   char
     component[MagickPathExtent];
 
-  double
-    color;
+  float
+    color,
+    scale;
 
-  color=0.0;
+  color=0.0f;
+  scale=QuantumRange;
+  if (compliance != NoCompliance)
+    scale=255.0f;
   switch (channel)
   {
     case RedPixelChannel:
     {
       color=pixel->red;
+      if ((pixel->colorspace == HCLColorspace) ||
+          (pixel->colorspace == HCLpColorspace) ||
+          (pixel->colorspace == HSBColorspace) ||
+          (pixel->colorspace == HSIColorspace) ||
+          (pixel->colorspace == HSLColorspace) ||
+          (pixel->colorspace == HSVColorspace) ||
+          (pixel->colorspace == HWBColorspace))
+        scale=360.0f;
+      if ((compliance != NoCompliance) && (pixel->colorspace == LabColorspace))
+        scale=100.0f;
       break;
     }
     case GreenPixelChannel:
     {
       color=pixel->green;
+      if ((pixel->colorspace == HCLColorspace) ||
+          (pixel->colorspace == HCLpColorspace) ||
+          (pixel->colorspace == HSBColorspace) ||
+          (pixel->colorspace == HSIColorspace) ||
+          (pixel->colorspace == HSLColorspace) ||
+          (pixel->colorspace == HSVColorspace) ||
+          (pixel->colorspace == HWBColorspace))
+        scale=100.0f;
+      if ((compliance != NoCompliance) && (pixel->colorspace == LabColorspace))
+        color-=QuantumRange/2.0f;
       break;
     }
     case BluePixelChannel:
     {
       color=pixel->blue;
+      if ((pixel->colorspace == HCLColorspace) ||
+          (pixel->colorspace == HCLpColorspace) ||
+          (pixel->colorspace == HSBColorspace) ||
+          (pixel->colorspace == HSIColorspace) ||
+          (pixel->colorspace == HSLColorspace) ||
+          (pixel->colorspace == HSVColorspace) ||
+          (pixel->colorspace == HWBColorspace))
+        scale=100.0f;
+      if (pixel->colorspace == LabColorspace)
+        color-=QuantumRange/2.0f;
       break;
     }
     case AlphaPixelChannel:
     {
       color=pixel->alpha;
+      if (compliance != NoCompliance)
+        scale=1.0f;
       break;
     }
     case BlackPixelChannel:
@@ -1158,86 +1198,23 @@
       color=pixel->black;
       break;
     }
+    case IndexPixelChannel:
+    {
+      color=pixel->index;
+      break;
+    }
     default:
       break;
   }
-  if (compliance == NoCompliance)
-    {
-      if (pixel->colorspace == LabColorspace)
-        {
-          (void) FormatLocaleString(component,MagickPathExtent,"%.*g",
-            GetMagickPrecision(),(double) color);
-          (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-          return;
-        }
-      (void) FormatLocaleString(component,MagickPathExtent,"%.*g",
-        GetMagickPrecision(),(double) ClampToQuantum(color));
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  if (compliance != SVGCompliance)
-    {
-      if (pixel->depth > 16)
-        {
-          (void) FormatLocaleString(component,MagickPathExtent,"%10lu",
-            (unsigned long) ScaleQuantumToLong(ClampToQuantum(color)));
-          (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-          return;
-        }
-      if (pixel->depth > 8)
-        {
-          (void) FormatLocaleString(component,MagickPathExtent,"%5d",
-            ScaleQuantumToShort(ClampToQuantum(color)));
-          (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-          return;
-        }
-      (void) FormatLocaleString(component,MagickPathExtent,"%3d",
-        ScaleQuantumToChar(ClampToQuantum(color)));
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  if (channel == AlphaPixelChannel)
-    {
-      (void) FormatLocaleString(component,MagickPathExtent,"%.*g",
-        GetMagickPrecision(),(double) QuantumScale*ClampToQuantum(color));
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  if ((pixel->colorspace == HCLColorspace) ||
-      (pixel->colorspace == HCLpColorspace) ||
-      (pixel->colorspace == HSBColorspace) ||
-      (pixel->colorspace == HSIColorspace) ||
-      (pixel->colorspace == HSLColorspace) ||
-      (pixel->colorspace == HSVColorspace) ||
-      (pixel->colorspace == HWBColorspace))
-    {
-      if (channel == RedPixelChannel)
-        (void) FormatLocaleString(component,MagickPathExtent,"%.*g",
-          GetMagickPrecision(),(double) ClampToQuantum(360.0*QuantumScale*
-            color));
-      else
-        (void) FormatLocaleString(component,MagickPathExtent,"%.*g%%",
-          GetMagickPrecision(),(double) ClampToQuantum(100.0*QuantumScale*
-            color));
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  if (pixel->colorspace == LabColorspace)
-    {
-      (void) FormatLocaleString(component,MagickPathExtent,"%.*g%%",
-        GetMagickPrecision(),100.0*QuantumScale*color);
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  if (pixel->depth > 8)
-    {
-      (void) FormatLocaleString(component,MagickPathExtent,"%.*g%%",
-        GetMagickPrecision(),(double) ClampToQuantum(100.0*QuantumScale*color));
-      (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
-      return;
-    }
-  (void) FormatLocaleString(component,MagickPathExtent,"%d",ScaleQuantumToChar(
-    ClampToQuantum(color)));
+  if ((pixel->colorspace == sRGBColorspace) &&
+      (fabs((double) color-(ssize_t) color) > 0.01f))
+    scale=100.0f;
+  if (scale != 100.0f)
+    (void) FormatLocaleString(component,MagickPathExtent,"%.*g",
+      GetMagickPrecision(),(double) (scale*QuantumScale*color));
+  else
+    (void) FormatLocaleString(component,MagickPathExtent,"%.*g%%",
+      GetMagickPrecision(),(double) (scale*QuantumScale*color));
   (void) ConcatenateMagickString(tuple,component,MagickPathExtent);
 }
 
@@ -1965,6 +1942,7 @@
   return(MagickTrue);
 }
 
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -2030,7 +2008,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -2040,7 +2018,7 @@
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -2049,7 +2027,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -2060,10 +2038,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > MagickMaxRecursionDepth)
@@ -2120,11 +2098,11 @@
         color_info=(ColorInfo *) NULL;
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'C':
@@ -2142,11 +2120,11 @@
               compliance;
 
             compliance=color_info->compliance;
-            if (GlobExpression(token,"*SVG*",MagickTrue) != MagickFalse)
+            if (StringLocateSubstring(token,"SVG") != (char *) NULL)
               compliance|=SVGCompliance;
-            if (GlobExpression(token,"*X11*",MagickTrue) != MagickFalse)
+            if (StringLocateSubstring(token,"X11") != (char *) NULL)
               compliance|=X11Compliance;
-            if (GlobExpression(token,"*XPM*",MagickTrue) != MagickFalse)
+            if (StringLocateSubstring(token,"XPM") != (char *) NULL)
               compliance|=XPMCompliance;
             color_info->compliance=(ComplianceType) compliance;
             break;
@@ -2180,6 +2158,7 @@
   token=(char *) RelinquishMagickMemory(token);
   return(status != 0 ? MagickTrue : MagickFalse);
 }
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2243,11 +2222,11 @@
   assert(name != (const char *) NULL);
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",name);
   assert(color != (PixelInfo *) NULL);
-  GetPixelInfo((Image *) NULL,color);
   if ((name == (char *) NULL) || (*name == '\0'))
     name=BackgroundColor;
   while (isspace((int) ((unsigned char) *name)) != 0)
     name++;
+  GetPixelInfo((Image *) NULL,color);
   if (*name == '#')
     {
       char
@@ -2269,7 +2248,8 @@
       (void) memset(&pixel,0,sizeof(pixel));
       name++;
       for (n=0; isxdigit((int) ((unsigned char) name[n])) != 0; n++) ;
-      if ((n % 3) == 0)
+      if ((n == 3) || (n == 6) || (n == 9) || (n == 12) || (n == 24) ||
+          (n == 48))
         {
           do
           {
@@ -2296,7 +2276,7 @@
         }
       else
         {
-          if ((n % 4) != 0)
+          if ((n != 4) && (n != 8) && (n != 16) && (n != 32) && (n != 64))
             {
               (void) ThrowMagickException(exception,GetMagickModule(),
                 OptionWarning,"UnrecognizedColor","`%s'",name);
@@ -2428,8 +2408,14 @@
           if (LocaleCompare(name,colorname) != 0)
             status=QueryColorCompliance(colorname,AllCompliance,color,
               exception);
-          colorname=DestroyString(colorname);
           color->colorspace=colorspaceType;
+          if (*colorname == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionWarning,"UnrecognizedColor","`%s'",name);
+              status=MagickFalse;
+            }
+          colorname=DestroyString(colorname);
           return(status);
         }
       if ((flags & PercentValue) != 0)
@@ -2459,6 +2445,8 @@
         color->alpha=(double) ClampToQuantum(QuantumRange*geometry_info.chi);
       if (color->colorspace == LabColorspace)
         {
+          color->red=(MagickRealType) ClampToQuantum((MagickRealType)
+            (QuantumRange*geometry_info.rho/100.0));
           if ((flags & SigmaValue) != 0)
             color->green=(MagickRealType) ClampToQuantum((MagickRealType)
               (scale*geometry_info.sigma+(QuantumRange+1)/2.0));
@@ -2466,7 +2454,8 @@
             color->blue=(MagickRealType) ClampToQuantum((MagickRealType)
               (scale*geometry_info.xi+(QuantumRange+1)/2.0));
         }
-      if (LocaleCompare(colorspace,"gray") == 0)
+      if ((LocaleCompare(colorspace,"gray") == 0) ||
+          (LocaleCompare(colorspace,"lineargray") == 0))
         {
           color->green=color->red;
           color->blue=color->red;
@@ -2474,12 +2463,6 @@
               (color->alpha_trait != UndefinedPixelTrait))
             color->alpha=(double) ClampToQuantum(QuantumRange*
               geometry_info.sigma);
-          if ((icc_color == MagickFalse) &&
-              (color->colorspace == LinearGRAYColorspace))
-            {
-              color->colorspace=GRAYColorspace;
-              color->depth=8;
-            }
         }
       if ((LocaleCompare(colorspace,"HCL") == 0) ||
           (LocaleCompare(colorspace,"HSB") == 0) ||
diff --git a/MagickCore/color.h b/MagickCore/color.h
index 1e58db1..5ee6569 100644
--- a/MagickCore/color.h
+++ b/MagickCore/color.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colormap-private.h b/MagickCore/colormap-private.h
index c1db784..8bf0b02 100644
--- a/MagickCore/colormap-private.h
+++ b/MagickCore/colormap-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c
index c4673f7..6c23412 100644
--- a/MagickCore/colormap.c
+++ b/MagickCore/colormap.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -114,6 +114,13 @@
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  if (colors > MaxColormapSize)
+    {
+      image->colors=0;
+      image->storage_class=DirectClass;
+      ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+        image->filename);
+    }
   image->colors=MagickMax(colors,1);
   if (image->colormap == (PixelInfo *) NULL)
     image->colormap=(PixelInfo *) AcquireQuantumMemory(image->colors+1,
diff --git a/MagickCore/colormap.h b/MagickCore/colormap.h
index e1ed39e..d1310bc 100644
--- a/MagickCore/colormap.h
+++ b/MagickCore/colormap.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colorspace-private.h b/MagickCore/colorspace-private.h
index 1c7c986..15be7fe 100644
--- a/MagickCore/colorspace-private.h
+++ b/MagickCore/colorspace-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -75,9 +75,9 @@
     black=magenta;
   if (yellow < black)
     black=yellow;
-  cyan=(MagickRealType) ((cyan-black)/(1.0-black));
-  magenta=(MagickRealType) ((magenta-black)/(1.0-black));
-  yellow=(MagickRealType) ((yellow-black)/(1.0-black));
+  cyan=(MagickRealType) (PerceptibleReciprocal(1.0-black)*(cyan-black));
+  magenta=(MagickRealType) (PerceptibleReciprocal(1.0-black)*(magenta-black));
+  yellow=(MagickRealType) (PerceptibleReciprocal(1.0-black)*(yellow-black));
   pixel->colorspace=CMYKColorspace;
   pixel->red=QuantumRange*cyan;
   pixel->green=QuantumRange*magenta;
@@ -103,7 +103,8 @@
 
 static inline MagickBooleanType IsRGBColorspace(const ColorspaceType colorspace)
 {
-  if ((colorspace == RGBColorspace) || (colorspace == scRGBColorspace))
+  if ((colorspace == RGBColorspace) || (colorspace == scRGBColorspace) ||
+      (colorspace == LinearGRAYColorspace))
     return(MagickTrue);
   return(MagickFalse);
 }
@@ -120,8 +121,8 @@
   const ColorspaceType colorspace)
 {
   if ((colorspace == sRGBColorspace) || (colorspace == RGBColorspace) ||
-      (colorspace == scRGBColorspace) || (colorspace == GRAYColorspace) ||
-      (colorspace == LinearGRAYColorspace))
+      (colorspace == scRGBColorspace) || (colorspace == TransparentColorspace) ||
+      (colorspace == GRAYColorspace) || (colorspace == LinearGRAYColorspace))
     return(MagickTrue);
   return(MagickFalse);
 }
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 8b9ee44..d891c7d 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -380,6 +380,62 @@
       return(status);
     }
     case LinearGRAYColorspace:
+    {
+      /*
+        Transform image from sRGB to GRAY.
+      */
+      if (image->storage_class == PseudoClass)
+        {
+          if (SyncImage(image,exception) == MagickFalse)
+            return(MagickFalse);
+          if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
+            return(MagickFalse);
+        }
+      image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static) shared(status) \
+        magick_number_threads(image,image,image->rows,1)
+#endif
+      for (y=0; y < (ssize_t) image->rows; y++)
+      {
+        MagickBooleanType
+          sync;
+
+        register ssize_t
+          x;
+
+        register Quantum
+          *magick_restrict q;
+
+        if (status == MagickFalse)
+          continue;
+        q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
+          exception);
+        if (q == (Quantum *) NULL)
+          {
+            status=MagickFalse;
+            continue;
+          }
+        for (x=0; x < (ssize_t) image->columns; x++)
+        {
+          MagickRealType
+            gray;
+
+          gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+
+            0.072186*GetPixelBlue(image,q);
+          SetPixelGray(image,ClampToQuantum(DecodePixelGamma(gray)),q);
+          q+=GetPixelChannels(image);
+        }
+        sync=SyncCacheViewAuthenticPixels(image_view,exception);
+        if (sync == MagickFalse)
+          status=MagickFalse;
+      }
+      image_view=DestroyCacheView(image_view);
+      if (SetImageColorspace(image,colorspace,exception) == MagickFalse)
+        return(MagickFalse);
+      image->type=GrayscaleType;
+      return(status);
+    }
     case GRAYColorspace:
     {
       /*
@@ -419,7 +475,12 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          SetPixelGray(image,ClampToQuantum(GetPixelIntensity(image,q)),q);
+          MagickRealType
+            gray;
+
+          gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+
+            0.072186*GetPixelBlue(image,q);
+          SetPixelGray(image,ClampToQuantum(gray),q);
           q+=GetPixelChannels(image);
         }
         sync=SyncCacheViewAuthenticPixels(image_view,exception);
@@ -846,13 +907,13 @@
       for (i=0; i <= (ssize_t) MaxMap; i++)
       {
         x_map[i].x=(MagickRealType) (0.33333*(double) i);
-        y_map[i].x=(MagickRealType) (0.33334*(double) i);
-        z_map[i].x=(MagickRealType) (0.33333*(double) i);
         x_map[i].y=(MagickRealType) (0.50000*(double) i);
-        y_map[i].y=(MagickRealType) (0.00000*(double) i);
-        z_map[i].y=(MagickRealType) (-0.50000*(double) i);
         x_map[i].z=(MagickRealType) (-0.25000*(double) i);
+        y_map[i].x=(MagickRealType) (0.33334*(double) i);
+        y_map[i].y=(MagickRealType) (0.00000*(double) i);
         y_map[i].z=(MagickRealType) (0.50000*(double) i);
+        z_map[i].x=(MagickRealType) (0.33333*(double) i);
+        z_map[i].y=(MagickRealType) (-0.50000*(double) i);
         z_map[i].z=(MagickRealType) (-0.25000*(double) i);
       }
       break;
@@ -877,13 +938,13 @@
       for (i=0; i <= (ssize_t) MaxMap; i++)
       {
         x_map[i].x=(MagickRealType) (0.298839*(double) i);
-        y_map[i].x=(MagickRealType) (0.586811*(double) i);
-        z_map[i].x=(MagickRealType) (0.114350*(double) i);
         x_map[i].y=(MagickRealType) (-0.1687367*(double) i);
-        y_map[i].y=(MagickRealType) (-0.331264*(double) i);
-        z_map[i].y=(MagickRealType) (0.500000*(double) i);
         x_map[i].z=(MagickRealType) (0.500000*(double) i);
+        y_map[i].x=(MagickRealType) (0.586811*(double) i);
+        y_map[i].y=(MagickRealType) (-0.331264*(double) i);
         y_map[i].z=(MagickRealType) (-0.418688*(double) i);
+        z_map[i].x=(MagickRealType) (0.114350*(double) i);
+        z_map[i].y=(MagickRealType) (0.500000*(double) i);
         z_map[i].z=(MagickRealType) (-0.081312*(double) i);
       }
       break;
@@ -908,13 +969,13 @@
       for (i=0; i <= (ssize_t) MaxMap; i++)
       {
         x_map[i].x=(MagickRealType) (0.212656*(double) i);
-        y_map[i].x=(MagickRealType) (0.715158*(double) i);
-        z_map[i].x=(MagickRealType) (0.072186*(double) i);
         x_map[i].y=(MagickRealType) (-0.114572*(double) i);
-        y_map[i].y=(MagickRealType) (-0.385428*(double) i);
-        z_map[i].y=(MagickRealType) (0.500000*(double) i);
         x_map[i].z=(MagickRealType) (0.500000*(double) i);
+        y_map[i].x=(MagickRealType) (0.715158*(double) i);
+        y_map[i].y=(MagickRealType) (-0.385428*(double) i);
         y_map[i].z=(MagickRealType) (-0.454153*(double) i);
+        z_map[i].x=(MagickRealType) (0.072186*(double) i);
+        z_map[i].y=(MagickRealType) (0.500000*(double) i);
         z_map[i].z=(MagickRealType) (-0.045847*(double) i);
       }
       break;
@@ -935,25 +996,25 @@
       for (i=0; i <= (ssize_t) (0.018*MaxMap); i++)
       {
         x_map[i].x=0.005382*i;
-        y_map[i].x=0.010566*i;
-        z_map[i].x=0.002052*i;
         x_map[i].y=(-0.003296)*i;
-        y_map[i].y=(-0.006471)*i;
-        z_map[i].y=0.009768*i;
         x_map[i].z=0.009410*i;
+        y_map[i].x=0.010566*i;
+        y_map[i].y=(-0.006471)*i;
         y_map[i].z=(-0.007880)*i;
+        z_map[i].x=0.002052*i;
+        z_map[i].y=0.009768*i;
         z_map[i].z=(-0.001530)*i;
       }
       for ( ; i <= (ssize_t) MaxMap; i++)
       {
         x_map[i].x=0.298839*(1.099*i-0.099);
-        y_map[i].x=0.586811*(1.099*i-0.099);
-        z_map[i].x=0.114350*(1.099*i-0.099);
         x_map[i].y=(-0.298839)*(1.099*i-0.099);
-        y_map[i].y=(-0.586811)*(1.099*i-0.099);
-        z_map[i].y=0.88600*(1.099*i-0.099);
         x_map[i].z=0.70100*(1.099*i-0.099);
+        y_map[i].x=0.586811*(1.099*i-0.099);
+        y_map[i].y=(-0.586811)*(1.099*i-0.099);
         y_map[i].z=(-0.586811)*(1.099*i-0.099);
+        z_map[i].x=0.114350*(1.099*i-0.099);
+        z_map[i].y=0.88600*(1.099*i-0.099);
         z_map[i].z=(-0.114350)*(1.099*i-0.099);
       }
       break;
@@ -969,13 +1030,13 @@
       for (i=0; i <= (ssize_t) MaxMap; i++)
       {
         x_map[i].x=(MagickRealType) (1.0*(double) i);
-        y_map[i].x=(MagickRealType) 0.0;
-        z_map[i].x=(MagickRealType) 0.0;
         x_map[i].y=(MagickRealType) 0.0;
-        y_map[i].y=(MagickRealType) (1.0*(double) i);
-        z_map[i].y=(MagickRealType) 0.0;
         x_map[i].z=(MagickRealType) 0.0;
+        y_map[i].x=(MagickRealType) 0.0;
+        y_map[i].y=(MagickRealType) (1.0*(double) i);
         y_map[i].z=(MagickRealType) 0.0;
+        z_map[i].x=(MagickRealType) 0.0;
+        z_map[i].y=(MagickRealType) 0.0;
         z_map[i].z=(MagickRealType) (1.0*(double) i);
       }
       break;
@@ -1845,6 +1906,66 @@
       return(status);
     }
     case LinearGRAYColorspace:
+    {
+      /*
+        Transform linear GRAY to sRGB colorspace.
+      */
+      if (image->storage_class == PseudoClass)
+        {
+          if (SyncImage(image,exception) == MagickFalse)
+            return(MagickFalse);
+          if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
+            return(MagickFalse);
+        }
+      if (SetImageColorspace(image,sRGBColorspace,exception) == MagickFalse)
+        return(MagickFalse);
+      image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static) shared(status) \
+        magick_number_threads(image,image,image->rows,1)
+#endif
+      for (y=0; y < (ssize_t) image->rows; y++)
+      {
+        MagickBooleanType
+          sync;
+
+        register ssize_t
+          x;
+
+        register Quantum
+          *magick_restrict q;
+
+        if (status == MagickFalse)
+          continue;
+        q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
+          exception);
+        if (q == (Quantum *) NULL)
+          {
+            status=MagickFalse;
+            continue;
+          }
+        for (x=(ssize_t) image->columns; x != 0; x--)
+        {
+          MagickRealType
+            gray;
+
+          gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+
+            0.072186*GetPixelBlue(image,q);
+          gray=EncodePixelGamma(gray);
+          SetPixelRed(image,ClampToQuantum(gray),q);
+          SetPixelGreen(image,ClampToQuantum(gray),q);
+          SetPixelBlue(image,ClampToQuantum(gray),q);
+          q+=GetPixelChannels(image);
+        }
+        sync=SyncCacheViewAuthenticPixels(image_view,exception);
+        if (sync == MagickFalse)
+          status=MagickFalse;
+      }
+      image_view=DestroyCacheView(image_view);
+      if (SetImageColorspace(image,sRGBColorspace,exception) == MagickFalse)
+        return(MagickFalse);
+      return(status);
+    }
     case GRAYColorspace:
     {
       /*
@@ -1889,10 +2010,8 @@
           MagickRealType
             gray;
 
-          gray=(MagickRealType) GetPixelGray(image,q);
-          if ((image->intensity == Rec601LuminancePixelIntensityMethod) ||
-              (image->intensity == Rec709LuminancePixelIntensityMethod))
-            gray=EncodePixelGamma(gray);
+          gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+
+            0.072186*GetPixelBlue(image,q);
           SetPixelRed(image,ClampToQuantum(gray),q);
           SetPixelGreen(image,ClampToQuantum(gray),q);
           SetPixelBlue(image,ClampToQuantum(gray),q);
diff --git a/MagickCore/colorspace.h b/MagickCore/colorspace.h
index 6f64032..71690e4 100644
--- a/MagickCore/colorspace.h
+++ b/MagickCore/colorspace.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index f60a327..5c516f8 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -221,7 +221,9 @@
     Generate difference image.
   */
   status=MagickTrue;
-  fuzz=GetFuzzyColorDistance(image,reconstruct_image);
+  fuzz=(double) MagickMin(GetPixelChannels(image),
+    GetPixelChannels(reconstruct_image))*
+    GetFuzzyColorDistance(image,reconstruct_image);
   image_view=AcquireVirtualCacheView(image,exception);
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   highlight_view=AcquireAuthenticCacheView(highlight_image,exception);
diff --git a/MagickCore/compare.h b/MagickCore/compare.h
index 80d64a3..703bb4d 100644
--- a/MagickCore/compare.h
+++ b/MagickCore/compare.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h
index 9df882e..0c3747c 100644
--- a/MagickCore/composite-private.h
+++ b/MagickCore/composite-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -119,8 +119,8 @@
   }
 }
 
-static inline void CompositePixelInfoOver(const PixelInfo *p,
-  const double alpha,const PixelInfo *q,const double beta,PixelInfo *composite)
+static inline void CompositePixelInfoOver(const PixelInfo *p,const double alpha,
+  const PixelInfo *q,const double beta,PixelInfo *composite)
 {
   double
     Da,
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 78d6dff..a5bcbaa 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -367,7 +367,7 @@
           }
         pixels=p;
         if (x_offset < 0)
-          p-=x_offset*GetPixelChannels(source_image);
+          p-=x_offset*(ssize_t) GetPixelChannels(source_image);
       }
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
@@ -579,8 +579,24 @@
   source_image=CloneImage(composite,0,0,MagickTrue,exception);
   if (source_image == (const Image *) NULL)
     return(MagickFalse);
-  if (IsGrayColorspace(image->colorspace) != MagickFalse)
-    (void) SetImageColorspace(image,sRGBColorspace,exception);
+  switch (compose)
+  {
+    case CopyCompositeOp:
+    case CopyRedCompositeOp:
+    case CopyGreenCompositeOp:
+    case CopyBlueCompositeOp:
+    case CopyCyanCompositeOp:
+    case CopyMagentaCompositeOp:
+    case CopyYellowCompositeOp:
+    case CopyBlackCompositeOp:
+      break;
+    default:
+    {
+      if (IsGrayColorspace(image->colorspace) == MagickFalse)
+        (void) SetImageColorspace(image,sRGBColorspace,exception);
+      break;
+    }
+  }
   (void) SetImageColorspace(source_image,image->colorspace,exception);
   if ((compose == OverCompositeOp) || (compose == SrcOverCompositeOp))
     {
@@ -611,6 +627,9 @@
         break;
       if ((y_offset+(ssize_t) source_image->rows) > (ssize_t) image->rows)
         break;
+      if ((source_image->alpha_trait == UndefinedPixelTrait) &&
+          (image->alpha_trait != UndefinedPixelTrait))
+        (void) SetImageAlphaChannel(source_image,OpaqueAlphaChannel,exception);
       status=MagickTrue;
       source_view=AcquireVirtualCacheView(source_image,exception);
       image_view=AcquireAuthenticCacheView(image,exception);
@@ -654,18 +673,16 @@
               q+=GetPixelChannels(image);
               continue;
             }
-          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+          for (i=0; i < (ssize_t) GetPixelChannels(source_image); i++)
           {
-            PixelChannel channel = GetPixelChannelChannel(image,i);
-            PixelTrait traits = GetPixelChannelTraits(image,channel);
-            PixelTrait source_traits=GetPixelChannelTraits(source_image,
+            PixelChannel channel = GetPixelChannelChannel(source_image,i);
+            PixelTrait source_traits = GetPixelChannelTraits(source_image,
               channel);
-            if (traits == UndefinedPixelTrait)
+            PixelTrait traits = GetPixelChannelTraits(image,channel);
+            if ((source_traits == UndefinedPixelTrait) ||
+                (traits == UndefinedPixelTrait))
               continue;
-            if (source_traits != UndefinedPixelTrait)
-              SetPixelChannel(image,channel,p[i],q);
-            else if (channel == AlphaPixelChannel)
-              SetPixelChannel(image,channel,OpaqueAlpha,q);
+            SetPixelChannel(image,channel,p[i],q);
           }
           p+=GetPixelChannels(source_image);
           q+=GetPixelChannels(image);
@@ -1272,7 +1289,7 @@
           }
         pixels=p;
         if (x_offset < 0)
-          p-=x_offset*GetPixelChannels(source_image);
+          p-=x_offset*(ssize_t) GetPixelChannels(source_image);
       }
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
@@ -1422,8 +1439,6 @@
         case MathematicsCompositeOp:
         case MinusDstCompositeOp:
         case MinusSrcCompositeOp:
-        case ModulusAddCompositeOp:
-        case ModulusSubtractCompositeOp:
         case MultiplyCompositeOp:
         case OverlayCompositeOp:
         case PegtopLightCompositeOp:
@@ -1478,6 +1493,26 @@
           alpha=Sa+Da-2.0*Sa*Da;
           break;
         }
+        case ModulusAddCompositeOp:
+        {
+          if ((Sa+Da) <= 1.0)
+            {
+              alpha=(Sa+Da);
+              break;
+            }
+          alpha=((Sa+Da)-1.0);
+          break;
+        }
+        case ModulusSubtractCompositeOp:
+        {
+          if ((Sa-Da) >= 0.0)
+            {
+              alpha=(Sa-Da);
+              break;
+            }
+          alpha=((Sa-Da)+1.0);
+          break;
+        }
         default:
         {
           alpha=1.0;
@@ -1795,8 +1830,7 @@
           case CopyBlackCompositeOp:
           {
             if (channel == BlackPixelChannel)
-              pixel=(MagickRealType) (QuantumRange-
-                GetPixelBlack(source_image,p));
+              pixel=(MagickRealType) GetPixelBlack(source_image,p);
             break;
           }
           case CopyBlueCompositeOp:
@@ -1897,12 +1931,12 @@
           }
           case DstInCompositeOp:
           {
-            pixel=QuantumRange*(Dca*Sa);
+            pixel=QuantumRange*gamma*(Dca*Sa);
             break;
           }
           case DstOutCompositeOp:
           {
-            pixel=QuantumRange*(Dca*(1.0-Sa));
+            pixel=QuantumRange*gamma*(Dca*(1.0-Sa));
             break;
           }
           case DstOverCompositeOp:
@@ -2112,22 +2146,22 @@
           }
           case ModulusAddCompositeOp:
           {
-            pixel=Sc+Dc;
-            while (pixel > QuantumRange)
-              pixel-=QuantumRange;
-            while (pixel < 0.0)
-              pixel+=QuantumRange;
-            pixel=(Sa*Da*pixel+Sa*Sc*(1.0-Da)+Da*Dc*(1.0-Sa));
+            if ((Sca+Dca) <= 1.0)
+              {
+                pixel=QuantumRange*(Sca+Dca);
+                break;
+              }
+            pixel=QuantumRange*((Sca+Dca)-1.0);
             break;
           }
           case ModulusSubtractCompositeOp:
           {
-            pixel=Sc-Dc;
-            while (pixel > QuantumRange)
-              pixel-=QuantumRange;
-            while (pixel < 0.0)
-              pixel+=QuantumRange;
-            pixel=(Sa*Da*pixel+Sa*Sc*(1.0-Da)+Da*Dc*(1.0-Sa));
+            if ((Sca-Dca) >= 0.0)
+              {
+                pixel=QuantumRange*(Sca-Dca);
+                break;
+              }
+            pixel=QuantumRange*((Sca-Dca)+1.0);
             break;
           }
           case MultiplyCompositeOp:
@@ -2171,7 +2205,7 @@
             */
             if (fabs((double) Da) < MagickEpsilon)
               {
-                pixel=QuantumRange*gamma*(Sca);
+                pixel=QuantumRange*gamma*Sca;
                 break;
               }
             pixel=QuantumRange*gamma*(Dca*Dca*(Sa-2.0*Sca)/Da+Sca*(2.0*Dca+1.0-
diff --git a/MagickCore/composite.h b/MagickCore/composite.h
index c094c16..4240404 100644
--- a/MagickCore/composite.h
+++ b/MagickCore/composite.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/compress.c b/MagickCore/compress.c
index 24dd54e..768dcd5 100644
--- a/MagickCore/compress.c
+++ b/MagickCore/compress.c
@@ -17,7 +17,7 @@
 %                              May  1993                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -72,6 +72,9 @@
     offset,
     line_break;
 
+  char
+    tuple[6];
+
   unsigned char
     buffer[10];
 };
@@ -88,11 +91,11 @@
 /*
   Huffman coding declarations.
 */
-#define TWId  23
-#define MWId  24
-#define TBId  25
-#define MBId  26
-#define EXId  27
+#define TWId  23L
+#define MWId  24L
+#define TBId  25L
+#define MBId  26L
+#define EXId  27L
 
 static const HuffmanTable
   MBTable[]=
@@ -225,13 +228,11 @@
 %
 %
 */
-#define MaxLineExtent  36
+#define MaxLineExtent  36L
 
-static char *Ascii85Tuple(unsigned char *data)
+static inline void Ascii85Tuple(Ascii85Info *ascii85_info,
+  const unsigned char *magick_restrict data)
 {
-  static char
-    tuple[6];
-
   register ssize_t
     i,
     x;
@@ -244,21 +245,20 @@
     ((size_t) data[2] << 8) | (size_t) data[3];
   if (code == 0L)
     {
-      tuple[0]='z';
-      tuple[1]='\0';
-      return(tuple);
+      ascii85_info->tuple[0]='z';
+      ascii85_info->tuple[1]='\0';
+      return;
     }
   quantum=85UL*85UL*85UL*85UL;
   for (i=0; i < 4; i++)
   {
     x=(ssize_t) (code/quantum);
     code-=quantum*x;
-    tuple[i]=(char) (x+(int) '!');
+    ascii85_info->tuple[i]=(char) (x+(int) '!');
     quantum/=85L;
   }
-  tuple[4]=(char) ((code % 85L)+(int) '!');
-  tuple[5]='\0';
-  return(tuple);
+  ascii85_info->tuple[4]=(char) ((code % 85L)+(int) '!');
+  ascii85_info->tuple[5]='\0';
 }
 
 MagickExport void Ascii85Initialize(Image *image)
@@ -271,15 +271,12 @@
   if (image->ascii85 == (Ascii85Info *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) memset(image->ascii85,0,sizeof(*image->ascii85));
-  image->ascii85->line_break=(ssize_t) MaxLineExtent << 1;
+  image->ascii85->line_break=(ssize_t) (MaxLineExtent << 1);
   image->ascii85->offset=0;
 }
 
 MagickExport void Ascii85Flush(Image *image)
 {
-  register char
-    *tuple;
-
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
@@ -290,9 +287,10 @@
       image->ascii85->buffer[image->ascii85->offset]='\0';
       image->ascii85->buffer[image->ascii85->offset+1]='\0';
       image->ascii85->buffer[image->ascii85->offset+2]='\0';
-      tuple=Ascii85Tuple(image->ascii85->buffer);
+      Ascii85Tuple(image->ascii85,image->ascii85->buffer);
       (void) WriteBlob(image,(size_t) image->ascii85->offset+1,
-        (const unsigned char *) (*tuple == 'z' ? "!!!!" : tuple));
+        (const unsigned char *) (*image->ascii85->tuple == 'z' ? "!!!!" :
+        image->ascii85->tuple));
     }
   (void) WriteBlobByte(image,'~');
   (void) WriteBlobByte(image,'>');
@@ -320,7 +318,8 @@
   p=image->ascii85->buffer;
   for (n=image->ascii85->offset; n >= 4; n-=4)
   {
-    for (q=Ascii85Tuple(p); *q != '\0'; q++)
+    Ascii85Tuple(image->ascii85,p);
+    for (q=image->ascii85->tuple; *q != '\0'; q++)
     {
       image->ascii85->line_break--;
       if ((image->ascii85->line_break < 0) && (*q != '%'))
@@ -366,11 +365,11 @@
 MagickExport MagickBooleanType HuffmanDecodeImage(Image *image,
   ExceptionInfo *exception)
 {
-#define HashSize  1021
-#define MBHashA  293
-#define MBHashB  2695
-#define MWHashA  3510
-#define MWHashB  1178
+#define HashSize  1021L
+#define MBHashA  293L
+#define MBHashB  2695L
+#define MWHashA  3510L
+#define MWHashB  1178L
 
 #define InitializeHashTable(hash,table,a,b) \
 { \
@@ -553,7 +552,7 @@
       if (length > 13)
         {
           while (runlength < 11)
-           InputBit(bit);
+            InputBit(bit);
           do { InputBit(bit); } while ((int) bit == 0);
           break;
         }
@@ -590,7 +589,8 @@
                 }
               else
                 for ( ; count > 0; count--)
-                  scanline[x++]=(unsigned char) 1;
+                  if ((x >= 0) && (x < (ssize_t) image->columns))
+                    scanline[x++]=(unsigned char) 1;
             }
           color=(unsigned int)
             ((color == MagickFalse) ? MagickTrue : MagickFalse);
diff --git a/MagickCore/compress.h b/MagickCore/compress.h
index 61ea8e6..9118a8a 100644
--- a/MagickCore/compress.h
+++ b/MagickCore/compress.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -47,7 +47,9 @@
   ZipCompression,
   ZipSCompression,
   ZstdCompression,
-  WebPCompression
+  WebPCompression,
+  DWAACompression,
+  DWABCompression
 } CompressionType;
 
 typedef struct _Ascii85Info
diff --git a/MagickCore/config.h_vms b/MagickCore/config.h_vms
index 1803207..6e74de2 100755
--- a/MagickCore/config.h_vms
+++ b/MagickCore/config.h_vms
@@ -12,9 +12,6 @@
 /* Define as __inline if that's what the C compiler calls it.  */
 #define MAGICKCORE_inline __inline
 
-/* Define as the return type of signal handlers (int or void).  */
-#define MAGICKCORE_RETSIGTYPE void
-
 /* Define if the `S_IS*' macros in <sys/stat.h> do not work properly.  */
 #undef MAGICKCORE_STAT_MACROS_BROKEN
 
diff --git a/MagickCore/configure-private.h b/MagickCore/configure-private.h
index f5aea65..d4ce832 100644
--- a/MagickCore/configure-private.h
+++ b/MagickCore/configure-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index 6d2b36d..c4e5128 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -17,7 +17,7 @@
 %                                 July 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -49,7 +49,6 @@
 #include "MagickCore/linked-list.h"
 #include "MagickCore/log.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/semaphore.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
@@ -89,9 +88,13 @@
   Forward declarations.
 */
 static MagickBooleanType
-  IsConfigureCacheInstantiated(ExceptionInfo *),
+  IsConfigureCacheInstantiated(ExceptionInfo *);
+
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+static MagickBooleanType
   LoadConfigureCache(LinkedListInfo *,const char *,const char *,const size_t,
     ExceptionInfo *);
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -160,7 +163,7 @@
     Load external configure map.
   */
   cache=NewLinkedList(0);
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -875,12 +878,14 @@
       *home;
 
     home=GetEnvironmentValue("XDG_CONFIG_HOME");
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
     if (home == (char *) NULL)
       home=GetEnvironmentValue("LOCALAPPDATA");
     if (home == (char *) NULL)
       home=GetEnvironmentValue("APPDATA");
     if (home == (char *) NULL)
       home=GetEnvironmentValue("USERPROFILE");
+#endif
     if (home != (char *) NULL)
       {
         /*
@@ -1098,6 +1103,7 @@
   return(MagickTrue);
 }
 
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -1163,7 +1169,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1173,7 +1179,7 @@
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1182,7 +1188,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1193,10 +1199,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > MagickMaxRecursionDepth)
@@ -1257,11 +1263,11 @@
     /*
       Parse configure element.
     */
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'N':
@@ -1301,3 +1307,4 @@
   token=(char *) RelinquishMagickMemory(token);
   return(status != 0 ? MagickTrue : MagickFalse);
 }
+#endif
diff --git a/MagickCore/configure.h b/MagickCore/configure.h
index fabee0c..fbe39bf 100644
--- a/MagickCore/configure.h
+++ b/MagickCore/configure.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/constitute-private.h b/MagickCore/constitute-private.h
index 976f2b9..73764c7 100644
--- a/MagickCore/constitute-private.h
+++ b/MagickCore/constitute-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index 9456536..1ef68f4 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -17,7 +17,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -143,6 +143,9 @@
   register ssize_t
     i;
 
+  size_t
+    length;
+
   /*
     Allocate image structure.
   */
@@ -154,7 +157,8 @@
   image=AcquireImage((ImageInfo *) NULL,exception);
   if (image == (Image *) NULL)
     return((Image *) NULL);
-  for (i=0; i < (ssize_t) strlen(map); i++)
+  length=strlen(map);
+  for (i=0; i < (ssize_t) length; i++)
   {
     switch (map[i])
     {
@@ -186,7 +190,7 @@
       }
       default:
       {
-        if (strlen(map) == 1)
+        if (length == 1)
           image->colorspace=GRAYColorspace;
         break;
       }
@@ -471,6 +475,8 @@
   */
   sans_exception=AcquireExceptionInfo();
   magick_info=GetMagickInfo(read_info->magick,sans_exception);
+  if (sans_exception->severity == PolicyError)
+    magick_info=GetMagickInfo(read_info->magick,exception);
   sans_exception=DestroyExceptionInfo(sans_exception);
   if (magick_info != (const MagickInfo *) NULL)
     {
@@ -668,6 +674,10 @@
       next->magick_columns=next->columns;
     if (next->magick_rows == 0)
       next->magick_rows=next->rows;
+    (void) GetImageProperty(next,"exif:*",exception);
+    (void) GetImageProperty(next,"icc:*",exception);
+    (void) GetImageProperty(next,"iptc:*",exception);
+    (void) GetImageProperty(next,"xmp:*",exception);
     value=GetImageProperty(next,"exif:Orientation",exception);
     if (value == (char *) NULL)
       value=GetImageProperty(next,"tiff:Orientation",exception);
@@ -1077,6 +1087,8 @@
     Call appropriate image writer based on image type.
   */
   magick_info=GetMagickInfo(write_info->magick,sans_exception);
+  if (sans_exception->severity == PolicyError)
+    magick_info=GetMagickInfo(write_info->magick,exception);
   sans_exception=DestroyExceptionInfo(sans_exception);
   if (magick_info != (const MagickInfo *) NULL)
     {
@@ -1181,6 +1193,8 @@
         {
           sans_exception=AcquireExceptionInfo();
           magick_info=GetMagickInfo(write_info->magick,sans_exception);
+          if (sans_exception->severity == PolicyError)
+            magick_info=GetMagickInfo(write_info->magick,exception);
           sans_exception=DestroyExceptionInfo(sans_exception);
           if ((write_info->affirm == MagickFalse) &&
               (magick_info == (const MagickInfo *) NULL))
diff --git a/MagickCore/constitute.h b/MagickCore/constitute.h
index 24b1cb9..775bd35 100644
--- a/MagickCore/constitute.h
+++ b/MagickCore/constitute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index 45cfc52..1aa7ec3 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -17,7 +17,7 @@
 %                                   July 1992                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/decorate.h b/MagickCore/decorate.h
index 9049796..d6177a3 100644
--- a/MagickCore/decorate.h
+++ b/MagickCore/decorate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/delegate-private.h b/MagickCore/delegate-private.h
index fda3425..6243466 100644
--- a/MagickCore/delegate-private.h
+++ b/MagickCore/delegate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 5565fc8..fa114da 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -133,7 +133,7 @@
     "  <delegate decode=\"ps\" encode=\"eps\" mode=\"bi\" command=\"&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=eps2write&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;\"/>"
     "  <delegate decode=\"ps\" encode=\"pdf\" mode=\"bi\" command=\"&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pdfwrite&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;\"/>"
     "  <delegate decode=\"ps\" encode=\"print\" mode=\"encode\" command=\"lpr &quot;%i&quot;\"/>"
-    "  <delegate decode=\"ps:mono\" stealth=\"True\" command=\"&quot;fs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pbmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;\"/>"
+    "  <delegate decode=\"ps:mono\" stealth=\"True\" command=\"&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pbmraw&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;-f%s&quot; &quot;-f%s&quot;\"/>"
     "  <delegate decode=\"shtml\" command=\"&quot;html2ps&quot; -U -o &quot;%o&quot; &quot;%i&quot;\"/>"
     "  <delegate decode=\"sid\" command=\"&quot;mrsidgeodecode&quot; -if sid -i &quot;%i&quot; -of tif -o &quot;%o&quot; &gt; &quot;%u&quot;\"/>"
     "  <delegate decode=\"svg\" command=\"&quot;rsvg-convert&quot; -o &quot;%o&quot; &quot;%i&quot;\"/>"
@@ -203,7 +203,7 @@
 
   cache=NewLinkedList(0);
   status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -452,13 +452,13 @@
       TODO: This won't work if one of the delegate parameters has a forward
             slash as aparameter.
     */
-    p=strstr(sanitize_command, "cmd.exe /c");
+    p=strstr(sanitize_command,"cmd.exe /c");
     if (p != (char*) NULL)
       {
         p+=10;
-        for (; *p != '\0'; p++)
+        for ( ; *p != '\0'; p++)
           if (*p == '/')
-            *p=*DirectorySeparator;
+            *p=(*DirectorySeparator);
       }
   }
   status=NTSystemCommand(sanitize_command,message);
@@ -523,6 +523,36 @@
 %
 */
 
+static char *SanitizeDelegateString(const char *source)
+{
+  char
+    *sanitize_source;
+
+  const char
+    *q;
+
+  register char
+    *p;
+
+  static char
+#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+    whitelist[] =
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
+      "$-_.+!;*(),{}|^~[]`\'><#%/?:@&=";
+#else
+    whitelist[] =
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
+      "$-_.+!;*(),{}|\\^~[]`\"><#%/?:@&=";
+#endif
+
+  sanitize_source=AcquireString(source);
+  p=sanitize_source;
+  q=sanitize_source+strlen(sanitize_source);
+  for (p+=strspn(p,whitelist); p != q; p+=strspn(p,whitelist))
+    *p='_';
+  return(sanitize_source);
+}
+
 static char *GetMagickPropertyLetter(ImageInfo *image_info,Image *image,
   const char letter,ExceptionInfo *exception)
 {
@@ -860,7 +890,7 @@
       break;
     }
   }
-  return(SanitizeString(string));
+  return(SanitizeDelegateString(string));
 }
 
 static char *InterpretDelegateProperties(ImageInfo *image_info,
@@ -2047,7 +2077,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -2057,7 +2087,7 @@
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -2066,7 +2096,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -2077,10 +2107,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > MagickMaxRecursionDepth)
@@ -2138,11 +2168,11 @@
         delegate_info=(DelegateInfo *) NULL;
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'C':
diff --git a/MagickCore/delegate.h b/MagickCore/delegate.h
index 86b65b5..1f54145 100644
--- a/MagickCore/delegate.h
+++ b/MagickCore/delegate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/deprecate.c b/MagickCore/deprecate.c
index d860019..b0badd2 100644
--- a/MagickCore/deprecate.c
+++ b/MagickCore/deprecate.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/deprecate.h b/MagickCore/deprecate.h
index 7b5e0b9..107e5e2 100644
--- a/MagickCore/deprecate.h
+++ b/MagickCore/deprecate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/display-private.h b/MagickCore/display-private.h
index 792aaa0..143493a 100644
--- a/MagickCore/display-private.h
+++ b/MagickCore/display-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 4574904..d826cae 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -87,12 +87,14 @@
 #include "MagickCore/statistic.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/transform-private.h"
 #include "MagickCore/threshold.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
+#include "MagickCore/visual-effects.h"
 #include "MagickCore/widget.h"
 #include "MagickCore/widget-private.h"
 #include "MagickCore/xwindow.h"
@@ -120,1219 +122,1185 @@
   {
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
   };
-
-static const char
-  *PageSizes[] =
-  {
-    "Letter",
-    "Tabloid",
-    "Ledger",
-    "Legal",
-    "Statement",
-    "Executive",
-    "A3",
-    "A4",
-    "A5",
-    "B4",
-    "B5",
-    "Folio",
-    "Quarto",
-    "10x14",
-    (char *) NULL
-  };
 
 /*
   Help widget declarations.
 */
 static const char
-  *ImageAnnotateHelp[] =
+  ImageAnnotateHelp[] =
   {
-    "In annotate mode, the Command widget has these options:",
-    "",
-    "    Font Name",
-    "      fixed",
-    "      variable",
-    "      5x8",
-    "      6x10",
-    "      7x13bold",
-    "      8x13bold",
-    "      9x15bold",
-    "      10x20",
-    "      12x24",
-    "      Browser...",
-    "    Font Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      transparent",
-    "      Browser...",
-    "    Font Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      transparent",
-    "      Browser...",
-    "    Rotate Text",
-    "      -90",
-    "      -45",
-    "      -30",
-    "      0",
-    "      30",
-    "      45",
-    "      90",
-    "      180",
-    "      Dialog...",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a font name from the Font Name sub-menu.  Additional",
-    "font names can be specified with the font browser.  You can",
-    "change the menu names by setting the X resources font1",
-    "through font9.",
-    "",
-    "Choose a font color from the Font Color sub-menu.",
-    "Additional font colors can be specified with the color",
-    "browser.  You can change the menu colors by setting the X",
-    "resources pen1 through pen9.",
-    "",
-    "If you select the color browser and press Grab, you can",
-    "choose the font color by moving the pointer to the desired",
-    "color on the screen and press any button.",
-    "",
-    "If you choose to rotate the text, choose Rotate Text from the",
-    "menu and select an angle.  Typically you will only want to",
-    "rotate one line of text at a time.  Depending on the angle you",
-    "choose, subsequent lines may end up overwriting each other.",
-    "",
-    "Choosing a font and its color is optional.  The default font",
-    "is fixed and the default color is black.  However, you must",
-    "choose a location to begin entering text and press button 1.",
-    "An underscore character will appear at the location of the",
-    "pointer.  The cursor changes to a pencil to indicate you are",
-    "in text mode.  To exit immediately, press Dismiss.",
-    "",
-    "In text mode, any key presses will display the character at",
-    "the location of the underscore and advance the underscore",
-    "cursor.  Enter your text and once completed press Apply to",
-    "finish your image annotation.  To correct errors press BACK",
-    "SPACE.  To delete an entire line of text, press DELETE.  Any",
-    "text that exceeds the boundaries of the image window is",
-    "automagically continued onto the next line.",
-    "",
-    "The actual color you request for the font is saved in the",
-    "image.  However, the color that appears in your image window",
-    "may be different.  For example, on a monochrome screen the",
-    "text will appear black or white even if you choose the color",
-    "red as the font color.  However, the image saved to a file",
-    "with -write is written with red lettering.  To assure the",
-    "correct color text in the final image, any PseudoClass image",
-    "is promoted to DirectClass (see miff(5)).  To force a",
-    "PseudoClass image to remain PseudoClass, use -colors.",
-    (char *) NULL,
+    "In annotate mode, the Command widget has these options:\n"
+    "\n"
+    "    Font Name\n"
+    "      fixed\n"
+    "      variable\n"
+    "      5x8\n"
+    "      6x10\n"
+    "      7x13bold\n"
+    "      8x13bold\n"
+    "      9x15bold\n"
+    "      10x20\n"
+    "      12x24\n"
+    "      Browser...\n"
+    "    Font Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      transparent\n"
+    "      Browser...\n"
+    "    Font Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      transparent\n"
+    "      Browser...\n"
+    "    Rotate Text\n"
+    "      -90\n"
+    "      -45\n"
+    "      -30\n"
+    "      0\n"
+    "      30\n"
+    "      45\n"
+    "      90\n"
+    "      180\n"
+    "      Dialog...\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a font name from the Font Name sub-menu.  Additional\n"
+    "font names can be specified with the font browser.  You can\n"
+    "change the menu names by setting the X resources font1\n"
+    "through font9.\n"
+    "\n"
+    "Choose a font color from the Font Color sub-menu.\n"
+    "Additional font colors can be specified with the color\n"
+    "browser.  You can change the menu colors by setting the X\n"
+    "resources pen1 through pen9.\n"
+    "\n"
+    "If you select the color browser and press Grab, you can\n"
+    "choose the font color by moving the pointer to the desired\n"
+    "color on the screen and press any button.\n"
+    "\n"
+    "If you choose to rotate the text, choose Rotate Text from the\n"
+    "menu and select an angle.  Typically you will only want to\n"
+    "rotate one line of text at a time.  Depending on the angle you\n"
+    "choose, subsequent lines may end up overwriting each other.\n"
+    "\n"
+    "Choosing a font and its color is optional.  The default font\n"
+    "is fixed and the default color is black.  However, you must\n"
+    "choose a location to begin entering text and press button 1.\n"
+    "An underscore character will appear at the location of the\n"
+    "pointer.  The cursor changes to a pencil to indicate you are\n"
+    "in text mode.  To exit immediately, press Dismiss.\n"
+    "\n"
+    "In text mode, any key presses will display the character at\n"
+    "the location of the underscore and advance the underscore\n"
+    "cursor.  Enter your text and once completed press Apply to\n"
+    "finish your image annotation.  To correct errors press BACK\n"
+    "SPACE.  To delete an entire line of text, press DELETE.  Any\n"
+    "text that exceeds the boundaries of the image window is\n"
+    "automagically continued onto the next line.\n"
+    "\n"
+    "The actual color you request for the font is saved in the\n"
+    "image.  However, the color that appears in your image window\n"
+    "may be different.  For example, on a monochrome screen the\n"
+    "text will appear black or white even if you choose the color\n"
+    "red as the font color.  However, the image saved to a file\n"
+    "with -write is written with red lettering.  To assure the\n"
+    "correct color text in the final image, any PseudoClass image\n"
+    "is promoted to DirectClass (see miff(5)).  To force a\n"
+    "PseudoClass image to remain PseudoClass, use -colors.\n"
   },
-  *ImageChopHelp[] =
+  ImageChopHelp[] =
   {
-    "In chop mode, the Command widget has these options:",
-    "",
-    "    Direction",
-    "      horizontal",
-    "      vertical",
-    "    Help",
-    "    Dismiss",
-    "",
-    "If the you choose the horizontal direction (this the",
-    "default), the area of the image between the two horizontal",
-    "endpoints of the chop line is removed.  Otherwise, the area",
-    "of the image between the two vertical endpoints of the chop",
-    "line is removed.",
-    "",
-    "Select a location within the image window to begin your chop,",
-    "press and hold any button.  Next, move the pointer to",
-    "another location in the image.  As you move a line will",
-    "connect the initial location and the pointer.  When you",
-    "release the button, the area within the image to chop is",
-    "determined by which direction you choose from the Command",
-    "widget.",
-    "",
-    "To cancel the image chopping, move the pointer back to the",
-    "starting point of the line and release the button.",
-    (char *) NULL,
+    "In chop mode, the Command widget has these options:\n"
+    "\n"
+    "    Direction\n"
+    "      horizontal\n"
+    "      vertical\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "If the you choose the horizontal direction (this the\n"
+    "default), the area of the image between the two horizontal\n"
+    "endpoints of the chop line is removed.  Otherwise, the area\n"
+    "of the image between the two vertical endpoints of the chop\n"
+    "line is removed.\n"
+    "\n"
+    "Select a location within the image window to begin your chop,\n"
+    "press and hold any button.  Next, move the pointer to\n"
+    "another location in the image.  As you move a line will\n"
+    "connect the initial location and the pointer.  When you\n"
+    "release the button, the area within the image to chop is\n"
+    "determined by which direction you choose from the Command\n"
+    "widget.\n"
+    "\n"
+    "To cancel the image chopping, move the pointer back to the\n"
+    "starting point of the line and release the button.\n"
   },
-  *ImageColorEditHelp[] =
+  ImageColorEditHelp[] =
   {
-    "In color edit mode, the Command widget has these options:",
-    "",
-    "    Method",
-    "      point",
-    "      replace",
-    "      floodfill",
-    "      filltoborder",
-    "      reset",
-    "    Pixel Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      Browser...",
-    "    Border Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      Browser...",
-    "    Fuzz",
-    "      0%",
-    "      2%",
-    "      5%",
-    "      10%",
-    "      15%",
-    "      Dialog...",
-    "    Undo",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a color editing method from the Method sub-menu",
-    "of the Command widget.  The point method recolors any pixel",
-    "selected with the pointer until the button is released.  The",
-    "replace method recolors any pixel that matches the color of",
-    "the pixel you select with a button press.  Floodfill recolors",
-    "any pixel that matches the color of the pixel you select with",
-    "a button press and is a neighbor.  Whereas filltoborder recolors",
-    "any neighbor pixel that is not the border color.  Finally reset",
-    "changes the entire image to the designated color.",
-    "",
-    "Next, choose a pixel color from the Pixel Color sub-menu.",
-    "Additional pixel colors can be specified with the color",
-    "browser.  You can change the menu colors by setting the X",
-    "resources pen1 through pen9.",
-    "",
-    "Now press button 1 to select a pixel within the image window",
-    "to change its color.  Additional pixels may be recolored as",
-    "prescribed by the method you choose.",
-    "",
-    "If the Magnify widget is mapped, it can be helpful in positioning",
-    "your pointer within the image (refer to button 2).",
-    "",
-    "The actual color you request for the pixels is saved in the",
-    "image.  However, the color that appears in your image window",
-    "may be different.  For example, on a monochrome screen the",
-    "pixel will appear black or white even if you choose the",
-    "color red as the pixel color.  However, the image saved to a",
-    "file with -write is written with red pixels.  To assure the",
-    "correct color text in the final image, any PseudoClass image",
-    "is promoted to DirectClass (see miff(5)).  To force a",
-    "PseudoClass image to remain PseudoClass, use -colors.",
-    (char *) NULL,
+    "In color edit mode, the Command widget has these options:\n"
+    "\n"
+    "    Method\n"
+    "      point\n"
+    "      replace\n"
+    "      floodfill\n"
+    "      filltoborder\n"
+    "      reset\n"
+    "    Pixel Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      Browser...\n"
+    "    Border Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      Browser...\n"
+    "    Fuzz\n"
+    "      0%\n"
+    "      2%\n"
+    "      5%\n"
+    "      10%\n"
+    "      15%\n"
+    "      Dialog...\n"
+    "    Undo\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a color editing method from the Method sub-menu\n"
+    "of the Command widget.  The point method recolors any pixel\n"
+    "selected with the pointer until the button is released.  The\n"
+    "replace method recolors any pixel that matches the color of\n"
+    "the pixel you select with a button press.  Floodfill recolors\n"
+    "any pixel that matches the color of the pixel you select with\n"
+    "a button press and is a neighbor.  Whereas filltoborder recolors\n"
+    "any neighbor pixel that is not the border color.  Finally reset\n"
+    "changes the entire image to the designated color.\n"
+    "\n"
+    "Next, choose a pixel color from the Pixel Color sub-menu.\n"
+    "Additional pixel colors can be specified with the color\n"
+    "browser.  You can change the menu colors by setting the X\n"
+    "resources pen1 through pen9.\n"
+    "\n"
+    "Now press button 1 to select a pixel within the image window\n"
+    "to change its color.  Additional pixels may be recolored as\n"
+    "prescribed by the method you choose.\n"
+    "\n"
+    "If the Magnify widget is mapped, it can be helpful in positioning\n"
+    "your pointer within the image (refer to button 2).\n"
+    "\n"
+    "The actual color you request for the pixels is saved in the\n"
+    "image.  However, the color that appears in your image window\n"
+    "may be different.  For example, on a monochrome screen the\n"
+    "pixel will appear black or white even if you choose the\n"
+    "color red as the pixel color.  However, the image saved to a\n"
+    "file with -write is written with red pixels.  To assure the\n"
+    "correct color text in the final image, any PseudoClass image\n"
+    "is promoted to DirectClass (see miff(5)).  To force a\n"
+    "PseudoClass image to remain PseudoClass, use -colors.\n"
   },
-  *ImageCompositeHelp[] =
+  ImageCompositeHelp[] =
   {
-    "First a widget window is displayed requesting you to enter an",
-    "image name. Press Composite, Grab or type a file name.",
-    "Press Cancel if you choose not to create a composite image.",
-    "When you choose Grab, move the pointer to the desired window",
-    "and press any button.",
-    "",
-    "If the Composite image does not have any matte information,",
-    "you are informed and the file browser is displayed again.",
-    "Enter the name of a mask image.  The image is typically",
-    "grayscale and the same size as the composite image.  If the",
-    "image is not grayscale, it is converted to grayscale and the",
-    "resulting intensities are used as matte information.",
-    "",
-    "A small window appears showing the location of the cursor in",
-    "the image window. You are now in composite mode.  To exit",
-    "immediately, press Dismiss.  In composite mode, the Command",
-    "widget has these options:",
-    "",
-    "    Operators",
-    "      Over",
-    "      In",
-    "      Out",
-    "      Atop",
-    "      Xor",
-    "      Plus",
-    "      Minus",
-    "      Add",
-    "      Subtract",
-    "      Difference",
-    "      Multiply",
-    "      Bumpmap",
-    "      Copy",
-    "      CopyRed",
-    "      CopyGreen",
-    "      CopyBlue",
-    "      CopyOpacity",
-    "      Clear",
-    "    Dissolve",
-    "    Displace",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a composite operation from the Operators sub-menu of",
-    "the Command widget.  How each operator behaves is described",
-    "below.  Image window is the image currently displayed on",
-    "your X server and image is the image obtained with the File",
-    "Browser widget.",
-    "",
-    "Over     The result is the union of the two image shapes,",
-    "         with image obscuring image window in the region of",
-    "         overlap.",
-    "",
-    "In       The result is simply image cut by the shape of",
-    "         image window.  None of the image data of image",
-    "         window is in the result.",
-    "",
-    "Out      The resulting image is image with the shape of",
-    "         image window cut out.",
-    "",
-    "Atop     The result is the same shape as image image window,",
-    "         with image obscuring image window where the image",
-    "         shapes overlap.  Note this differs from over",
-    "         because the portion of image outside image window's",
-    "         shape does not appear in the result.",
-    "",
-    "Xor      The result is the image data from both image and",
-    "         image window that is outside the overlap region.",
-    "         The overlap region is blank.",
-    "",
-    "Plus     The result is just the sum of the image data.",
-    "         Output values are cropped to QuantumRange (no overflow).",
-    "",
-    "Minus    The result of image - image window, with underflow",
-    "         cropped to zero.",
-    "",
-    "Add      The result of image + image window, with overflow",
-    "         wrapping around (mod 256).",
-    "",
-    "Subtract The result of image - image window, with underflow",
-    "         wrapping around (mod 256).  The add and subtract",
-    "         operators can be used to perform reversible",
-    "         transformations.",
-    "",
-    "Difference",
-    "         The result of abs(image - image window).  This",
-    "         useful for comparing two very similar images.",
-    "",
-    "Multiply",
-    "         The result of image * image window.  This",
-    "         useful for the creation of drop-shadows.",
-    "",
-    "Bumpmap  The result of surface normals from image * image",
-    "         window.",
-    "",
-    "Copy     The resulting image is image window replaced with",
-    "         image.  Here the matte information is ignored.",
-    "",
-    "CopyRed  The red layer of the image window is replace with",
-    "         the red layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyGreen",
-    "         The green layer of the image window is replace with",
-    "         the green layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyBlue The blue layer of the image window is replace with",
-    "         the blue layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyOpacity",
-    "         The matte layer of the image window is replace with",
-    "         the matte layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "The image compositor requires a matte, or alpha channel in",
-    "the image for some operations.  This extra channel usually",
-    "defines a mask which represents a sort of a cookie-cutter",
-    "for the image.  This the case when matte is opaque (full",
-    "coverage) for pixels inside the shape, zero outside, and",
-    "between 0 and QuantumRange on the boundary.  If image does not",
-    "have a matte channel, it is initialized with 0 for any pixel",
-    "matching in color to pixel location (0,0), otherwise QuantumRange.",
-    "",
-    "If you choose Dissolve, the composite operator becomes Over.  The",
-    "image matte channel percent transparency is initialized to factor.",
-    "The image window is initialized to (100-factor). Where factor is the",
-    "value you specify in the Dialog widget.",
-    "",
-    "Displace shifts the image pixels as defined by a displacement",
-    "map.  With this option, image is used as a displacement map.",
-    "Black, within the displacement map, is a maximum positive",
-    "displacement.  White is a maximum negative displacement and",
-    "middle gray is neutral.  The displacement is scaled to determine",
-    "the pixel shift.  By default, the displacement applies in both the",
-    "horizontal and vertical directions.  However, if you specify a mask,",
-    "image is the horizontal X displacement and mask the vertical Y",
-    "displacement.",
-    "",
-    "Note that matte information for image window is not retained",
-    "for colormapped X server visuals (e.g. StaticColor,",
-    "StaticColor, GrayScale, PseudoColor).  Correct compositing",
-    "behavior may require a TrueColor or DirectColor visual or a",
-    "Standard Colormap.",
-    "",
-    "Choosing a composite operator is optional.  The default",
-    "operator is replace.  However, you must choose a location to",
-    "composite your image and press button 1.  Press and hold the",
-    "button before releasing and an outline of the image will",
-    "appear to help you identify your location.",
-    "",
-    "The actual colors of the composite image is saved.  However,",
-    "the color that appears in image window may be different.",
-    "For example, on a monochrome screen image window will appear",
-    "black or white even though your composited image may have",
-    "many colors.  If the image is saved to a file it is written",
-    "with the correct colors.  To assure the correct colors are",
-    "saved in the final image, any PseudoClass image is promoted",
-    "to DirectClass (see miff(5)).  To force a PseudoClass image",
-    "to remain PseudoClass, use -colors.",
-    (char *) NULL,
+    "First a widget window is displayed requesting you to enter an\n"
+    "image name. Press Composite, Grab or type a file name.\n"
+    "Press Cancel if you choose not to create a composite image.\n"
+    "When you choose Grab, move the pointer to the desired window\n"
+    "and press any button.\n"
+    "\n"
+    "If the Composite image does not have any matte information,\n"
+    "you are informed and the file browser is displayed again.\n"
+    "Enter the name of a mask image.  The image is typically\n"
+    "grayscale and the same size as the composite image.  If the\n"
+    "image is not grayscale, it is converted to grayscale and the\n"
+    "resulting intensities are used as matte information.\n"
+    "\n"
+    "A small window appears showing the location of the cursor in\n"
+    "the image window. You are now in composite mode.  To exit\n"
+    "immediately, press Dismiss.  In composite mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Operators\n"
+    "      Over\n"
+    "      In\n"
+    "      Out\n"
+    "      Atop\n"
+    "      Xor\n"
+    "      Plus\n"
+    "      Minus\n"
+    "      Add\n"
+    "      Subtract\n"
+    "      Difference\n"
+    "      Multiply\n"
+    "      Bumpmap\n"
+    "      Copy\n"
+    "      CopyRed\n"
+    "      CopyGreen\n"
+    "      CopyBlue\n"
+    "      CopyOpacity\n"
+    "      Clear\n"
+    "    Dissolve\n"
+    "    Displace\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a composite operation from the Operators sub-menu of\n"
+    "the Command widget.  How each operator behaves is described\n"
+    "below.  Image window is the image currently displayed on\n"
+    "your X server and image is the image obtained with the File\n"
+    "Browser widget.\n"
+    "\n"
+    "Over     The result is the union of the two image shapes,\n"
+    "         with image obscuring image window in the region of\n"
+    "         overlap.\n"
+    "\n"
+    "In       The result is simply image cut by the shape of\n"
+    "         image window.  None of the image data of image\n"
+    "         window is in the result.\n"
+    "\n"
+    "Out      The resulting image is image with the shape of\n"
+    "         image window cut out.\n"
+    "\n"
+    "Atop     The result is the same shape as image image window,\n"
+    "         with image obscuring image window where the image\n"
+    "         shapes overlap.  Note this differs from over\n"
+    "         because the portion of image outside image window's\n"
+    "         shape does not appear in the result.\n"
+    "\n"
+    "Xor      The result is the image data from both image and\n"
+    "         image window that is outside the overlap region.\n"
+    "         The overlap region is blank.\n"
+    "\n"
+    "Plus     The result is just the sum of the image data.\n"
+    "         Output values are cropped to QuantumRange (no overflow).\n"
+    "\n"
+    "Minus    The result of image - image window, with underflow\n"
+    "         cropped to zero.\n"
+    "\n"
+    "Add      The result of image + image window, with overflow\n"
+    "         wrapping around (mod 256).\n"
+    "\n"
+    "Subtract The result of image - image window, with underflow\n"
+    "         wrapping around (mod 256).  The add and subtract\n"
+    "         operators can be used to perform reversible\n"
+    "         transformations.\n"
+    "\n"
+    "Difference\n"
+    "         The result of abs(image - image window).  This\n"
+    "         useful for comparing two very similar images.\n"
+    "\n"
+    "Multiply\n"
+    "         The result of image * image window.  This\n"
+    "         useful for the creation of drop-shadows.\n"
+    "\n"
+    "Bumpmap  The result of surface normals from image * image\n"
+    "         window.\n"
+    "\n"
+    "Copy     The resulting image is image window replaced with\n"
+    "         image.  Here the matte information is ignored.\n"
+    "\n"
+    "CopyRed  The red layer of the image window is replace with\n"
+    "         the red layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyGreen\n"
+    "         The green layer of the image window is replace with\n"
+    "         the green layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyBlue The blue layer of the image window is replace with\n"
+    "         the blue layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyOpacity\n"
+    "         The matte layer of the image window is replace with\n"
+    "         the matte layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "The image compositor requires a matte, or alpha channel in\n"
+    "the image for some operations.  This extra channel usually\n"
+    "defines a mask which represents a sort of a cookie-cutter\n"
+    "for the image.  This the case when matte is opaque (full\n"
+    "coverage) for pixels inside the shape, zero outside, and\n"
+    "between 0 and QuantumRange on the boundary.  If image does not\n"
+    "have a matte channel, it is initialized with 0 for any pixel\n"
+    "matching in color to pixel location (0,0), otherwise QuantumRange.\n"
+    "\n"
+    "If you choose Dissolve, the composite operator becomes Over.  The\n"
+    "image matte channel percent transparency is initialized to factor.\n"
+    "The image window is initialized to (100-factor). Where factor is the\n"
+    "value you specify in the Dialog widget.\n"
+    "\n"
+    "Displace shifts the image pixels as defined by a displacement\n"
+    "map.  With this option, image is used as a displacement map.\n"
+    "Black, within the displacement map, is a maximum positive\n"
+    "displacement.  White is a maximum negative displacement and\n"
+    "middle gray is neutral.  The displacement is scaled to determine\n"
+    "the pixel shift.  By default, the displacement applies in both the\n"
+    "horizontal and vertical directions.  However, if you specify a mask,\n"
+    "image is the horizontal X displacement and mask the vertical Y\n"
+    "displacement.\n"
+    "\n"
+    "Note that matte information for image window is not retained\n"
+    "for colormapped X server visuals (e.g. StaticColor,\n"
+    "StaticColor, GrayScale, PseudoColor).  Correct compositing\n"
+    "behavior may require a TrueColor or DirectColor visual or a\n"
+    "Standard Colormap.\n"
+    "\n"
+    "Choosing a composite operator is optional.  The default\n"
+    "operator is replace.  However, you must choose a location to\n"
+    "composite your image and press button 1.  Press and hold the\n"
+    "button before releasing and an outline of the image will\n"
+    "appear to help you identify your location.\n"
+    "\n"
+    "The actual colors of the composite image is saved.  However,\n"
+    "the color that appears in image window may be different.\n"
+    "For example, on a monochrome screen image window will appear\n"
+    "black or white even though your composited image may have\n"
+    "many colors.  If the image is saved to a file it is written\n"
+    "with the correct colors.  To assure the correct colors are\n"
+    "saved in the final image, any PseudoClass image is promoted\n"
+    "to DirectClass (see miff(5)).  To force a PseudoClass image\n"
+    "to remain PseudoClass, use -colors.\n"
   },
-  *ImageCutHelp[] =
+  ImageCutHelp[] =
   {
-    "In cut mode, the Command widget has these options:",
-    "",
-    "    Help",
-    "    Dismiss",
-    "",
-    "To define a cut region, press button 1 and drag.  The",
-    "cut region is defined by a highlighted rectangle that",
-    "expands or contracts as it follows the pointer.  Once you",
-    "are satisfied with the cut region, release the button.",
-    "You are now in rectify mode.  In rectify mode, the Command",
-    "widget has these options:",
-    "",
-    "    Cut",
-    "    Help",
-    "    Dismiss",
-    "",
-    "You can make adjustments by moving the pointer to one of the",
-    "cut rectangle corners, pressing a button, and dragging.",
-    "Finally, press Cut to commit your copy region.  To",
-    "exit without cutting the image, press Dismiss.",
-    (char *) NULL,
+    "In cut mode, the Command widget has these options:\n"
+    "\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "To define a cut region, press button 1 and drag.  The\n"
+    "cut region is defined by a highlighted rectangle that\n"
+    "expands or contracts as it follows the pointer.  Once you\n"
+    "are satisfied with the cut region, release the button.\n"
+    "You are now in rectify mode.  In rectify mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Cut\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "You can make adjustments by moving the pointer to one of the\n"
+    "cut rectangle corners, pressing a button, and dragging.\n"
+    "Finally, press Cut to commit your copy region.  To\n"
+    "exit without cutting the image, press Dismiss.\n"
   },
-  *ImageCopyHelp[] =
+  ImageCopyHelp[] =
   {
-    "In copy mode, the Command widget has these options:",
-    "",
-    "    Help",
-    "    Dismiss",
-    "",
-    "To define a copy region, press button 1 and drag.  The",
-    "copy region is defined by a highlighted rectangle that",
-    "expands or contracts as it follows the pointer.  Once you",
-    "are satisfied with the copy region, release the button.",
-    "You are now in rectify mode.  In rectify mode, the Command",
-    "widget has these options:",
-    "",
-    "    Copy",
-    "    Help",
-    "    Dismiss",
-    "",
-    "You can make adjustments by moving the pointer to one of the",
-    "copy rectangle corners, pressing a button, and dragging.",
-    "Finally, press Copy to commit your copy region.  To",
-    "exit without copying the image, press Dismiss.",
-    (char *) NULL,
+    "In copy mode, the Command widget has these options:\n"
+    "\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "To define a copy region, press button 1 and drag.  The\n"
+    "copy region is defined by a highlighted rectangle that\n"
+    "expands or contracts as it follows the pointer.  Once you\n"
+    "are satisfied with the copy region, release the button.\n"
+    "You are now in rectify mode.  In rectify mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Copy\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "You can make adjustments by moving the pointer to one of the\n"
+    "copy rectangle corners, pressing a button, and dragging.\n"
+    "Finally, press Copy to commit your copy region.  To\n"
+    "exit without copying the image, press Dismiss.\n"
   },
-  *ImageCropHelp[] =
+  ImageCropHelp[] =
   {
-    "In crop mode, the Command widget has these options:",
-    "",
-    "    Help",
-    "    Dismiss",
-    "",
-    "To define a cropping region, press button 1 and drag.  The",
-    "cropping region is defined by a highlighted rectangle that",
-    "expands or contracts as it follows the pointer.  Once you",
-    "are satisfied with the cropping region, release the button.",
-    "You are now in rectify mode.  In rectify mode, the Command",
-    "widget has these options:",
-    "",
-    "    Crop",
-    "    Help",
-    "    Dismiss",
-    "",
-    "You can make adjustments by moving the pointer to one of the",
-    "cropping rectangle corners, pressing a button, and dragging.",
-    "Finally, press Crop to commit your cropping region.  To",
-    "exit without cropping the image, press Dismiss.",
-    (char *) NULL,
+    "In crop mode, the Command widget has these options:\n"
+    "\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "To define a cropping region, press button 1 and drag.  The\n"
+    "cropping region is defined by a highlighted rectangle that\n"
+    "expands or contracts as it follows the pointer.  Once you\n"
+    "are satisfied with the cropping region, release the button.\n"
+    "You are now in rectify mode.  In rectify mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Crop\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "You can make adjustments by moving the pointer to one of the\n"
+    "cropping rectangle corners, pressing a button, and dragging.\n"
+    "Finally, press Crop to commit your cropping region.  To\n"
+    "exit without cropping the image, press Dismiss.\n"
   },
-  *ImageDrawHelp[] =
+  ImageDrawHelp[] =
   {
-    "The cursor changes to a crosshair to indicate you are in",
-    "draw mode.  To exit immediately, press Dismiss.  In draw mode,",
-    "the Command widget has these options:",
-    "",
-    "    Element",
-    "      point",
-    "      line",
-    "      rectangle",
-    "      fill rectangle",
-    "      circle",
-    "      fill circle",
-    "      ellipse",
-    "      fill ellipse",
-    "      polygon",
-    "      fill polygon",
-    "    Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      transparent",
-    "      Browser...",
-    "    Stipple",
-    "      Brick",
-    "      Diagonal",
-    "      Scales",
-    "      Vertical",
-    "      Wavy",
-    "      Translucent",
-    "      Opaque",
-    "      Open...",
-    "    Width",
-    "      1",
-    "      2",
-    "      4",
-    "      8",
-    "      16",
-    "      Dialog...",
-    "    Undo",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a drawing primitive from the Element sub-menu.",
-    "",
-    "Choose a color from the Color sub-menu.  Additional",
-    "colors can be specified with the color browser.",
-    "",
-    "If you choose the color browser and press Grab, you can",
-    "select the color by moving the pointer to the desired",
-    "color on the screen and press any button.  The transparent",
-    "color updates the image matte channel and is useful for",
-    "image compositing.",
-    "",
-    "Choose a stipple, if appropriate, from the Stipple sub-menu.",
-    "Additional stipples can be specified with the file browser.",
-    "Stipples obtained from the file browser must be on disk in the",
-    "X11 bitmap format.",
-    "",
-    "Choose a width, if appropriate, from the Width sub-menu.  To",
-    "choose a specific width select the Dialog widget.",
-    "",
-    "Choose a point in the Image window and press button 1 and",
-    "hold.  Next, move the pointer to another location in the",
-    "image.  As you move, a line connects the initial location and",
-    "the pointer.  When you release the button, the image is",
-    "updated with the primitive you just drew.  For polygons, the",
-    "image is updated when you press and release the button without",
-    "moving the pointer.",
-    "",
-    "To cancel image drawing, move the pointer back to the",
-    "starting point of the line and release the button.",
-    (char *) NULL,
+    "The cursor changes to a crosshair to indicate you are in\n"
+    "draw mode.  To exit immediately, press Dismiss.  In draw mode,\n"
+    "the Command widget has these options:\n"
+    "\n"
+    "    Element\n"
+    "      point\n"
+    "      line\n"
+    "      rectangle\n"
+    "      fill rectangle\n"
+    "      circle\n"
+    "      fill circle\n"
+    "      ellipse\n"
+    "      fill ellipse\n"
+    "      polygon\n"
+    "      fill polygon\n"
+    "    Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      transparent\n"
+    "      Browser...\n"
+    "    Stipple\n"
+    "      Brick\n"
+    "      Diagonal\n"
+    "      Scales\n"
+    "      Vertical\n"
+    "      Wavy\n"
+    "      Translucent\n"
+    "      Opaque\n"
+    "      Open...\n"
+    "    Width\n"
+    "      1\n"
+    "      2\n"
+    "      4\n"
+    "      8\n"
+    "      16\n"
+    "      Dialog...\n"
+    "    Undo\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a drawing primitive from the Element sub-menu.\n"
+    "\n"
+    "Choose a color from the Color sub-menu.  Additional\n"
+    "colors can be specified with the color browser.\n"
+    "\n"
+    "If you choose the color browser and press Grab, you can\n"
+    "select the color by moving the pointer to the desired\n"
+    "color on the screen and press any button.  The transparent\n"
+    "color updates the image matte channel and is useful for\n"
+    "image compositing.\n"
+    "\n"
+    "Choose a stipple, if appropriate, from the Stipple sub-menu.\n"
+    "Additional stipples can be specified with the file browser.\n"
+    "Stipples obtained from the file browser must be on disk in the\n"
+    "X11 bitmap format.\n"
+    "\n"
+    "Choose a width, if appropriate, from the Width sub-menu.  To\n"
+    "choose a specific width select the Dialog widget.\n"
+    "\n"
+    "Choose a point in the Image window and press button 1 and\n"
+    "hold.  Next, move the pointer to another location in the\n"
+    "image.  As you move, a line connects the initial location and\n"
+    "the pointer.  When you release the button, the image is\n"
+    "updated with the primitive you just drew.  For polygons, the\n"
+    "image is updated when you press and release the button without\n"
+    "moving the pointer.\n"
+    "\n"
+    "To cancel image drawing, move the pointer back to the\n"
+    "starting point of the line and release the button.\n"
   },
-  *DisplayHelp[] =
+  DisplayHelp[] =
   {
-    "BUTTONS",
-    "  The effects of each button press is described below.  Three",
-    "  buttons are required.  If you have a two button mouse,",
-    "  button 1 and 3 are returned.  Press ALT and button 3 to",
-    "  simulate button 2.",
-    "",
-    "  1    Press this button to map or unmap the Command widget.",
-    "",
-    "  2    Press and drag to define a region of the image to",
-    "       magnify.",
-    "",
-    "  3    Press and drag to choose from a select set of commands.",
-    "       This button behaves differently if the image being",
-    "       displayed is a visual image directory.  Here, choose a",
-    "       particular tile of the directory and press this button and",
-    "       drag to select a command from a pop-up menu.  Choose from",
-    "       these menu items:",
-    "",
-    "           Open",
-    "           Next",
-    "           Former",
-    "           Delete",
-    "           Update",
-    "",
-    "       If you choose Open, the image represented by the tile is",
-    "       displayed.  To return to the visual image directory, choose",
-    "       Next from the Command widget.  Next and Former moves to the",
-    "       next or former image respectively.  Choose Delete to delete",
-    "       a particular image tile.  Finally, choose Update to",
-    "       synchronize all the image tiles with their respective",
-    "       images.",
-    "",
-    "COMMAND WIDGET",
-    "  The Command widget lists a number of sub-menus and commands.",
-    "  They are",
-    "",
-    "      File",
-    "        Open...",
-    "        Next",
-    "        Former",
-    "        Select...",
-    "        Save...",
-    "        Print...",
-    "        Delete...",
-    "        New...",
-    "        Visual Directory...",
-    "        Quit",
-    "      Edit",
-    "        Undo",
-    "        Redo",
-    "        Cut",
-    "        Copy",
-    "        Paste",
-    "      View",
-    "        Half Size",
-    "        Original Size",
-    "        Double Size",
-    "        Resize...",
-    "        Apply",
-    "        Refresh",
-    "        Restore",
-    "      Transform",
-    "        Crop",
-    "        Chop",
-    "        Flop",
-    "        Flip",
-    "        Rotate Right",
-    "        Rotate Left",
-    "        Rotate...",
-    "        Shear...",
-    "        Roll...",
-    "        Trim Edges",
-    "      Enhance",
-    "        Brightness...",
-    "        Saturation...",
-    "        Hue...",
-    "        Gamma...",
-    "        Sharpen...",
-    "        Dull",
-    "        Contrast Stretch...",
-    "        Sigmoidal Contrast...",
-    "        Normalize",
-    "        Equalize",
-    "        Negate",
-    "        Grayscale",
-    "        Map...",
-    "        Quantize...",
-    "      Effects",
-    "        Despeckle",
-    "        Emboss",
-    "        Reduce Noise",
-    "        Add Noise",
-    "        Sharpen...",
-    "        Blur...",
-    "        Threshold...",
-    "        Edge Detect...",
-    "        Spread...",
-    "        Shade...",
-    "        Painting...",
-    "        Segment...",
-    "      F/X",
-    "        Solarize...",
-    "        Sepia Tone...",
-    "        Swirl...",
-    "        Implode...",
-    "        Vignette...",
-    "        Wave...",
-    "        Oil Painting...",
-    "        Charcoal Drawing...",
-    "      Image Edit",
-    "        Annotate...",
-    "        Draw...",
-    "        Color...",
-    "        Matte...",
-    "        Composite...",
-    "        Add Border...",
-    "        Add Frame...",
-    "        Comment...",
-    "        Launch...",
-    "        Region of Interest...",
-    "      Miscellany",
-    "        Image Info",
-    "        Zoom Image",
-    "        Show Preview...",
-    "        Show Histogram",
-    "        Show Matte",
-    "        Background...",
-    "        Slide Show",
-    "        Preferences...",
-    "      Help",
-    "        Overview",
-    "        Browse Documentation",
-    "        About Display",
-    "",
-    "  Menu items with a indented triangle have a sub-menu.  They",
-    "  are represented above as the indented items.  To access a",
-    "  sub-menu item, move the pointer to the appropriate menu and",
-    "  press a button and drag.  When you find the desired sub-menu",
-    "  item, release the button and the command is executed.  Move",
-    "  the pointer away from the sub-menu if you decide not to",
-    "  execute a particular command.",
-    "",
-    "KEYBOARD ACCELERATORS",
-    "  Accelerators are one or two key presses that effect a",
-    "  particular command.  The keyboard accelerators that",
-    "  display(1) understands is:",
-    "",
-    "  Ctl+O     Press to open an image from a file.",
-    "",
-    "  space     Press to display the next image.",
-    "",
-    "            If the image is a multi-paged document such as a Postscript",
-    "            document, you can skip ahead several pages by preceding",
-    "            this command with a number.  For example to display the",
-    "            third page beyond the current page, press 3<space>.",
-    "",
-    "  backspace Press to display the former image.",
-    "",
-    "            If the image is a multi-paged document such as a Postscript",
-    "            document, you can skip behind several pages by preceding",
-    "            this command with a number.  For example to display the",
-    "            third page preceding the current page, press 3<backspace>.",
-    "",
-    "  Ctl+S     Press to write the image to a file.",
-    "",
-    "  Ctl+P     Press to print the image to a Postscript printer.",
-    "",
-    "  Ctl+D     Press to delete an image file.",
-    "",
-    "  Ctl+N     Press to create a blank canvas.",
-    "",
-    "  Ctl+Q     Press to discard all images and exit program.",
-    "",
-    "  Ctl+Z     Press to undo last image transformation.",
-    "",
-    "  Ctl+R     Press to redo last image transformation.",
-    "",
-    "  Ctl+X     Press to cut a region of the image.",
-    "",
-    "  Ctl+C     Press to copy a region of the image.",
-    "",
-    "  Ctl+V     Press to paste a region to the image.",
-    "",
-    "  <         Press to half the image size.",
-    "",
-    "  -         Press to return to the original image size.",
-    "",
-    "  >         Press to double the image size.",
-    "",
-    "  %         Press to resize the image to a width and height you",
-    "            specify.",
-    "",
+    "BUTTONS\n"
+    "  The effects of each button press is described below.  Three\n"
+    "  buttons are required.  If you have a two button mouse,\n"
+    "  button 1 and 3 are returned.  Press ALT and button 3 to\n"
+    "  simulate button 2.\n"
+    "\n"
+    "  1    Press this button to map or unmap the Command widget.\n"
+    "\n"
+    "  2    Press and drag to define a region of the image to\n"
+    "       magnify.\n"
+    "\n"
+    "  3    Press and drag to choose from a select set of commands.\n"
+    "       This button behaves differently if the image being\n"
+    "       displayed is a visual image directory.  Here, choose a\n"
+    "       particular tile of the directory and press this button and\n"
+    "       drag to select a command from a pop-up menu.  Choose from\n"
+    "       these menu items:\n"
+    "\n"
+    "           Open\n"
+    "           Next\n"
+    "           Former\n"
+    "           Delete\n"
+    "           Update\n"
+    "\n"
+    "       If you choose Open, the image represented by the tile is\n"
+    "       displayed.  To return to the visual image directory, choose\n"
+    "       Next from the Command widget.  Next and Former moves to the\n"
+    "       next or former image respectively.  Choose Delete to delete\n"
+    "       a particular image tile.  Finally, choose Update to\n"
+    "       synchronize all the image tiles with their respective\n"
+    "       images.\n"
+    "\n"
+    "COMMAND WIDGET\n"
+    "  The Command widget lists a number of sub-menus and commands.\n"
+    "  They are\n"
+    "\n"
+    "      File\n"
+    "        Open...\n"
+    "        Next\n"
+    "        Former\n"
+    "        Select...\n"
+    "        Save...\n"
+    "        Print...\n"
+    "        Delete...\n"
+    "        New...\n"
+    "        Visual Directory...\n"
+    "        Quit\n"
+    "      Edit\n"
+    "        Undo\n"
+    "        Redo\n"
+    "        Cut\n"
+    "        Copy\n"
+    "        Paste\n"
+    "      View\n"
+    "        Half Size\n"
+    "        Original Size\n"
+    "        Double Size\n"
+    "        Resize...\n"
+    "        Apply\n"
+    "        Refresh\n"
+    "        Restore\n"
+    "      Transform\n"
+    "        Crop\n"
+    "        Chop\n"
+    "        Flop\n"
+    "        Flip\n"
+    "        Rotate Right\n"
+    "        Rotate Left\n"
+    "        Rotate...\n"
+    "        Shear...\n"
+    "        Roll...\n"
+    "        Trim Edges\n"
+    "      Enhance\n"
+    "        Brightness...\n"
+    "        Saturation...\n"
+    "        Hue...\n"
+    "        Gamma...\n"
+    "        Sharpen...\n"
+    "        Dull\n"
+    "        Contrast Stretch...\n"
+    "        Sigmoidal Contrast...\n"
+    "        Normalize\n"
+    "        Equalize\n"
+    "        Negate\n"
+    "        Grayscale\n"
+    "        Map...\n"
+    "        Quantize...\n"
+    "      Effects\n"
+    "        Despeckle\n"
+    "        Emboss\n"
+    "        Reduce Noise\n"
+    "        Add Noise\n"
+    "        Sharpen...\n"
+    "        Blur...\n"
+    "        Threshold...\n"
+    "        Edge Detect...\n"
+    "        Spread...\n"
+    "        Shade...\n"
+    "        Painting...\n"
+    "        Segment...\n"
+    "      F/X\n"
+    "        Solarize...\n"
+    "        Sepia Tone...\n"
+    "        Swirl...\n"
+    "        Implode...\n"
+    "        Vignette...\n"
+    "        Wave...\n"
+    "        Oil Painting...\n"
+    "        Charcoal Drawing...\n"
+    "      Image Edit\n"
+    "        Annotate...\n"
+    "        Draw...\n"
+    "        Color...\n"
+    "        Matte...\n"
+    "        Composite...\n"
+    "        Add Border...\n"
+    "        Add Frame...\n"
+    "        Comment...\n"
+    "        Launch...\n"
+    "        Region of Interest...\n"
+    "      Miscellany\n"
+    "        Image Info\n"
+    "        Zoom Image\n"
+    "        Show Preview...\n"
+    "        Show Histogram\n"
+    "        Show Matte\n"
+    "        Background...\n"
+    "        Slide Show\n"
+    "        Preferences...\n"
+    "      Help\n"
+    "        Overview\n"
+    "        Browse Documentation\n"
+    "        About Display\n"
+    "\n"
+    "  Menu items with a indented triangle have a sub-menu.  They\n"
+    "  are represented above as the indented items.  To access a\n"
+    "  sub-menu item, move the pointer to the appropriate menu and\n"
+    "  press a button and drag.  When you find the desired sub-menu\n"
+    "  item, release the button and the command is executed.  Move\n"
+    "  the pointer away from the sub-menu if you decide not to\n"
+    "  execute a particular command.\n"
+    "\n"
+    "KEYBOARD ACCELERATORS\n"
+    "  Accelerators are one or two key presses that effect a\n"
+    "  particular command.  The keyboard accelerators that\n"
+    "  display(1) understands is:\n"
+    "\n"
+    "  Ctl+O     Press to open an image from a file.\n"
+    "\n"
+    "  space     Press to display the next image.\n"
+    "\n"
+    "            If the image is a multi-paged document such as a Postscript\n"
+    "            document, you can skip ahead several pages by preceding\n"
+    "            this command with a number.  For example to display the\n"
+    "            third page beyond the current page, press 3<space>.\n"
+    "\n"
+    "  backspace Press to display the former image.\n"
+    "\n"
+    "            If the image is a multi-paged document such as a Postscript\n"
+    "            document, you can skip behind several pages by preceding\n"
+    "            this command with a number.  For example to display the\n"
+    "            third page preceding the current page, press 3<backspace>.\n"
+    "\n"
+    "  Ctl+S     Press to write the image to a file.\n"
+    "\n"
+    "  Ctl+P     Press to print the image to a Postscript printer.\n"
+    "\n"
+    "  Ctl+D     Press to delete an image file.\n"
+    "\n"
+    "  Ctl+N     Press to create a blank canvas.\n"
+    "\n"
+    "  Ctl+Q     Press to discard all images and exit program.\n"
+    "\n"
+    "  Ctl+Z     Press to undo last image transformation.\n"
+    "\n"
+    "  Ctl+R     Press to redo last image transformation.\n"
+    "\n"
+    "  Ctl+X     Press to cut a region of the image.\n"
+    "\n"
+    "  Ctl+C     Press to copy a region of the image.\n"
+    "\n"
+    "  Ctl+V     Press to paste a region to the image.\n"
+    "\n"
+    "  <         Press to half the image size.\n"
+    "\n"
+    "  -         Press to return to the original image size.\n"
+    "\n"
+    "  >         Press to double the image size.\n"
+    "\n"
+    "  %         Press to resize the image to a width and height you\n"
+    "            specify.\n"
+    "\n"
     "Cmd-A       Press to make any image transformations permanent."
-    "",
-    "            By default, any image size transformations are applied",
-    "            to the original image to create the image displayed on",
-    "            the X server.  However, the transformations are not",
-    "            permanent (i.e. the original image does not change",
-    "            size only the X image does).  For example, if you",
-    "            press > the X image will appear to double in size,",
-    "            but the original image will in fact remain the same size.",
-    "            To force the original image to double in size, press >",
-    "            followed by Cmd-A.",
-    "",
-    "  @         Press to refresh the image window.",
-    "",
-    "  C         Press to cut out a rectangular region of the image.",
-    "",
-    "  [         Press to chop the image.",
-    "",
-    "  H         Press to flop image in the horizontal direction.",
-    "",
-    "  V         Press to flip image in the vertical direction.",
-    "",
-    "  /         Press to rotate the image 90 degrees clockwise.",
-    "",
-    " \\         Press to rotate the image 90 degrees counter-clockwise.",
-    "",
-    "  *         Press to rotate the image the number of degrees you",
-    "            specify.",
-    "",
-    "  S         Press to shear the image the number of degrees you",
-    "            specify.",
-    "",
-    "  R         Press to roll the image.",
-    "",
-    "  T         Press to trim the image edges.",
-    "",
-    "  Shft-H    Press to vary the image hue.",
-    "",
-    "  Shft-S    Press to vary the color saturation.",
-    "",
-    "  Shft-L    Press to vary the color brightness.",
-    "",
-    "  Shft-G    Press to gamma correct the image.",
-    "",
-    "  Shft-C    Press to sharpen the image contrast.",
-    "",
-    "  Shft-Z    Press to dull the image contrast.",
-    "",
-    "  =         Press to perform histogram equalization on the image.",
-    "",
-    "  Shft-N    Press to perform histogram normalization on the image.",
-    "",
-    "  Shft-~    Press to negate the colors of the image.",
-    "",
-    "  .         Press to convert the image colors to gray.",
-    "",
-    "  Shft-#    Press to set the maximum number of unique colors in the",
-    "            image.",
-    "",
-    "  F2        Press to reduce the speckles in an image.",
-    "",
-    "  F3        Press to eliminate peak noise from an image.",
-    "",
-    "  F4        Press to add noise to an image.",
-    "",
-    "  F5        Press to sharpen an image.",
-    "",
-    "  F6        Press to delete an image file.",
-    "",
-    "  F7        Press to threshold the image.",
-    "",
-    "  F8        Press to detect edges within an image.",
-    "",
-    "  F9        Press to emboss an image.",
-    "",
-    "  F10       Press to displace pixels by a random amount.",
-    "",
-    "  F11       Press to negate all pixels above the threshold level.",
-    "",
-    "  F12       Press to shade the image using a distant light source.",
-    "",
-    "  F13       Press to lighten or darken image edges to create a 3-D effect.",
-    "",
-    "  F14       Press to segment the image by color.",
-    "",
-    "  Meta-S    Press to swirl image pixels about the center.",
-    "",
-    "  Meta-I    Press to implode image pixels about the center.",
-    "",
-    "  Meta-W    Press to alter an image along a sine wave.",
-    "",
-    "  Meta-P    Press to simulate an oil painting.",
-    "",
-    "  Meta-C    Press to simulate a charcoal drawing.",
-    "",
-    "  Alt-A     Press to annotate the image with text.",
-    "",
-    "  Alt-D     Press to draw on an image.",
-    "",
-    "  Alt-P     Press to edit an image pixel color.",
-    "",
-    "  Alt-M     Press to edit the image matte information.",
-    "",
-    "  Alt-V     Press to composite the image with another.",
-    "",
-    "  Alt-B     Press to add a border to the image.",
-    "",
-    "  Alt-F     Press to add an ornamental border to the image.",
-    "",
-    "  Alt-Shft-!",
-    "            Press to add an image comment.",
-    "",
-    "  Ctl-A     Press to apply image processing techniques to a region",
-    "            of interest.",
-    "",
-    "  Shft-?    Press to display information about the image.",
-    "",
-    "  Shft-+    Press to map the zoom image window.",
-    "",
-    "  Shft-P    Press to preview an image enhancement, effect, or f/x.",
-    "",
-    "  F1        Press to display helpful information about display(1).",
-    "",
-    "  Find      Press to browse documentation about ImageMagick.",
-    "",
-    "  1-9       Press to change the level of magnification.",
-    "",
-    "  Use the arrow keys to move the image one pixel up, down,",
-    "  left, or right within the magnify window.  Be sure to first",
-    "  map the magnify window by pressing button 2.",
-    "",
-    "  Press ALT and one of the arrow keys to trim off one pixel",
-    "  from any side of the image.",
-    (char *) NULL,
+    "\n"
+    "            By default, any image size transformations are applied\n"
+    "            to the original image to create the image displayed on\n"
+    "            the X server.  However, the transformations are not\n"
+    "            permanent (i.e. the original image does not change\n"
+    "            size only the X image does).  For example, if you\n"
+    "            press > the X image will appear to double in size,\n"
+    "            but the original image will in fact remain the same size.\n"
+    "            To force the original image to double in size, press >\n"
+    "            followed by Cmd-A.\n"
+    "\n"
+    "  @         Press to refresh the image window.\n"
+    "\n"
+    "  C         Press to cut out a rectangular region of the image.\n"
+    "\n"
+    "  [         Press to chop the image.\n"
+    "\n"
+    "  H         Press to flop image in the horizontal direction.\n"
+    "\n"
+    "  V         Press to flip image in the vertical direction.\n"
+    "\n"
+    "  /         Press to rotate the image 90 degrees clockwise.\n"
+    "\n"
+    " \\         Press to rotate the image 90 degrees counter-clockwise.\n"
+    "\n"
+    "  *         Press to rotate the image the number of degrees you\n"
+    "            specify.\n"
+    "\n"
+    "  S         Press to shear the image the number of degrees you\n"
+    "            specify.\n"
+    "\n"
+    "  R         Press to roll the image.\n"
+    "\n"
+    "  T         Press to trim the image edges.\n"
+    "\n"
+    "  Shft-H    Press to vary the image hue.\n"
+    "\n"
+    "  Shft-S    Press to vary the color saturation.\n"
+    "\n"
+    "  Shft-L    Press to vary the color brightness.\n"
+    "\n"
+    "  Shft-G    Press to gamma correct the image.\n"
+    "\n"
+    "  Shft-C    Press to sharpen the image contrast.\n"
+    "\n"
+    "  Shft-Z    Press to dull the image contrast.\n"
+    "\n"
+    "  =         Press to perform histogram equalization on the image.\n"
+    "\n"
+    "  Shft-N    Press to perform histogram normalization on the image.\n"
+    "\n"
+    "  Shft-~    Press to negate the colors of the image.\n"
+    "\n"
+    "  .         Press to convert the image colors to gray.\n"
+    "\n"
+    "  Shft-#    Press to set the maximum number of unique colors in the\n"
+    "            image.\n"
+    "\n"
+    "  F2        Press to reduce the speckles in an image.\n"
+    "\n"
+    "  F3        Press to eliminate peak noise from an image.\n"
+    "\n"
+    "  F4        Press to add noise to an image.\n"
+    "\n"
+    "  F5        Press to sharpen an image.\n"
+    "\n"
+    "  F6        Press to delete an image file.\n"
+    "\n"
+    "  F7        Press to threshold the image.\n"
+    "\n"
+    "  F8        Press to detect edges within an image.\n"
+    "\n"
+    "  F9        Press to emboss an image.\n"
+    "\n"
+    "  F10       Press to displace pixels by a random amount.\n"
+    "\n"
+    "  F11       Press to negate all pixels above the threshold level.\n"
+    "\n"
+    "  F12       Press to shade the image using a distant light source.\n"
+    "\n"
+    "  F13       Press to lighten or darken image edges to create a 3-D effect.\n"
+    "\n"
+    "  F14       Press to segment the image by color.\n"
+    "\n"
+    "  Meta-S    Press to swirl image pixels about the center.\n"
+    "\n"
+    "  Meta-I    Press to implode image pixels about the center.\n"
+    "\n"
+    "  Meta-W    Press to alter an image along a sine wave.\n"
+    "\n"
+    "  Meta-P    Press to simulate an oil painting.\n"
+    "\n"
+    "  Meta-C    Press to simulate a charcoal drawing.\n"
+    "\n"
+    "  Alt-A     Press to annotate the image with text.\n"
+    "\n"
+    "  Alt-D     Press to draw on an image.\n"
+    "\n"
+    "  Alt-P     Press to edit an image pixel color.\n"
+    "\n"
+    "  Alt-M     Press to edit the image matte information.\n"
+    "\n"
+    "  Alt-V     Press to composite the image with another.\n"
+    "\n"
+    "  Alt-B     Press to add a border to the image.\n"
+    "\n"
+    "  Alt-F     Press to add an ornamental border to the image.\n"
+    "\n"
+    "  Alt-Shft-!\n"
+    "            Press to add an image comment.\n"
+    "\n"
+    "  Ctl-A     Press to apply image processing techniques to a region\n"
+    "            of interest.\n"
+    "\n"
+    "  Shft-?    Press to display information about the image.\n"
+    "\n"
+    "  Shft-+    Press to map the zoom image window.\n"
+    "\n"
+    "  Shft-P    Press to preview an image enhancement, effect, or f/x.\n"
+    "\n"
+    "  F1        Press to display helpful information about display(1).\n"
+    "\n"
+    "  Find      Press to browse documentation about ImageMagick.\n"
+    "\n"
+    "  1-9       Press to change the level of magnification.\n"
+    "\n"
+    "  Use the arrow keys to move the image one pixel up, down,\n"
+    "  left, or right within the magnify window.  Be sure to first\n"
+    "  map the magnify window by pressing button 2.\n"
+    "\n"
+    "  Press ALT and one of the arrow keys to trim off one pixel\n"
+    "  from any side of the image.\n"
   },
-  *ImageMatteEditHelp[] =
+  ImageMatteEditHelp[] =
   {
-    "Matte information within an image is useful for some",
-    "operations such as image compositing (See IMAGE",
-    "COMPOSITING).  This extra channel usually defines a mask",
-    "which represents a sort of a cookie-cutter for the image.",
-    "This the case when matte is opaque (full coverage) for",
-    "pixels inside the shape, zero outside, and between 0 and",
-    "QuantumRange on the boundary.",
-    "",
-    "A small window appears showing the location of the cursor in",
-    "the image window. You are now in matte edit mode.  To exit",
-    "immediately, press Dismiss.  In matte edit mode, the Command",
-    "widget has these options:",
-    "",
-    "    Method",
-    "      point",
-    "      replace",
-    "      floodfill",
-    "      filltoborder",
-    "      reset",
-    "    Border Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      Browser...",
-    "    Fuzz",
-    "      0%",
-    "      2%",
-    "      5%",
-    "      10%",
-    "      15%",
-    "      Dialog...",
-    "    Matte",
-    "      Opaque",
-    "      Transparent",
-    "      Dialog...",
-    "    Undo",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a matte editing method from the Method sub-menu of",
-    "the Command widget.  The point method changes the matte value",
-    "of any pixel selected with the pointer until the button is",
-    "is released.  The replace method changes the matte value of",
-    "any pixel that matches the color of the pixel you select with",
-    "a button press.  Floodfill changes the matte value of any pixel",
-    "that matches the color of the pixel you select with a button",
-    "press and is a neighbor.  Whereas filltoborder changes the matte",
-    "value any neighbor pixel that is not the border color.  Finally",
-    "reset changes the entire image to the designated matte value.",
-    "",
-    "Choose Matte Value and pick Opaque or Transarent.  For other values",
-    "select the Dialog entry.  Here a dialog appears requesting a matte",
-    "value.  The value you select is assigned as the opacity value of the",
-    "selected pixel or pixels.",
-    "",
-    "Now, press any button to select a pixel within the image",
-    "window to change its matte value.",
-    "",
-    "If the Magnify widget is mapped, it can be helpful in positioning",
-    "your pointer within the image (refer to button 2).",
-    "",
-    "Matte information is only valid in a DirectClass image.",
-    "Therefore, any PseudoClass image is promoted to DirectClass",
-    "(see miff(5)).  Note that matte information for PseudoClass",
-    "is not retained for colormapped X server visuals (e.g.",
-    "StaticColor, StaticColor, GrayScale, PseudoColor) unless you",
-    "immediately save your image to a file (refer to Write).",
-    "Correct matte editing behavior may require a TrueColor or",
-    "DirectColor visual or a Standard Colormap.",
-    (char *) NULL,
+    "Matte information within an image is useful for some\n"
+    "operations such as image compositing (See IMAGE\n"
+    "COMPOSITING).  This extra channel usually defines a mask\n"
+    "which represents a sort of a cookie-cutter for the image.\n"
+    "This the case when matte is opaque (full coverage) for\n"
+    "pixels inside the shape, zero outside, and between 0 and\n"
+    "QuantumRange on the boundary.\n"
+    "\n"
+    "A small window appears showing the location of the cursor in\n"
+    "the image window. You are now in matte edit mode.  To exit\n"
+    "immediately, press Dismiss.  In matte edit mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Method\n"
+    "      point\n"
+    "      replace\n"
+    "      floodfill\n"
+    "      filltoborder\n"
+    "      reset\n"
+    "    Border Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      Browser...\n"
+    "    Fuzz\n"
+    "      0%\n"
+    "      2%\n"
+    "      5%\n"
+    "      10%\n"
+    "      15%\n"
+    "      Dialog...\n"
+    "    Matte\n"
+    "      Opaque\n"
+    "      Transparent\n"
+    "      Dialog...\n"
+    "    Undo\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a matte editing method from the Method sub-menu of\n"
+    "the Command widget.  The point method changes the matte value\n"
+    "of any pixel selected with the pointer until the button is\n"
+    "is released.  The replace method changes the matte value of\n"
+    "any pixel that matches the color of the pixel you select with\n"
+    "a button press.  Floodfill changes the matte value of any pixel\n"
+    "that matches the color of the pixel you select with a button\n"
+    "press and is a neighbor.  Whereas filltoborder changes the matte\n"
+    "value any neighbor pixel that is not the border color.  Finally\n"
+    "reset changes the entire image to the designated matte value.\n"
+    "\n"
+    "Choose Matte Value and pick Opaque or Transarent.  For other values\n"
+    "select the Dialog entry.  Here a dialog appears requesting a matte\n"
+    "value.  The value you select is assigned as the opacity value of the\n"
+    "selected pixel or pixels.\n"
+    "\n"
+    "Now, press any button to select a pixel within the image\n"
+    "window to change its matte value.\n"
+    "\n"
+    "If the Magnify widget is mapped, it can be helpful in positioning\n"
+    "your pointer within the image (refer to button 2).\n"
+    "\n"
+    "Matte information is only valid in a DirectClass image.\n"
+    "Therefore, any PseudoClass image is promoted to DirectClass\n"
+    "(see miff(5)).  Note that matte information for PseudoClass\n"
+    "is not retained for colormapped X server visuals (e.g.\n"
+    "StaticColor, StaticColor, GrayScale, PseudoColor) unless you\n"
+    "immediately save your image to a file (refer to Write).\n"
+    "Correct matte editing behavior may require a TrueColor or\n"
+    "DirectColor visual or a Standard Colormap.\n"
   },
-  *ImagePanHelp[] =
+  ImagePanHelp[] =
   {
-    "When an image exceeds the width or height of the X server",
-    "screen, display maps a small panning icon.  The rectangle",
-    "within the panning icon shows the area that is currently",
-    "displayed in the image window.  To pan about the image,",
-    "press any button and drag the pointer within the panning",
-    "icon.  The pan rectangle moves with the pointer and the",
-    "image window is updated to reflect the location of the",
-    "rectangle within the panning icon.  When you have selected",
-    "the area of the image you wish to view, release the button.",
-    "",
-    "Use the arrow keys to pan the image one pixel up, down,",
-    "left, or right within the image window.",
-    "",
-    "The panning icon is withdrawn if the image becomes smaller",
-    "than the dimensions of the X server screen.",
-    (char *) NULL,
+    "When an image exceeds the width or height of the X server\n"
+    "screen, display maps a small panning icon.  The rectangle\n"
+    "within the panning icon shows the area that is currently\n"
+    "displayed in the image window.  To pan about the image,\n"
+    "press any button and drag the pointer within the panning\n"
+    "icon.  The pan rectangle moves with the pointer and the\n"
+    "image window is updated to reflect the location of the\n"
+    "rectangle within the panning icon.  When you have selected\n"
+    "the area of the image you wish to view, release the button.\n"
+    "\n"
+    "Use the arrow keys to pan the image one pixel up, down,\n"
+    "left, or right within the image window.\n"
+    "\n"
+    "The panning icon is withdrawn if the image becomes smaller\n"
+    "than the dimensions of the X server screen.\n"
   },
-  *ImagePasteHelp[] =
+  ImagePasteHelp[] =
   {
-    "A small window appears showing the location of the cursor in",
-    "the image window. You are now in paste mode.  To exit",
-    "immediately, press Dismiss.  In paste mode, the Command",
-    "widget has these options:",
-    "",
-    "    Operators",
-    "      over",
-    "      in",
-    "      out",
-    "      atop",
-    "      xor",
-    "      plus",
-    "      minus",
-    "      add",
-    "      subtract",
-    "      difference",
-    "      replace",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a composite operation from the Operators sub-menu of",
-    "the Command widget.  How each operator behaves is described",
-    "below.  Image window is the image currently displayed on",
-    "your X server and image is the image obtained with the File",
-    "Browser widget.",
-    "",
-    "Over     The result is the union of the two image shapes,",
-    "         with image obscuring image window in the region of",
-    "         overlap.",
-    "",
-    "In       The result is simply image cut by the shape of",
-    "         image window.  None of the image data of image",
-    "         window is in the result.",
-    "",
-    "Out      The resulting image is image with the shape of",
-    "         image window cut out.",
-    "",
-    "Atop     The result is the same shape as image image window,",
-    "         with image obscuring image window where the image",
-    "         shapes overlap.  Note this differs from over",
-    "         because the portion of image outside image window's",
-    "         shape does not appear in the result.",
-    "",
-    "Xor      The result is the image data from both image and",
-    "         image window that is outside the overlap region.",
-    "         The overlap region is blank.",
-    "",
-    "Plus     The result is just the sum of the image data.",
-    "         Output values are cropped to QuantumRange (no overflow).",
-    "         This operation is independent of the matte",
-    "         channels.",
-    "",
-    "Minus    The result of image - image window, with underflow",
-    "         cropped to zero.",
-    "",
-    "Add      The result of image + image window, with overflow",
-    "         wrapping around (mod 256).",
-    "",
-    "Subtract The result of image - image window, with underflow",
-    "         wrapping around (mod 256).  The add and subtract",
-    "         operators can be used to perform reversible",
-    "         transformations.",
-    "",
-    "Difference",
-    "         The result of abs(image - image window).  This",
-    "         useful for comparing two very similar images.",
-    "",
-    "Copy     The resulting image is image window replaced with",
-    "         image.  Here the matte information is ignored.",
-    "",
-    "CopyRed  The red layer of the image window is replace with",
-    "         the red layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyGreen",
-    "         The green layer of the image window is replace with",
-    "         the green layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyBlue The blue layer of the image window is replace with",
-    "         the blue layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "CopyOpacity",
-    "         The matte layer of the image window is replace with",
-    "         the matte layer of the image.  The other layers are",
-    "         untouched.",
-    "",
-    "The image compositor requires a matte, or alpha channel in",
-    "the image for some operations.  This extra channel usually",
-    "defines a mask which represents a sort of a cookie-cutter",
-    "for the image.  This the case when matte is opaque (full",
-    "coverage) for pixels inside the shape, zero outside, and",
-    "between 0 and QuantumRange on the boundary.  If image does not",
-    "have a matte channel, it is initialized with 0 for any pixel",
-    "matching in color to pixel location (0,0), otherwise QuantumRange.",
-    "",
-    "Note that matte information for image window is not retained",
-    "for colormapped X server visuals (e.g. StaticColor,",
-    "StaticColor, GrayScale, PseudoColor).  Correct compositing",
-    "behavior may require a TrueColor or DirectColor visual or a",
-    "Standard Colormap.",
-    "",
-    "Choosing a composite operator is optional.  The default",
-    "operator is replace.  However, you must choose a location to",
-    "paste your image and press button 1.  Press and hold the",
-    "button before releasing and an outline of the image will",
-    "appear to help you identify your location.",
-    "",
-    "The actual colors of the pasted image is saved.  However,",
-    "the color that appears in image window may be different.",
-    "For example, on a monochrome screen image window will appear",
-    "black or white even though your pasted image may have",
-    "many colors.  If the image is saved to a file it is written",
-    "with the correct colors.  To assure the correct colors are",
-    "saved in the final image, any PseudoClass image is promoted",
-    "to DirectClass (see miff(5)).  To force a PseudoClass image",
-    "to remain PseudoClass, use -colors.",
-    (char *) NULL,
+    "A small window appears showing the location of the cursor in\n"
+    "the image window. You are now in paste mode.  To exit\n"
+    "immediately, press Dismiss.  In paste mode, the Command\n"
+    "widget has these options:\n"
+    "\n"
+    "    Operators\n"
+    "      over\n"
+    "      in\n"
+    "      out\n"
+    "      atop\n"
+    "      xor\n"
+    "      plus\n"
+    "      minus\n"
+    "      add\n"
+    "      subtract\n"
+    "      difference\n"
+    "      replace\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a composite operation from the Operators sub-menu of\n"
+    "the Command widget.  How each operator behaves is described\n"
+    "below.  Image window is the image currently displayed on\n"
+    "your X server and image is the image obtained with the File\n"
+    "Browser widget.\n"
+    "\n"
+    "Over     The result is the union of the two image shapes,\n"
+    "         with image obscuring image window in the region of\n"
+    "         overlap.\n"
+    "\n"
+    "In       The result is simply image cut by the shape of\n"
+    "         image window.  None of the image data of image\n"
+    "         window is in the result.\n"
+    "\n"
+    "Out      The resulting image is image with the shape of\n"
+    "         image window cut out.\n"
+    "\n"
+    "Atop     The result is the same shape as image image window,\n"
+    "         with image obscuring image window where the image\n"
+    "         shapes overlap.  Note this differs from over\n"
+    "         because the portion of image outside image window's\n"
+    "         shape does not appear in the result.\n"
+    "\n"
+    "Xor      The result is the image data from both image and\n"
+    "         image window that is outside the overlap region.\n"
+    "         The overlap region is blank.\n"
+    "\n"
+    "Plus     The result is just the sum of the image data.\n"
+    "         Output values are cropped to QuantumRange (no overflow).\n"
+    "         This operation is independent of the matte\n"
+    "         channels.\n"
+    "\n"
+    "Minus    The result of image - image window, with underflow\n"
+    "         cropped to zero.\n"
+    "\n"
+    "Add      The result of image + image window, with overflow\n"
+    "         wrapping around (mod 256).\n"
+    "\n"
+    "Subtract The result of image - image window, with underflow\n"
+    "         wrapping around (mod 256).  The add and subtract\n"
+    "         operators can be used to perform reversible\n"
+    "         transformations.\n"
+    "\n"
+    "Difference\n"
+    "         The result of abs(image - image window).  This\n"
+    "         useful for comparing two very similar images.\n"
+    "\n"
+    "Copy     The resulting image is image window replaced with\n"
+    "         image.  Here the matte information is ignored.\n"
+    "\n"
+    "CopyRed  The red layer of the image window is replace with\n"
+    "         the red layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyGreen\n"
+    "         The green layer of the image window is replace with\n"
+    "         the green layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyBlue The blue layer of the image window is replace with\n"
+    "         the blue layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "CopyOpacity\n"
+    "         The matte layer of the image window is replace with\n"
+    "         the matte layer of the image.  The other layers are\n"
+    "         untouched.\n"
+    "\n"
+    "The image compositor requires a matte, or alpha channel in\n"
+    "the image for some operations.  This extra channel usually\n"
+    "defines a mask which represents a sort of a cookie-cutter\n"
+    "for the image.  This the case when matte is opaque (full\n"
+    "coverage) for pixels inside the shape, zero outside, and\n"
+    "between 0 and QuantumRange on the boundary.  If image does not\n"
+    "have a matte channel, it is initialized with 0 for any pixel\n"
+    "matching in color to pixel location (0,0), otherwise QuantumRange.\n"
+    "\n"
+    "Note that matte information for image window is not retained\n"
+    "for colormapped X server visuals (e.g. StaticColor,\n"
+    "StaticColor, GrayScale, PseudoColor).  Correct compositing\n"
+    "behavior may require a TrueColor or DirectColor visual or a\n"
+    "Standard Colormap.\n"
+    "\n"
+    "Choosing a composite operator is optional.  The default\n"
+    "operator is replace.  However, you must choose a location to\n"
+    "paste your image and press button 1.  Press and hold the\n"
+    "button before releasing and an outline of the image will\n"
+    "appear to help you identify your location.\n"
+    "\n"
+    "The actual colors of the pasted image is saved.  However,\n"
+    "the color that appears in image window may be different.\n"
+    "For example, on a monochrome screen image window will appear\n"
+    "black or white even though your pasted image may have\n"
+    "many colors.  If the image is saved to a file it is written\n"
+    "with the correct colors.  To assure the correct colors are\n"
+    "saved in the final image, any PseudoClass image is promoted\n"
+    "to DirectClass (see miff(5)).  To force a PseudoClass image\n"
+    "to remain PseudoClass, use -colors.\n"
   },
-  *ImageROIHelp[] =
+  ImageROIHelp[] =
   {
-    "In region of interest mode, the Command widget has these",
-    "options:",
-    "",
-    "    Help",
-    "    Dismiss",
-    "",
-    "To define a region of interest, press button 1 and drag.",
-    "The region of interest is defined by a highlighted rectangle",
-    "that expands or contracts as it follows the pointer.  Once",
-    "you are satisfied with the region of interest, release the",
-    "button.  You are now in apply mode.  In apply mode the",
-    "Command widget has these options:",
-    "",
-    "      File",
-    "        Save...",
-    "        Print...",
-    "      Edit",
-    "        Undo",
-    "        Redo",
-    "      Transform",
-    "        Flop",
-    "        Flip",
-    "        Rotate Right",
-    "        Rotate Left",
-    "      Enhance",
-    "        Hue...",
-    "        Saturation...",
-    "        Brightness...",
-    "        Gamma...",
-    "        Spiff",
-    "        Dull",
-    "        Contrast Stretch",
-    "        Sigmoidal Contrast...",
-    "        Normalize",
-    "        Equalize",
-    "        Negate",
-    "        Grayscale",
-    "        Map...",
-    "        Quantize...",
-    "      Effects",
-    "        Despeckle",
-    "        Emboss",
-    "        Reduce Noise",
-    "        Sharpen...",
-    "        Blur...",
-    "        Threshold...",
-    "        Edge Detect...",
-    "        Spread...",
-    "        Shade...",
-    "        Raise...",
-    "        Segment...",
-    "      F/X",
-    "        Solarize...",
-    "        Sepia Tone...",
-    "        Swirl...",
-    "        Implode...",
-    "        Vignette...",
-    "        Wave...",
-    "        Oil Painting...",
-    "        Charcoal Drawing...",
-    "      Miscellany",
-    "        Image Info",
-    "        Zoom Image",
-    "        Show Preview...",
-    "        Show Histogram",
-    "        Show Matte",
-    "      Help",
-    "      Dismiss",
-    "",
-    "You can make adjustments to the region of interest by moving",
-    "the pointer to one of the rectangle corners, pressing a",
-    "button, and dragging.  Finally, choose an image processing",
-    "technique from the Command widget.  You can choose more than",
-    "one image processing technique to apply to an area.",
-    "Alternatively, you can move the region of interest before",
-    "applying another image processing technique.  To exit, press",
-    "Dismiss.",
-    (char *) NULL,
+    "In region of interest mode, the Command widget has these\n"
+    "options:\n"
+    "\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "To define a region of interest, press button 1 and drag.\n"
+    "The region of interest is defined by a highlighted rectangle\n"
+    "that expands or contracts as it follows the pointer.  Once\n"
+    "you are satisfied with the region of interest, release the\n"
+    "button.  You are now in apply mode.  In apply mode the\n"
+    "Command widget has these options:\n"
+    "\n"
+    "      File\n"
+    "        Save...\n"
+    "        Print...\n"
+    "      Edit\n"
+    "        Undo\n"
+    "        Redo\n"
+    "      Transform\n"
+    "        Flop\n"
+    "        Flip\n"
+    "        Rotate Right\n"
+    "        Rotate Left\n"
+    "      Enhance\n"
+    "        Hue...\n"
+    "        Saturation...\n"
+    "        Brightness...\n"
+    "        Gamma...\n"
+    "        Spiff\n"
+    "        Dull\n"
+    "        Contrast Stretch\n"
+    "        Sigmoidal Contrast...\n"
+    "        Normalize\n"
+    "        Equalize\n"
+    "        Negate\n"
+    "        Grayscale\n"
+    "        Map...\n"
+    "        Quantize...\n"
+    "      Effects\n"
+    "        Despeckle\n"
+    "        Emboss\n"
+    "        Reduce Noise\n"
+    "        Sharpen...\n"
+    "        Blur...\n"
+    "        Threshold...\n"
+    "        Edge Detect...\n"
+    "        Spread...\n"
+    "        Shade...\n"
+    "        Raise...\n"
+    "        Segment...\n"
+    "      F/X\n"
+    "        Solarize...\n"
+    "        Sepia Tone...\n"
+    "        Swirl...\n"
+    "        Implode...\n"
+    "        Vignette...\n"
+    "        Wave...\n"
+    "        Oil Painting...\n"
+    "        Charcoal Drawing...\n"
+    "      Miscellany\n"
+    "        Image Info\n"
+    "        Zoom Image\n"
+    "        Show Preview...\n"
+    "        Show Histogram\n"
+    "        Show Matte\n"
+    "      Help\n"
+    "      Dismiss\n"
+    "\n"
+    "You can make adjustments to the region of interest by moving\n"
+    "the pointer to one of the rectangle corners, pressing a\n"
+    "button, and dragging.  Finally, choose an image processing\n"
+    "technique from the Command widget.  You can choose more than\n"
+    "one image processing technique to apply to an area.\n"
+    "Alternatively, you can move the region of interest before\n"
+    "applying another image processing technique.  To exit, press\n"
+    "Dismiss.\n"
   },
-  *ImageRotateHelp[] =
+  ImageRotateHelp[] =
   {
-    "In rotate mode, the Command widget has these options:",
-    "",
-    "    Pixel Color",
-    "      black",
-    "      blue",
-    "      cyan",
-    "      green",
-    "      gray",
-    "      red",
-    "      magenta",
-    "      yellow",
-    "      white",
-    "      Browser...",
-    "    Direction",
-    "      horizontal",
-    "      vertical",
-    "    Help",
-    "    Dismiss",
-    "",
-    "Choose a background color from the Pixel Color sub-menu.",
-    "Additional background colors can be specified with the color",
-    "browser.  You can change the menu colors by setting the X",
-    "resources pen1 through pen9.",
-    "",
-    "If you choose the color browser and press Grab, you can",
-    "select the background color by moving the pointer to the",
-    "desired color on the screen and press any button.",
-    "",
-    "Choose a point in the image window and press this button and",
-    "hold.  Next, move the pointer to another location in the",
-    "image.  As you move a line connects the initial location and",
-    "the pointer.  When you release the button, the degree of",
-    "image rotation is determined by the slope of the line you",
-    "just drew.  The slope is relative to the direction you",
-    "choose from the Direction sub-menu of the Command widget.",
-    "",
-    "To cancel the image rotation, move the pointer back to the",
-    "starting point of the line and release the button.",
-    (char *) NULL,
+    "In rotate mode, the Command widget has these options:\n"
+    "\n"
+    "    Pixel Color\n"
+    "      black\n"
+    "      blue\n"
+    "      cyan\n"
+    "      green\n"
+    "      gray\n"
+    "      red\n"
+    "      magenta\n"
+    "      yellow\n"
+    "      white\n"
+    "      Browser...\n"
+    "    Direction\n"
+    "      horizontal\n"
+    "      vertical\n"
+    "    Help\n"
+    "    Dismiss\n"
+    "\n"
+    "Choose a background color from the Pixel Color sub-menu.\n"
+    "Additional background colors can be specified with the color\n"
+    "browser.  You can change the menu colors by setting the X\n"
+    "resources pen1 through pen9.\n"
+    "\n"
+    "If you choose the color browser and press Grab, you can\n"
+    "select the background color by moving the pointer to the\n"
+    "desired color on the screen and press any button.\n"
+    "\n"
+    "Choose a point in the image window and press this button and\n"
+    "hold.  Next, move the pointer to another location in the\n"
+    "image.  As you move a line connects the initial location and\n"
+    "the pointer.  When you release the button, the degree of\n"
+    "image rotation is determined by the slope of the line you\n"
+    "just drew.  The slope is relative to the direction you\n"
+    "choose from the Direction sub-menu of the Command widget.\n"
+    "\n"
+    "To cancel the image rotation, move the pointer back to the\n"
+    "starting point of the line and release the button.\n"
   };
 
 /*
@@ -1806,8 +1774,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image *image,
   ExceptionInfo *exception)
 {
-  static const char
-    *AnnotateMenu[] =
+  const char
+    *const AnnotateMenu[] =
     {
       "Font Name",
       "Font Color",
@@ -1817,7 +1785,7 @@
       "Dismiss",
       (char *) NULL
     },
-    *TextMenu[] =
+    *const TextMenu[] =
     {
       "Help",
       "Apply",
@@ -2091,11 +2059,8 @@
             int
               entry;
 
-            static char
-              angle[MagickPathExtent] = "30.0";
-
-            static const char
-              *RotateMenu[] =
+            const char
+              *const RotateMenu[] =
               {
                 "-90",
                 "-45",
@@ -2109,6 +2074,9 @@
                 (char *) NULL,
               };
 
+            static char
+              angle[MagickPathExtent] = "30.0";
+
             /*
               Select a command from the pop-up menu.
             */
@@ -2130,7 +2098,7 @@
           }
           case AnnotateHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Annotation",ImageAnnotateHelp);
             break;
           }
@@ -2192,7 +2160,7 @@
           case XK_F1:
           case XK_Help:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Annotation",ImageAnnotateHelp);
             break;
           }
@@ -2328,7 +2296,7 @@
         {
           case TextHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Annotation",ImageAnnotateHelp);
             (void) XCheckDefineCursor(display,windows->image.id,cursor);
             break;
@@ -2859,8 +2827,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image **image,
   ExceptionInfo *exception)
 {
-  static const char
-    *ChopMenu[] =
+  const char
+    *const ChopMenu[] =
     {
       "Direction",
       "Help",
@@ -2962,8 +2930,8 @@
             char
               command[MagickPathExtent];
 
-            static const char
-              *Directions[] =
+            const char
+              *const Directions[] =
               {
                 "horizontal",
                 "vertical",
@@ -2980,7 +2948,7 @@
           }
           case ChopHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Chop",ImageChopHelp);
             break;
           }
@@ -3052,7 +3020,7 @@
           {
             (void) XSetFunction(display,windows->image.highlight_context,
               GXcopy);
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Chop",ImageChopHelp);
             (void) XSetFunction(display,windows->image.highlight_context,
               GXinvert);
@@ -3284,8 +3252,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image **image,
   ExceptionInfo *exception)
 {
-  static const char
-    *ColorEditMenu[] =
+  const char
+    *const ColorEditMenu[] =
     {
       "Method",
       "Pixel Color",
@@ -3511,11 +3479,8 @@
           }
           case ColorEditFuzzCommand:
           {
-            static char
-              fuzz[MagickPathExtent];
-
-            static const char
-              *FuzzMenu[] =
+            const char
+              *const FuzzMenu[] =
               {
                 "0%",
                 "2%",
@@ -3526,6 +3491,9 @@
                 (char *) NULL,
               };
 
+            static char
+              fuzz[MagickPathExtent];
+
             /*
               Select a command from the pop-up menu.
             */
@@ -3558,7 +3526,7 @@
           case ColorEditHelpCommand:
           default:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Annotation",ImageColorEditHelp);
             break;
           }
@@ -3649,7 +3617,7 @@
           case XK_F1:
           case XK_Help:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Annotation",ImageColorEditHelp);
             break;
           }
@@ -3907,12 +3875,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image *image,
   ExceptionInfo *exception)
 {
-  static char
-    displacement_geometry[MagickPathExtent] = "30x30",
-    filename[MagickPathExtent] = "\0";
-
-  static const char
-    *CompositeMenu[] =
+  const char
+    *const CompositeMenu[] =
     {
       "Operators",
       "Dissolve",
@@ -3922,6 +3886,10 @@
       (char *) NULL
     };
 
+  static char
+    displacement_geometry[MagickPathExtent] = "30x30",
+    filename[MagickPathExtent] = "\0";
+
   static CompositeOperator
     compose = CopyCompositeOp;
 
@@ -4101,7 +4069,7 @@
           {
             (void) XSetFunction(display,windows->image.highlight_context,
               GXcopy);
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Composite",ImageCompositeHelp);
             (void) XSetFunction(display,windows->image.highlight_context,
               GXinvert);
@@ -4206,7 +4174,7 @@
           {
             (void) XSetFunction(display,windows->image.highlight_context,
               GXcopy);
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Composite",ImageCompositeHelp);
             (void) XSetFunction(display,windows->image.highlight_context,
               GXinvert);
@@ -4572,8 +4540,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image *image,
   const ClipboardMode mode,ExceptionInfo *exception)
 {
-  static const char
-    *CropModeMenu[] =
+  const char
+    *const CropModeMenu[] =
     {
       "Help",
       "Dismiss",
@@ -4711,19 +4679,19 @@
             {
               case CopyMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Copy",ImageCopyHelp);
                 break;
               }
               case CropMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Crop",ImageCropHelp);
                 break;
               }
               case CutMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Cut",ImageCutHelp);
                 break;
               }
@@ -4793,19 +4761,19 @@
             {
               case CopyMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Copy",ImageCopyHelp);
                 break;
               }
               case CropMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Crop",ImageCropHelp);
                 break;
               }
               case CutMode:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Cut",ImageCutHelp);
                 break;
               }
@@ -5019,19 +4987,19 @@
                 {
                   case CopyMode:
                   {
-                    XTextViewWidget(display,resource_info,windows,MagickFalse,
+                    XTextViewHelp(display,resource_info,windows,MagickFalse,
                       "Help Viewer - Image Copy",ImageCopyHelp);
                     break;
                   }
                   case CropMode:
                   {
-                    XTextViewWidget(display,resource_info,windows,MagickFalse,
+                    XTextViewHelp(display,resource_info,windows,MagickFalse,
                       "Help Viewer - Image Crop",ImageCropHelp);
                     break;
                   }
                   case CutMode:
                   {
-                    XTextViewWidget(display,resource_info,windows,MagickFalse,
+                    XTextViewHelp(display,resource_info,windows,MagickFalse,
                       "Help Viewer - Image Cut",ImageCutHelp);
                     break;
                   }
@@ -5193,19 +5161,19 @@
               {
                 case CopyMode:
                 {
-                  XTextViewWidget(display,resource_info,windows,MagickFalse,
+                  XTextViewHelp(display,resource_info,windows,MagickFalse,
                     "Help Viewer - Image Copy",ImageCopyHelp);
                   break;
                 }
                 case CropMode:
                 {
-                  XTextViewWidget(display,resource_info,windows,MagickFalse,
+                  XTextViewHelp(display,resource_info,windows,MagickFalse,
                     "Help Viewer - Image Cropg",ImageCropHelp);
                   break;
                 }
                 case CutMode:
                 {
-                  XTextViewWidget(display,resource_info,windows,MagickFalse,
+                  XTextViewHelp(display,resource_info,windows,MagickFalse,
                     "Help Viewer - Image Cutg",ImageCutHelp);
                   break;
                 }
@@ -5408,8 +5376,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image **image,
   ExceptionInfo *exception)
 {
-  static const char
-    *DrawMenu[] =
+  const char
+    *const DrawMenu[] =
     {
       "Element",
       "Color",
@@ -5555,8 +5523,8 @@
           {
             case DrawElementCommand:
             {
-              static const char
-                *Elements[] =
+              const char
+                *const Elements[] =
                 {
                   "point",
                   "line",
@@ -5641,19 +5609,7 @@
             }
             case DrawStippleCommand:
             {
-              Image
-                *stipple_image;
-
-              ImageInfo
-                *image_info;
-
-              int
-                status;
-
-              static char
-                filename[MagickPathExtent] = "\0";
-
-              static const char
+              const char
                 *StipplesMenu[] =
                 {
                   "Brick",
@@ -5667,6 +5623,18 @@
                   (char *) NULL,
                 };
 
+              Image
+                *stipple_image;
+
+              ImageInfo
+                *image_info;
+
+              int
+                status;
+
+              static char
+                filename[MagickPathExtent] = "\0";
+
               /*
                 Select a command from the pop-up menu.
               */
@@ -5761,11 +5729,8 @@
             }
             case DrawWidthCommand:
             {
-              static char
-                width[MagickPathExtent] = "0";
-
-              static const char
-                *WidthsMenu[] =
+              const char
+                *const WidthsMenu[] =
                 {
                   "1",
                   "2",
@@ -5776,6 +5741,9 @@
                   (char *) NULL,
                 };
 
+              static char
+                width[MagickPathExtent] = "0";
+
               /*
                 Select a command from the pop-up menu.
               */
@@ -5804,7 +5772,7 @@
             }
             case DrawHelpCommand:
             {
-              XTextViewWidget(display,resource_info,windows,MagickFalse,
+              XTextViewHelp(display,resource_info,windows,MagickFalse,
                 "Help Viewer - Image Rotation",ImageDrawHelp);
               (void) XCheckDefineCursor(display,windows->image.id,cursor);
               break;
@@ -5871,7 +5839,7 @@
             case XK_F1:
             case XK_Help:
             {
-              XTextViewWidget(display,resource_info,windows,MagickFalse,
+              XTextViewHelp(display,resource_info,windows,MagickFalse,
                 "Help Viewer - Image Rotation",ImageDrawHelp);
               break;
             }
@@ -9248,7 +9216,7 @@
       /*
         User requested help.
       */
-      XTextViewWidget(display,resource_info,windows,MagickFalse,
+      XTextViewHelp(display,resource_info,windows,MagickFalse,
         "Help Viewer - Display",DisplayHelp);
       break;
     }
@@ -9663,11 +9631,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image **image,
   ExceptionInfo *exception)
 {
-  static char
-    matte[MagickPathExtent] = "0";
-
-  static const char
-    *MatteEditMenu[] =
+  const char
+    *const MatteEditMenu[] =
     {
       "Method",
       "Border Color",
@@ -9679,6 +9644,9 @@
       (char *) NULL
     };
 
+  static char
+    matte[MagickPathExtent] = "0";
+
   static const ModeType
     MatteEditCommands[] =
     {
@@ -9841,11 +9809,8 @@
           }
           case MatteEditFuzzCommand:
           {
-            static char
-              fuzz[MagickPathExtent];
-
-            static const char
-              *FuzzMenu[] =
+            const char
+              *const FuzzMenu[] =
               {
                 "0%",
                 "2%",
@@ -9856,6 +9821,9 @@
                 (char *) NULL,
               };
 
+            static char
+              fuzz[MagickPathExtent];
+
             /*
               Select a command from the pop-up menu.
             */
@@ -9881,11 +9849,8 @@
           }
           case MatteEditValueCommand:
           {
-            static char
-              message[MagickPathExtent];
-
-            static const char
-              *MatteMenu[] =
+            const char
+              *const MatteMenu[] =
               {
                 "Opaque",
                 "Transparent",
@@ -9893,6 +9858,9 @@
                 (char *) NULL,
               };
 
+            static char
+              message[MagickPathExtent];
+
             /*
               Select a command from the pop-up menu.
             */
@@ -9925,7 +9893,7 @@
           }
           case MatteEditHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Matte Edit",ImageMatteEditHelp);
             break;
           }
@@ -10021,7 +9989,7 @@
           case XK_F1:
           case XK_Help:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Matte Edit",ImageMatteEditHelp);
             break;
           }
@@ -10613,8 +10581,8 @@
   XResourceInfo *resource_info,XWindows *windows,Image *image,
   ExceptionInfo *exception)
 {
-  static const char
-    *PasteMenu[] =
+  const char
+    *const PasteMenu[] =
     {
       "Operator",
       "Help",
@@ -10750,7 +10718,7 @@
           }
           case PasteHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Composite",ImagePasteHelp);
             break;
           }
@@ -10862,7 +10830,7 @@
           {
             (void) XSetFunction(display,windows->image.highlight_context,
               GXcopy);
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Image Composite",ImagePasteHelp);
             (void) XSetFunction(display,windows->image.highlight_context,
               GXinvert);
@@ -10989,6 +10957,26 @@
     filename[MagickPathExtent],
     geometry[MagickPathExtent];
 
+  const char
+    *const PageSizes[] =
+    {
+      "Letter",
+      "Tabloid",
+      "Ledger",
+      "Legal",
+      "Statement",
+      "Executive",
+      "A3",
+      "A4",
+      "A5",
+      "B4",
+      "B5",
+      "Folio",
+      "Quarto",
+      "10x14",
+      (char *) NULL
+    };
+
   Image
     *print_image;
 
@@ -11075,14 +11063,14 @@
 {
 #define ApplyMenus  7
 
-  static const char
-    *ROIMenu[] =
+  const char
+    *const ROIMenu[] =
     {
       "Help",
       "Dismiss",
       (char *) NULL
     },
-    *ApplyMenu[] =
+    *const ApplyMenu[] =
     {
       "File",
       "Edit",
@@ -11095,19 +11083,19 @@
       "Dismiss",
       (char *) NULL
     },
-    *FileMenu[] =
+    *const FileMenu[] =
     {
       "Save...",
       "Print...",
       (char *) NULL
     },
-    *EditMenu[] =
+    *const EditMenu[] =
     {
       "Undo",
       "Redo",
       (char *) NULL
     },
-    *TransformMenu[] =
+    *const TransformMenu[] =
     {
       "Flop",
       "Flip",
@@ -11115,7 +11103,7 @@
       "Rotate Left",
       (char *) NULL
     },
-    *EnhanceMenu[] =
+    *const EnhanceMenu[] =
     {
       "Hue...",
       "Saturation...",
@@ -11133,7 +11121,7 @@
       "Quantize...",
       (char *) NULL
     },
-    *EffectsMenu[] =
+    *const EffectsMenu[] =
     {
       "Despeckle",
       "Emboss",
@@ -11149,7 +11137,7 @@
       "Segment...",
       (char *) NULL
     },
-    *FXMenu[] =
+    *const FXMenu[] =
     {
       "Solarize...",
       "Sepia Tone...",
@@ -11161,7 +11149,7 @@
       "Charcoal Draw...",
       (char *) NULL
     },
-    *MiscellanyMenu[] =
+    *const MiscellanyMenu[] =
     {
       "Image Info",
       "Zoom Image",
@@ -11171,8 +11159,8 @@
       (char *) NULL
     };
 
-  static const char
-    **Menus[ApplyMenus] =
+  const char
+    *const *Menus[ApplyMenus] =
     {
       FileMenu,
       EditMenu,
@@ -11369,7 +11357,7 @@
         {
           case ROIHelpCommand:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Region of Interest",ImageROIHelp);
             break;
           }
@@ -11435,7 +11423,7 @@
           case XK_F1:
           case XK_Help:
           {
-            XTextViewWidget(display,resource_info,windows,MagickFalse,
+            XTextViewHelp(display,resource_info,windows,MagickFalse,
               "Help Viewer - Region of Interest",ImageROIHelp);
             break;
           }
@@ -11731,7 +11719,7 @@
             {
               (void) XSetFunction(display,windows->image.highlight_context,
                 GXcopy);
-              XTextViewWidget(display,resource_info,windows,MagickFalse,
+              XTextViewHelp(display,resource_info,windows,MagickFalse,
                 "Help Viewer - Region of Interest",ImageROIHelp);
               (void) XSetFunction(display,windows->image.highlight_context,
                 GXinvert);
@@ -11892,7 +11880,7 @@
             {
               (void) XSetFunction(display,windows->image.highlight_context,
                 GXcopy);
-              XTextViewWidget(display,resource_info,windows,MagickFalse,
+              XTextViewHelp(display,resource_info,windows,MagickFalse,
                 "Help Viewer - Region of Interest",ImageROIHelp);
               (void) XSetFunction(display,windows->image.highlight_context,
                 GXinvert);
@@ -12026,8 +12014,8 @@
   XResourceInfo *resource_info,XWindows *windows,double degrees,Image **image,
   ExceptionInfo *exception)
 {
-  static const char
-    *RotateMenu[] =
+  const char
+    *const RotateMenu[] =
     {
       "Pixel Color",
       "Direction",
@@ -12185,7 +12173,7 @@
               }
               case RotateDirectionCommand:
               {
-                static const char
+                const char
                   *Directions[] =
                   {
                     "horizontal",
@@ -12204,7 +12192,7 @@
               }
               case RotateHelpCommand:
               {
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Rotation",ImageRotateHelp);
                 break;
               }
@@ -12278,7 +12266,7 @@
               {
                 (void) XSetFunction(display,windows->image.highlight_context,
                   GXcopy);
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Rotation",ImageRotateHelp);
                 (void) XSetFunction(display,windows->image.highlight_context,
                   GXinvert);
@@ -12623,6 +12611,26 @@
       char
         geometry[MagickPathExtent];
 
+      const char
+        *const PageSizes[] =
+        {
+          "Letter",
+          "Tabloid",
+          "Ledger",
+          "Legal",
+          "Statement",
+          "Executive",
+          "A3",
+          "A4",
+          "A5",
+          "B4",
+          "B5",
+          "Folio",
+          "Quarto",
+          "10x14",
+          (char *) NULL
+        };
+
       /*
         Request page geometry from user.
       */
@@ -13065,8 +13073,8 @@
 static Image *XTileImage(Display *display,XResourceInfo *resource_info,
   XWindows *windows,Image *image,XEvent *event,ExceptionInfo *exception)
 {
-  static const char
-    *VerbMenu[] =
+  const char
+    *const VerbMenu[] =
     {
       "Load",
       "Next",
@@ -13172,7 +13180,7 @@
   if (id < 0)
     return((Image *) NULL);
   q=p;
-  while ((*q != '\n') && (*q != '\0'))
+  while ((*q != '\xff') && (*q != '\0'))
     q++;
   (void) CopyMagickString(filename,p,(size_t) (q-p+1));
   /*
@@ -14086,8 +14094,8 @@
 #define MagickMenus  10
 #define MagickTitle  "Commands"
 
-  static const char
-    *CommandMenu[] =
+  const char
+    *const CommandMenu[] =
     {
       "File",
       "Edit",
@@ -14101,7 +14109,7 @@
       "Help",
       (char *) NULL
     },
-    *FileMenu[] =
+    *const FileMenu[] =
     {
       "Open...",
       "Next",
@@ -14115,7 +14123,7 @@
       "Quit",
       (char *) NULL
     },
-    *EditMenu[] =
+    *const EditMenu[] =
     {
       "Undo",
       "Redo",
@@ -14124,7 +14132,7 @@
       "Paste",
       (char *) NULL
     },
-    *ViewMenu[] =
+    *const ViewMenu[] =
     {
       "Half Size",
       "Original Size",
@@ -14135,7 +14143,7 @@
       "Restore",
       (char *) NULL
     },
-    *TransformMenu[] =
+    *const TransformMenu[] =
     {
       "Crop",
       "Chop",
@@ -14149,7 +14157,7 @@
       "Trim Edges",
       (char *) NULL
     },
-    *EnhanceMenu[] =
+    *const EnhanceMenu[] =
     {
       "Hue...",
       "Saturation...",
@@ -14167,7 +14175,7 @@
       "Quantize...",
       (char *) NULL
     },
-    *EffectsMenu[] =
+    *const EffectsMenu[] =
     {
       "Despeckle",
       "Emboss",
@@ -14183,7 +14191,7 @@
       "Segment...",
       (char *) NULL
     },
-    *FXMenu[] =
+    *const FXMenu[] =
     {
       "Solarize...",
       "Sepia Tone...",
@@ -14195,7 +14203,7 @@
       "Charcoal Draw...",
       (char *) NULL
     },
-    *ImageEditMenu[] =
+    *const ImageEditMenu[] =
     {
       "Annotate...",
       "Draw...",
@@ -14209,7 +14217,7 @@
       "Region of Interest...",
       (char *) NULL
     },
-    *MiscellanyMenu[] =
+    *const MiscellanyMenu[] =
     {
       "Image Info",
       "Zoom Image",
@@ -14221,14 +14229,14 @@
       "Preferences...",
       (char *) NULL
     },
-    *HelpMenu[] =
+    *const HelpMenu[] =
     {
       "Overview",
       "Browse Documentation",
       "About Display",
       (char *) NULL
     },
-    *ShortCutsMenu[] =
+    *const ShortCutsMenu[] =
     {
       "Next",
       "Former",
@@ -14241,7 +14249,7 @@
       "Quit",
       (char *) NULL
     },
-    *VirtualMenu[] =
+    *const VirtualMenu[] =
     {
       "Image Info",
       "Print",
@@ -14250,8 +14258,8 @@
       (char *) NULL
     };
 
-  static const char
-    **Menus[MagickMenus] =
+  const char
+    *const *Menus[MagickMenus] =
     {
       FileMenu,
       EditMenu,
@@ -14717,29 +14725,30 @@
 
       title=InterpretImageProperties(resource_info->image_info,display_image,
         resource_info->title,exception);
-      (void) CopyMagickString(windows->image.name,title,MagickPathExtent);
-      (void) CopyMagickString(windows->image.icon_name,title,MagickPathExtent);
+      (void) CloneString(&windows->image.name,title);
+      (void) CloneString(&windows->image.icon_name,title);
       title=DestroyString(title);
     }
   else
     {
       char
-        filename[MagickPathExtent];
+        filename[MagickPathExtent],
+        window_name[MagickPathExtent];
 
       /*
         Window name is the base of the filename.
       */
       GetPathComponent(display_image->magick_filename,TailPath,filename);
       if (display_image->scene == 0)
-        (void) FormatLocaleString(windows->image.name,MagickPathExtent,
-          "%s: %s",MagickPackageName,filename);
+        (void) FormatLocaleString(window_name,MagickPathExtent,"%s: %s",
+          MagickPackageName,filename);
       else
-        (void) FormatLocaleString(windows->image.name,MagickPathExtent,
+        (void) FormatLocaleString(window_name,MagickPathExtent,
           "%s: %s[scene: %.20g frames: %.20g]",MagickPackageName,filename,
           (double) display_image->scene,(double) GetImageListLength(
           display_image));
-      (void) CopyMagickString(windows->image.icon_name,filename,
-        MagickPathExtent);
+      (void) CloneString(&windows->image.name,window_name);
+      (void) CloneString(&windows->image.icon_name,filename);
     }
   if (resource_info->immutable)
     windows->image.immutable=MagickTrue;
@@ -14963,8 +14972,8 @@
     resource_info->client_name);
   windows->magnify.geometry=XGetResourceClass(resource_info->resource_database,
     resource_name,"geometry",(char *) NULL);
-  (void) FormatLocaleString(windows->magnify.name,MagickPathExtent,"Magnify %uX",
-    resource_info->magnify);
+  (void) FormatLocaleString(windows->magnify.name,MagickPathExtent,
+    "Magnify %uX",resource_info->magnify);
   if (windows->magnify.cursor != (Cursor) NULL)
     (void) XFreeCursor(display,windows->magnify.cursor);
   windows->magnify.cursor=XMakeCursor(display,windows->image.id,
@@ -15073,7 +15082,7 @@
     Respond to events.
   */
   delay=display_image->delay/MagickMax(display_image->ticks_per_second,1L);
-  timer=time((time_t *) NULL)+(delay == 0 ? 1 : delay)+1;
+  timer=GetMagickTime()+(delay == 0 ? 1 : delay)+1;
   update_time=0;
   if (resource_info->update != MagickFalse )
     {
@@ -15098,7 +15107,7 @@
     if (windows->image.mapped != MagickFalse )
       if ((display_image->delay != 0) || (resource_info->update != 0))
         {
-          if (timer < time((time_t *) NULL))
+          if (timer < GetMagickTime())
             {
               if (resource_info->update == MagickFalse)
                 *state|=NextImageState | ExitState;
@@ -15127,7 +15136,7 @@
                       }
                   delay=display_image->delay/MagickMax(
                     display_image->ticks_per_second,1L);
-                  timer=time((time_t *) NULL)+(delay == 0 ? 1 : delay)+1;
+                  timer=GetMagickTime()+(delay == 0 ? 1 : delay)+1;
                 }
             }
           if (XEventsQueued(display,QueuedAfterFlush) == 0)
@@ -15139,12 +15148,12 @@
               continue;
             }
         }
-    timestamp=time((time_t *) NULL);
+    timestamp=GetMagickTime();
     (void) XNextEvent(display,&event);
     if ((windows->image.stasis == MagickFalse) ||
         (windows->magnify.stasis == MagickFalse))
       {
-        if ((time((time_t *) NULL)-timestamp) > 0)
+        if ((GetMagickTime()-timestamp) > 0)
           {
             windows->image.stasis=MagickTrue;
             windows->magnify.stasis=MagickTrue;
@@ -15302,11 +15311,8 @@
           }
         if (event.xbutton.window == windows->magnify.id)
           {
-            int
-              factor;
-
-            static const char
-              *MagnifyMenu[] =
+            const char
+              *const MagnifyMenu[] =
               {
                 "2",
                 "4",
@@ -15319,6 +15325,9 @@
                 (char *) NULL,
               };
 
+            int
+              factor;
+
             static KeySym
               MagnifyCommands[] =
               {
@@ -15371,7 +15380,7 @@
           }
         delay=display_image->delay/MagickMax(display_image->ticks_per_second,
           1L);
-        timer=time((time_t *) NULL)+(delay == 0 ? 1 : delay)+1;
+        timer=GetMagickTime()+(delay == 0 ? 1 : delay)+1;
         break;
       }
       case ButtonRelease:
@@ -15763,7 +15772,7 @@
             XRefreshWindow(display,&windows->image,&event);
             delay=display_image->delay/MagickMax(
               display_image->ticks_per_second,1L);
-            timer=time((time_t *) NULL)+(delay == 0 ? 1 : delay)+1;
+            timer=GetMagickTime()+(delay == 0 ? 1 : delay)+1;
             break;
           }
         if ((event.xexpose.window == windows->magnify.id) &&
@@ -15817,14 +15826,14 @@
                 windows->pan.screen);
             else
               if ((key_symbol == XK_F1) || (key_symbol == XK_Help))
-                XTextViewWidget(display,resource_info,windows,MagickFalse,
+                XTextViewHelp(display,resource_info,windows,MagickFalse,
                   "Help Viewer - Image Pan",ImagePanHelp);
               else
                 XTranslateImage(display,windows,*image,key_symbol);
           }
         delay=display_image->delay/MagickMax(
           display_image->ticks_per_second,1L);
-        timer=time((time_t *) NULL)+(delay == 0 ? 1 : delay)+1;
+        timer=GetMagickTime()+(delay == 0 ? 1 : delay)+1;
         break;
       }
       case KeyRelease:
diff --git a/MagickCore/display.h b/MagickCore/display.h
index d07b833..d85440c 100644
--- a/MagickCore/display.h
+++ b/MagickCore/display.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index b22b9f1..b7b766b 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -18,7 +18,7 @@
 %                                 June 2007                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/distort.h b/MagickCore/distort.h
index 58c78ca..733936b 100644
--- a/MagickCore/distort.h
+++ b/MagickCore/distort.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h
index dbf1312..c338429 100644
--- a/MagickCore/distribute-cache-private.h
+++ b/MagickCore/distribute-cache-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index 259c2cf..601cb0f 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -22,7 +22,7 @@
 %                                January 2013                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -64,7 +64,6 @@
 #include "MagickCore/list.h"
 #include "MagickCore/locale_.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/nt-base-private.h"
 #include "MagickCore/pixel.h"
 #include "MagickCore/policy.h"
@@ -87,7 +86,7 @@
 #define HANDLER_RETURN_VALUE (void *) NULL
 #define SOCKET_TYPE int
 #define LENGTH_TYPE size_t
-#define MAGICKCORE_HAVE_DISTRIBUTE_CACHE
+#define MAGICKCORE_HAVE_DISTRIBUTE_CACHE 1
 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
 #define CHAR_TYPE_CAST (char *)
 #define CLOSE_SOCKET(socket) (void) closesocket(socket)
@@ -95,7 +94,7 @@
 #define HANDLER_RETURN_VALUE 0
 #define SOCKET_TYPE SOCKET
 #define LENGTH_TYPE int
-#define MAGICKCORE_HAVE_DISTRIBUTE_CACHE
+#define MAGICKCORE_HAVE_DISTRIBUTE_CACHE 1
 #else
 #ifdef __VMS
 #define CLOSE_SOCKET(socket) (void) close(socket)
@@ -154,7 +153,7 @@
   ssize_t
     count;
 
-#if !defined(MAGICKCORE_HAVE_DISTRIBUTE_CACHE)
+#if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
   magick_unreferenced(file);
   magick_unreferenced(message);
 #endif
@@ -177,7 +176,7 @@
 static int ConnectPixelCacheServer(const char *hostname,const int port,
   size_t *session_key,ExceptionInfo *exception)
 {
-#if defined(MAGICKCORE_HAVE_DISTRIBUTE_CACHE)
+#if MAGICKCORE_HAVE_DISTRIBUTE_CACHE
   char
     service[MagickPathExtent],
     *shared_secret;
@@ -422,15 +421,6 @@
 %
 */
 
-static MagickBooleanType DestroyDistributeCache(SplayTreeInfo *registry,
-  const size_t session_key)
-{
-  /*
-    Destroy distributed pixel cache.
-  */
-  return(DeleteNodeFromSplayTree(registry,(const void *) session_key));
-}
-
 static inline MagickOffsetType dpc_send(int file,const MagickSizeType length,
   const unsigned char *magick_restrict message)
 {
@@ -440,7 +430,7 @@
   register MagickOffsetType
     i;
 
-#if !defined(MAGICKCORE_HAVE_DISTRIBUTE_CACHE)
+#if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
   magick_unreferenced(file);
   magick_unreferenced(message);
 #endif
@@ -463,6 +453,22 @@
   return(i);
 }
 
+#if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
+MagickExport void DistributePixelCacheServer(const int port,ExceptionInfo *Exception)
+{
+  magick_unreferenced(port);
+  ThrowFatalException(MissingDelegateError,"DelegateLibrarySupportNotBuiltIn");
+}
+#else
+static MagickBooleanType DestroyDistributeCache(SplayTreeInfo *registry,
+  const size_t session_key)
+{
+  /*
+    Destroy distributed pixel cache.
+  */
+  return(DeleteNodeFromSplayTree(registry,(const void *) session_key));
+}
+
 static MagickBooleanType OpenDistributeCache(SplayTreeInfo *registry,int file,
   const size_t session_key,ExceptionInfo *exception)
 {
@@ -887,7 +893,6 @@
 MagickExport void DistributePixelCacheServer(const int port,
   ExceptionInfo *exception)
 {
-#if defined(MAGICKCORE_HAVE_DISTRIBUTE_CACHE)
   char
     service[MagickPathExtent];
 
@@ -996,11 +1001,8 @@
     Not implemented!
 #endif
   }
-#else
-  magick_unreferenced(port);
-  ThrowFatalException(MissingDelegateError,"DelegateLibrarySupportNotBuiltIn");
-#endif
 }
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h
index a01e17c..1aef16c 100644
--- a/MagickCore/distribute-cache.h
+++ b/MagickCore/distribute-cache.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/draw-private.h b/MagickCore/draw-private.h
index 966f9a2..9fb6ab8 100644
--- a/MagickCore/draw-private.h
+++ b/MagickCore/draw-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 57416a1..74ea7ff 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -18,7 +18,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -91,8 +91,8 @@
   Define declarations.
 */
 #define BezierQuantum  200
-#define PrimitiveExtentPad  128
-#define MaxBezierCoordinates  4194304
+#define PrimitiveExtentPad  2048
+#define MaxBezierCoordinates  67108864
 #define ThrowPointExpectedException(token,exception) \
 { \
   (void) ThrowMagickException(exception,GetMagickModule(),DrawError, \
@@ -280,6 +280,8 @@
   if (draw_info == (DrawInfo *) NULL)
     return(clone_info);
   exception=AcquireExceptionInfo();
+  if (draw_info->id != (char *) NULL)
+    (void) CloneString(&clone_info->id,draw_info->id);
   if (draw_info->primitive != (char *) NULL)
     (void) CloneString(&clone_info->primitive,draw_info->primitive);
   if (draw_info->geometry != (char *) NULL)
@@ -883,6 +885,8 @@
   if (draw_info->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
   assert(draw_info->signature == MagickCoreSignature);
+  if (draw_info->id != (char *) NULL)
+    draw_info->id=DestroyString(draw_info->id);
   if (draw_info->primitive != (char *) NULL)
     draw_info->primitive=DestroyString(draw_info->primitive);
   if (draw_info->text != (char *) NULL)
@@ -1598,6 +1602,8 @@
       if (status == MagickFalse)
         clip_mask=DestroyImage(clip_mask);
     }
+  if (status == MagickFalse)
+    clip_mask=DestroyImage(clip_mask);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(DrawEvent,GetMagickModule(),"end clip-path");
   return(clip_mask);
@@ -1688,6 +1694,8 @@
       if (status == MagickFalse)
         composite_mask=DestroyImage(composite_mask);
     }
+  if (status == MagickFalse)
+    composite_mask=DestroyImage(composite_mask);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(DrawEvent,GetMagickModule(),"end mask-path");
   return(composite_mask);
@@ -1841,6 +1849,8 @@
           dash_polygon[0].coordinates=(size_t) j;
           dash_polygon[j].primitive=UndefinedPrimitive;
           status&=DrawStrokePolygon(image,clone_info,dash_polygon,exception);
+          if (status == MagickFalse)
+            break;
         }
       if (fabs(draw_info->dash_pattern[n]) >= MagickEpsilon)
         n++;
@@ -1855,7 +1865,8 @@
     dash_polygon[j].coordinates=1;
     j++;
   }
-  if ((total_length < maximum_length) && ((n & 0x01) == 0) && (j > 1))
+  if ((status != MagickFalse) && (total_length < maximum_length) &&
+      ((n & 0x01) == 0) && (j > 1))
     {
       dash_polygon[j]=primitive_info[i-1];
       dash_polygon[j].point.x+=MagickEpsilon;
@@ -2027,14 +2038,14 @@
 #endif
   for (y=bounding_box.y; y < (ssize_t) bounding_box.height; y++)
   {
-    PixelInfo
-      composite,
-      pixel;
-
     double
       alpha,
       offset;
 
+    PixelInfo
+      composite,
+      pixel;
+
     register Quantum
       *magick_restrict q;
 
@@ -2128,12 +2139,12 @@
         }
         case RepeatSpread:
         {
-          MagickBooleanType
-            antialias;
-
           double
             repeat;
 
+          MagickBooleanType
+            antialias;
+
           antialias=MagickFalse;
           repeat=0.0;
           if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
@@ -2259,7 +2270,12 @@
         *mvg_info->primitive_info,(size_t) extent,quantum);
       if (*mvg_info->primitive_info != (PrimitiveInfo *) NULL)
         {
+          register ssize_t
+            i;
+
           *mvg_info->extent=(size_t) extent;
+          for (i=mvg_info->offset+1; i < (ssize_t) extent; i++)
+            (*mvg_info->primitive_info)[i].primitive=UndefinedPrimitive;
           return(MagickTrue);
         }
     }
@@ -2278,6 +2294,17 @@
   return(MagickFalse);
 }
 
+MagickExport int MVGMacroCompare(const void *target,const void *source)
+{
+  const char
+    *p,
+    *q;
+
+  p=(const char *) target;
+  q=(const char *) source;
+  return(strcmp(p,q));
+}
+
 static SplayTreeInfo *GetMVGMacros(const char *primitive)
 {
   char
@@ -2298,14 +2325,15 @@
   */
   if (primitive == (const char *) NULL)
     return((SplayTreeInfo *) NULL);
-  macros=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
+  macros=NewSplayTree(MVGMacroCompare,RelinquishMagickMemory,
     RelinquishMagickMemory);
   macro=AcquireString(primitive);
   token=AcquireString(primitive);
   extent=strlen(token)+MagickPathExtent;
   for (q=primitive; *q != '\0'; )
   {
-    GetNextToken(q,&q,extent,token);
+    if (GetNextToken(q,&q,extent,token) < 1)
+      break;
     if (*token == '\0')
       break;
     if (LocaleCompare("push",token) == 0)
@@ -2314,7 +2342,7 @@
           *end,
           *start;
 
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         if (*q == '"')
           {
             char
@@ -2329,14 +2357,15 @@
             /*
               Named macro (e.g. push graphic-context "wheel").
             */
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             start=q;
             end=q;
             (void) CopyMagickString(name,token,MagickPathExtent);
             n=1;
             for (p=q; *p != '\0'; )
             {
-              GetNextToken(p,&p,extent,token);
+              if (GetNextToken(p,&p,extent,token) < 1)
+                break;
               if (*token == '\0')
                 break;
               if (LocaleCompare(token,"pop") == 0)
@@ -2351,7 +2380,7 @@
                   /*
                     Extract macro.
                   */
-                  GetNextToken(p,&p,extent,token);
+                  (void) GetNextToken(p,&p,extent,token);
                   (void) CopyMagickString(macro,start,(size_t) (end-start));
                   (void) AddValueToSplayTree(macros,ConstantString(name),
                     ConstantString(macro));
@@ -2490,15 +2519,13 @@
     {
       status=SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
       if (status == MagickFalse)
-        return(status);
+        return(MagickFalse);
     }
-  primitive=(char *) NULL;
-  if (*draw_info->primitive != '@')
-    primitive=AcquireString(draw_info->primitive);
+  if ((*draw_info->primitive == '@') && (strlen(draw_info->primitive) > 1) &&
+      (*(draw_info->primitive+1) != '-') && (depth == 0))
+    primitive=FileToString(draw_info->primitive+1,~0UL,exception);
   else
-    if ((strlen(draw_info->primitive) > 1) &&
-        (*(draw_info->primitive+1) != '-'))
-      primitive=FileToString(draw_info->primitive+1,~0UL,exception);
+    primitive=AcquireString(draw_info->primitive);
   if (primitive == (char *) NULL)
     return(MagickFalse);
   primitive_extent=(double) strlen(primitive);
@@ -2553,7 +2580,8 @@
     /*
       Interpret graphic primitive.
     */
-    GetNextToken(q,&q,MagickPathExtent,keyword);
+    if (GetNextToken(q,&q,MagickPathExtent,keyword) < 1)
+      break;
     if (*keyword == '\0')
       break;
     if (*keyword == '#')
@@ -2569,6 +2597,7 @@
     primitive_type=UndefinedPrimitive;
     current=graphic_context[n]->affine;
     GetAffineMatrix(&affine);
+    *token='\0';
     switch (*keyword)
     {
       case ';':
@@ -2578,37 +2607,37 @@
       {
         if (LocaleCompare("affine",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ry=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -2637,7 +2666,7 @@
           }
         if (LocaleCompare("border-color",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             status&=QueryColorCompliance(token,AllCompliance,
               &graphic_context[n]->border_color,exception);
             break;
@@ -2653,12 +2682,14 @@
             const char
               *mvg_class;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == '\0')
               {
                 status=MagickFalse;
                 break;
               }
+            if (LocaleCompare(token,graphic_context[n]->id) == 0)
+              break;
             mvg_class=(const char *) GetValueFromSplayTree(macros,token);
             if (mvg_class != (const char *) NULL)
               {
@@ -2691,7 +2722,7 @@
             /*
               Take a node from within the MVG document, and duplicate it here.
             */
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == '\0')
               {
                 status=MagickFalse;
@@ -2706,9 +2737,16 @@
                     DestroyImage(graphic_context[n]->clipping_mask);
                 graphic_context[n]->clipping_mask=DrawClippingMask(image,
                   graphic_context[n],token,clip_path,exception);
-                if (draw_info->compliance != SVGCompliance)
-                  status&=DrawClipPath(image,graphic_context[n],
-                    graphic_context[n]->clip_mask,exception);
+                if (graphic_context[n]->compliance != SVGCompliance)
+                  {
+                    clip_path=(const char *) GetValueFromSplayTree(macros,
+                      graphic_context[n]->clip_mask);
+                    if (clip_path != (const char *) NULL)
+                      (void) SetImageArtifact(image,
+                        graphic_context[n]->clip_mask,clip_path);
+                    status&=DrawClipPath(image,graphic_context[n],
+                      graphic_context[n]->clip_mask,exception);
+                  }
               }
             break;
           }
@@ -2717,7 +2755,7 @@
             ssize_t
               fill_rule;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
               token);
             if (fill_rule == -1)
@@ -2733,7 +2771,7 @@
             ssize_t
               clip_units;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             clip_units=ParseCommandOption(MagickClipPathOptions,MagickFalse,
               token);
             if (clip_units == -1)
@@ -2769,7 +2807,7 @@
               MVG compliance associates a clipping mask with an image; SVG
               compliance associates a clipping mask with a graphics context.
             */
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->compliance=(ComplianceType) ParseCommandOption(
               MagickComplianceOptions,MagickFalse,token);
             break;
@@ -2785,7 +2823,7 @@
             ssize_t
               decorate;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             decorate=ParseCommandOption(MagickDecorateOptions,MagickFalse,
               token);
             if (decorate == -1)
@@ -2798,7 +2836,7 @@
           }
         if (LocaleCompare("density",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->density,token);
             break;
           }
@@ -2807,7 +2845,7 @@
             ssize_t
               direction;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             direction=ParseCommandOption(MagickDirectionOptions,MagickFalse,
               token);
             if (direction == -1)
@@ -2829,7 +2867,7 @@
           }
         if (LocaleCompare("encoding",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->encoding,token);
             break;
           }
@@ -2841,7 +2879,7 @@
       {
         if (LocaleCompare("fill",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             (void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
@@ -2862,7 +2900,7 @@
             double
               opacity;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
@@ -2870,12 +2908,15 @@
               StringToDouble(token,&next_token),0.0),1.0);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            graphic_context[n]->fill_alpha*=opacity;
+            if (graphic_context[n]->compliance == SVGCompliance)
+              graphic_context[n]->fill_alpha*=opacity;
+            else
+              graphic_context[n]->fill_alpha=QuantumRange*opacity;
             if (graphic_context[n]->fill.alpha != TransparentAlpha)
               graphic_context[n]->fill.alpha=graphic_context[n]->fill_alpha;
             else
               graphic_context[n]->fill.alpha=(MagickRealType)
-                ClampToQuantum(QuantumRange*opacity);
+                ClampToQuantum(QuantumRange*(1.0-opacity));
             break;
           }
         if (LocaleCompare("fill-rule",keyword) == 0)
@@ -2883,7 +2924,7 @@
             ssize_t
               fill_rule;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             fill_rule=ParseCommandOption(MagickFillRuleOptions,MagickFalse,
               token);
             if (fill_rule == -1)
@@ -2896,7 +2937,7 @@
           }
         if (LocaleCompare("font",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->font,token);
             if (LocaleCompare("none",token) == 0)
               graphic_context[n]->font=(char *) RelinquishMagickMemory(
@@ -2905,13 +2946,13 @@
           }
         if (LocaleCompare("font-family",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) CloneString(&graphic_context[n]->family,token);
             break;
           }
         if (LocaleCompare("font-size",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->pointsize=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -2922,7 +2963,7 @@
             ssize_t
               stretch;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             stretch=ParseCommandOption(MagickStretchOptions,MagickFalse,token);
             if (stretch == -1)
               {
@@ -2937,7 +2978,7 @@
             ssize_t
               style;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             style=ParseCommandOption(MagickStyleOptions,MagickFalse,token);
             if (style == -1)
               {
@@ -2952,7 +2993,7 @@
             ssize_t
               weight;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             weight=ParseCommandOption(MagickWeightOptions,MagickFalse,token);
             if (weight == -1)
               weight=(ssize_t) StringToUnsignedLong(token);
@@ -2967,7 +3008,7 @@
       {
         if (LocaleCompare("gradient-units",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("gravity",keyword) == 0)
@@ -2975,7 +3016,7 @@
             ssize_t
               gravity;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,token);
             if (gravity == -1)
               {
@@ -2997,7 +3038,7 @@
               compose;
 
             primitive_type=ImagePrimitive;
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             compose=ParseCommandOption(MagickComposeOptions,MagickFalse,token);
             if (compose == -1)
               {
@@ -3009,7 +3050,7 @@
           }
         if (LocaleCompare("interline-spacing",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->interline_spacing=StringToDouble(token,
               &next_token);
             if (token == next_token)
@@ -3018,7 +3059,7 @@
           }
         if (LocaleCompare("interword-spacing",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->interword_spacing=StringToDouble(token,
               &next_token);
             if (token == next_token)
@@ -3033,7 +3074,7 @@
       {
         if (LocaleCompare("kerning",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->kerning=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3047,7 +3088,9 @@
       {
         if (LocaleCompare("letter-spacing",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
+            if (IsPoint(token) == MagickFalse)
+              break;
             clone_info=CloneDrawInfo((ImageInfo *) NULL,graphic_context[n]);
             clone_info->text=AcquireString(" ");
             status&=GetTypeMetrics(image,clone_info,&metrics,exception);
@@ -3077,7 +3120,7 @@
             /*
               Take a node from within the MVG document, and duplicate it here.
             */
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             mask_path=(const char *) GetValueFromSplayTree(macros,token);
             if (mask_path != (const char *) NULL)
               {
@@ -3086,7 +3129,7 @@
                     DestroyImage(graphic_context[n]->composite_mask);
                 graphic_context[n]->composite_mask=DrawCompositeMask(image,
                   graphic_context[n],token,mask_path,exception);
-                if (draw_info->compliance != SVGCompliance)
+                if (graphic_context[n]->compliance != SVGCompliance)
                   status=SetImageMask(image,CompositePixelMask,
                     graphic_context[n]->composite_mask,exception);
               }
@@ -3099,7 +3142,7 @@
       {
         if (LocaleCompare("offset",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("opacity",keyword) == 0)
@@ -3107,7 +3150,7 @@
             double
               opacity;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
@@ -3115,12 +3158,16 @@
               StringToDouble(token,&next_token),0.0),1.0);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            graphic_context[n]->fill_alpha*=opacity;
-            if (graphic_context[n]->fill_alpha != OpaqueAlpha)
-              graphic_context[n]->fill.alpha=graphic_context[n]->fill_alpha;
-            graphic_context[n]->stroke_alpha*=opacity;
-            if (graphic_context[n]->stroke_alpha != OpaqueAlpha)
-              graphic_context[n]->stroke.alpha=graphic_context[n]->stroke_alpha;
+            if (graphic_context[n]->compliance == SVGCompliance)
+              {
+                graphic_context[n]->fill_alpha*=opacity;
+                graphic_context[n]->stroke_alpha*=opacity;
+              }
+            else
+              {
+                graphic_context[n]->fill_alpha=QuantumRange*opacity;
+                graphic_context[n]->stroke_alpha=QuantumRange*opacity;
+              }
             break;
           }
         status=MagickFalse;
@@ -3151,7 +3198,8 @@
           }
         if (LocaleCompare("pop",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            if (GetNextToken(q,&q,extent,token) < 1)
+              break;
             if (LocaleCompare("class",token) == 0)
               break;
             if (LocaleCompare("clip-path",token) == 0)
@@ -3176,7 +3224,7 @@
                     break;
                   }
                 if ((graphic_context[n]->clip_mask != (char *) NULL) &&
-                    (draw_info->compliance != SVGCompliance))
+                    (graphic_context[n]->compliance != SVGCompliance))
                   if (LocaleCompare(graphic_context[n]->clip_mask,
                       graphic_context[n-1]->clip_mask) != 0)
                     status=SetImageMask(image,WritePixelMask,(Image *) NULL,
@@ -3201,7 +3249,8 @@
           }
         if (LocaleCompare("push",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            if (GetNextToken(q,&q,extent,token) < 1)
+              break;
             if (LocaleCompare("class",token) == 0)
               {
                 /*
@@ -3209,30 +3258,38 @@
                 */
                 for (p=q; *q != '\0'; )
                 {
-                  GetNextToken(q,&q,extent,token);
+                  if (GetNextToken(q,&q,extent,token) < 1)
+                    break;
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetNextToken(q,(const char **) NULL,extent,token);
+                  (void) GetNextToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"class") != 0)
                     continue;
                   break;
                 }
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("clip-path",token) == 0)
               {
-                char
-                  name[MaxTextExtent];
-
-                const char
-                  *clip_path;
-
-                GetNextToken(q,&q,extent,token);
-                (void) FormatLocaleString(name,MaxTextExtent,"%s",token);
-                clip_path=(const char *) GetValueFromSplayTree(macros,name);
-                if (clip_path != (const char *) NULL)
-                  (void) SetImageArtifact(image,name,clip_path);
+                (void) GetNextToken(q,&q,extent,token);
+                for (p=q; *q != '\0'; )
+                {
+                	if (GetNextToken(q,&q,extent,token) < 1)
+                    break;
+                	if (LocaleCompare(token,"pop") != 0)
+                		continue;
+                	(void) GetNextToken(q,(const char **) NULL,extent,token);
+                	if (LocaleCompare(token,"clip-path") != 0)
+                		continue;
+                	break;
+                }
+                if ((q == (char *) NULL) || (p == (char *) NULL) || ((q-4) < p))
+                  {
+                    status=MagickFalse;
+                    break;
+                  }
+                (void) GetNextToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("defs",token) == 0)
@@ -3252,44 +3309,45 @@
                 SegmentInfo
                   segment;
 
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(type,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 segment.x1=StringToDouble(token,&next_token);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 segment.y1=StringToDouble(token,&next_token);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 segment.x2=StringToDouble(token,&next_token);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 segment.y2=StringToDouble(token,&next_token);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
                 if (LocaleCompare(type,"radial") == 0)
                   {
-                    GetNextToken(q,&q,extent,token);
+                    (void) GetNextToken(q,&q,extent,token);
                     if (*token == ',')
-                      GetNextToken(q,&q,extent,token);
+                      (void) GetNextToken(q,&q,extent,token);
                   }
                 for (p=q; *q != '\0'; )
                 {
-                  GetNextToken(q,&q,extent,token);
+                  if (GetNextToken(q,&q,extent,token) < 1)
+                    break;
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetNextToken(q,(const char **) NULL,extent,token);
+                  (void) GetNextToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"gradient") != 0)
                     continue;
                   break;
@@ -3324,7 +3382,7 @@
                   MagickMax(fabs(bounds.y2-bounds.y1+1.0),1.0),
                   bounds.x1,bounds.y1);
                 (void) SetImageArtifact(image,key,geometry);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("graphic-context",token) == 0)
@@ -3342,12 +3400,15 @@
                 graphic_context[n]=CloneDrawInfo((ImageInfo *) NULL,
                   graphic_context[n-1]);
                 if (*q == '"')
-                  GetNextToken(q,&q,extent,token);
+                  {
+                    (void) GetNextToken(q,&q,extent,token);
+                    (void) CloneString(&graphic_context[n]->id,token);
+                  }
                 break;
               }
             if (LocaleCompare("mask",token) == 0)
               {
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("pattern",token) == 0)
@@ -3359,38 +3420,39 @@
                 RectangleInfo
                   bounds;
 
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 bounds.x=(ssize_t) ceil(StringToDouble(token,&next_token)-0.5);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 bounds.y=(ssize_t) ceil(StringToDouble(token,&next_token)-0.5);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 bounds.width=(size_t) floor(StringToDouble(token,&next_token)+
                   0.5);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 bounds.height=(size_t) floor(StringToDouble(token,&next_token)+
                   0.5);
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
                 for (p=q; *q != '\0'; )
                 {
-                  GetNextToken(q,&q,extent,token);
+                  if (GetNextToken(q,&q,extent,token) < 1)
+                    break;
                   if (LocaleCompare(token,"pop") != 0)
                     continue;
-                  GetNextToken(q,(const char **) NULL,extent,token);
+                  (void) GetNextToken(q,(const char **) NULL,extent,token);
                   if (LocaleCompare(token,"pattern") != 0)
                     continue;
                   break;
@@ -3409,7 +3471,7 @@
                   "%.20gx%.20g%+.20g%+.20g",(double) bounds.width,(double)
                   bounds.height,(double) bounds.x,(double) bounds.y);
                 (void) SetImageArtifact(image,key,geometry);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 break;
               }
             if (LocaleCompare("symbol",token) == 0)
@@ -3435,7 +3497,7 @@
           }
         if (LocaleCompare("rotate",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             angle=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3458,13 +3520,13 @@
       {
         if (LocaleCompare("scale",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3472,7 +3534,7 @@
           }
         if (LocaleCompare("skewX",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             angle=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3481,7 +3543,7 @@
           }
         if (LocaleCompare("skewY",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             angle=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3507,11 +3569,11 @@
                   image->filename);
                 break;
               }
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             status&=QueryColorCompliance(token,AllCompliance,&stop_color,
               exception);
             stops[number_stops-1].color=stop_color;
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
             stops[number_stops-1].offset=factor*StringToDouble(token,
               &next_token);
@@ -3521,7 +3583,7 @@
           }
         if (LocaleCompare("stroke",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             (void) FormatLocaleString(pattern,MagickPathExtent,"%s",token);
@@ -3540,7 +3602,7 @@
           }
         if (LocaleCompare("stroke-antialias",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->stroke_antialias=StringToLong(token) != 0 ?
               MagickTrue : MagickFalse;
             break;
@@ -3556,14 +3618,14 @@
                   *r;
 
                 r=q;
-                GetNextToken(r,&r,extent,token);
+                (void) GetNextToken(r,&r,extent,token);
                 if (*token == ',')
-                  GetNextToken(r,&r,extent,token);
+                  (void) GetNextToken(r,&r,extent,token);
                 for (x=0; IsPoint(token) != MagickFalse; x++)
                 {
-                  GetNextToken(r,&r,extent,token);
+                  (void) GetNextToken(r,&r,extent,token);
                   if (*token == ',')
-                    GetNextToken(r,&r,extent,token);
+                    (void) GetNextToken(r,&r,extent,token);
                 }
                 graphic_context[n]->dash_pattern=(double *)
                   AcquireQuantumMemory((size_t) (2*x+2),
@@ -3580,9 +3642,9 @@
                   (2*x+2)*sizeof(*graphic_context[n]->dash_pattern));
                 for (j=0; j < x; j++)
                 {
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                   if (*token == ',')
-                    GetNextToken(q,&q,extent,token);
+                    (void) GetNextToken(q,&q,extent,token);
                   graphic_context[n]->dash_pattern[j]=StringToDouble(token,
                     &next_token);
                   if (token == next_token)
@@ -3597,12 +3659,12 @@
                 graphic_context[n]->dash_pattern[j]=0.0;
                 break;
               }
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("stroke-dashoffset",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->dash_offset=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3613,7 +3675,7 @@
             ssize_t
               linecap;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             linecap=ParseCommandOption(MagickLineCapOptions,MagickFalse,token);
             if (linecap == -1)
               {
@@ -3628,7 +3690,7 @@
             ssize_t
               linejoin;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             linejoin=ParseCommandOption(MagickLineJoinOptions,MagickFalse,
               token);
             if (linejoin == -1)
@@ -3641,7 +3703,7 @@
           }
         if (LocaleCompare("stroke-miterlimit",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->miterlimit=StringToUnsignedLong(token);
             break;
           }
@@ -3650,7 +3712,7 @@
             double
               opacity;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0;
@@ -3658,17 +3720,20 @@
               StringToDouble(token,&next_token),0.0),1.0);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            graphic_context[n]->stroke_alpha*=opacity;
+            if (graphic_context[n]->compliance == SVGCompliance)
+              graphic_context[n]->stroke_alpha*=opacity;
+            else
+              graphic_context[n]->stroke_alpha=QuantumRange*opacity;
             if (graphic_context[n]->stroke.alpha != TransparentAlpha)
               graphic_context[n]->stroke.alpha=graphic_context[n]->stroke_alpha;
             else
               graphic_context[n]->stroke.alpha=(MagickRealType)
-                ClampToQuantum(QuantumRange*opacity);
+                ClampToQuantum(QuantumRange*(1.0-opacity));
             break;
           }
         if (LocaleCompare("stroke-width",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (graphic_context[n]->clip_path != MagickFalse)
               break;
             graphic_context[n]->stroke_width=StringToDouble(token,&next_token);
@@ -3693,7 +3758,7 @@
             ssize_t
               align;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
             if (align == -1)
               {
@@ -3708,7 +3773,7 @@
             ssize_t
               align;
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             align=ParseCommandOption(MagickAlignOptions,MagickFalse,token);
             if (align == -1)
               {
@@ -3720,27 +3785,27 @@
           }
         if (LocaleCompare("text-antialias",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->text_antialias=StringToLong(token) != 0 ?
               MagickTrue : MagickFalse;
             break;
           }
         if (LocaleCompare("text-undercolor",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             status&=QueryColorCompliance(token,AllCompliance,
               &graphic_context[n]->undercolor,exception);
             break;
           }
         if (LocaleCompare("translate",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -3761,7 +3826,7 @@
             /*
               Get a macro from the MVG document, and "use" it here.
             */
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             use=(const char *) GetValueFromSplayTree(macros,token);
             if (use != (const char *) NULL)
               {
@@ -3779,28 +3844,28 @@
       {
         if (LocaleCompare("viewbox",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->viewbox.x=(ssize_t) ceil(StringToDouble(token,
               &next_token)-0.5);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->viewbox.y=(ssize_t) ceil(StringToDouble(token,
               &next_token)-0.5);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->viewbox.width=(size_t) floor(StringToDouble(
               token,&next_token)+0.5);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->viewbox.height=(size_t) floor(StringToDouble(
               token,&next_token)+0.5);
             if (token == next_token)
@@ -3815,7 +3880,7 @@
       {
         if (LocaleCompare("word-spacing",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             graphic_context[n]->interword_spacing=StringToDouble(token,
               &next_token);
             if (token == next_token)
@@ -3893,19 +3958,19 @@
       */
       if (IsPoint(q) == MagickFalse)
         break;
-      GetNextToken(q,&q,extent,token);
+      (void) GetNextToken(q,&q,extent,token);
       point.x=StringToDouble(token,&next_token);
       if (token == next_token)
         ThrowPointExpectedException(token,exception);
-      GetNextToken(q,&q,extent,token);
+      (void) GetNextToken(q,&q,extent,token);
       if (*token == ',')
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
       point.y=StringToDouble(token,&next_token);
       if (token == next_token)
         ThrowPointExpectedException(token,exception);
-      GetNextToken(q,(const char **) NULL,extent,token);
+      (void) GetNextToken(q,(const char **) NULL,extent,token);
       if (*token == ',')
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
       primitive_info[i].primitive=primitive_type;
       primitive_info[i].point=point;
       primitive_info[i].coordinates=0;
@@ -3990,7 +4055,7 @@
           *s,
           *t;
 
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         coordinates=1.0;
         t=token;
         for (s=token; *s != '\0'; s=t)
@@ -4025,23 +4090,11 @@
         beta=bounds.y2-bounds.y1;
         radius=hypot(alpha,beta);
         coordinates=2.0*(ceil(MagickPI*radius))+6.0*BezierQuantum+360.0;
-        if (coordinates > (MaxBezierCoordinates/4))
-          {
-            (void) ThrowMagickException(exception,GetMagickModule(),DrawError,
-              "TooManyBezierCoordinates","`%s'",token);
-            status=MagickFalse;
-          }
         break;
       }
       default:
         break;
     }
-    if (coordinates > MaxBezierCoordinates)
-      {
-        (void) ThrowMagickException(exception,GetMagickModule(),
-          ResourceLimitError,"MemoryAllocationFailed","`%s'",token);
-        status=MagickFalse;
-      }
     if (status == MagickFalse)
       break;
     if (((size_t) (i+coordinates)) >= number_points)
@@ -4228,7 +4281,7 @@
             status=MagickFalse;
             break;
           }
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         method=ParseCommandOption(MagickMethodOptions,MagickFalse,token);
         if (method == -1)
           {
@@ -4249,7 +4302,7 @@
             break;
           }
         if (*token != ',')
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         (void) CloneString(&primitive_info[j].text,token);
         /*
           Compute text cursor offset.
@@ -4273,6 +4326,8 @@
         status&=GetTypeMetrics(image,clone_info,&metrics,exception);
         clone_info=DestroyDrawInfo(clone_info);
         cursor+=metrics.width;
+        if (graphic_context[n]->compliance != SVGCompliance)
+          cursor=0.0;
         break;
       }
       case ImagePrimitive:
@@ -4282,7 +4337,7 @@
             status=MagickFalse;
             break;
           }
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         (void) CloneString(&primitive_info[j].text,token);
         break;
       }
@@ -4322,12 +4377,22 @@
     }
     if (graphic_context[n]->render != MagickFalse)
       {
-        if ((n != 0) && (draw_info->compliance != SVGCompliance) &&
+        if ((n != 0) && (graphic_context[n]->compliance != SVGCompliance) &&
             (graphic_context[n]->clip_mask != (char *) NULL) &&
             (LocaleCompare(graphic_context[n]->clip_mask,
              graphic_context[n-1]->clip_mask) != 0))
-          status&=DrawClipPath(image,graphic_context[n],
-            graphic_context[n]->clip_mask,exception);
+          {
+            const char
+              *clip_path;
+
+            clip_path=(const char *) GetValueFromSplayTree(macros,
+              graphic_context[n]->clip_mask);
+            if (clip_path != (const char *) NULL)
+              (void) SetImageArtifact(image,graphic_context[n]->clip_mask,
+                clip_path);
+            status&=DrawClipPath(image,graphic_context[n],
+              graphic_context[n]->clip_mask,exception);
+          }
         status&=DrawPrimitive(image,graphic_context[n],primitive_info,
           exception);
       }
@@ -4444,7 +4509,7 @@
   image_info->size=AcquireString(geometry);
   *pattern=AcquireImage(image_info,exception);
   image_info=DestroyImageInfo(image_info);
-  (void) QueryColorCompliance("#000000ff",AllCompliance,
+  (void) QueryColorCompliance("#00000000",AllCompliance,
     &(*pattern)->background_color,exception);
   (void) SetImageBackgroundColor(*pattern,exception);
   if (image->debug != MagickFalse)
@@ -4980,10 +5045,10 @@
 
 static inline double ConstrainCoordinate(double x)
 {
-  if (x < -SSIZE_MAX)
-    return(-SSIZE_MAX);
-  if (x > SSIZE_MAX)
-    return(SSIZE_MAX);
+  if (x < (double) -(SSIZE_MAX-512))
+    return((double) -(SSIZE_MAX-512));
+  if (x > (double) (SSIZE_MAX-512))
+    return((double) (SSIZE_MAX-512));
   return(x);
 }
 
@@ -5387,15 +5452,17 @@
       if (primitive_info->text == (char *) NULL)
         break;
       clone_info=AcquireImageInfo();
+      composite_images=(Image *) NULL;
       if (LocaleNCompare(primitive_info->text,"data:",5) == 0)
         composite_images=ReadInlineImage(clone_info,primitive_info->text,
           exception);
       else
-        {
-          (void) CopyMagickString(clone_info->filename,primitive_info->text,
-            MagickPathExtent);
-          composite_images=ReadImage(clone_info,exception);
-        }
+        if (*primitive_info->text != '\0')
+          {
+            (void) CopyMagickString(clone_info->filename,primitive_info->text,
+              MagickPathExtent);
+            composite_images=ReadImage(clone_info,exception);
+          }
       clone_info=DestroyImageInfo(clone_info);
       if (composite_images == (Image *) NULL)
         {
@@ -5437,7 +5504,12 @@
       affine.tx=(double) geometry.x;
       affine.ty=(double) geometry.y;
       composite_image->interpolate=image->interpolate;
-      status&=DrawAffineImage(image,composite_image,&affine,exception);
+      if ((draw_info->compose == OverCompositeOp) ||
+          (draw_info->compose == SrcOverCompositeOp))
+        (void) DrawAffineImage(image,composite_image,&affine,exception);
+      else
+        (void) CompositeImage(image,composite_image,draw_info->compose,
+          MagickTrue,geometry.x,geometry.y,exception);
       composite_image=DestroyImage(composite_image);
       break;
     }
@@ -5660,7 +5732,6 @@
     if (stroke_polygon == (PrimitiveInfo *) NULL)
       {
         status=0;
-        stroke_polygon=(PrimitiveInfo *) RelinquishMagickMemory(stroke_polygon);
         break;
       }
     status&=DrawPolygonPrimitive(image,clone_info,stroke_polygon,exception);
@@ -5969,7 +6040,7 @@
     return(TracePoint(primitive_info,end));
   radii.x=fabs(arc.x);
   radii.y=fabs(arc.y);
-  if ((fabs(radii.x) < MagickEpsilon) || (fabs(radii.y) < MagickEpsilon))
+  if ((radii.x < MagickEpsilon) || (radii.y < MagickEpsilon))
     return(TraceLine(primitive_info,start,end));
   cosine=cos(DegreesToRadians(fmod((double) angle,360.0)));
   sine=sin(DegreesToRadians(fmod((double) angle,360.0)));
@@ -5978,7 +6049,7 @@
   delta=(center.x*center.x)/(radii.x*radii.x)+(center.y*center.y)/
     (radii.y*radii.y);
   if (delta < MagickEpsilon)
-     return(TraceLine(primitive_info,start,end));
+    return(TraceLine(primitive_info,start,end));
   if (delta > 1.0)
     {
       radii.x*=sqrt((double) delta);
@@ -5990,6 +6061,8 @@
   points[1].y=(double) (cosine*end.y/radii.y-sine*end.x/radii.y);
   alpha=points[1].x-points[0].x;
   beta=points[1].y-points[0].y;
+  if (fabs(alpha*alpha+beta*beta) < MagickEpsilon)
+    return(TraceLine(primitive_info,start,end));
   factor=PerceptibleReciprocal(alpha*alpha+beta*beta)-0.25;
   if (factor <= 0.0)
     factor=0.0;
@@ -6049,10 +6122,14 @@
     if (i == (ssize_t) (arc_segments-1))
       (p+3)->point=end;
     status&=TraceBezier(mvg_info,4);
+    if (status == 0)
+      break;
     p=(*mvg_info->primitive_info)+mvg_info->offset;
     mvg_info->offset+=p->coordinates;
     p+=p->coordinates;
   }
+  if (status == 0)
+    return(MagickFalse);
   mvg_info->offset=offset;
   primitive_info=(*mvg_info->primitive_info)+mvg_info->offset;
   primitive_info->coordinates=(size_t) (p-primitive_info);
@@ -6062,7 +6139,7 @@
     p->primitive=primitive_info->primitive;
     p--;
   }
-  return(status == 0 ? MagickFalse : MagickTrue);
+  return(MagickTrue);
 }
 
 static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
@@ -6102,25 +6179,49 @@
     for (j=i+1; j < (ssize_t) number_coordinates; j++)
     {
       alpha=fabs(primitive_info[j].point.x-primitive_info[i].point.x);
+      if (alpha > (double) SSIZE_MAX)
+        {
+          (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
+            ResourceLimitError,"MemoryAllocationFailed","`%s'","");
+          return(MagickFalse);
+        }
       if (alpha > (double) quantum)
         quantum=(size_t) alpha;
       alpha=fabs(primitive_info[j].point.y-primitive_info[i].point.y);
+      if (alpha > (double) SSIZE_MAX)
+        {
+          (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
+            ResourceLimitError,"MemoryAllocationFailed","`%s'","");
+          return(MagickFalse);
+        }
       if (alpha > (double) quantum)
         quantum=(size_t) alpha;
     }
   }
-  quantum=(size_t) MagickMin((double) quantum/number_coordinates,
-    (double) BezierQuantum);
-  control_points=quantum*number_coordinates;
-  if (CheckPrimitiveExtent(mvg_info,control_points+1) == MagickFalse)
-    return(MagickFalse);
   primitive_info=(*mvg_info->primitive_info)+mvg_info->offset;
-  coefficients=(double *) AcquireQuantumMemory((size_t)
-    number_coordinates,sizeof(*coefficients));
-  points=(PointInfo *) AcquireQuantumMemory((size_t) control_points,
+  quantum=MagickMin(quantum/number_coordinates,BezierQuantum);
+  coefficients=(double *) AcquireQuantumMemory(number_coordinates,
+    sizeof(*coefficients));
+  points=(PointInfo *) AcquireQuantumMemory(quantum,number_coordinates*
     sizeof(*points));
   if ((coefficients == (double *) NULL) || (points == (PointInfo *) NULL))
-    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+    {
+      if (points != (PointInfo *) NULL)
+        points=(PointInfo *) RelinquishMagickMemory(points);
+      if (coefficients != (double *) NULL)
+        coefficients=(double *) RelinquishMagickMemory(coefficients);
+      (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
+        ResourceLimitError,"MemoryAllocationFailed","`%s'","");
+      return(MagickFalse);
+    }
+  control_points=quantum*number_coordinates;
+  if (CheckPrimitiveExtent(mvg_info,control_points+1) == MagickFalse)
+    {
+      points=(PointInfo *) RelinquishMagickMemory(points);
+      coefficients=(double *) RelinquishMagickMemory(coefficients);
+      return(MagickFalse);
+    }
+  primitive_info=(*mvg_info->primitive_info)+mvg_info->offset;
   /*
     Compute bezier points.
   */
@@ -6151,11 +6252,19 @@
   for (i=0; i < (ssize_t) control_points; i++)
   {
     if (TracePoint(p,points[i]) == MagickFalse)
-      return(MagickFalse);
+      {
+        points=(PointInfo *) RelinquishMagickMemory(points);
+        coefficients=(double *) RelinquishMagickMemory(coefficients);
+        return(MagickFalse);
+      }
     p+=p->coordinates;
   }
   if (TracePoint(p,end) == MagickFalse)
-    return(MagickFalse);
+    {
+      points=(PointInfo *) RelinquishMagickMemory(points);
+      coefficients=(double *) RelinquishMagickMemory(coefficients);
+      return(MagickFalse);
+    }
   p+=p->coordinates;
   primitive_info->coordinates=(size_t) (p-primitive_info);
   primitive_info->closed_subpath=MagickFalse;
@@ -6231,8 +6340,7 @@
     y+=360.0;
   angle.y=DegreesToRadians(y);
   coordinates=ceil((angle.y-angle.x)/step+1.0);
-  if ((coordinates > (double) SSIZE_MAX) ||
-      (coordinates > (double) GetMaxMemoryRequest()))
+  if (coordinates > (double) SSIZE_MAX)
     {
       (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
         ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6374,43 +6482,43 @@
         */
         do
         {
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           arc.x=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           arc.y=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           angle=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           large_arc=StringToLong(token) != 0 ? MagickTrue : MagickFalse;
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           sweep=StringToLong(token) != 0 ? MagickTrue : MagickFalse;
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
-          GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           x=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           y=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
@@ -6440,15 +6548,15 @@
           points[0]=point;
           for (i=1; i < 4; i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             x=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             y=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -6476,9 +6584,9 @@
       {
         do
         {
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           x=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
@@ -6505,15 +6613,15 @@
         */
         do
         {
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           x=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           y=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
@@ -6550,15 +6658,15 @@
         i=0;
         do
         {
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           x=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           y=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
@@ -6592,15 +6700,15 @@
           points[0]=point;
           for (i=1; i < 3; i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             x=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             y=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -6638,15 +6746,15 @@
           points[1].y=2.0*points[3].y-points[2].y;
           for (i=2; i < 4; i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             x=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             y=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -6690,15 +6798,15 @@
           points[1].y=2.0*points[2].y-points[1].y;
           for (i=2; i < 3; i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             x=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             y=StringToDouble(token,&next_token);
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
@@ -6737,9 +6845,9 @@
         */
         do
         {
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == ',')
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           y=StringToDouble(token,&next_token);
           if (token == next_token)
             ThrowPointExpectedException(token,exception);
@@ -6816,12 +6924,6 @@
   register ssize_t
     i;
 
-  if ((fabs(start.x-end.x) < MagickEpsilon) ||
-      (fabs(start.y-end.y) < MagickEpsilon))
-    {
-      primitive_info->coordinates=0;
-      return(MagickTrue);
-    }
   p=primitive_info;
   if (TracePoint(p,start) == MagickFalse)
     return(MagickFalse);
@@ -6986,6 +7088,7 @@
 static PrimitiveInfo *TraceStrokePolygon(const Image *image,
   const DrawInfo *draw_info,const PrimitiveInfo *primitive_info)
 {
+#define MaxStrokePad  (6*BezierQuantum+360)
 #define CheckPathExtent(pad) \
   if ((ssize_t) (q+(pad)) >= (ssize_t) max_strokes) \
     { \
@@ -6997,10 +7100,10 @@
       else \
         { \
           max_strokes+=(pad); \
-          path_p=(PointInfo *) ResizeQuantumMemory(path_p,max_strokes, \
-            sizeof(*path_p)); \
-          path_q=(PointInfo *) ResizeQuantumMemory(path_q,max_strokes, \
-            sizeof(*path_q)); \
+          path_p=(PointInfo *) ResizeQuantumMemory(path_p,max_strokes+ \
+            MaxStrokePad,sizeof(*path_p)); \
+          path_q=(PointInfo *) ResizeQuantumMemory(path_q,max_strokes+ \
+            MaxStrokePad,sizeof(*path_q)); \
         } \
       if ((path_p == (PointInfo *) NULL) || (path_q == (PointInfo *) NULL)) \
         { \
@@ -7067,7 +7170,7 @@
     Allocate paths.
   */
   number_vertices=primitive_info->coordinates;
-  max_strokes=2*number_vertices+6*BezierQuantum+360;
+  max_strokes=2*number_vertices;
   polygon_primitive=(PrimitiveInfo *) AcquireQuantumMemory((size_t)
     number_vertices+2UL,sizeof(*polygon_primitive));
   if (polygon_primitive == (PrimitiveInfo *) NULL)
@@ -7111,7 +7214,7 @@
         }
       n=(ssize_t) number_vertices-1L;
     }
-  path_p=(PointInfo *) AcquireQuantumMemory((size_t) max_strokes,
+  path_p=(PointInfo *) AcquireQuantumMemory((size_t) max_strokes+MaxStrokePad,
     sizeof(*path_p));
   if (path_p == (PointInfo *) NULL)
     {
@@ -7119,7 +7222,7 @@
         polygon_primitive);
       return((PrimitiveInfo *) NULL);
     }
-  path_q=(PointInfo *) AcquireQuantumMemory((size_t) max_strokes,
+  path_q=(PointInfo *) AcquireQuantumMemory((size_t) max_strokes+MaxStrokePad,
     sizeof(*path_q));
   if (path_q == (PointInfo *) NULL)
     {
diff --git a/MagickCore/draw.h b/MagickCore/draw.h
index 8b942b3..40c44a3 100644
--- a/MagickCore/draw.h
+++ b/MagickCore/draw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -337,6 +337,9 @@
 
   Image
     *composite_mask;
+
+  char
+    *id;
 } DrawInfo;
 
 typedef struct _PrimitiveInfo
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index a3380f8..0a215d6 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -17,7 +17,7 @@
 %                                 October 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -895,7 +895,7 @@
   assert(g != (Quantum *) NULL);
   p=f+(columns+2);
   q=g+(columns+2);
-  r=p+(y_offset*(columns+2)+x_offset);
+  r=p+(y_offset*((ssize_t) columns+2)+x_offset);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(static) \
     magick_number_threads(image,image,rows,1)
@@ -931,8 +931,8 @@
   }
   p=f+(columns+2);
   q=g+(columns+2);
-  r=q+(y_offset*(columns+2)+x_offset);
-  s=q-(y_offset*(columns+2)+x_offset);
+  r=q+(y_offset*((ssize_t) columns+2)+x_offset);
+  s=q-(y_offset*((ssize_t) columns+2)+x_offset);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(static) \
     magick_number_threads(image,image,rows,1)
@@ -2592,17 +2592,20 @@
       }
       case RaisePreview:
       {
+        RectangleInfo
+          raise;
+
         preview_image=CloneImage(thumbnail,0,0,MagickTrue,exception);
         if (preview_image == (Image *) NULL)
           break;
-        geometry.width=(size_t) (2*i+2);
-        geometry.height=(size_t) (2*i+2);
-        geometry.x=(i-1)/2;
-        geometry.y=(i-1)/2;
-        (void) RaiseImage(preview_image,&geometry,MagickTrue,exception);
+        raise.width=(size_t) (2*i+2);
+        raise.height=(size_t) (2*i+2);
+        raise.x=(i-1)/2;
+        raise.y=(i-1)/2;
+        (void) RaiseImage(preview_image,&raise,MagickTrue,exception);
         (void) FormatLocaleString(label,MagickPathExtent,
-          "raise %.20gx%.20g%+.20g%+.20g",(double) geometry.width,(double)
-          geometry.height,(double) geometry.x,(double) geometry.y);
+          "raise %.20gx%.20g%+.20g%+.20g",(double) raise.width,(double)
+          raise.height,(double) raise.x,(double) raise.y);
         break;
       }
       case SegmentPreview:
@@ -3368,6 +3371,7 @@
   }
   blur_image->type=image->type;
   blur_view=DestroyCacheView(blur_view);
+  luminance_view=DestroyCacheView(luminance_view);
   image_view=DestroyCacheView(image_view);
   luminance_image=DestroyImage(luminance_image);
   kernel=(MagickRealType *) RelinquishAlignedMemory(kernel);
@@ -3949,12 +3953,14 @@
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
+/* This kernel appears to be broken.
 #if defined(MAGICKCORE_OPENCL_SUPPORT)
   unsharp_image=AccelerateUnsharpMaskImage(image,radius,sigma,gain,threshold,
     exception);
   if (unsharp_image != (Image *) NULL)
     return(unsharp_image);
 #endif
+*/
   unsharp_image=BlurImage(image,radius,sigma,exception);
   if (unsharp_image == (Image *) NULL)
     return((Image *) NULL);
diff --git a/MagickCore/effect.h b/MagickCore/effect.h
index 4d794f2..7beb464 100644
--- a/MagickCore/effect.h
+++ b/MagickCore/effect.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index 773b516..ff4232c 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -493,7 +493,7 @@
     y;
 
   unsigned short
-    lut[NumberCLAHEGrays];
+    *lut;
 
   /*
     Constrast limited adapted histogram equalization.
@@ -504,6 +504,12 @@
     number_bins*sizeof(*tiles));
   if (tile_cache == (MemoryInfo *) NULL)
     return(MagickFalse);
+  lut=AcquireQuantumMemory(NumberCLAHEGrays,sizeof(*lut));
+  if (lut == (unsigned short *) NULL)
+    {
+      tile_cache=RelinquishVirtualMemory(tile_cache);
+      return(MagickFalse);
+    }
   tiles=(size_t *) GetVirtualMemoryBlob(tile_cache);
   limit=(size_t) (clip_limit*(tile_info->width*tile_info->height)/number_bins);
   if (limit < 1UL)
@@ -603,6 +609,7 @@
     }
     p+=clahe_info->width*(tile.height-1);
   }
+  lut=RelinquishMagickMemory(lut);
   tile_cache=RelinquishVirtualMemory(tile_cache);
   return(MagickTrue);
 }
@@ -715,9 +722,6 @@
         MagickBooleanType
           proceed;
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
         progress++;
         proceed=SetImageProgress(image,CLAHEImageTag,progress,2*
           GetPixelChannels(image));
@@ -766,9 +770,6 @@
         MagickBooleanType
           proceed;
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
         progress++;
         proceed=SetImageProgress(image,CLAHEImageTag,progress,2*
           GetPixelChannels(image));
@@ -1108,9 +1109,9 @@
           p=(const char *) content;
           for (i=0; (*p != '\0') && (i < 3); i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             switch (i)
             {
               case 0:
@@ -1140,9 +1141,9 @@
           p=(const char *) content;
           for (i=0; (*p != '\0') && (i < 3); i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             switch (i)
             {
               case 0:
@@ -1173,9 +1174,9 @@
           p=(const char *) content;
           for (i=0; (*p != '\0') && (i < 3); i++)
           {
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == ',')
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             switch (i)
             {
               case 0:
@@ -1210,7 +1211,7 @@
         {
           content=GetXMLTreeContent(saturation);
           p=(const char *) content;
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           color_correction.saturation=StringToDouble(token,(char **) NULL);
         }
     }
@@ -1973,7 +1974,7 @@
           pixel.black=((aggregate.black+total_weight/2.0)/total_weight);
           pixel.alpha=((aggregate.alpha+total_weight/2.0)/total_weight);
         }
-      SetPixelViaPixelInfo(image,&pixel,q);
+      SetPixelViaPixelInfo(enhance_image,&pixel,q);
       p+=GetPixelChannels(image);
       q+=GetPixelChannels(enhance_image);
     }
@@ -2309,7 +2310,7 @@
 MagickExport MagickBooleanType GammaImage(Image *image,const double gamma,
   ExceptionInfo *exception)
 {
-#define GammaCorrectImageTag  "GammaCorrect/Image"
+#define GammaImageTag  "Gamma/Image"
 
   CacheView
     *image_view;
@@ -2346,7 +2347,7 @@
   if (gamma != 0.0)
     for (i=0; i <= (ssize_t) MaxMap; i++)
       gamma_map[i]=ScaleMapToQuantum((double) (MaxMap*pow((double) i/
-        MaxMap,1.0/gamma)));
+        MaxMap,PerceptibleReciprocal(gamma))));
   if (image->storage_class == PseudoClass)
     for (i=0; i < (ssize_t) image->colors; i++)
     {
@@ -2419,7 +2420,7 @@
         #pragma omp atomic
 #endif
         progress++;
-        proceed=SetImageProgress(image,GammaCorrectImageTag,progress, image->rows);
+        proceed=SetImageProgress(image,GammaImageTag,progress,image->rows);
         if (proceed == MagickFalse)
           status=MagickFalse;
       }
@@ -2754,6 +2755,7 @@
     for (x=0; x < (ssize_t) image->columns; x++)
     {
       double
+        area,
         offset;
 
       HaldInfo
@@ -2784,8 +2786,11 @@
       if (status == MagickFalse)
         break;
       pixel3=zero;
+      area=point.y;
+      if (hald_image->interpolate == NearestInterpolatePixel)
+        area=(point.y < 0.5) ? 0.0 : 1.0;
       CompositePixelInfoAreaBlend(&pixel1,pixel1.alpha,&pixel2,pixel2.alpha,
-        point.y,&pixel3);
+        area,&pixel3);
       offset+=cube_size;
       status=InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate,
         fmod(offset,width),floor(offset/width),&pixel1,exception);
@@ -2797,10 +2802,13 @@
         break;
       pixel4=zero;
       CompositePixelInfoAreaBlend(&pixel1,pixel1.alpha,&pixel2,pixel2.alpha,
-        point.y,&pixel4);
+        area,&pixel4);
       pixel=zero;
+      area=point.z;
+      if (hald_image->interpolate == NearestInterpolatePixel)
+        area=(point.z < 0.5)? 0.0 : 1.0;
       CompositePixelInfoAreaBlend(&pixel3,pixel3.alpha,&pixel4,pixel4.alpha,
-        point.z,&pixel);
+        area,&pixel);
       if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
         SetPixelRed(image,ClampToQuantum(pixel.red),q);
       if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
@@ -2889,7 +2897,7 @@
 
   scale=PerceptibleReciprocal(white_point-black_point);
   level_pixel=QuantumRange*gamma_pow(scale*((double) pixel-black_point),
-    1.0/gamma);
+    PerceptibleReciprocal(gamma));
   return(level_pixel);
 }
 
@@ -3924,7 +3932,7 @@
       /*
         Negate colormap.
       */
-      if( grayscale != MagickFalse )
+      if (grayscale != MagickFalse)
         if ((image->colormap[i].red != image->colormap[i].green) ||
             (image->colormap[i].green != image->colormap[i].blue))
           continue;
@@ -3968,7 +3976,7 @@
           register ssize_t
             j;
 
-          if (IsPixelGray(image,q) != MagickFalse)
+          if (IsPixelGray(image,q) == MagickFalse)
             {
               q+=GetPixelChannels(image);
               continue;
@@ -3991,9 +3999,6 @@
             MagickBooleanType
               proceed;
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-            #pragma omp atomic
-#endif
             progress++;
             proceed=SetImageProgress(image,NegateImageTag,progress,image->rows);
             if (proceed == MagickFalse)
diff --git a/MagickCore/enhance.h b/MagickCore/enhance.h
index b529667..bec032a 100644
--- a/MagickCore/enhance.h
+++ b/MagickCore/enhance.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/exception-private.h b/MagickCore/exception-private.h
index e6b3231..390b008 100644
--- a/MagickCore/exception-private.h
+++ b/MagickCore/exception-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -90,8 +90,12 @@
 }
 
 extern MagickPrivate void
+  ExceptionComponentTerminus(void),
   InitializeExceptionInfo(ExceptionInfo *);
 
+extern MagickPrivate MagickBooleanType
+  ExceptionComponentGenesis(void);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/exception.c b/MagickCore/exception.c
index e7d4d5a..305edcb 100644
--- a/MagickCore/exception.c
+++ b/MagickCore/exception.c
@@ -17,7 +17,7 @@
 %                                July 1993                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -50,6 +50,7 @@
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/memory-private.h"
+#include "MagickCore/semaphore.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
@@ -88,6 +89,12 @@
   warning_handler = DefaultWarningHandler;
 
 /*
+  Static declarations.
+*/
+static SemaphoreInfo
+  *exception_semaphore = (SemaphoreInfo *) NULL;
+
+/*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
 %                                                                             %
@@ -116,7 +123,7 @@
   return(exception);
 }
 
-/*l
+/*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
 %                                                                             %
@@ -445,6 +452,58 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   E x e c e p t i o n C o m p o n e n t G e n e s i s                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ExceptionComponentGenesis() instantiates the exception component.
+%
+%  The format of the ExceptionComponentGenesis method is:
+%
+%      MagickBooleanType ExceptionComponentGenesis(void)
+%
+*/
+MagickPrivate MagickBooleanType ExceptionComponentGenesis(void)
+{
+  if (exception_semaphore == (SemaphoreInfo *) NULL)
+    exception_semaphore=AcquireSemaphoreInfo();
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
++   E x c e p t i o n C o m p o n e n t T e r m i n u s                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ExceptionComponentTerminus() destroys the exception component.
+%
+%  The format of the ExceptionComponentTerminus method is:
+%
+%      void ExceptionComponentTerminus(void)
+%
+*/
+MagickPrivate void ExceptionComponentTerminus(void)
+{
+  if (exception_semaphore == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&exception_semaphore);
+  LockSemaphoreInfo(exception_semaphore);
+  UnlockSemaphoreInfo(exception_semaphore);
+  RelinquishSemaphoreInfo(&exception_semaphore);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   G e t E x c e p t i o n M e s s a g e                                     %
 %                                                                             %
 %                                                                             %
@@ -816,8 +875,12 @@
   ErrorHandler
     previous_handler;
 
+  if (exception_semaphore == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&exception_semaphore);
+  LockSemaphoreInfo(exception_semaphore);
   previous_handler=error_handler;
   error_handler=handler;
+  UnlockSemaphoreInfo(exception_semaphore);
   return(previous_handler);
 }
 
@@ -849,8 +912,12 @@
   FatalErrorHandler
     previous_handler;
 
+  if (exception_semaphore == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&exception_semaphore);
+  LockSemaphoreInfo(exception_semaphore);
   previous_handler=fatal_error_handler;
   fatal_error_handler=handler;
+  UnlockSemaphoreInfo(exception_semaphore);
   return(previous_handler);
 }
 
@@ -882,8 +949,12 @@
   WarningHandler
     previous_handler;
 
+  if (exception_semaphore == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&exception_semaphore);
+  LockSemaphoreInfo(exception_semaphore);
   previous_handler=warning_handler;
   warning_handler=handler;
+  UnlockSemaphoreInfo(exception_semaphore);
   return(previous_handler);
 }
 
diff --git a/MagickCore/exception.h b/MagickCore/exception.h
index b61eff2..0393490 100644
--- a/MagickCore/exception.h
+++ b/MagickCore/exception.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/feature.c b/MagickCore/feature.c
index ef607b9..4c23cf8 100644
--- a/MagickCore/feature.c
+++ b/MagickCore/feature.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1643,25 +1643,35 @@
           /*
             Maximum Correlation Coefficient.
           */
-          Q[z][y].direction[i].red+=cooccurrence[z][x].direction[i].red*
-            cooccurrence[y][x].direction[i].red/density_x[z].direction[i].red/
-            density_y[x].direction[i].red;
-          Q[z][y].direction[i].green+=cooccurrence[z][x].direction[i].green*
-            cooccurrence[y][x].direction[i].green/
-            density_x[z].direction[i].green/density_y[x].direction[i].red;
-          Q[z][y].direction[i].blue+=cooccurrence[z][x].direction[i].blue*
-            cooccurrence[y][x].direction[i].blue/density_x[z].direction[i].blue/
-            density_y[x].direction[i].blue;
+          if ((fabs(density_x[z].direction[i].red) > MagickEpsilon) &&
+              (fabs(density_y[x].direction[i].red) > MagickEpsilon))
+            Q[z][y].direction[i].red+=cooccurrence[z][x].direction[i].red*
+              cooccurrence[y][x].direction[i].red/density_x[z].direction[i].red/
+              density_y[x].direction[i].red;
+          if ((fabs(density_x[z].direction[i].green) > MagickEpsilon) &&
+              (fabs(density_y[x].direction[i].red) > MagickEpsilon))
+            Q[z][y].direction[i].green+=cooccurrence[z][x].direction[i].green*
+              cooccurrence[y][x].direction[i].green/
+              density_x[z].direction[i].green/density_y[x].direction[i].red;
+          if ((fabs(density_x[z].direction[i].blue) > MagickEpsilon) &&
+              (fabs(density_y[x].direction[i].blue) > MagickEpsilon))
+            Q[z][y].direction[i].blue+=cooccurrence[z][x].direction[i].blue*
+              cooccurrence[y][x].direction[i].blue/
+              density_x[z].direction[i].blue/density_y[x].direction[i].blue;
           if (image->colorspace == CMYKColorspace)
-            Q[z][y].direction[i].black+=cooccurrence[z][x].direction[i].black*
-              cooccurrence[y][x].direction[i].black/
-              density_x[z].direction[i].black/density_y[x].direction[i].black;
+            if ((fabs(density_x[z].direction[i].black) > MagickEpsilon) &&
+                (fabs(density_y[x].direction[i].black) > MagickEpsilon))
+              Q[z][y].direction[i].black+=cooccurrence[z][x].direction[i].black*
+                cooccurrence[y][x].direction[i].black/
+                density_x[z].direction[i].black/density_y[x].direction[i].black;
           if (image->alpha_trait != UndefinedPixelTrait)
-            Q[z][y].direction[i].alpha+=
-              cooccurrence[z][x].direction[i].alpha*
-              cooccurrence[y][x].direction[i].alpha/
-              density_x[z].direction[i].alpha/
-              density_y[x].direction[i].alpha;
+            if ((fabs(density_x[z].direction[i].alpha) > MagickEpsilon) &&
+                (fabs(density_y[x].direction[i].alpha) > MagickEpsilon))
+              Q[z][y].direction[i].alpha+=
+                cooccurrence[z][x].direction[i].alpha*
+                cooccurrence[y][x].direction[i].alpha/
+                density_x[z].direction[i].alpha/
+                density_y[x].direction[i].alpha;
         }
       }
       channel_features[RedPixelChannel].contrast[i]+=z*z*
@@ -1726,12 +1736,13 @@
 %  recommand Canny) to identify lines in the image.  The algorithm accumulates
 %  counts for every white pixel for every possible orientation (for angles from
 %  0 to 179 in 1 degree increments) and distance from the center of the image to
-%  the corner (in 1 px increments) and stores the counts in an accumulator matrix
-%  of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next
-%  it searches this space for peaks in counts and converts the locations of the
-%  peaks to slope and intercept in the normal x,y input image space. Use the
-%  slope/intercepts to find the endpoints clipped to the bounds of the image. The
-%  lines are then drawn. The counts are a measure of the length of the lines
+%  the corner (in 1 px increments) and stores the counts in an accumulator
+%  matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2).
+%  Next it searches this space for peaks in counts and converts the locations
+%  of the peaks to slope and intercept in the normal x,y input image space. Use
+%  the slope/intercepts to find the endpoints clipped to the bounds of the
+%  image. The lines are then drawn. The counts are a measure of the length of
+%  the lines.
 %
 %  The format of the HoughLineImage method is:
 %
@@ -2287,7 +2298,7 @@
               }
           }
         }
-        gamma=1.0/count;
+        gamma=PerceptibleReciprocal(count);
         mean_location.x=gamma*sum_location.x;
         mean_location.y=gamma*sum_location.y;
         mean_pixel.red=gamma*sum_pixel.red;
diff --git a/MagickCore/feature.h b/MagickCore/feature.h
index 2a1f02e..75faa8e 100644
--- a/MagickCore/feature.h
+++ b/MagickCore/feature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fourier.c b/MagickCore/fourier.c
index f4ad202..981a4f7 100644
--- a/MagickCore/fourier.c
+++ b/MagickCore/fourier.c
@@ -19,7 +19,7 @@
 %                                 July 2009                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -164,6 +164,9 @@
   MagickOffsetType
     progress;
 
+  size_t
+    number_channels;
+
   ssize_t
     y;
 
@@ -216,6 +219,10 @@
     }
   Cr_image=complex_images;
   Ci_image=complex_images->next;
+  number_channels=MagickMin(MagickMin(MagickMin(
+    Ar_image->number_channels,Ai_image->number_channels),MagickMin(
+    Br_image->number_channels,Bi_image->number_channels)),MagickMin(
+    Cr_image->number_channels,Ci_image->number_channels));
   Ar_view=AcquireVirtualCacheView(Ar_image,exception);
   Ai_view=AcquireVirtualCacheView(Ai_image,exception);
   Br_view=AcquireVirtualCacheView(Br_image,exception);
@@ -226,9 +233,9 @@
   progress=0;
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(images,complex_images,images->rows,1L)
+    magick_number_threads(Cr_image,complex_images,Cr_image->rows,1L)
 #endif
-  for (y=0; y < (ssize_t) images->rows; y++)
+  for (y=0; y < (ssize_t) Cr_image->rows; y++)
   {
     register const Quantum
       *magick_restrict Ai,
@@ -245,10 +252,10 @@
 
     if (status == MagickFalse)
       continue;
-    Ar=GetCacheViewVirtualPixels(Ar_view,0,y,Ar_image->columns,1,exception);
-    Ai=GetCacheViewVirtualPixels(Ai_view,0,y,Ai_image->columns,1,exception);
-    Br=GetCacheViewVirtualPixels(Br_view,0,y,Br_image->columns,1,exception);
-    Bi=GetCacheViewVirtualPixels(Bi_view,0,y,Bi_image->columns,1,exception);
+    Ar=GetCacheViewVirtualPixels(Ar_view,0,y,Cr_image->columns,1,exception);
+    Ai=GetCacheViewVirtualPixels(Ai_view,0,y,Cr_image->columns,1,exception);
+    Br=GetCacheViewVirtualPixels(Br_view,0,y,Cr_image->columns,1,exception);
+    Bi=GetCacheViewVirtualPixels(Bi_view,0,y,Cr_image->columns,1,exception);
     Cr=QueueCacheViewAuthenticPixels(Cr_view,0,y,Cr_image->columns,1,exception);
     Ci=QueueCacheViewAuthenticPixels(Ci_view,0,y,Ci_image->columns,1,exception);
     if ((Ar == (const Quantum *) NULL) || (Ai == (const Quantum *) NULL) || 
@@ -258,12 +265,12 @@
         status=MagickFalse;
         continue;
       }
-    for (x=0; x < (ssize_t) images->columns; x++)
+    for (x=0; x < (ssize_t) Cr_image->columns; x++)
     {
       register ssize_t
         i;
 
-      for (i=0; i < (ssize_t) GetPixelChannels(images); i++)
+      for (i=0; i < (ssize_t) number_channels; i++)
       {
         switch (op)
         {
@@ -285,21 +292,21 @@
             double
               gamma;
 
-            gamma=PerceptibleReciprocal(Br[i]*Br[i]+Bi[i]*Bi[i]+snr);
-            Cr[i]=gamma*(Ar[i]*Br[i]+Ai[i]*Bi[i]);
-            Ci[i]=gamma*(Ai[i]*Br[i]-Ar[i]*Bi[i]);
+            gamma=PerceptibleReciprocal((double) Br[i]*Br[i]+Bi[i]*Bi[i]+snr);
+            Cr[i]=gamma*((double) Ar[i]*Br[i]+(double) Ai[i]*Bi[i]);
+            Ci[i]=gamma*((double) Ai[i]*Br[i]-(double) Ar[i]*Bi[i]);
             break;
           }
           case MagnitudePhaseComplexOperator:
           {
-            Cr[i]=sqrt(Ar[i]*Ar[i]+Ai[i]*Ai[i]);
-            Ci[i]=atan2(Ai[i],Ar[i])/(2.0*MagickPI)+0.5;
+            Cr[i]=sqrt((double) Ar[i]*Ar[i]+(double) Ai[i]*Ai[i]);
+            Ci[i]=atan2((double) Ai[i],(double) Ar[i])/(2.0*MagickPI)+0.5;
             break;
           }
           case MultiplyComplexOperator:
           {
-            Cr[i]=QuantumScale*(Ar[i]*Br[i]-Ai[i]*Bi[i]);
-            Ci[i]=QuantumScale*(Ai[i]*Br[i]+Ar[i]*Bi[i]);
+            Cr[i]=QuantumScale*((double) Ar[i]*Br[i]-(double) Ai[i]*Bi[i]);
+            Ci[i]=QuantumScale*((double) Ai[i]*Br[i]+(double) Ar[i]*Bi[i]);
             break;
           }
           case RealImaginaryComplexOperator:
diff --git a/MagickCore/fourier.h b/MagickCore/fourier.h
index 63fd9fe..1f4add2 100644
--- a/MagickCore/fourier.h
+++ b/MagickCore/fourier.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fx-private.h b/MagickCore/fx-private.h
index 00a677e..8681ae9 100644
--- a/MagickCore/fx-private.h
+++ b/MagickCore/fx-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 12db468..e5fdaac 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -18,7 +18,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -98,17 +98,32 @@
 #include "MagickCore/utility.h"
 
 /*
-  Define declarations.
+  Typedef declarations.
 */
-#define LeftShiftOperator  0xf5U
-#define RightShiftOperator  0xf6U
-#define LessThanEqualOperator  0xf7U
-#define GreaterThanEqualOperator  0xf8U
-#define EqualOperator  0xf9U
-#define NotEqualOperator  0xfaU
-#define LogicalAndOperator  0xfbU
-#define LogicalOrOperator  0xfcU
-#define ExponentialNotation  0xfdU
+typedef enum
+{
+  BitwiseAndAssignmentOperator = 0xd9U,
+  BitwiseOrAssignmentOperator,
+  LeftShiftAssignmentOperator,
+  RightShiftAssignmentOperator,
+  PowerAssignmentOperator,
+  ModuloAssignmentOperator,
+  PlusAssignmentOperator,
+  SubtractAssignmentOperator,
+  MultiplyAssignmentOperator,
+  DivideAssignmentOperator,
+  IncrementAssignmentOperator,
+  DecrementAssignmentOperator,
+  LeftShiftOperator,
+  RightShiftOperator,
+  LessThanEqualOperator,
+  GreaterThanEqualOperator,
+  EqualOperator,
+  NotEqualOperator,
+  LogicalAndOperator,
+  LogicalOrOperator,
+  ExponentialNotation
+} FxOperator;
 
 struct _FxInfo
 {
@@ -201,16 +216,33 @@
   fx_info->file=stderr;
   (void) SubstituteString(&fx_info->expression," ","");  /* compact string */
   /*
-    Force right-to-left associativity for unary negation.
-  */
-  (void) SubstituteString(&fx_info->expression,"-","-1.0*");
-  (void) SubstituteString(&fx_info->expression,"^-1.0*","^-");
-  (void) SubstituteString(&fx_info->expression,"E-1.0*","E-");
-  (void) SubstituteString(&fx_info->expression,"e-1.0*","e-");
-  /*
     Convert compound to simple operators.
   */
   fx_op[1]='\0';
+  *fx_op=(char) BitwiseAndAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"&=",fx_op);
+  *fx_op=(char) BitwiseOrAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"|=",fx_op);
+  *fx_op=(char) LeftShiftAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"<<=",fx_op);
+  *fx_op=(char) RightShiftAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,">>=",fx_op);
+  *fx_op=(char) PowerAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"^=",fx_op);
+  *fx_op=(char) ModuloAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"%=",fx_op);
+  *fx_op=(char) PlusAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"+=",fx_op);
+  *fx_op=(char) SubtractAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"-=",fx_op);
+  *fx_op=(char) MultiplyAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"*=",fx_op);
+  *fx_op=(char) DivideAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"/=",fx_op);
+  *fx_op=(char) IncrementAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"++",fx_op);
+  *fx_op=(char) DecrementAssignmentOperator;
+  (void) SubstituteString(&fx_info->expression,"--",fx_op);
   *fx_op=(char) LeftShiftOperator;
   (void) SubstituteString(&fx_info->expression,"<<",fx_op);
   *fx_op=(char) RightShiftOperator;
@@ -229,6 +261,13 @@
   (void) SubstituteString(&fx_info->expression,"||",fx_op);
   *fx_op=(char) ExponentialNotation;
   (void) SubstituteString(&fx_info->expression,"**",fx_op);
+  /*
+    Force right-to-left associativity for unary negation.
+  */
+  (void) SubstituteString(&fx_info->expression,"-","-1.0*");
+  (void) SubstituteString(&fx_info->expression,"^-1.0*","^-");
+  (void) SubstituteString(&fx_info->expression,"E-1.0*","E-");
+  (void) SubstituteString(&fx_info->expression,"e-1.0*","e-");
   return(fx_info);
 }
 
@@ -237,806 +276,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%     A d d N o i s e I m a g e                                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  AddNoiseImage() adds random noise to the image.
-%
-%  The format of the AddNoiseImage method is:
-%
-%      Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
-%        const double attenuate,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o channel: the channel type.
-%
-%    o noise_type:  The type of noise: Uniform, Gaussian, Multiplicative,
-%      Impulse, Laplacian, or Poisson.
-%
-%    o attenuate:  attenuate the random distribution.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
-  const double attenuate,ExceptionInfo *exception)
-{
-#define AddNoiseImageTag  "AddNoise/Image"
-
-  CacheView
-    *image_view,
-    *noise_view;
-
-  Image
-    *noise_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  RandomInfo
-    **magick_restrict random_info;
-
-  ssize_t
-    y;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  unsigned long
-    key;
-#endif
-
-  /*
-    Initialize noise image attributes.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-#if defined(MAGICKCORE_OPENCL_SUPPORT)
-  noise_image=AccelerateAddNoiseImage(image,noise_type,attenuate,exception);
-  if (noise_image != (Image *) NULL)
-    return(noise_image);
-#endif
-  noise_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (noise_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(noise_image,DirectClass,exception) == MagickFalse)
-    {
-      noise_image=DestroyImage(noise_image);
-      return((Image *) NULL);
-    }
-  /*
-    Add noise in each row.
-  */
-  status=MagickTrue;
-  progress=0;
-  random_info=AcquireRandomInfoThreadSet();
-  image_view=AcquireVirtualCacheView(image,exception);
-  noise_view=AcquireAuthenticCacheView(noise_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  key=GetRandomSecretKey(random_info[0]);
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,noise_image,image->rows,key == ~0UL)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    const int
-      id = GetOpenMPThreadId();
-
-    MagickBooleanType
-      sync;
-
-    register const Quantum
-      *magick_restrict p;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
-    q=QueueCacheViewAuthenticPixels(noise_view,0,y,noise_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      register ssize_t
-        i;
-
-      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-      {
-        PixelChannel channel = GetPixelChannelChannel(image,i);
-        PixelTrait traits = GetPixelChannelTraits(image,channel);
-        PixelTrait noise_traits=GetPixelChannelTraits(noise_image,channel);
-        if ((traits == UndefinedPixelTrait) ||
-            (noise_traits == UndefinedPixelTrait))
-          continue;
-        if ((noise_traits & CopyPixelTrait) != 0)
-          {
-            SetPixelChannel(noise_image,channel,p[i],q);
-            continue;
-          }
-        SetPixelChannel(noise_image,channel,ClampToQuantum(
-          GenerateDifferentialNoise(random_info[id],p[i],noise_type,attenuate)),
-          q);
-      }
-      p+=GetPixelChannels(image);
-      q+=GetPixelChannels(noise_image);
-    }
-    sync=SyncCacheViewAuthenticPixels(noise_view,exception);
-    if (sync == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,AddNoiseImageTag,progress,image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  noise_view=DestroyCacheView(noise_view);
-  image_view=DestroyCacheView(image_view);
-  random_info=DestroyRandomInfoThreadSet(random_info);
-  if (status == MagickFalse)
-    noise_image=DestroyImage(noise_image);
-  return(noise_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     B l u e S h i f t I m a g e                                             %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  BlueShiftImage() mutes the colors of the image to simulate a scene at
-%  nighttime in the moonlight.
-%
-%  The format of the BlueShiftImage method is:
-%
-%      Image *BlueShiftImage(const Image *image,const double factor,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o factor: the shift factor.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *BlueShiftImage(const Image *image,const double factor,
-  ExceptionInfo *exception)
-{
-#define BlueShiftImageTag  "BlueShift/Image"
-
-  CacheView
-    *image_view,
-    *shift_view;
-
-  Image
-    *shift_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  ssize_t
-    y;
-
-  /*
-    Allocate blue shift image.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  shift_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (shift_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(shift_image,DirectClass,exception) == MagickFalse)
-    {
-      shift_image=DestroyImage(shift_image);
-      return((Image *) NULL);
-    }
-  /*
-    Blue-shift DirectClass image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireVirtualCacheView(image,exception);
-  shift_view=AcquireAuthenticCacheView(shift_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,shift_image,image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    MagickBooleanType
-      sync;
-
-    PixelInfo
-      pixel;
-
-    Quantum
-      quantum;
-
-    register const Quantum
-      *magick_restrict p;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
-    q=QueueCacheViewAuthenticPixels(shift_view,0,y,shift_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      quantum=GetPixelRed(image,p);
-      if (GetPixelGreen(image,p) < quantum)
-        quantum=GetPixelGreen(image,p);
-      if (GetPixelBlue(image,p) < quantum)
-        quantum=GetPixelBlue(image,p);
-      pixel.red=0.5*(GetPixelRed(image,p)+factor*quantum);
-      pixel.green=0.5*(GetPixelGreen(image,p)+factor*quantum);
-      pixel.blue=0.5*(GetPixelBlue(image,p)+factor*quantum);
-      quantum=GetPixelRed(image,p);
-      if (GetPixelGreen(image,p) > quantum)
-        quantum=GetPixelGreen(image,p);
-      if (GetPixelBlue(image,p) > quantum)
-        quantum=GetPixelBlue(image,p);
-      pixel.red=0.5*(pixel.red+factor*quantum);
-      pixel.green=0.5*(pixel.green+factor*quantum);
-      pixel.blue=0.5*(pixel.blue+factor*quantum);
-      SetPixelRed(shift_image,ClampToQuantum(pixel.red),q);
-      SetPixelGreen(shift_image,ClampToQuantum(pixel.green),q);
-      SetPixelBlue(shift_image,ClampToQuantum(pixel.blue),q);
-      p+=GetPixelChannels(image);
-      q+=GetPixelChannels(shift_image);
-    }
-    sync=SyncCacheViewAuthenticPixels(shift_view,exception);
-    if (sync == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,BlueShiftImageTag,progress,image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  image_view=DestroyCacheView(image_view);
-  shift_view=DestroyCacheView(shift_view);
-  if (status == MagickFalse)
-    shift_image=DestroyImage(shift_image);
-  return(shift_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     C h a r c o a l I m a g e                                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  CharcoalImage() creates a new image that is a copy of an existing one with
-%  the edge highlighted.  It allocates the memory necessary for the new Image
-%  structure and returns a pointer to the new image.
-%
-%  The format of the CharcoalImage method is:
-%
-%      Image *CharcoalImage(const Image *image,const double radius,
-%        const double sigma,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o radius: the radius of the pixel neighborhood.
-%
-%    o sigma: the standard deviation of the Gaussian, in pixels.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *CharcoalImage(const Image *image,const double radius,
-  const double sigma,ExceptionInfo *exception)
-{
-  Image
-    *charcoal_image,
-    *edge_image;
-
-  MagickBooleanType
-    status;
-
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  edge_image=EdgeImage(image,radius,exception);
-  if (edge_image == (Image *) NULL)
-    return((Image *) NULL);
-  charcoal_image=(Image *) NULL;
-  status=ClampImage(edge_image,exception);
-  if (status != MagickFalse)
-    charcoal_image=BlurImage(edge_image,radius,sigma,exception);
-  edge_image=DestroyImage(edge_image);
-  if (charcoal_image == (Image *) NULL)
-    return((Image *) NULL);
-  status=NormalizeImage(charcoal_image,exception);
-  if (status != MagickFalse)
-    status=NegateImage(charcoal_image,MagickFalse,exception);
-  if (status != MagickFalse)
-    status=GrayscaleImage(charcoal_image,image->intensity,exception);
-  if (status == MagickFalse)
-    charcoal_image=DestroyImage(charcoal_image);
-  return(charcoal_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     C o l o r i z e I m a g e                                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  ColorizeImage() blends the fill color with each pixel in the image.
-%  A percentage blend is specified with opacity.  Control the application
-%  of different color components by specifying a different percentage for
-%  each component (e.g. 90/100/10 is 90% red, 100% green, and 10% blue).
-%
-%  The format of the ColorizeImage method is:
-%
-%      Image *ColorizeImage(const Image *image,const char *blend,
-%        const PixelInfo *colorize,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o blend:  A character string indicating the level of blending as a
-%      percentage.
-%
-%    o colorize: A color value.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *ColorizeImage(const Image *image,const char *blend,
-  const PixelInfo *colorize,ExceptionInfo *exception)
-{
-#define ColorizeImageTag  "Colorize/Image"
-#define Colorize(pixel,blend_percentage,colorize)  \
-  (((pixel)*(100.0-(blend_percentage))+(colorize)*(blend_percentage))/100.0)
-
-  CacheView
-    *image_view;
-
-  GeometryInfo
-    geometry_info;
-
-  Image
-    *colorize_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  MagickStatusType
-    flags;
-
-  PixelInfo
-    blend_percentage;
-
-  ssize_t
-    y;
-
-  /*
-    Allocate colorized image.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  colorize_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (colorize_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(colorize_image,DirectClass,exception) == MagickFalse)
-    {
-      colorize_image=DestroyImage(colorize_image);
-      return((Image *) NULL);
-    }
-  if ((IsGrayColorspace(colorize_image->colorspace) != MagickFalse) ||
-      (IsPixelInfoGray(colorize) != MagickFalse))
-    (void) SetImageColorspace(colorize_image,sRGBColorspace,exception);
-  if ((colorize_image->alpha_trait == UndefinedPixelTrait) &&
-      (colorize->alpha_trait != UndefinedPixelTrait))
-    (void) SetImageAlpha(colorize_image,OpaqueAlpha,exception);
-  if (blend == (const char *) NULL)
-    return(colorize_image);
-  GetPixelInfo(colorize_image,&blend_percentage);
-  flags=ParseGeometry(blend,&geometry_info);
-  blend_percentage.red=geometry_info.rho;
-  blend_percentage.green=geometry_info.rho;
-  blend_percentage.blue=geometry_info.rho;
-  blend_percentage.black=geometry_info.rho;
-  blend_percentage.alpha=(MagickRealType) TransparentAlpha;
-  if ((flags & SigmaValue) != 0)
-    blend_percentage.green=geometry_info.sigma;
-  if ((flags & XiValue) != 0)
-    blend_percentage.blue=geometry_info.xi;
-  if ((flags & PsiValue) != 0)
-    blend_percentage.alpha=geometry_info.psi;
-  if (blend_percentage.colorspace == CMYKColorspace)
-    {
-      if ((flags & PsiValue) != 0)
-        blend_percentage.black=geometry_info.psi;
-      if ((flags & ChiValue) != 0)
-        blend_percentage.alpha=geometry_info.chi;
-    }
-  /*
-    Colorize DirectClass image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireVirtualCacheView(colorize_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(colorize_image,colorize_image,colorize_image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) colorize_image->rows; y++)
-  {
-    MagickBooleanType
-      sync;
-
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    q=GetCacheViewAuthenticPixels(image_view,0,y,colorize_image->columns,1,
-      exception);
-    if (q == (Quantum *) NULL)
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) colorize_image->columns; x++)
-    {
-      register ssize_t
-        i;
-
-      for (i=0; i < (ssize_t) GetPixelChannels(colorize_image); i++)
-      {
-        PixelTrait traits = GetPixelChannelTraits(colorize_image,
-          (PixelChannel) i);
-        if (traits == UndefinedPixelTrait)
-          continue;
-        if ((traits & CopyPixelTrait) != 0)
-          continue;
-        SetPixelChannel(colorize_image,(PixelChannel) i,ClampToQuantum(
-          Colorize(q[i],GetPixelInfoChannel(&blend_percentage,(PixelChannel) i),
-          GetPixelInfoChannel(colorize,(PixelChannel) i))),q);
-      }
-      q+=GetPixelChannels(colorize_image);
-    }
-    sync=SyncCacheViewAuthenticPixels(image_view,exception);
-    if (sync == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,ColorizeImageTag,progress,
-          colorize_image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  image_view=DestroyCacheView(image_view);
-  if (status == MagickFalse)
-    colorize_image=DestroyImage(colorize_image);
-  return(colorize_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     C o l o r M a t r i x I m a g e                                         %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  ColorMatrixImage() applies color transformation to an image. This method
-%  permits saturation changes, hue rotation, luminance to alpha, and various
-%  other effects.  Although variable-sized transformation matrices can be used,
-%  typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA
-%  (or RGBA with offsets).  The matrix is similar to those used by Adobe Flash
-%  except offsets are in column 6 rather than 5 (in support of CMYKA images)
-%  and offsets are normalized (divide Flash offset by 255).
-%
-%  The format of the ColorMatrixImage method is:
-%
-%      Image *ColorMatrixImage(const Image *image,
-%        const KernelInfo *color_matrix,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o color_matrix:  the color matrix.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-/* FUTURE: modify to make use of a MagickMatrix Mutliply function
-   That should be provided in "matrix.c"
-   (ASIDE: actually distorts should do this too but currently doesn't)
-*/
-
-MagickExport Image *ColorMatrixImage(const Image *image,
-  const KernelInfo *color_matrix,ExceptionInfo *exception)
-{
-#define ColorMatrixImageTag  "ColorMatrix/Image"
-
-  CacheView
-    *color_view,
-    *image_view;
-
-  double
-    ColorMatrix[6][6] =
-    {
-      { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
-      { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
-      { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
-      { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
-      { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
-      { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }
-    };
-
-  Image
-    *color_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  register ssize_t
-    i;
-
-  ssize_t
-    u,
-    v,
-    y;
-
-  /*
-    Map given color_matrix, into a 6x6 matrix   RGBKA and a constant
-  */
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  i=0;
-  for (v=0; v < (ssize_t) color_matrix->height; v++)
-    for (u=0; u < (ssize_t) color_matrix->width; u++)
-    {
-      if ((v < 6) && (u < 6))
-        ColorMatrix[v][u]=color_matrix->values[i];
-      i++;
-    }
-  /*
-    Initialize color image.
-  */
-  color_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (color_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(color_image,DirectClass,exception) == MagickFalse)
-    {
-      color_image=DestroyImage(color_image);
-      return((Image *) NULL);
-    }
-  if (image->debug != MagickFalse)
-    {
-      char
-        format[MagickPathExtent],
-        *message;
-
-      (void) LogMagickEvent(TransformEvent,GetMagickModule(),
-        "  ColorMatrix image with color matrix:");
-      message=AcquireString("");
-      for (v=0; v < 6; v++)
-      {
-        *message='\0';
-        (void) FormatLocaleString(format,MagickPathExtent,"%.20g: ",(double) v);
-        (void) ConcatenateString(&message,format);
-        for (u=0; u < 6; u++)
-        {
-          (void) FormatLocaleString(format,MagickPathExtent,"%+f ",
-            ColorMatrix[v][u]);
-          (void) ConcatenateString(&message,format);
-        }
-        (void) LogMagickEvent(TransformEvent,GetMagickModule(),"%s",message);
-      }
-      message=DestroyString(message);
-    }
-  /*
-    Apply the ColorMatrix to image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireVirtualCacheView(image,exception);
-  color_view=AcquireAuthenticCacheView(color_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,color_image,image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    PixelInfo
-      pixel;
-
-    register const Quantum
-      *magick_restrict p;
-
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
-    q=GetCacheViewAuthenticPixels(color_view,0,y,color_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    GetPixelInfo(image,&pixel);
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      register ssize_t
-        v;
-
-      size_t
-        height;
-
-      GetPixelInfoPixel(image,p,&pixel);
-      height=color_matrix->height > 6 ? 6UL : color_matrix->height;
-      for (v=0; v < (ssize_t) height; v++)
-      {
-        double
-          sum;
-
-        sum=ColorMatrix[v][0]*GetPixelRed(image,p)+ColorMatrix[v][1]*
-          GetPixelGreen(image,p)+ColorMatrix[v][2]*GetPixelBlue(image,p);
-        if (image->colorspace == CMYKColorspace)
-          sum+=ColorMatrix[v][3]*GetPixelBlack(image,p);
-        if (image->alpha_trait != UndefinedPixelTrait)
-          sum+=ColorMatrix[v][4]*GetPixelAlpha(image,p);
-        sum+=QuantumRange*ColorMatrix[v][5];
-        switch (v)
-        {
-          case 0: pixel.red=sum; break;
-          case 1: pixel.green=sum; break;
-          case 2: pixel.blue=sum; break;
-          case 3: pixel.black=sum; break;
-          case 4: pixel.alpha=sum; break;
-          default: break;
-        }
-      }
-      SetPixelViaPixelInfo(color_image,&pixel,q);
-      p+=GetPixelChannels(image);
-      q+=GetPixelChannels(color_image);
-    }
-    if (SyncCacheViewAuthenticPixels(color_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,ColorMatrixImageTag,progress,
-          image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  color_view=DestroyCacheView(color_view);
-  image_view=DestroyCacheView(image_view);
-  if (status == MagickFalse)
-    color_image=DestroyImage(color_image);
-  return(color_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 +   D e s t r o y F x I n f o                                                 %
 %                                                                             %
 %                                                                             %
@@ -1107,6 +346,37 @@
 %
 */
 
+static inline const double *GetFxSymbolValue(FxInfo *magick_restrict fx_info,
+  const char *symbol)
+{
+  return((const double *) GetValueFromSplayTree(fx_info->symbols,symbol));
+}
+
+static inline MagickBooleanType SetFxSymbolValue(
+  FxInfo *magick_restrict fx_info,const char *magick_restrict symbol,
+  double const value)
+{
+  double
+    *object;
+
+  object=(double *) GetValueFromSplayTree(fx_info->symbols,symbol);
+  if (object != (double *) NULL)
+    {
+      *object=value;
+      return(MagickTrue);
+    }
+  object=(double *) AcquireQuantumMemory(1,sizeof(*object));
+  if (object == (double *) NULL)
+    {
+      (void) ThrowMagickException(fx_info->exception,GetMagickModule(),
+        ResourceLimitError,"MemoryAllocationFailed","`%s'",
+        fx_info->images->filename);
+      return(MagickFalse);
+    }
+  *object=value;
+  return(AddValueToSplayTree(fx_info->symbols,ConstantString(symbol),object));
+}
+
 static double FxChannelStatistics(FxInfo *fx_info,Image *image,
   PixelChannel channel,const char *symbol,ExceptionInfo *exception)
 {
@@ -1114,12 +384,14 @@
     channel_mask;
 
   char
-    key[MagickPathExtent],
-    statistic[MagickPathExtent];
+    key[MagickPathExtent];
 
-  const char
+  const double
     *value;
 
+  double
+    statistic;
+
   register const char
     *p;
 
@@ -1140,22 +412,21 @@
     }
   (void) FormatLocaleString(key,MagickPathExtent,"%p.%.20g.%s",(void *) image,
     (double) channel,symbol);
-  value=(const char *) GetValueFromSplayTree(fx_info->symbols,key);
-  if (value != (const char *) NULL)
+  value=GetFxSymbolValue(fx_info,key);
+  if (value != (const double *) NULL)
     {
       if (channel_mask != UndefinedChannel)
         (void) SetPixelChannelMask(image,channel_mask);
-      return(QuantumScale*StringToDouble(value,(char **) NULL));
+      return(QuantumScale*(*value));
     }
-  (void) DeleteNodeFromSplayTree(fx_info->symbols,key);
+  statistic=0.0;
   if (LocaleNCompare(symbol,"depth",5) == 0)
     {
       size_t
         depth;
 
       depth=GetImageDepth(image,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",(double)
-        depth);
+      statistic=(double) depth;
     }
   if (LocaleNCompare(symbol,"kurtosis",8) == 0)
     {
@@ -1164,7 +435,7 @@
         skewness;
 
       (void) GetImageKurtosis(image,&kurtosis,&skewness,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",kurtosis);
+      statistic=kurtosis;
     }
   if (LocaleNCompare(symbol,"maxima",6) == 0)
     {
@@ -1173,7 +444,7 @@
         minima;
 
       (void) GetImageRange(image,&minima,&maxima,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",maxima);
+      statistic=maxima;
     }
   if (LocaleNCompare(symbol,"mean",4) == 0)
     {
@@ -1182,7 +453,7 @@
         standard_deviation;
 
       (void) GetImageMean(image,&mean,&standard_deviation,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",mean);
+      statistic=mean;
     }
   if (LocaleNCompare(symbol,"minima",6) == 0)
     {
@@ -1191,7 +462,7 @@
         minima;
 
       (void) GetImageRange(image,&minima,&maxima,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",minima);
+      statistic=minima;
     }
   if (LocaleNCompare(symbol,"skewness",8) == 0)
     {
@@ -1200,7 +471,7 @@
         skewness;
 
       (void) GetImageKurtosis(image,&kurtosis,&skewness,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",skewness);
+      statistic=skewness;
     }
   if (LocaleNCompare(symbol,"standard_deviation",18) == 0)
     {
@@ -1209,20 +480,38 @@
         standard_deviation;
 
       (void) GetImageMean(image,&mean,&standard_deviation,exception);
-      (void) FormatLocaleString(statistic,MagickPathExtent,"%.20g",
-        standard_deviation);
+      statistic=standard_deviation;
     }
   if (channel_mask != UndefinedChannel)
     (void) SetPixelChannelMask(image,channel_mask);
-  (void) AddValueToSplayTree(fx_info->symbols,ConstantString(key),
-    ConstantString(statistic));
-  return(QuantumScale*StringToDouble(statistic,(char **) NULL));
+  if (SetFxSymbolValue(fx_info,key,statistic) == MagickFalse)
+    return(0.0);
+  return(QuantumScale*statistic);
 }
 
 static double
   FxEvaluateSubexpression(FxInfo *,const PixelChannel,const ssize_t,
     const ssize_t,const char *,const size_t,double *,ExceptionInfo *);
 
+static inline MagickBooleanType IsFxFunction(const char *expression,
+  const char *name,const size_t length)
+{
+  int
+    c;
+
+  register size_t
+    i;
+
+  for (i=0; i <= length; i++)
+    if (expression[i] == '\0')
+      return(MagickFalse);
+  c=expression[length];
+  if ((LocaleNCompare(expression,name,length) == 0) &&
+      ((isspace(c) == 0) || (c == '(')))
+    return(MagickTrue);
+  return(MagickFalse);
+}
+
 static MagickOffsetType FxGCD(MagickOffsetType alpha,MagickOffsetType beta)
 {
   if (beta != 0)
@@ -1266,9 +555,15 @@
     symbol[MagickPathExtent];
 
   const char
-    *p,
+    *p;
+
+  const double
     *value;
 
+  double
+    alpha,
+    beta;
+
   Image
     *image;
 
@@ -1278,10 +573,6 @@
   PixelInfo
     pixel;
 
-  double
-    alpha,
-    beta;
-
   PointInfo
     point;
 
@@ -1414,16 +705,21 @@
   status=InterpolatePixelInfo(image,fx_info->view[i],image->interpolate,
     point.x,point.y,&pixel,exception);
   (void) status;
-  if ((strlen(p) > 2) && (LocaleCompare(p,"intensity") != 0) &&
-      (LocaleCompare(p,"luma") != 0) && (LocaleCompare(p,"luminance") != 0) &&
-      (LocaleCompare(p,"hue") != 0) && (LocaleCompare(p,"saturation") != 0) &&
+  if ((*p != '\0') && (*(p+1) != '\0') && (*(p+2) != '\0') &&
+      (LocaleCompare(p,"intensity") != 0) && (LocaleCompare(p,"luma") != 0) &&
+      (LocaleCompare(p,"luminance") != 0) && (LocaleCompare(p,"hue") != 0) &&
+      (LocaleCompare(p,"saturation") != 0) &&
       (LocaleCompare(p,"lightness") != 0))
     {
       char
         name[MagickPathExtent];
 
+      size_t
+        length;
+
       (void) CopyMagickString(name,p,MagickPathExtent);
-      for (q=name+(strlen(name)-1); q > name; q--)
+      length=strlen(name);
+      for (q=name+length-1; q > name; q--)
       {
         if (*q == ')')
           break;
@@ -1433,8 +729,9 @@
             break;
           }
       }
-      if ((strlen(name) > 2) &&
-          (GetValueFromSplayTree(fx_info->symbols,name) == (const char *) NULL))
+      q=name;
+      if ((*q != '\0') && (*(q+1) != '\0') && (*(q+2) != '\0') &&
+          (GetFxSymbolValue(fx_info,name) == (const double *) NULL))
         {
           PixelInfo
             *color;
@@ -1443,7 +740,7 @@
           if (color != (PixelInfo *) NULL)
             {
               pixel=(*color);
-              p+=strlen(name);
+              p+=length;
             }
           else
             {
@@ -1454,9 +751,9 @@
                 fx_info->exception);
               if (status != MagickFalse)
                 {
-                  (void) AddValueToSplayTree(fx_info->colors,ConstantString(
-                    name),ClonePixelInfo(&pixel));
-                  p+=strlen(name);
+                  (void) AddValueToSplayTree(fx_info->colors,
+                    ConstantString(name),ClonePixelInfo(&pixel));
+                  p+=length;
                 }
             }
         }
@@ -1524,7 +821,7 @@
     case 'C':
     case 'c':
     {
-      if (LocaleNCompare(symbol,"channel",7) == 0)
+      if (IsFxFunction(symbol,"channel",7) != MagickFalse)
         {
           GeometryInfo
             channel_info;
@@ -1849,11 +1146,10 @@
     default:
       break;
   }
-  value=(const char *) GetValueFromSplayTree(fx_info->symbols,symbol);
-  if (value != (const char *) NULL)
-    return(StringToDouble(value,(char **) NULL));
-  (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
-    "UnableToParseExpression","`%s'",symbol);
+  value=GetFxSymbolValue(fx_info,symbol);
+  if (value != (const double *) NULL)
+    return(*value);
+  (void) SetFxSymbolValue(fx_info,symbol,0.0);
   return(0.0);
 }
 
@@ -1913,27 +1209,27 @@
       case 'a':
       {
 #if defined(MAGICKCORE_HAVE_ACOSH)
-        if (LocaleNCompare(expression,"acosh",5) == 0)
+        if (IsFxFunction(expression,"acosh",5) != MagickFalse)
           {
             expression+=5;
             break;
           }
 #endif
 #if defined(MAGICKCORE_HAVE_ASINH)
-        if (LocaleNCompare(expression,"asinh",5) == 0)
+        if (IsFxFunction(expression,"asinh",5) != MagickFalse)
           {
             expression+=5;
             break;
           }
 #endif
 #if defined(MAGICKCORE_HAVE_ATANH)
-        if (LocaleNCompare(expression,"atanh",5) == 0)
+        if (IsFxFunction(expression,"atanh",5) != MagickFalse)
           {
             expression+=5;
             break;
           }
 #endif
-        if (LocaleNCompare(expression,"atan2",5) == 0)
+        if (IsFxFunction(expression,"atan2",5) != MagickFalse)
           {
             expression+=5;
             break;
@@ -1954,8 +1250,8 @@
       case 'J':
       case 'j':
       {
-        if ((LocaleNCompare(expression,"j0",2) == 0) ||
-            (LocaleNCompare(expression,"j1",2) == 0))
+        if ((IsFxFunction(expression,"j0",2) != MagickFalse) ||
+            (IsFxFunction(expression,"j1",2) != MagickFalse))
           {
             expression+=2;
             break;
@@ -2018,6 +1314,22 @@
             precedence=AdditionPrecedence;
           break;
         }
+        case BitwiseAndAssignmentOperator:
+        case BitwiseOrAssignmentOperator:
+        case LeftShiftAssignmentOperator:
+        case RightShiftAssignmentOperator:
+        case PowerAssignmentOperator:
+        case ModuloAssignmentOperator:
+        case PlusAssignmentOperator:
+        case SubtractAssignmentOperator:
+        case MultiplyAssignmentOperator:
+        case DivideAssignmentOperator:
+        case IncrementAssignmentOperator:
+        case DecrementAssignmentOperator:
+        {
+          precedence=AssignmentPrecedence;
+          break;
+        }
         case LeftShiftOperator:
         case RightShiftOperator:
         {
@@ -2133,12 +1445,15 @@
 
   double
     alpha,
-    gamma;
+    gamma,
+    sans,
+    value;
 
   register const char
     *p;
 
   *beta=0.0;
+  sans=0.0;
   subexpression=AcquireString(expression);
   *subexpression='\0';
   if (depth > FxMaxSubexpressionDepth)
@@ -2192,25 +1507,12 @@
         {
           *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
             exception);
-          if (*beta == 0.0)
-            {
-              (void) ThrowMagickException(exception,GetMagickModule(),
-                OptionError,"DivideByZero","`%s'",expression);
-              FxReturn(0.0);
-            }
-          FxReturn(alpha/(*beta));
+          FxReturn(PerceptibleReciprocal(*beta)*alpha);
         }
         case '%':
         {
           *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
             exception);
-          *beta=fabs(floor((*beta)+0.5));
-          if (*beta == 0.0)
-            {
-              (void) ThrowMagickException(exception,GetMagickModule(),
-                OptionError,"DivideByZero","`%s'",expression);
-              FxReturn(0.0);
-            }
           FxReturn(fmod(alpha,*beta));
         }
         case '+':
@@ -2225,6 +1527,240 @@
             exception);
           FxReturn(alpha-(*beta));
         }
+        case BitwiseAndAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=(double) ((size_t) (alpha+0.5) & (size_t) (*beta+0.5));
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case BitwiseOrAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=(double) ((size_t) (alpha+0.5) | (size_t) (*beta+0.5));
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case LeftShiftAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          if ((size_t) (*beta+0.5) >= (8*sizeof(size_t)))
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"ShiftCountOverflow","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          value=(double) ((size_t) (alpha+0.5) << (size_t) (*beta+0.5));
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case RightShiftAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          if ((size_t) (*beta+0.5) >= (8*sizeof(size_t)))
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"ShiftCountOverflow","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          value=(double) ((size_t) (alpha+0.5) >> (size_t) (*beta+0.5));
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case PowerAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=pow(alpha,*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case ModuloAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=fmod(alpha,*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case PlusAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=alpha+(*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case SubtractAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=alpha-(*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case MultiplyAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=alpha*(*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case DivideAssignmentOperator:
+        {
+          q=subexpression;
+          while (isalpha((int) ((unsigned char) *q)) != 0)
+            q++;
+          if (*q != '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          ClearMagickException(exception);
+          *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+            exception);
+          value=alpha*PerceptibleReciprocal(*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
+          FxReturn(*beta);
+        }
+        case IncrementAssignmentOperator:
+        {
+          if (*subexpression == '\0')
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+              exception);
+          value=alpha+1.0;
+          if (*subexpression == '\0')
+            {
+              if (SetFxSymbolValue(fx_info,p,value) == MagickFalse)
+                return(0.0);
+            }
+          else
+            if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+              return(0.0);
+          FxReturn(*beta);
+        }
+        case DecrementAssignmentOperator:
+        {
+          if (*subexpression == '\0')
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
+              exception);
+          value=alpha-1.0;
+          if (*subexpression == '\0')
+            {
+              if (SetFxSymbolValue(fx_info,p,value) == MagickFalse)
+                return(0.0);
+            }
+          else
+            if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+              return(0.0);
+          FxReturn(*beta);
+        }
         case LeftShiftOperator:
         {
           gamma=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
@@ -2330,27 +1866,27 @@
         case '?':
         {
           (void) CopyMagickString(subexpression,++p,MagickPathExtent);
-          q=subexpression;
-          p=StringToken(":",&q);
-          if (q == (char *) NULL)
+          p=subexpression;
+          for (q=(char *) p; (*q != ':') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
             {
               (void) ThrowMagickException(exception,GetMagickModule(),
                 OptionError,"UnableToParseExpression","`%s'",subexpression);
               FxReturn(0.0);
             }
+          *q='\0';
           if (fabs(alpha) >= MagickEpsilon)
             gamma=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,beta,
               exception);
           else
-            gamma=FxEvaluateSubexpression(fx_info,channel,x,y,q,depth+1,beta,
+            gamma=FxEvaluateSubexpression(fx_info,channel,x,y,q+1,depth+1,beta,
               exception);
           FxReturn(gamma);
         }
         case '=':
         {
-          char
-            numeric[MagickPathExtent];
-
           q=subexpression;
           while (isalpha((int) ((unsigned char) *q)) != 0)
             q++;
@@ -2363,10 +1899,9 @@
           ClearMagickException(exception);
           *beta=FxEvaluateSubexpression(fx_info,channel,x,y,++p,depth+1,beta,
             exception);
-          (void) FormatLocaleString(numeric,MagickPathExtent,"%.20g",*beta);
-          (void) DeleteNodeFromSplayTree(fx_info->symbols,subexpression);
-          (void) AddValueToSplayTree(fx_info->symbols,ConstantString(
-            subexpression),ConstantString(numeric));
+          value=(*beta);
+          if (SetFxSymbolValue(fx_info,subexpression,value) == MagickFalse)
+            return(0.0);
           FxReturn(*beta);
         }
         case ',':
@@ -2391,12 +1926,15 @@
     }
   if (strchr("(",(int) *expression) != (char *) NULL)
     {
+      size_t
+        length;
+
       if (depth >= FxMaxParenthesisDepth)
         (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
           "ParenthesisNestedTooDeeply","`%s'",expression);
-      (void) CopyMagickString(subexpression,expression+1,MagickPathExtent);
-      if (strlen(subexpression) != 0)
-        subexpression[strlen(subexpression)-1]='\0';
+      length=CopyMagickString(subexpression,expression+1,MagickPathExtent);
+      if (length != 0)
+        subexpression[length-1]='\0';
       gamma=FxEvaluateSubexpression(fx_info,channel,x,y,subexpression,depth+1,
         beta,exception);
       FxReturn(gamma);
@@ -2424,28 +1962,28 @@
     case 'A':
     case 'a':
     {
-      if (LocaleNCompare(expression,"abs",3) == 0)
+      if (IsFxFunction(expression,"abs",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(fabs(alpha));
         }
 #if defined(MAGICKCORE_HAVE_ACOSH)
-      if (LocaleNCompare(expression,"acosh",5) == 0)
+      if (IsFxFunction(expression,"acosh",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
           FxReturn(acosh(alpha));
         }
 #endif
-      if (LocaleNCompare(expression,"acos",4) == 0)
+      if (IsFxFunction(expression,"acos",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(acos(alpha));
         }
 #if defined(MAGICKCORE_HAVE_J1)
-      if (LocaleNCompare(expression,"airy",4) == 0)
+      if (IsFxFunction(expression,"airy",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
@@ -2456,40 +1994,40 @@
         }
 #endif
 #if defined(MAGICKCORE_HAVE_ASINH)
-      if (LocaleNCompare(expression,"asinh",5) == 0)
+      if (IsFxFunction(expression,"asinh",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
           FxReturn(asinh(alpha));
         }
 #endif
-      if (LocaleNCompare(expression,"asin",4) == 0)
+      if (IsFxFunction(expression,"asin",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(asin(alpha));
         }
-      if (LocaleNCompare(expression,"alt",3) == 0)
+      if (IsFxFunction(expression,"alt",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(((ssize_t) alpha) & 0x01 ? -1.0 : 1.0);
         }
-      if (LocaleNCompare(expression,"atan2",5) == 0)
+      if (IsFxFunction(expression,"atan2",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
           FxReturn(atan2(alpha,*beta));
         }
 #if defined(MAGICKCORE_HAVE_ATANH)
-      if (LocaleNCompare(expression,"atanh",5) == 0)
+      if (IsFxFunction(expression,"atanh",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
           FxReturn(atanh(alpha));
         }
 #endif
-      if (LocaleNCompare(expression,"atan",4) == 0)
+      if (IsFxFunction(expression,"atan",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
@@ -2509,13 +2047,13 @@
     case 'C':
     case 'c':
     {
-      if (LocaleNCompare(expression,"ceil",4) == 0)
+      if (IsFxFunction(expression,"ceil",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(ceil(alpha));
         }
-      if (LocaleNCompare(expression,"clamp",5) == 0)
+      if (IsFxFunction(expression,"clamp",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
@@ -2525,13 +2063,13 @@
             FxReturn(1.0);
           FxReturn(alpha);
         }
-      if (LocaleNCompare(expression,"cosh",4) == 0)
+      if (IsFxFunction(expression,"cosh",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(cosh(alpha));
         }
-      if (LocaleNCompare(expression,"cos",3) == 0)
+      if (IsFxFunction(expression,"cos",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2544,45 +2082,100 @@
     case 'D':
     case 'd':
     {
-      if (LocaleNCompare(expression,"debug",5) == 0)
+      if (IsFxFunction(expression,"debug",5) != MagickFalse)
         {
           const char
             *type;
 
+          size_t
+            length;
+
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
-          if (fx_info->images->colorspace == CMYKColorspace)
-            switch (channel)
+          switch (fx_info->images->colorspace)
+          {
+            case CMYKColorspace:
             {
-              case CyanPixelChannel: type="cyan"; break;
-              case MagentaPixelChannel: type="magenta"; break;
-              case YellowPixelChannel: type="yellow"; break;
-              case AlphaPixelChannel: type="opacity"; break;
-              case BlackPixelChannel: type="black"; break;
-              default: type="unknown"; break;
+              switch (channel)
+              {
+                case CyanPixelChannel: type="cyan"; break;
+                case MagentaPixelChannel: type="magenta"; break;
+                case YellowPixelChannel: type="yellow"; break;
+                case AlphaPixelChannel: type="alpha"; break;
+                case BlackPixelChannel: type="black"; break;
+                default: type="unknown"; break;
+              }
+              break;
             }
-          else
-            switch (channel)
+            case GRAYColorspace:
             {
-              case RedPixelChannel: type="red"; break;
-              case GreenPixelChannel: type="green"; break;
-              case BluePixelChannel: type="blue"; break;
-              case AlphaPixelChannel: type="opacity"; break;
-              default: type="unknown"; break;
+              switch (channel)
+              {
+                case RedPixelChannel: type="gray"; break;
+                case AlphaPixelChannel: type="alpha"; break;
+                default: type="unknown"; break;
+              }
+              break;
             }
+            default:
+            {
+              switch (channel)
+              {
+                case RedPixelChannel: type="red"; break;
+                case GreenPixelChannel: type="green"; break;
+                case BluePixelChannel: type="blue"; break;
+                case AlphaPixelChannel: type="alpha"; break;
+                default: type="unknown"; break;
+              }
+              break;
+            }
+          }
           *subexpression='\0';
+          length=1;
           if (strlen(expression) > 6)
-            (void) CopyMagickString(subexpression,expression+6,
+            length=CopyMagickString(subexpression,expression+6,
               MagickPathExtent);
-          if (strlen(subexpression) > 1)
-            subexpression[strlen(subexpression)-1]='\0';
+          if (length != 0)
+            subexpression[length-1]='\0';
           if (fx_info->file != (FILE *) NULL)
             (void) FormatLocaleFile(fx_info->file,"%s[%.20g,%.20g].%s: "
               "%s=%.*g\n",fx_info->images->filename,(double) x,(double) y,type,
               subexpression,GetMagickPrecision(),alpha);
-          FxReturn(0.0);
+          FxReturn(alpha);
         }
-      if (LocaleNCompare(expression,"drc",3) == 0)
+      if (IsFxFunction(expression,"do",2) != MagickFalse)
+        {
+          size_t
+            length;
+
+          /*
+            Parse do(expression,condition test).
+          */
+          length=CopyMagickString(subexpression,expression+3,MagickPathExtent);
+          if (length != 0)
+            subexpression[length-1]='\0';
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          for (*q='\0'; ; )
+          {
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,q+1,depth+1,beta,
+              exception);
+            gamma=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,&sans,
+              exception);
+            if (fabs(gamma) < MagickEpsilon)
+              break;
+          }
+          FxReturn(alpha);
+        }
+      if (IsFxFunction(expression,"drc",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2596,14 +2189,14 @@
       if (LocaleCompare(expression,"epsilon") == 0)
         FxReturn(MagickEpsilon);
 #if defined(MAGICKCORE_HAVE_ERF)
-      if (LocaleNCompare(expression,"erf",3) == 0)
+      if (IsFxFunction(expression,"erf",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(erf(alpha));
         }
 #endif
-      if (LocaleNCompare(expression,"exp",3) == 0)
+      if (IsFxFunction(expression,"exp",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2616,25 +2209,73 @@
     case 'F':
     case 'f':
     {
-      if (LocaleNCompare(expression,"floor",5) == 0)
+      if (IsFxFunction(expression,"floor",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
           FxReturn(floor(alpha));
         }
+      if (IsFxFunction(expression,"for",3) != MagickFalse)
+        {
+          double
+            sans = 0.0;
+
+          size_t
+            length;
+
+          /*
+            Parse for(initialization, condition test, expression).
+          */
+          length=CopyMagickString(subexpression,expression+4,MagickPathExtent);
+          if (length != 0)
+            subexpression[length-1]='\0';
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          *q='\0';
+          alpha=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,&sans,
+            exception);
+          (void) CopyMagickString(subexpression,q+1,MagickPathExtent);
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          for (*q='\0'; ; )
+          {
+            gamma=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,&sans,
+              exception);
+            if (fabs(gamma) < MagickEpsilon)
+              break;
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,q+1,depth+1,beta,
+              exception);
+          }
+          FxReturn(alpha);
+        }
       break;
     }
     case 'G':
     case 'g':
     {
-      if (LocaleNCompare(expression,"gauss",5) == 0)
+      if (IsFxFunction(expression,"gauss",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
-          gamma=exp((-alpha*alpha/2.0))/sqrt(2.0*MagickPI);
-          FxReturn(gamma);
+          FxReturn(exp((-alpha*alpha/2.0))/sqrt(2.0*MagickPI));
         }
-      if (LocaleNCompare(expression,"gcd",3) == 0)
+      if (IsFxFunction(expression,"gcd",3) != MagickFalse)
         {
           MagickOffsetType
             gcd;
@@ -2656,7 +2297,7 @@
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
       if (LocaleCompare(expression,"hue") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
-      if (LocaleNCompare(expression,"hypot",5) == 0)
+      if (IsFxFunction(expression,"hypot",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
@@ -2674,15 +2315,59 @@
     case 'I':
     case 'i':
     {
+      if (IsFxFunction(expression,"if",2) != MagickFalse)
+        {
+          double
+            sans = 0.0;
+
+          size_t
+            length;
+
+          length=CopyMagickString(subexpression,expression+3,MagickPathExtent);
+          if (length != 0)
+            subexpression[length-1]='\0';
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          *q='\0';
+          alpha=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,&sans,
+            exception);
+          (void) CopyMagickString(subexpression,q+1,MagickPathExtent);
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          *q='\0';
+          if (fabs(alpha) >= MagickEpsilon)
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,beta,
+              exception);
+          else
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,q+1,depth+1,beta,
+              exception);
+          FxReturn(alpha);
+        }
       if (LocaleCompare(expression,"intensity") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
-      if (LocaleNCompare(expression,"int",3) == 0)
+      if (IsFxFunction(expression,"int",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(floor(alpha));
         }
-      if (LocaleNCompare(expression,"isnan",5) == 0)
+      if (IsFxFunction(expression,"isnan",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
@@ -2698,7 +2383,7 @@
       if (LocaleCompare(expression,"j") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
 #if defined(MAGICKCORE_HAVE_J0)
-      if (LocaleNCompare(expression,"j0",2) == 0)
+      if (IsFxFunction(expression,"j0",2) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+2,
             depth+1,beta,exception);
@@ -2706,7 +2391,7 @@
         }
 #endif
 #if defined(MAGICKCORE_HAVE_J1)
-      if (LocaleNCompare(expression,"j1",2) == 0)
+      if (IsFxFunction(expression,"j1",2) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+2,
             depth+1,beta,exception);
@@ -2714,14 +2399,13 @@
         }
 #endif
 #if defined(MAGICKCORE_HAVE_J1)
-      if (LocaleNCompare(expression,"jinc",4) == 0)
+      if (IsFxFunction(expression,"jinc",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           if (alpha == 0.0)
             FxReturn(1.0);
-          gamma=(2.0*j1((MagickPI*alpha))/(MagickPI*alpha));
-          FxReturn(gamma);
+          FxReturn((2.0*j1((MagickPI*alpha))/(MagickPI*alpha)));
         }
 #endif
       break;
@@ -2729,19 +2413,19 @@
     case 'L':
     case 'l':
     {
-      if (LocaleNCompare(expression,"ln",2) == 0)
+      if (IsFxFunction(expression,"ln",2) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+2,
             depth+1,beta,exception);
           FxReturn(log(alpha));
         }
-      if (LocaleNCompare(expression,"logtwo",6) == 0)
+      if (IsFxFunction(expression,"logtwo",6) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+6,
             depth+1,beta,exception);
           FxReturn(log10(alpha)/log10(2.0));
         }
-      if (LocaleNCompare(expression,"log",3) == 0)
+      if (IsFxFunction(expression,"log",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2758,7 +2442,7 @@
         FxReturn(QuantumRange);
       if (LocaleNCompare(expression,"maxima",6) == 0)
         break;
-      if (LocaleNCompare(expression,"max",3) == 0)
+      if (IsFxFunction(expression,"max",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2766,18 +2450,17 @@
         }
       if (LocaleNCompare(expression,"minima",6) == 0)
         break;
-      if (LocaleNCompare(expression,"min",3) == 0)
+      if (IsFxFunction(expression,"min",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(alpha < *beta ? alpha : *beta);
         }
-      if (LocaleNCompare(expression,"mod",3) == 0)
+      if (IsFxFunction(expression,"mod",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
-          gamma=alpha-floor((alpha*PerceptibleReciprocal(*beta)))*(*beta);
-          FxReturn(gamma);
+          FxReturn(alpha-floor((alpha*PerceptibleReciprocal(*beta)))*(*beta));
         }
       if (LocaleCompare(expression,"m") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
@@ -2786,7 +2469,7 @@
     case 'N':
     case 'n':
     {
-      if (LocaleNCompare(expression,"not",3) == 0)
+      if (IsFxFunction(expression,"not",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2812,7 +2495,7 @@
         FxReturn(MagickPHI);
       if (LocaleCompare(expression,"pi") == 0)
         FxReturn(MagickPI);
-      if (LocaleNCompare(expression,"pow",3) == 0)
+      if (IsFxFunction(expression,"pow",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2834,7 +2517,7 @@
     case 'R':
     case 'r':
     {
-      if (LocaleNCompare(expression,"rand",4) == 0)
+      if (IsFxFunction(expression,"rand",4) != MagickFalse)
         {
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
         #pragma omp critical (MagickCore_FxEvaluateSubexpression)
@@ -2842,11 +2525,16 @@
           alpha=GetPseudoRandomValue(fx_info->random_info);
           FxReturn(alpha);
         }
-      if (LocaleNCompare(expression,"round",5) == 0)
+      if (IsFxFunction(expression,"round",5) != MagickFalse)
         {
+          /*
+            Round the fraction to nearest integer.
+          */
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
-          FxReturn(floor(alpha+0.5));
+          if ((alpha-floor(alpha)) < (ceil(alpha)-alpha))
+            FxReturn(floor(alpha));
+          FxReturn(ceil(alpha));
         }
       if (LocaleCompare(expression,"r") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
@@ -2857,40 +2545,39 @@
     {
       if (LocaleCompare(expression,"saturation") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
-      if (LocaleNCompare(expression,"sign",4) == 0)
+      if (IsFxFunction(expression,"sign",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(alpha < 0.0 ? -1.0 : 1.0);
         }
-      if (LocaleNCompare(expression,"sinc",4) == 0)
+      if (IsFxFunction(expression,"sinc",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           if (alpha == 0)
             FxReturn(1.0);
-          gamma=sin((MagickPI*alpha))/(MagickPI*alpha);
-          FxReturn(gamma);
+          FxReturn(sin((MagickPI*alpha))/(MagickPI*alpha));
         }
-      if (LocaleNCompare(expression,"sinh",4) == 0)
+      if (IsFxFunction(expression,"sinh",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(sinh(alpha));
         }
-      if (LocaleNCompare(expression,"sin",3) == 0)
+      if (IsFxFunction(expression,"sin",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
           FxReturn(sin(alpha));
         }
-      if (LocaleNCompare(expression,"sqrt",4) == 0)
+      if (IsFxFunction(expression,"sqrt",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(sqrt(alpha));
         }
-      if (LocaleNCompare(expression,"squish",6) == 0)
+      if (IsFxFunction(expression,"squish",6) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+6,
             depth+1,beta,exception);
@@ -2903,13 +2590,13 @@
     case 'T':
     case 't':
     {
-      if (LocaleNCompare(expression,"tanh",4) == 0)
+      if (IsFxFunction(expression,"tanh",4) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+4,
             depth+1,beta,exception);
           FxReturn(tanh(alpha));
         }
-      if (LocaleNCompare(expression,"tan",3) == 0)
+      if (IsFxFunction(expression,"tan",3) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
@@ -2917,7 +2604,7 @@
         }
       if (LocaleCompare(expression,"Transparent") == 0)
         FxReturn(0.0);
-      if (LocaleNCompare(expression,"trunc",5) == 0)
+      if (IsFxFunction(expression,"trunc",5) != MagickFalse)
         {
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
             depth+1,beta,exception);
@@ -2946,14 +2633,37 @@
     case 'W':
     case 'w':
     {
-      if (LocaleNCompare(expression,"while",5) == 0)
+      if (IsFxFunction(expression,"while",5) != MagickFalse)
         {
-          do
+          size_t
+            length;
+
+          /*
+            Parse while(condition test, expression).
+          */
+          length=CopyMagickString(subexpression,expression+6,MagickPathExtent);
+          if (length != 0)
+            subexpression[length-1]='\0';
+          p=subexpression;
+          for (q=(char *) p; (*q != ',') && (*q != '\0'); q++)
+            if (*q == '(')
+              for ( ; (*q != ')') && (*q != '\0'); q++);
+          if (*q == '\0')
+            {
+              (void) ThrowMagickException(exception,GetMagickModule(),
+                OptionError,"UnableToParseExpression","`%s'",subexpression);
+              FxReturn(0.0);
+            }
+          for (*q='\0'; ; )
           {
-            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+5,
-              depth+1,beta,exception);
-          } while (fabs(alpha) >= MagickEpsilon);
-          FxReturn(*beta);
+            gamma=FxEvaluateSubexpression(fx_info,channel,x,y,p,depth+1,&sans,
+              exception);
+            if (fabs(gamma) < MagickEpsilon)
+              break;
+            alpha=FxEvaluateSubexpression(fx_info,channel,x,y,q+1,depth+1,beta,
+              exception);
+          }
+          FxReturn(alpha);
         }
       if (LocaleCompare(expression,"w") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
@@ -2980,7 +2690,7 @@
   q=(char *) expression;
   alpha=InterpretSiPrefixValue(expression,&q);
   if (q == expression)
-    FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
+    alpha=FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception);
   FxReturn(alpha);
 }
 
@@ -3072,12 +2782,12 @@
   char
     *fx_expression;
 
-  FxInfo
-    **fx_info;
-
   double
     alpha;
 
+  FxInfo
+    **fx_info;
+
   register ssize_t
     i;
 
@@ -3168,7 +2878,7 @@
   image_view=AcquireVirtualCacheView(image,exception);
   fx_view=AcquireAuthenticCacheView(fx_image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
+  #pragma omp parallel for schedule(dynamic) shared(progress,status) \
     magick_number_threads(image,fx_image,fx_image->rows,1)
 #endif
   for (y=0; y < (ssize_t) fx_image->rows; y++)
@@ -3246,2873 +2956,3 @@
     fx_image=DestroyImage(fx_image);
   return(fx_image);
 }
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     I m p l o d e I m a g e                                                 %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  ImplodeImage() creates a new image that is a copy of an existing
-%  one with the image pixels "implode" by the specified percentage.  It
-%  allocates the memory necessary for the new Image structure and returns a
-%  pointer to the new image.
-%
-%  The format of the ImplodeImage method is:
-%
-%      Image *ImplodeImage(const Image *image,const double amount,
-%        const PixelInterpolateMethod method,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o implode_image: Method ImplodeImage returns a pointer to the image
-%      after it is implode.  A null image is returned if there is a memory
-%      shortage.
-%
-%    o image: the image.
-%
-%    o amount:  Define the extent of the implosion.
-%
-%    o method: the pixel interpolation method.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *ImplodeImage(const Image *image,const double amount,
-  const PixelInterpolateMethod method,ExceptionInfo *exception)
-{
-#define ImplodeImageTag  "Implode/Image"
-
-  CacheView
-    *canvas_view,
-    *implode_view,
-    *interpolate_view;
-
-  double
-    radius;
-
-  Image
-    *canvas_image,
-    *implode_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  PointInfo
-    center,
-    scale;
-
-  ssize_t
-    y;
-
-  /*
-    Initialize implode image attributes.
-  */
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (canvas_image == (Image *) NULL)
-    return((Image *) NULL);
-  if ((canvas_image->alpha_trait == UndefinedPixelTrait) &&
-      (canvas_image->background_color.alpha != OpaqueAlpha))
-    (void) SetImageAlphaChannel(canvas_image,OpaqueAlphaChannel,exception);
-  implode_image=CloneImage(canvas_image,0,0,MagickTrue,exception);
-  if (implode_image == (Image *) NULL)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      return((Image *) NULL);
-    }
-  if (SetImageStorageClass(implode_image,DirectClass,exception) == MagickFalse)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      implode_image=DestroyImage(implode_image);
-      return((Image *) NULL);
-    }
-  /*
-    Compute scaling factor.
-  */
-  scale.x=1.0;
-  scale.y=1.0;
-  center.x=0.5*canvas_image->columns;
-  center.y=0.5*canvas_image->rows;
-  radius=center.x;
-  if (canvas_image->columns > canvas_image->rows)
-    scale.y=(double) canvas_image->columns/(double) canvas_image->rows;
-  else
-    if (canvas_image->columns < canvas_image->rows)
-      {
-        scale.x=(double) canvas_image->rows/(double) canvas_image->columns;
-        radius=center.y;
-      }
-  /*
-    Implode image.
-  */
-  status=MagickTrue;
-  progress=0;
-  canvas_view=AcquireVirtualCacheView(canvas_image,exception);
-  interpolate_view=AcquireVirtualCacheView(canvas_image,exception);
-  implode_view=AcquireAuthenticCacheView(implode_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(canvas_image,implode_image,canvas_image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) canvas_image->rows; y++)
-  {
-    double
-      distance;
-
-    PointInfo
-      delta;
-
-    register const Quantum
-      *magick_restrict p;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(canvas_view,0,y,canvas_image->columns,1,
-      exception);
-    q=QueueCacheViewAuthenticPixels(implode_view,0,y,implode_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    delta.y=scale.y*(double) (y-center.y);
-    for (x=0; x < (ssize_t) canvas_image->columns; x++)
-    {
-      register ssize_t
-        i;
-
-      /*
-        Determine if the pixel is within an ellipse.
-      */
-      delta.x=scale.x*(double) (x-center.x);
-      distance=delta.x*delta.x+delta.y*delta.y;
-      if (distance >= (radius*radius))
-        for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
-        {
-          PixelChannel channel = GetPixelChannelChannel(canvas_image,i);
-          PixelTrait traits = GetPixelChannelTraits(canvas_image,channel);
-          PixelTrait implode_traits = GetPixelChannelTraits(implode_image,
-            channel);
-          if ((traits == UndefinedPixelTrait) ||
-              (implode_traits == UndefinedPixelTrait))
-            continue;
-          SetPixelChannel(implode_image,channel,p[i],q);
-        }
-      else
-        {
-          double
-            factor;
-
-          /*
-            Implode the pixel.
-          */
-          factor=1.0;
-          if (distance > 0.0)
-            factor=pow(sin(MagickPI*sqrt((double) distance)/radius/2),-amount);
-          status=InterpolatePixelChannels(canvas_image,interpolate_view,
-            implode_image,method,(double) (factor*delta.x/scale.x+center.x),
-            (double) (factor*delta.y/scale.y+center.y),q,exception);
-          if (status == MagickFalse)
-            break;
-        }
-      p+=GetPixelChannels(canvas_image);
-      q+=GetPixelChannels(implode_image);
-    }
-    if (SyncCacheViewAuthenticPixels(implode_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (canvas_image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(canvas_image,ImplodeImageTag,progress,
-          canvas_image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  implode_view=DestroyCacheView(implode_view);
-  interpolate_view=DestroyCacheView(interpolate_view);
-  canvas_view=DestroyCacheView(canvas_view);
-  canvas_image=DestroyImage(canvas_image);
-  if (status == MagickFalse)
-    implode_image=DestroyImage(implode_image);
-  return(implode_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     M o r p h I m a g e s                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  The MorphImages() method requires a minimum of two images.  The first
-%  image is transformed into the second by a number of intervening images
-%  as specified by frames.
-%
-%  The format of the MorphImage method is:
-%
-%      Image *MorphImages(const Image *image,const size_t number_frames,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o number_frames:  Define the number of in-between image to generate.
-%      The more in-between frames, the smoother the morph.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
-  ExceptionInfo *exception)
-{
-#define MorphImageTag  "Morph/Image"
-
-  double
-    alpha,
-    beta;
-
-  Image
-    *morph_image,
-    *morph_images;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    scene;
-
-  register const Image
-    *next;
-
-  register ssize_t
-    n;
-
-  ssize_t
-    y;
-
-  /*
-    Clone first frame in sequence.
-  */
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  morph_images=CloneImage(image,0,0,MagickTrue,exception);
-  if (morph_images == (Image *) NULL)
-    return((Image *) NULL);
-  if (GetNextImageInList(image) == (Image *) NULL)
-    {
-      /*
-        Morph single image.
-      */
-      for (n=1; n < (ssize_t) number_frames; n++)
-      {
-        morph_image=CloneImage(image,0,0,MagickTrue,exception);
-        if (morph_image == (Image *) NULL)
-          {
-            morph_images=DestroyImageList(morph_images);
-            return((Image *) NULL);
-          }
-        AppendImageToList(&morph_images,morph_image);
-        if (image->progress_monitor != (MagickProgressMonitor) NULL)
-          {
-            MagickBooleanType
-              proceed;
-
-            proceed=SetImageProgress(image,MorphImageTag,(MagickOffsetType) n,
-              number_frames);
-            if (proceed == MagickFalse)
-              status=MagickFalse;
-          }
-      }
-      return(GetFirstImageInList(morph_images));
-    }
-  /*
-    Morph image sequence.
-  */
-  status=MagickTrue;
-  scene=0;
-  next=image;
-  for ( ; GetNextImageInList(next) != (Image *) NULL; next=GetNextImageInList(next))
-  {
-    for (n=0; n < (ssize_t) number_frames; n++)
-    {
-      CacheView
-        *image_view,
-        *morph_view;
-
-      beta=(double) (n+1.0)/(double) (number_frames+1.0);
-      alpha=1.0-beta;
-      morph_image=ResizeImage(next,(size_t) (alpha*next->columns+beta*
-        GetNextImageInList(next)->columns+0.5),(size_t) (alpha*next->rows+beta*
-        GetNextImageInList(next)->rows+0.5),next->filter,exception);
-      if (morph_image == (Image *) NULL)
-        {
-          morph_images=DestroyImageList(morph_images);
-          return((Image *) NULL);
-        }
-      status=SetImageStorageClass(morph_image,DirectClass,exception);
-      if (status == MagickFalse)
-        {
-          morph_image=DestroyImage(morph_image);
-          return((Image *) NULL);
-        }
-      AppendImageToList(&morph_images,morph_image);
-      morph_images=GetLastImageInList(morph_images);
-      morph_image=ResizeImage(GetNextImageInList(next),morph_images->columns,
-        morph_images->rows,GetNextImageInList(next)->filter,exception);
-      if (morph_image == (Image *) NULL)
-        {
-          morph_images=DestroyImageList(morph_images);
-          return((Image *) NULL);
-        }
-      image_view=AcquireVirtualCacheView(morph_image,exception);
-      morph_view=AcquireAuthenticCacheView(morph_images,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-      #pragma omp parallel for schedule(static) shared(status) \
-        magick_number_threads(morph_image,morph_image,morph_image->rows,1)
-#endif
-      for (y=0; y < (ssize_t) morph_images->rows; y++)
-      {
-        MagickBooleanType
-          sync;
-
-        register const Quantum
-          *magick_restrict p;
-
-        register ssize_t
-          x;
-
-        register Quantum
-          *magick_restrict q;
-
-        if (status == MagickFalse)
-          continue;
-        p=GetCacheViewVirtualPixels(image_view,0,y,morph_image->columns,1,
-          exception);
-        q=GetCacheViewAuthenticPixels(morph_view,0,y,morph_images->columns,1,
-          exception);
-        if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-          {
-            status=MagickFalse;
-            continue;
-          }
-        for (x=0; x < (ssize_t) morph_images->columns; x++)
-        {
-          register ssize_t
-            i;
-
-          for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
-          {
-            PixelChannel channel = GetPixelChannelChannel(morph_image,i);
-            PixelTrait traits = GetPixelChannelTraits(morph_image,channel);
-            PixelTrait morph_traits=GetPixelChannelTraits(morph_images,channel);
-            if ((traits == UndefinedPixelTrait) ||
-                (morph_traits == UndefinedPixelTrait))
-              continue;
-            if ((morph_traits & CopyPixelTrait) != 0)
-              {
-                SetPixelChannel(morph_image,channel,p[i],q);
-                continue;
-              }
-            SetPixelChannel(morph_image,channel,ClampToQuantum(alpha*
-              GetPixelChannel(morph_images,channel,q)+beta*p[i]),q);
-          }
-          p+=GetPixelChannels(morph_image);
-          q+=GetPixelChannels(morph_images);
-        }
-        sync=SyncCacheViewAuthenticPixels(morph_view,exception);
-        if (sync == MagickFalse)
-          status=MagickFalse;
-      }
-      morph_view=DestroyCacheView(morph_view);
-      image_view=DestroyCacheView(image_view);
-      morph_image=DestroyImage(morph_image);
-    }
-    if (n < (ssize_t) number_frames)
-      break;
-    /*
-      Clone last frame in sequence.
-    */
-    morph_image=CloneImage(GetNextImageInList(next),0,0,MagickTrue,exception);
-    if (morph_image == (Image *) NULL)
-      {
-        morph_images=DestroyImageList(morph_images);
-        return((Image *) NULL);
-      }
-    AppendImageToList(&morph_images,morph_image);
-    morph_images=GetLastImageInList(morph_images);
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-        proceed=SetImageProgress(image,MorphImageTag,scene,
-          GetImageListLength(image));
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-    scene++;
-  }
-  if (GetNextImageInList(next) != (Image *) NULL)
-    {
-      morph_images=DestroyImageList(morph_images);
-      return((Image *) NULL);
-    }
-  return(GetFirstImageInList(morph_images));
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     P l a s m a I m a g e                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  PlasmaImage() initializes an image with plasma fractal values.  The image
-%  must be initialized with a base color and the random number generator
-%  seeded before this method is called.
-%
-%  The format of the PlasmaImage method is:
-%
-%      MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment,
-%        size_t attenuate,size_t depth,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o segment:   Define the region to apply plasma fractals values.
-%
-%    o attenuate: Define the plasma attenuation factor.
-%
-%    o depth: Limit the plasma recursion depth.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-
-static inline Quantum PlasmaPixel(RandomInfo *random_info,
-  const double pixel,const double noise)
-{
-  Quantum
-    plasma;
-
-  plasma=ClampToQuantum(pixel+noise*GetPseudoRandomValue(random_info)-
-    noise/2.0);
-  if (plasma <= 0)
-    return((Quantum) 0);
-  if (plasma >= QuantumRange)
-    return(QuantumRange);
-  return(plasma);
-}
-
-static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
-  CacheView *u_view,CacheView *v_view,RandomInfo *random_info,
-  const SegmentInfo *segment,size_t attenuate,size_t depth,
-  ExceptionInfo *exception)
-{
-  double
-    plasma;
-
-  register const Quantum
-    *magick_restrict u,
-    *magick_restrict v;
-
-  register Quantum
-    *magick_restrict q;
-
-  register ssize_t
-    i;
-
-  ssize_t
-    x,
-    x_mid,
-    y,
-    y_mid;
-
-  if ((fabs(segment->x2-segment->x1) <= MagickEpsilon) &&
-      (fabs(segment->y2-segment->y1) <= MagickEpsilon))
-    return(MagickTrue);
-  if (depth != 0)
-    {
-      MagickBooleanType
-        status;
-
-      SegmentInfo
-        local_info;
-
-      /*
-        Divide the area into quadrants and recurse.
-      */
-      depth--;
-      attenuate++;
-      x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
-      y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
-      local_info=(*segment);
-      local_info.x2=(double) x_mid;
-      local_info.y2=(double) y_mid;
-      (void) PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
-        &local_info,attenuate,depth,exception);
-      local_info=(*segment);
-      local_info.y1=(double) y_mid;
-      local_info.x2=(double) x_mid;
-      (void) PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
-        &local_info,attenuate,depth,exception);
-      local_info=(*segment);
-      local_info.x1=(double) x_mid;
-      local_info.y2=(double) y_mid;
-      (void) PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
-        &local_info,attenuate,depth,exception);
-      local_info=(*segment);
-      local_info.x1=(double) x_mid;
-      local_info.y1=(double) y_mid;
-      status=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
-        &local_info,attenuate,depth,exception);
-      return(status);
-    }
-  x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
-  y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
-  if ((fabs(segment->x1-x_mid) < MagickEpsilon) &&
-      (fabs(segment->x2-x_mid) < MagickEpsilon) &&
-      (fabs(segment->y1-y_mid) < MagickEpsilon) &&
-      (fabs(segment->y2-y_mid) < MagickEpsilon))
-    return(MagickFalse);
-  /*
-    Average pixels and apply plasma.
-  */
-  plasma=(double) QuantumRange/(2.0*attenuate);
-  if ((fabs(segment->x1-x_mid) > MagickEpsilon) ||
-      (fabs(segment->x2-x_mid) > MagickEpsilon))
-    {
-      /*
-        Left pixel.
-      */
-      x=(ssize_t) ceil(segment->x1-0.5);
-      u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),1,1,
-        exception);
-      v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),1,1,
-        exception);
-      q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
-      if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
-          (q == (Quantum *) NULL))
-        return(MagickTrue);
-      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-      {
-        PixelChannel channel = GetPixelChannelChannel(image,i);
-        PixelTrait traits = GetPixelChannelTraits(image,channel);
-        if (traits == UndefinedPixelTrait)
-          continue;
-        q[i]=PlasmaPixel(random_info,(u[i]+v[i])/2.0,plasma);
-      }
-      (void) SyncCacheViewAuthenticPixels(image_view,exception);
-      if (fabs(segment->x1-segment->x2) > MagickEpsilon)
-        {
-          /*
-            Right pixel.
-          */
-          x=(ssize_t) ceil(segment->x2-0.5);
-          u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),
-            1,1,exception);
-          q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
-          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
-              (q == (Quantum *) NULL))
-            return(MagickTrue);
-          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-          {
-            PixelChannel channel = GetPixelChannelChannel(image,i);
-            PixelTrait traits = GetPixelChannelTraits(image,channel);
-            if (traits == UndefinedPixelTrait)
-              continue;
-            q[i]=PlasmaPixel(random_info,(u[i]+v[i])/2.0,plasma);
-          }
-          (void) SyncCacheViewAuthenticPixels(image_view,exception);
-        }
-    }
-  if ((fabs(segment->y1-y_mid) > MagickEpsilon) ||
-      (fabs(segment->y2-y_mid) > MagickEpsilon))
-    {
-      if ((fabs(segment->x1-x_mid) > MagickEpsilon) ||
-          (fabs(segment->y2-y_mid) > MagickEpsilon))
-        {
-          /*
-            Bottom pixel.
-          */
-          y=(ssize_t) ceil(segment->y2-0.5);
-          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
-            1,1,exception);
-          q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
-          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
-              (q == (Quantum *) NULL))
-            return(MagickTrue);
-          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-          {
-            PixelChannel channel = GetPixelChannelChannel(image,i);
-            PixelTrait traits = GetPixelChannelTraits(image,channel);
-            if (traits == UndefinedPixelTrait)
-              continue;
-            q[i]=PlasmaPixel(random_info,(u[i]+v[i])/2.0,plasma);
-          }
-          (void) SyncCacheViewAuthenticPixels(image_view,exception);
-        }
-      if (fabs(segment->y1-segment->y2) > MagickEpsilon)
-        {
-          /*
-            Top pixel.
-          */
-          y=(ssize_t) ceil(segment->y1-0.5);
-          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
-            1,1,exception);
-          q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
-          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
-              (q == (Quantum *) NULL))
-            return(MagickTrue);
-          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-          {
-            PixelChannel channel = GetPixelChannelChannel(image,i);
-            PixelTrait traits = GetPixelChannelTraits(image,channel);
-            if (traits == UndefinedPixelTrait)
-              continue;
-            q[i]=PlasmaPixel(random_info,(u[i]+v[i])/2.0,plasma);
-          }
-          (void) SyncCacheViewAuthenticPixels(image_view,exception);
-        }
-    }
-  if ((fabs(segment->x1-segment->x2) > MagickEpsilon) ||
-      (fabs(segment->y1-segment->y2) > MagickEpsilon))
-    {
-      /*
-        Middle pixel.
-      */
-      x=(ssize_t) ceil(segment->x1-0.5);
-      y=(ssize_t) ceil(segment->y1-0.5);
-      u=GetCacheViewVirtualPixels(u_view,x,y,1,1,exception);
-      x=(ssize_t) ceil(segment->x2-0.5);
-      y=(ssize_t) ceil(segment->y2-0.5);
-      v=GetCacheViewVirtualPixels(v_view,x,y,1,1,exception);
-      q=QueueCacheViewAuthenticPixels(image_view,x_mid,y_mid,1,1,exception);
-      if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
-          (q == (Quantum *) NULL))
-        return(MagickTrue);
-      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-      {
-        PixelChannel channel = GetPixelChannelChannel(image,i);
-        PixelTrait traits = GetPixelChannelTraits(image,channel);
-        if (traits == UndefinedPixelTrait)
-          continue;
-        q[i]=PlasmaPixel(random_info,(u[i]+v[i])/2.0,plasma);
-      }
-      (void) SyncCacheViewAuthenticPixels(image_view,exception);
-    }
-  if ((fabs(segment->x2-segment->x1) < 3.0) &&
-      (fabs(segment->y2-segment->y1) < 3.0))
-    return(MagickTrue);
-  return(MagickFalse);
-}
-
-MagickExport MagickBooleanType PlasmaImage(Image *image,
-  const SegmentInfo *segment,size_t attenuate,size_t depth,
-  ExceptionInfo *exception)
-{
-  CacheView
-    *image_view,
-    *u_view,
-    *v_view;
-
-  MagickBooleanType
-    status;
-
-  RandomInfo
-    *random_info;
-
-  assert(image != (Image *) NULL);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
-  if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
-    return(MagickFalse);
-  image_view=AcquireAuthenticCacheView(image,exception);
-  u_view=AcquireVirtualCacheView(image,exception);
-  v_view=AcquireVirtualCacheView(image,exception);
-  random_info=AcquireRandomInfo();
-  status=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,segment,
-    attenuate,depth,exception);
-  random_info=DestroyRandomInfo(random_info);
-  v_view=DestroyCacheView(v_view);
-  u_view=DestroyCacheView(u_view);
-  image_view=DestroyCacheView(image_view);
-  return(status);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%   P o l a r o i d I m a g e                                                 %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  PolaroidImage() simulates a Polaroid picture.
-%
-%  The format of the PolaroidImage method is:
-%
-%      Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
-%        const char *caption,const double angle,
-%        const PixelInterpolateMethod method,ExceptionInfo exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o draw_info: the draw info.
-%
-%    o caption: the Polaroid caption.
-%
-%    o angle: Apply the effect along this angle.
-%
-%    o method: the pixel interpolation method.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
-  const char *caption,const double angle,const PixelInterpolateMethod method,
-  ExceptionInfo *exception)
-{
-  Image
-    *bend_image,
-    *caption_image,
-    *flop_image,
-    *picture_image,
-    *polaroid_image,
-    *rotate_image,
-    *trim_image;
-
-  size_t
-    height;
-
-  ssize_t
-    quantum;
-
-  /*
-    Simulate a Polaroid picture.
-  */
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  quantum=(ssize_t) MagickMax(MagickMax((double) image->columns,(double)
-    image->rows)/25.0,10.0);
-  height=image->rows+2*quantum;
-  caption_image=(Image *) NULL;
-  if (caption != (const char *) NULL)
-    {
-      char
-        *text;
-
-      /*
-        Generate caption image.
-      */
-      caption_image=CloneImage(image,image->columns,1,MagickTrue,exception);
-      if (caption_image == (Image *) NULL)
-        return((Image *) NULL);
-      text=InterpretImageProperties((ImageInfo *) NULL,(Image *) image,caption,
-        exception);
-      if (text != (char *) NULL)
-        {
-          char
-            geometry[MagickPathExtent];
-
-          DrawInfo
-            *annotate_info;
-
-          MagickBooleanType
-            status;
-
-          ssize_t
-            count;
-
-          TypeMetric
-            metrics;
-
-          annotate_info=CloneDrawInfo((const ImageInfo *) NULL,draw_info);
-          (void) CloneString(&annotate_info->text,text);
-          count=FormatMagickCaption(caption_image,annotate_info,MagickTrue,
-            &metrics,&text,exception);
-          status=SetImageExtent(caption_image,image->columns,(size_t)
-            ((count+1)*(metrics.ascent-metrics.descent)+0.5),exception);
-          if (status == MagickFalse)
-            caption_image=DestroyImage(caption_image);
-          else
-            {
-              caption_image->background_color=image->border_color;
-              (void) SetImageBackgroundColor(caption_image,exception);
-              (void) CloneString(&annotate_info->text,text);
-              (void) FormatLocaleString(geometry,MagickPathExtent,"+0+%.20g",
-                metrics.ascent);
-              if (annotate_info->gravity == UndefinedGravity)
-                (void) CloneString(&annotate_info->geometry,AcquireString(
-                  geometry));
-              (void) AnnotateImage(caption_image,annotate_info,exception);
-              height+=caption_image->rows;
-            }
-          annotate_info=DestroyDrawInfo(annotate_info);
-          text=DestroyString(text);
-        }
-    }
-  picture_image=CloneImage(image,image->columns+2*quantum,height,MagickTrue,
-    exception);
-  if (picture_image == (Image *) NULL)
-    {
-      if (caption_image != (Image *) NULL)
-        caption_image=DestroyImage(caption_image);
-      return((Image *) NULL);
-    }
-  picture_image->background_color=image->border_color;
-  (void) SetImageBackgroundColor(picture_image,exception);
-  (void) CompositeImage(picture_image,image,OverCompositeOp,MagickTrue,quantum,
-    quantum,exception);
-  if (caption_image != (Image *) NULL)
-    {
-      (void) CompositeImage(picture_image,caption_image,OverCompositeOp,
-        MagickTrue,quantum,(ssize_t) (image->rows+3*quantum/2),exception);
-      caption_image=DestroyImage(caption_image);
-    }
-  (void) QueryColorCompliance("none",AllCompliance,
-    &picture_image->background_color,exception);
-  (void) SetImageAlphaChannel(picture_image,OpaqueAlphaChannel,exception);
-  rotate_image=RotateImage(picture_image,90.0,exception);
-  picture_image=DestroyImage(picture_image);
-  if (rotate_image == (Image *) NULL)
-    return((Image *) NULL);
-  picture_image=rotate_image;
-  bend_image=WaveImage(picture_image,0.01*picture_image->rows,2.0*
-    picture_image->columns,method,exception);
-  picture_image=DestroyImage(picture_image);
-  if (bend_image == (Image *) NULL)
-    return((Image *) NULL);
-  picture_image=bend_image;
-  rotate_image=RotateImage(picture_image,-90.0,exception);
-  picture_image=DestroyImage(picture_image);
-  if (rotate_image == (Image *) NULL)
-    return((Image *) NULL);
-  picture_image=rotate_image;
-  picture_image->background_color=image->background_color;
-  polaroid_image=ShadowImage(picture_image,80.0,2.0,quantum/3,quantum/3,
-    exception);
-  if (polaroid_image == (Image *) NULL)
-    {
-      picture_image=DestroyImage(picture_image);
-      return(picture_image);
-    }
-  flop_image=FlopImage(polaroid_image,exception);
-  polaroid_image=DestroyImage(polaroid_image);
-  if (flop_image == (Image *) NULL)
-    {
-      picture_image=DestroyImage(picture_image);
-      return(picture_image);
-    }
-  polaroid_image=flop_image;
-  (void) CompositeImage(polaroid_image,picture_image,OverCompositeOp,
-    MagickTrue,(ssize_t) (-0.01*picture_image->columns/2.0),0L,exception);
-  picture_image=DestroyImage(picture_image);
-  (void) QueryColorCompliance("none",AllCompliance,
-    &polaroid_image->background_color,exception);
-  rotate_image=RotateImage(polaroid_image,angle,exception);
-  polaroid_image=DestroyImage(polaroid_image);
-  if (rotate_image == (Image *) NULL)
-    return((Image *) NULL);
-  polaroid_image=rotate_image;
-  trim_image=TrimImage(polaroid_image,exception);
-  polaroid_image=DestroyImage(polaroid_image);
-  if (trim_image == (Image *) NULL)
-    return((Image *) NULL);
-  polaroid_image=trim_image;
-  return(polaroid_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     S e p i a T o n e I m a g e                                             %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  MagickSepiaToneImage() applies a special effect to the image, similar to the
-%  effect achieved in a photo darkroom by sepia toning.  Threshold ranges from
-%  0 to QuantumRange and is a measure of the extent of the sepia toning.  A
-%  threshold of 80% is a good starting point for a reasonable tone.
-%
-%  The format of the SepiaToneImage method is:
-%
-%      Image *SepiaToneImage(const Image *image,const double threshold,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o threshold: the tone threshold.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *SepiaToneImage(const Image *image,const double threshold,
-  ExceptionInfo *exception)
-{
-#define SepiaToneImageTag  "SepiaTone/Image"
-
-  CacheView
-    *image_view,
-    *sepia_view;
-
-  Image
-    *sepia_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  ssize_t
-    y;
-
-  /*
-    Initialize sepia-toned image attributes.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  sepia_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (sepia_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(sepia_image,DirectClass,exception) == MagickFalse)
-    {
-      sepia_image=DestroyImage(sepia_image);
-      return((Image *) NULL);
-    }
-  /*
-    Tone each row of the image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireVirtualCacheView(image,exception);
-  sepia_view=AcquireAuthenticCacheView(sepia_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,sepia_image,image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    register const Quantum
-      *magick_restrict p;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
-    q=GetCacheViewAuthenticPixels(sepia_view,0,y,sepia_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      double
-        intensity,
-        tone;
-
-      intensity=GetPixelIntensity(image,p);
-      tone=intensity > threshold ? (double) QuantumRange : intensity+
-        (double) QuantumRange-threshold;
-      SetPixelRed(sepia_image,ClampToQuantum(tone),q);
-      tone=intensity > (7.0*threshold/6.0) ? (double) QuantumRange :
-        intensity+(double) QuantumRange-7.0*threshold/6.0;
-      SetPixelGreen(sepia_image,ClampToQuantum(tone),q);
-      tone=intensity < (threshold/6.0) ? 0 : intensity-threshold/6.0;
-      SetPixelBlue(sepia_image,ClampToQuantum(tone),q);
-      tone=threshold/7.0;
-      if ((double) GetPixelGreen(image,q) < tone)
-        SetPixelGreen(sepia_image,ClampToQuantum(tone),q);
-      if ((double) GetPixelBlue(image,q) < tone)
-        SetPixelBlue(sepia_image,ClampToQuantum(tone),q);
-      SetPixelAlpha(sepia_image,GetPixelAlpha(image,p),q);
-      p+=GetPixelChannels(image);
-      q+=GetPixelChannels(sepia_image);
-    }
-    if (SyncCacheViewAuthenticPixels(sepia_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,SepiaToneImageTag,progress,image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  sepia_view=DestroyCacheView(sepia_view);
-  image_view=DestroyCacheView(image_view);
-  (void) NormalizeImage(sepia_image,exception);
-  (void) ContrastImage(sepia_image,MagickTrue,exception);
-  if (status == MagickFalse)
-    sepia_image=DestroyImage(sepia_image);
-  return(sepia_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     S h a d o w I m a g e                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  ShadowImage() simulates a shadow from the specified image and returns it.
-%
-%  The format of the ShadowImage method is:
-%
-%      Image *ShadowImage(const Image *image,const double alpha,
-%        const double sigma,const ssize_t x_offset,const ssize_t y_offset,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o alpha: percentage transparency.
-%
-%    o sigma: the standard deviation of the Gaussian, in pixels.
-%
-%    o x_offset: the shadow x-offset.
-%
-%    o y_offset: the shadow y-offset.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *ShadowImage(const Image *image,const double alpha,
-  const double sigma,const ssize_t x_offset,const ssize_t y_offset,
-  ExceptionInfo *exception)
-{
-#define ShadowImageTag  "Shadow/Image"
-
-  CacheView
-    *image_view;
-
-  ChannelType
-    channel_mask;
-
-  Image
-    *border_image,
-    *clone_image,
-    *shadow_image;
-
-  MagickBooleanType
-    status;
-
-  PixelInfo
-    background_color;
-
-  RectangleInfo
-    border_info;
-
-  ssize_t
-    y;
-
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  clone_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (clone_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (IsGrayColorspace(image->colorspace) != MagickFalse)
-    (void) SetImageColorspace(clone_image,sRGBColorspace,exception);
-  (void) SetImageVirtualPixelMethod(clone_image,EdgeVirtualPixelMethod,
-    exception);
-  border_info.width=(size_t) floor(2.0*sigma+0.5);
-  border_info.height=(size_t) floor(2.0*sigma+0.5);
-  border_info.x=0;
-  border_info.y=0;
-  (void) QueryColorCompliance("none",AllCompliance,&clone_image->border_color,
-    exception);
-  clone_image->alpha_trait=BlendPixelTrait;
-  border_image=BorderImage(clone_image,&border_info,OverCompositeOp,exception);
-  clone_image=DestroyImage(clone_image);
-  if (border_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (border_image->alpha_trait == UndefinedPixelTrait)
-    (void) SetImageAlphaChannel(border_image,OpaqueAlphaChannel,exception);
-  /*
-    Shadow image.
-  */
-  status=MagickTrue;
-  background_color=border_image->background_color;
-  background_color.alpha_trait=BlendPixelTrait;
-  image_view=AcquireAuthenticCacheView(border_image,exception);
-  for (y=0; y < (ssize_t) border_image->rows; y++)
-  {
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    q=QueueCacheViewAuthenticPixels(image_view,0,y,border_image->columns,1,
-      exception);
-    if (q == (Quantum *) NULL)
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) border_image->columns; x++)
-    {
-      if (border_image->alpha_trait != UndefinedPixelTrait)
-        background_color.alpha=GetPixelAlpha(border_image,q)*alpha/100.0;
-      SetPixelViaPixelInfo(border_image,&background_color,q);
-      q+=GetPixelChannels(border_image);
-    }
-    if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
-      status=MagickFalse;
-  }
-  image_view=DestroyCacheView(image_view);
-  if (status == MagickFalse)
-    {
-      border_image=DestroyImage(border_image);
-      return((Image *) NULL);
-    }
-  channel_mask=SetImageChannelMask(border_image,AlphaChannel);
-  shadow_image=BlurImage(border_image,0.0,sigma,exception);
-  border_image=DestroyImage(border_image);
-  if (shadow_image == (Image *) NULL)
-    return((Image *) NULL);
-  (void) SetPixelChannelMask(shadow_image,channel_mask);
-  if (shadow_image->page.width == 0)
-    shadow_image->page.width=shadow_image->columns;
-  if (shadow_image->page.height == 0)
-    shadow_image->page.height=shadow_image->rows;
-  shadow_image->page.width+=x_offset-(ssize_t) border_info.width;
-  shadow_image->page.height+=y_offset-(ssize_t) border_info.height;
-  shadow_image->page.x+=x_offset-(ssize_t) border_info.width;
-  shadow_image->page.y+=y_offset-(ssize_t) border_info.height;
-  return(shadow_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     S k e t c h I m a g e                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  SketchImage() simulates a pencil sketch.  We convolve the image with a
-%  Gaussian operator of the given radius and standard deviation (sigma).  For
-%  reasonable results, radius should be larger than sigma.  Use a radius of 0
-%  and SketchImage() selects a suitable radius for you.  Angle gives the angle
-%  of the sketch.
-%
-%  The format of the SketchImage method is:
-%
-%    Image *SketchImage(const Image *image,const double radius,
-%      const double sigma,const double angle,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o radius: the radius of the Gaussian, in pixels, not counting the
-%      center pixel.
-%
-%    o sigma: the standard deviation of the Gaussian, in pixels.
-%
-%    o angle: apply the effect along this angle.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *SketchImage(const Image *image,const double radius,
-  const double sigma,const double angle,ExceptionInfo *exception)
-{
-  CacheView
-    *random_view;
-
-  Image
-    *blend_image,
-    *blur_image,
-    *dodge_image,
-    *random_image,
-    *sketch_image;
-
-  MagickBooleanType
-    status;
-
-  RandomInfo
-    **magick_restrict random_info;
-
-  ssize_t
-    y;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  unsigned long
-    key;
-#endif
-
-  /*
-    Sketch image.
-  */
-  random_image=CloneImage(image,image->columns << 1,image->rows << 1,
-    MagickTrue,exception);
-  if (random_image == (Image *) NULL)
-    return((Image *) NULL);
-  status=MagickTrue;
-  random_info=AcquireRandomInfoThreadSet();
-  random_view=AcquireAuthenticCacheView(random_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  key=GetRandomSecretKey(random_info[0]);
-  #pragma omp parallel for schedule(static) shared(status) \
-    magick_number_threads(random_image,random_image,random_image->rows,key == ~0UL)
-#endif
-  for (y=0; y < (ssize_t) random_image->rows; y++)
-  {
-    const int
-      id = GetOpenMPThreadId();
-
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    q=QueueCacheViewAuthenticPixels(random_view,0,y,random_image->columns,1,
-      exception);
-    if (q == (Quantum *) NULL)
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) random_image->columns; x++)
-    {
-      double
-        value;
-
-      register ssize_t
-        i;
-
-      value=GetPseudoRandomValue(random_info[id]);
-      for (i=0; i < (ssize_t) GetPixelChannels(random_image); i++)
-      {
-        PixelChannel channel = GetPixelChannelChannel(image,i);
-        PixelTrait traits = GetPixelChannelTraits(image,channel);
-        if (traits == UndefinedPixelTrait)
-          continue;
-        q[i]=ClampToQuantum(QuantumRange*value);
-      }
-      q+=GetPixelChannels(random_image);
-    }
-    if (SyncCacheViewAuthenticPixels(random_view,exception) == MagickFalse)
-      status=MagickFalse;
-  }
-  random_view=DestroyCacheView(random_view);
-  random_info=DestroyRandomInfoThreadSet(random_info);
-  if (status == MagickFalse)
-    {
-      random_image=DestroyImage(random_image);
-      return(random_image);
-    }
-  blur_image=MotionBlurImage(random_image,radius,sigma,angle,exception);
-  random_image=DestroyImage(random_image);
-  if (blur_image == (Image *) NULL)
-    return((Image *) NULL);
-  dodge_image=EdgeImage(blur_image,radius,exception);
-  blur_image=DestroyImage(blur_image);
-  if (dodge_image == (Image *) NULL)
-    return((Image *) NULL);
-  status=ClampImage(dodge_image,exception);
-  if (status != MagickFalse)
-    status=NormalizeImage(dodge_image,exception);
-  if (status != MagickFalse)
-    status=NegateImage(dodge_image,MagickFalse,exception);
-  if (status != MagickFalse)
-    status=TransformImage(&dodge_image,(char *) NULL,"50%",exception);
-  sketch_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (sketch_image == (Image *) NULL)
-    {
-      dodge_image=DestroyImage(dodge_image);
-      return((Image *) NULL);
-    }
-  (void) CompositeImage(sketch_image,dodge_image,ColorDodgeCompositeOp,
-    MagickTrue,0,0,exception);
-  dodge_image=DestroyImage(dodge_image);
-  blend_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (blend_image == (Image *) NULL)
-    {
-      sketch_image=DestroyImage(sketch_image);
-      return((Image *) NULL);
-    }
-  if (blend_image->alpha_trait != BlendPixelTrait)
-    (void) SetImageAlpha(blend_image,TransparentAlpha,exception);
-  (void) SetImageArtifact(blend_image,"compose:args","20x80");
-  (void) CompositeImage(sketch_image,blend_image,BlendCompositeOp,MagickTrue,
-    0,0,exception);
-  blend_image=DestroyImage(blend_image);
-  return(sketch_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     S o l a r i z e I m a g e                                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  SolarizeImage() applies a special effect to the image, similar to the effect
-%  achieved in a photo darkroom by selectively exposing areas of photo
-%  sensitive paper to light.  Threshold ranges from 0 to QuantumRange and is a
-%  measure of the extent of the solarization.
-%
-%  The format of the SolarizeImage method is:
-%
-%      MagickBooleanType SolarizeImage(Image *image,const double threshold,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o threshold:  Define the extent of the solarization.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport MagickBooleanType SolarizeImage(Image *image,
-  const double threshold,ExceptionInfo *exception)
-{
-#define SolarizeImageTag  "Solarize/Image"
-
-  CacheView
-    *image_view;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  ssize_t
-    y;
-
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  if (IsGrayColorspace(image->colorspace) != MagickFalse)
-    (void) SetImageColorspace(image,sRGBColorspace,exception);
-  if (image->storage_class == PseudoClass)
-    {
-      register ssize_t
-        i;
-
-      /*
-        Solarize colormap.
-      */
-      for (i=0; i < (ssize_t) image->colors; i++)
-      {
-        if ((double) image->colormap[i].red > threshold)
-          image->colormap[i].red=QuantumRange-image->colormap[i].red;
-        if ((double) image->colormap[i].green > threshold)
-          image->colormap[i].green=QuantumRange-image->colormap[i].green;
-        if ((double) image->colormap[i].blue > threshold)
-          image->colormap[i].blue=QuantumRange-image->colormap[i].blue;
-      }
-    }
-  /*
-    Solarize image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireAuthenticCacheView(image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,image,image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
-    if (q == (Quantum *) NULL)
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      register ssize_t
-        i;
-
-      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
-      {
-        PixelChannel channel = GetPixelChannelChannel(image,i);
-        PixelTrait traits = GetPixelChannelTraits(image,channel);
-        if ((traits & UpdatePixelTrait) == 0)
-          continue;
-        if ((double) q[i] > threshold)
-          q[i]=QuantumRange-q[i];
-      }
-      q+=GetPixelChannels(image);
-    }
-    if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,SolarizeImageTag,progress,image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  image_view=DestroyCacheView(image_view);
-  return(status);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%   S t e g a n o I m a g e                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  SteganoImage() hides a digital watermark within the image.  Recover
-%  the hidden watermark later to prove that the authenticity of an image.
-%  Offset defines the start position within the image to hide the watermark.
-%
-%  The format of the SteganoImage method is:
-%
-%      Image *SteganoImage(const Image *image,Image *watermark,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o watermark: the watermark image.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *SteganoImage(const Image *image,const Image *watermark,
-  ExceptionInfo *exception)
-{
-#define GetBit(alpha,i) ((((size_t) (alpha) >> (size_t) (i)) & 0x01) != 0)
-#define SetBit(alpha,i,set) (Quantum) ((set) != 0 ? (size_t) (alpha) \
-  | (one << (size_t) (i)) : (size_t) (alpha) & ~(one << (size_t) (i)))
-#define SteganoImageTag  "Stegano/Image"
-
-  CacheView
-    *stegano_view,
-    *watermark_view;
-
-  Image
-    *stegano_image;
-
-  int
-    c;
-
-  MagickBooleanType
-    status;
-
-  PixelInfo
-    pixel;
-
-  register Quantum
-    *q;
-
-  register ssize_t
-    x;
-
-  size_t
-    depth,
-    one;
-
-  ssize_t
-    i,
-    j,
-    k,
-    y;
-
-  /*
-    Initialize steganographic image attributes.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(watermark != (const Image *) NULL);
-  assert(watermark->signature == MagickCoreSignature);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  one=1UL;
-  stegano_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (stegano_image == (Image *) NULL)
-    return((Image *) NULL);
-  stegano_image->depth=MAGICKCORE_QUANTUM_DEPTH;
-  if (SetImageStorageClass(stegano_image,DirectClass,exception) == MagickFalse)
-    {
-      stegano_image=DestroyImage(stegano_image);
-      return((Image *) NULL);
-    }
-  /*
-    Hide watermark in low-order bits of image.
-  */
-  c=0;
-  i=0;
-  j=0;
-  depth=stegano_image->depth;
-  k=stegano_image->offset;
-  status=MagickTrue;
-  watermark_view=AcquireVirtualCacheView(watermark,exception);
-  stegano_view=AcquireAuthenticCacheView(stegano_image,exception);
-  for (i=(ssize_t) depth-1; (i >= 0) && (j < (ssize_t) depth); i--)
-  {
-    for (y=0; (y < (ssize_t) watermark->rows) && (j < (ssize_t) depth); y++)
-    {
-      for (x=0; (x < (ssize_t) watermark->columns) && (j < (ssize_t) depth); x++)
-      {
-        ssize_t
-          offset;
-
-        (void) GetOneCacheViewVirtualPixelInfo(watermark_view,x,y,&pixel,
-          exception);
-        offset=k/(ssize_t) stegano_image->columns;
-        if (offset >= (ssize_t) stegano_image->rows)
-          break;
-        q=GetCacheViewAuthenticPixels(stegano_view,k % (ssize_t)
-          stegano_image->columns,k/(ssize_t) stegano_image->columns,1,1,
-          exception);
-        if (q == (Quantum *) NULL)
-          break;
-        switch (c)
-        {
-          case 0:
-          {
-            SetPixelRed(stegano_image,SetBit(GetPixelRed(stegano_image,q),j,
-              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
-            break;
-          }
-          case 1:
-          {
-            SetPixelGreen(stegano_image,SetBit(GetPixelGreen(stegano_image,q),j,
-              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
-            break;
-          }
-          case 2:
-          {
-            SetPixelBlue(stegano_image,SetBit(GetPixelBlue(stegano_image,q),j,
-              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
-            break;
-          }
-        }
-        if (SyncCacheViewAuthenticPixels(stegano_view,exception) == MagickFalse)
-          break;
-        c++;
-        if (c == 3)
-          c=0;
-        k++;
-        if (k == (ssize_t) (stegano_image->columns*stegano_image->columns))
-          k=0;
-        if (k == stegano_image->offset)
-          j++;
-      }
-    }
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-        proceed=SetImageProgress(image,SteganoImageTag,(MagickOffsetType)
-          (depth-i),depth);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  stegano_view=DestroyCacheView(stegano_view);
-  watermark_view=DestroyCacheView(watermark_view);
-  if (status == MagickFalse)
-    stegano_image=DestroyImage(stegano_image);
-  return(stegano_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%   S t e r e o A n a g l y p h I m a g e                                     %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  StereoAnaglyphImage() combines two images and produces a single image that
-%  is the composite of a left and right image of a stereo pair.  Special
-%  red-green stereo glasses are required to view this effect.
-%
-%  The format of the StereoAnaglyphImage method is:
-%
-%      Image *StereoImage(const Image *left_image,const Image *right_image,
-%        ExceptionInfo *exception)
-%      Image *StereoAnaglyphImage(const Image *left_image,
-%        const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o left_image: the left image.
-%
-%    o right_image: the right image.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-%    o x_offset: amount, in pixels, by which the left image is offset to the
-%      right of the right image.
-%
-%    o y_offset: amount, in pixels, by which the left image is offset to the
-%      bottom of the right image.
-%
-%
-*/
-MagickExport Image *StereoImage(const Image *left_image,
-  const Image *right_image,ExceptionInfo *exception)
-{
-  return(StereoAnaglyphImage(left_image,right_image,0,0,exception));
-}
-
-MagickExport Image *StereoAnaglyphImage(const Image *left_image,
-  const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
-  ExceptionInfo *exception)
-{
-#define StereoImageTag  "Stereo/Image"
-
-  const Image
-    *image;
-
-  Image
-    *stereo_image;
-
-  MagickBooleanType
-    status;
-
-  ssize_t
-    y;
-
-  assert(left_image != (const Image *) NULL);
-  assert(left_image->signature == MagickCoreSignature);
-  if (left_image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
-      left_image->filename);
-  assert(right_image != (const Image *) NULL);
-  assert(right_image->signature == MagickCoreSignature);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  image=left_image;
-  if ((left_image->columns != right_image->columns) ||
-      (left_image->rows != right_image->rows))
-    ThrowImageException(ImageError,"LeftAndRightImageSizesDiffer");
-  /*
-    Initialize stereo image attributes.
-  */
-  stereo_image=CloneImage(left_image,left_image->columns,left_image->rows,
-    MagickTrue,exception);
-  if (stereo_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(stereo_image,DirectClass,exception) == MagickFalse)
-    {
-      stereo_image=DestroyImage(stereo_image);
-      return((Image *) NULL);
-    }
-  (void) SetImageColorspace(stereo_image,sRGBColorspace,exception);
-  /*
-    Copy left image to red channel and right image to blue channel.
-  */
-  status=MagickTrue;
-  for (y=0; y < (ssize_t) stereo_image->rows; y++)
-  {
-    register const Quantum
-      *magick_restrict p,
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict r;
-
-    p=GetVirtualPixels(left_image,-x_offset,y-y_offset,image->columns,1,
-      exception);
-    q=GetVirtualPixels(right_image,0,y,right_image->columns,1,exception);
-    r=QueueAuthenticPixels(stereo_image,0,y,stereo_image->columns,1,exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL) ||
-        (r == (Quantum *) NULL))
-      break;
-    for (x=0; x < (ssize_t) stereo_image->columns; x++)
-    {
-      SetPixelRed(stereo_image,GetPixelRed(left_image,p),r);
-      SetPixelGreen(stereo_image,GetPixelGreen(right_image,q),r);
-      SetPixelBlue(stereo_image,GetPixelBlue(right_image,q),r);
-      if ((GetPixelAlphaTraits(stereo_image) & CopyPixelTrait) != 0)
-        SetPixelAlpha(stereo_image,(GetPixelAlpha(left_image,p)+
-          GetPixelAlpha(right_image,q))/2,r);
-      p+=GetPixelChannels(left_image);
-      q+=GetPixelChannels(right_image);
-      r+=GetPixelChannels(stereo_image);
-    }
-    if (SyncAuthenticPixels(stereo_image,exception) == MagickFalse)
-      break;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-        proceed=SetImageProgress(image,StereoImageTag,(MagickOffsetType) y,
-          stereo_image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  if (status == MagickFalse)
-    stereo_image=DestroyImage(stereo_image);
-  return(stereo_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     S w i r l I m a g e                                                     %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  SwirlImage() swirls the pixels about the center of the image, where
-%  degrees indicates the sweep of the arc through which each pixel is moved.
-%  You get a more dramatic effect as the degrees move from 1 to 360.
-%
-%  The format of the SwirlImage method is:
-%
-%      Image *SwirlImage(const Image *image,double degrees,
-%        const PixelInterpolateMethod method,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o degrees: Define the tightness of the swirling effect.
-%
-%    o method: the pixel interpolation method.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *SwirlImage(const Image *image,double degrees,
-  const PixelInterpolateMethod method,ExceptionInfo *exception)
-{
-#define SwirlImageTag  "Swirl/Image"
-
-  CacheView
-    *canvas_view,
-    *interpolate_view,
-    *swirl_view;
-
-  double
-    radius;
-
-  Image
-    *canvas_image,
-    *swirl_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  PointInfo
-    center,
-    scale;
-
-  ssize_t
-    y;
-
-  /*
-    Initialize swirl image attributes.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (canvas_image == (Image *) NULL)
-    return((Image *) NULL);
-  if ((canvas_image->alpha_trait == UndefinedPixelTrait) &&
-      (canvas_image->background_color.alpha != OpaqueAlpha))
-    (void) SetImageAlphaChannel(canvas_image,OpaqueAlphaChannel,exception);
-  swirl_image=CloneImage(canvas_image,0,0,MagickTrue,exception);
-  if (swirl_image == (Image *) NULL)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      return((Image *) NULL);
-    }
-  if (SetImageStorageClass(swirl_image,DirectClass,exception) == MagickFalse)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      swirl_image=DestroyImage(swirl_image);
-      return((Image *) NULL);
-    }
-  /*
-    Compute scaling factor.
-  */
-  center.x=(double) canvas_image->columns/2.0;
-  center.y=(double) canvas_image->rows/2.0;
-  radius=MagickMax(center.x,center.y);
-  scale.x=1.0;
-  scale.y=1.0;
-  if (canvas_image->columns > canvas_image->rows)
-    scale.y=(double) canvas_image->columns/(double) canvas_image->rows;
-  else
-    if (canvas_image->columns < canvas_image->rows)
-      scale.x=(double) canvas_image->rows/(double) canvas_image->columns;
-  degrees=(double) DegreesToRadians(degrees);
-  /*
-    Swirl image.
-  */
-  status=MagickTrue;
-  progress=0;
-  canvas_view=AcquireVirtualCacheView(canvas_image,exception);
-  interpolate_view=AcquireVirtualCacheView(image,exception);
-  swirl_view=AcquireAuthenticCacheView(swirl_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(canvas_image,swirl_image,canvas_image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) canvas_image->rows; y++)
-  {
-    double
-      distance;
-
-    PointInfo
-      delta;
-
-    register const Quantum
-      *magick_restrict p;
-
-    register ssize_t
-      x;
-
-    register Quantum
-      *magick_restrict q;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(canvas_view,0,y,canvas_image->columns,1,
-      exception);
-    q=QueueCacheViewAuthenticPixels(swirl_view,0,y,swirl_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    delta.y=scale.y*(double) (y-center.y);
-    for (x=0; x < (ssize_t) canvas_image->columns; x++)
-    {
-      /*
-        Determine if the pixel is within an ellipse.
-      */
-      delta.x=scale.x*(double) (x-center.x);
-      distance=delta.x*delta.x+delta.y*delta.y;
-      if (distance >= (radius*radius))
-        {
-          register ssize_t
-            i;
-
-          for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
-          {
-            PixelChannel channel = GetPixelChannelChannel(canvas_image,i);
-            PixelTrait traits = GetPixelChannelTraits(canvas_image,channel);
-            PixelTrait swirl_traits = GetPixelChannelTraits(swirl_image,
-              channel);
-            if ((traits == UndefinedPixelTrait) ||
-                (swirl_traits == UndefinedPixelTrait))
-              continue;
-            SetPixelChannel(swirl_image,channel,p[i],q);
-          }
-        }
-      else
-        {
-          double
-            cosine,
-            factor,
-            sine;
-
-          /*
-            Swirl the pixel.
-          */
-          factor=1.0-sqrt((double) distance)/radius;
-          sine=sin((double) (degrees*factor*factor));
-          cosine=cos((double) (degrees*factor*factor));
-          status=InterpolatePixelChannels(canvas_image,interpolate_view,
-            swirl_image,method,((cosine*delta.x-sine*delta.y)/scale.x+center.x),
-            (double) ((sine*delta.x+cosine*delta.y)/scale.y+center.y),q,
-            exception);
-          if (status == MagickFalse)
-            break;
-        }
-      p+=GetPixelChannels(canvas_image);
-      q+=GetPixelChannels(swirl_image);
-    }
-    if (SyncCacheViewAuthenticPixels(swirl_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (canvas_image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(canvas_image,SwirlImageTag,progress,
-          canvas_image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  swirl_view=DestroyCacheView(swirl_view);
-  interpolate_view=DestroyCacheView(interpolate_view);
-  canvas_view=DestroyCacheView(canvas_view);
-  canvas_image=DestroyImage(canvas_image);
-  if (status == MagickFalse)
-    swirl_image=DestroyImage(swirl_image);
-  return(swirl_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     T i n t I m a g e                                                       %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  TintImage() applies a color vector to each pixel in the image.  The length
-%  of the vector is 0 for black and white and at its maximum for the midtones.
-%  The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))
-%
-%  The format of the TintImage method is:
-%
-%      Image *TintImage(const Image *image,const char *blend,
-%        const PixelInfo *tint,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o blend: A color value used for tinting.
-%
-%    o tint: A color value used for tinting.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *TintImage(const Image *image,const char *blend,
-  const PixelInfo *tint,ExceptionInfo *exception)
-{
-#define TintImageTag  "Tint/Image"
-
-  CacheView
-    *image_view,
-    *tint_view;
-
-  double
-    intensity;
-
-  GeometryInfo
-    geometry_info;
-
-  Image
-    *tint_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  PixelInfo
-    color_vector;
-
-  MagickStatusType
-    flags;
-
-  ssize_t
-    y;
-
-  /*
-    Allocate tint image.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  tint_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (tint_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(tint_image,DirectClass,exception) == MagickFalse)
-    {
-      tint_image=DestroyImage(tint_image);
-      return((Image *) NULL);
-    }
-  if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
-      (IsPixelInfoGray(tint) == MagickFalse))
-    (void) SetImageColorspace(tint_image,sRGBColorspace,exception);
-  if (blend == (const char *) NULL)
-    return(tint_image);
-  /*
-    Determine RGB values of the color.
-  */
-  GetPixelInfo(image,&color_vector);
-  flags=ParseGeometry(blend,&geometry_info);
-  color_vector.red=geometry_info.rho;
-  color_vector.green=geometry_info.rho;
-  color_vector.blue=geometry_info.rho;
-  color_vector.alpha=(MagickRealType) OpaqueAlpha;
-  if ((flags & SigmaValue) != 0)
-    color_vector.green=geometry_info.sigma;
-  if ((flags & XiValue) != 0)
-    color_vector.blue=geometry_info.xi;
-  if ((flags & PsiValue) != 0)
-    color_vector.alpha=geometry_info.psi;
-  if (image->colorspace == CMYKColorspace)
-    {
-      color_vector.black=geometry_info.rho;
-      if ((flags & PsiValue) != 0)
-        color_vector.black=geometry_info.psi;
-      if ((flags & ChiValue) != 0)
-        color_vector.alpha=geometry_info.chi;
-    }
-  intensity=(double) GetPixelInfoIntensity((const Image *) NULL,tint);
-  color_vector.red=(double) (color_vector.red*tint->red/100.0-intensity);
-  color_vector.green=(double) (color_vector.green*tint->green/100.0-intensity);
-  color_vector.blue=(double) (color_vector.blue*tint->blue/100.0-intensity);
-  color_vector.black=(double) (color_vector.black*tint->black/100.0-intensity);
-  color_vector.alpha=(double) (color_vector.alpha*tint->alpha/100.0-intensity);
-  /*
-    Tint image.
-  */
-  status=MagickTrue;
-  progress=0;
-  image_view=AcquireVirtualCacheView(image,exception);
-  tint_view=AcquireAuthenticCacheView(tint_image,exception);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,tint_image,image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    register const Quantum
-      *magick_restrict p;
-
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
-    q=QueueCacheViewAuthenticPixels(tint_view,0,y,tint_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      PixelInfo
-        pixel;
-
-      double
-        weight;
-
-      GetPixelInfo(image,&pixel);
-      weight=QuantumScale*GetPixelRed(image,p)-0.5;
-      pixel.red=(MagickRealType) GetPixelRed(image,p)+color_vector.red*
-        (1.0-(4.0*(weight*weight)));
-      weight=QuantumScale*GetPixelGreen(image,p)-0.5;
-      pixel.green=(MagickRealType) GetPixelGreen(image,p)+color_vector.green*
-        (1.0-(4.0*(weight*weight)));
-      weight=QuantumScale*GetPixelBlue(image,p)-0.5;
-      pixel.blue=(MagickRealType) GetPixelBlue(image,p)+color_vector.blue*
-        (1.0-(4.0*(weight*weight)));
-      weight=QuantumScale*GetPixelBlack(image,p)-0.5;
-      pixel.black=(MagickRealType) GetPixelBlack(image,p)+color_vector.black*
-        (1.0-(4.0*(weight*weight)));
-      pixel.alpha=(MagickRealType) GetPixelAlpha(image,p);
-      SetPixelViaPixelInfo(tint_image,&pixel,q);
-      p+=GetPixelChannels(image);
-      q+=GetPixelChannels(tint_image);
-    }
-    if (SyncCacheViewAuthenticPixels(tint_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(image,TintImageTag,progress,image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  tint_view=DestroyCacheView(tint_view);
-  image_view=DestroyCacheView(image_view);
-  if (status == MagickFalse)
-    tint_image=DestroyImage(tint_image);
-  return(tint_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     V i g n e t t e I m a g e                                               %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  VignetteImage() softens the edges of the image in vignette style.
-%
-%  The format of the VignetteImage method is:
-%
-%      Image *VignetteImage(const Image *image,const double radius,
-%        const double sigma,const ssize_t x,const ssize_t y,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o radius: the radius of the pixel neighborhood.
-%
-%    o sigma: the standard deviation of the Gaussian, in pixels.
-%
-%    o x, y:  Define the x and y ellipse offset.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *VignetteImage(const Image *image,const double radius,
-  const double sigma,const ssize_t x,const ssize_t y,ExceptionInfo *exception)
-{
-  char
-    ellipse[MagickPathExtent];
-
-  DrawInfo
-    *draw_info;
-
-  Image
-    *canvas,
-    *blur_image,
-    *oval_image,
-    *vignette_image;
-
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  canvas=CloneImage(image,0,0,MagickTrue,exception);
-  if (canvas == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(canvas,DirectClass,exception) == MagickFalse)
-    {
-      canvas=DestroyImage(canvas);
-      return((Image *) NULL);
-    }
-  canvas->alpha_trait=BlendPixelTrait;
-  oval_image=CloneImage(canvas,canvas->columns,canvas->rows,MagickTrue,
-    exception);
-  if (oval_image == (Image *) NULL)
-    {
-      canvas=DestroyImage(canvas);
-      return((Image *) NULL);
-    }
-  (void) QueryColorCompliance("#000000",AllCompliance,
-    &oval_image->background_color,exception);
-  (void) SetImageBackgroundColor(oval_image,exception);
-  draw_info=CloneDrawInfo((const ImageInfo *) NULL,(const DrawInfo *) NULL);
-  (void) QueryColorCompliance("#ffffff",AllCompliance,&draw_info->fill,
-    exception);
-  (void) QueryColorCompliance("#ffffff",AllCompliance,&draw_info->stroke,
-    exception);
-  (void) FormatLocaleString(ellipse,MagickPathExtent,"ellipse %g,%g,%g,%g,"
-    "0.0,360.0",image->columns/2.0,image->rows/2.0,image->columns/2.0-x,
-    image->rows/2.0-y);
-  draw_info->primitive=AcquireString(ellipse);
-  (void) DrawImage(oval_image,draw_info,exception);
-  draw_info=DestroyDrawInfo(draw_info);
-  blur_image=BlurImage(oval_image,radius,sigma,exception);
-  oval_image=DestroyImage(oval_image);
-  if (blur_image == (Image *) NULL)
-    {
-      canvas=DestroyImage(canvas);
-      return((Image *) NULL);
-    }
-  blur_image->alpha_trait=UndefinedPixelTrait;
-  (void) CompositeImage(canvas,blur_image,IntensityCompositeOp,MagickTrue,
-    0,0,exception);
-  blur_image=DestroyImage(blur_image);
-  vignette_image=MergeImageLayers(canvas,FlattenLayer,exception);
-  canvas=DestroyImage(canvas);
-  if (vignette_image != (Image *) NULL)
-    (void) TransformImageColorspace(vignette_image,image->colorspace,exception);
-  return(vignette_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     W a v e I m a g e                                                       %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  WaveImage() creates a "ripple" effect in the image by shifting the pixels
-%  vertically along a sine wave whose amplitude and wavelength is specified
-%  by the given parameters.
-%
-%  The format of the WaveImage method is:
-%
-%      Image *WaveImage(const Image *image,const double amplitude,
-%        const double wave_length,const PixelInterpolateMethod method,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o amplitude, wave_length:  Define the amplitude and wave length of the
-%      sine wave.
-%
-%    o interpolate: the pixel interpolation method.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-MagickExport Image *WaveImage(const Image *image,const double amplitude,
-  const double wave_length,const PixelInterpolateMethod method,
-  ExceptionInfo *exception)
-{
-#define WaveImageTag  "Wave/Image"
-
-  CacheView
-    *canvas_image_view,
-    *wave_view;
-
-  Image
-    *canvas_image,
-    *wave_image;
-
-  MagickBooleanType
-    status;
-
-  MagickOffsetType
-    progress;
-
-  double
-    *sine_map;
-
-  register ssize_t
-    i;
-
-  ssize_t
-    y;
-
-  /*
-    Initialize wave image attributes.
-  */
-  assert(image != (Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (canvas_image == (Image *) NULL)
-    return((Image *) NULL);
-  if ((canvas_image->alpha_trait == UndefinedPixelTrait) &&
-      (canvas_image->background_color.alpha != OpaqueAlpha))
-    (void) SetImageAlpha(canvas_image,OpaqueAlpha,exception);
-  wave_image=CloneImage(canvas_image,canvas_image->columns,(size_t)
-    (canvas_image->rows+2.0*fabs(amplitude)),MagickTrue,exception);
-  if (wave_image == (Image *) NULL)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      return((Image *) NULL);
-    }
-  if (SetImageStorageClass(wave_image,DirectClass,exception) == MagickFalse)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      wave_image=DestroyImage(wave_image);
-      return((Image *) NULL);
-    }
-  /*
-    Allocate sine map.
-  */
-  sine_map=(double *) AcquireQuantumMemory((size_t) wave_image->columns,
-    sizeof(*sine_map));
-  if (sine_map == (double *) NULL)
-    {
-      canvas_image=DestroyImage(canvas_image);
-      wave_image=DestroyImage(wave_image);
-      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-    }
-  for (i=0; i < (ssize_t) wave_image->columns; i++)
-    sine_map[i]=fabs(amplitude)+amplitude*sin((double) ((2.0*MagickPI*i)/
-      wave_length));
-  /*
-    Wave image.
-  */
-  status=MagickTrue;
-  progress=0;
-  canvas_image_view=AcquireVirtualCacheView(canvas_image,exception);
-  wave_view=AcquireAuthenticCacheView(wave_image,exception);
-  (void) SetCacheViewVirtualPixelMethod(canvas_image_view,
-    BackgroundVirtualPixelMethod);
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(canvas_image,wave_image,wave_image->rows,1)
-#endif
-  for (y=0; y < (ssize_t) wave_image->rows; y++)
-  {
-    register const Quantum
-      *magick_restrict p;
-
-    register Quantum
-      *magick_restrict q;
-
-    register ssize_t
-      x;
-
-    if (status == MagickFalse)
-      continue;
-    p=GetCacheViewVirtualPixels(canvas_image_view,0,y,canvas_image->columns,1,
-      exception);
-    q=QueueCacheViewAuthenticPixels(wave_view,0,y,wave_image->columns,1,
-      exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
-      {
-        status=MagickFalse;
-        continue;
-      }
-    for (x=0; x < (ssize_t) wave_image->columns; x++)
-    {
-      status=InterpolatePixelChannels(canvas_image,canvas_image_view,
-        wave_image,method,(double) x,(double) (y-sine_map[x]),q,exception);
-      if (status == MagickFalse)
-        break;
-      p+=GetPixelChannels(canvas_image);
-      q+=GetPixelChannels(wave_image);
-    }
-    if (SyncCacheViewAuthenticPixels(wave_view,exception) == MagickFalse)
-      status=MagickFalse;
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
-        progress++;
-        proceed=SetImageProgress(canvas_image,WaveImageTag,progress,
-          canvas_image->rows);
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  wave_view=DestroyCacheView(wave_view);
-  canvas_image_view=DestroyCacheView(canvas_image_view);
-  canvas_image=DestroyImage(canvas_image);
-  sine_map=(double *) RelinquishMagickMemory(sine_map);
-  if (status == MagickFalse)
-    wave_image=DestroyImage(wave_image);
-  return(wave_image);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%     W a v e l e t D e n o i s e I m a g e                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  WaveletDenoiseImage() removes noise from the image using a wavelet
-%  transform.  The wavelet transform is a fast hierarchical scheme for
-%  processing an image using a set of consecutive lowpass and high_pass filters,
-%  followed by a decimation.  This results in a decomposition into different
-%  scales which can be regarded as different “frequency bands”, determined by
-%  the mother wavelet.  Adapted from dcraw.c by David Coffin.
-%
-%  The format of the WaveletDenoiseImage method is:
-%
-%      Image *WaveletDenoiseImage(const Image *image,const double threshold,
-%        const double softness,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o image: the image.
-%
-%    o threshold: set the threshold for smoothing.
-%
-%    o softness: attenuate the smoothing threshold.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-
-static inline void HatTransform(const float *magick_restrict pixels,
-  const size_t stride,const size_t extent,const size_t scale,float *kernel)
-{
-  const float
-    *magick_restrict p,
-    *magick_restrict q,
-    *magick_restrict r;
-
-  register ssize_t
-    i;
-
-  p=pixels;
-  q=pixels+scale*stride;
-  r=pixels+scale*stride;
-  for (i=0; i < (ssize_t) scale; i++)
-  {
-    kernel[i]=0.25f*(*p+(*p)+(*q)+(*r));
-    p+=stride;
-    q-=stride;
-    r+=stride;
-  }
-  for ( ; i < (ssize_t) (extent-scale); i++)
-  {
-    kernel[i]=0.25f*(2.0f*(*p)+*(p-scale*stride)+*(p+scale*stride));
-    p+=stride;
-  }
-  q=p-scale*stride;
-  r=pixels+stride*(extent-2);
-  for ( ; i < (ssize_t) extent; i++)
-  {
-    kernel[i]=0.25f*(*p+(*p)+(*q)+(*r));
-    p+=stride;
-    q+=stride;
-    r-=stride;
-  }
-}
-
-MagickExport Image *WaveletDenoiseImage(const Image *image,
-  const double threshold,const double softness,ExceptionInfo *exception)
-{
-  CacheView
-    *image_view,
-    *noise_view;
-
-  float
-    *kernel,
-    *pixels;
-
-  Image
-    *noise_image;
-
-  MagickBooleanType
-    status;
-
-  MagickSizeType
-    number_pixels;
-
-  MemoryInfo
-    *pixels_info;
-
-  ssize_t
-    channel;
-
-  static const float
-    noise_levels[] = { 0.8002f, 0.2735f, 0.1202f, 0.0585f, 0.0291f, 0.0152f,
-      0.0080f, 0.0044f };
-
-  /*
-    Initialize noise image attributes.
-  */
-  assert(image != (const Image *) NULL);
-  assert(image->signature == MagickCoreSignature);
-  if (image->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-#if defined(MAGICKCORE_OPENCL_SUPPORT)
-  noise_image=AccelerateWaveletDenoiseImage(image,threshold,exception);
-  if (noise_image != (Image *) NULL)
-    return(noise_image);
-#endif
-  noise_image=CloneImage(image,0,0,MagickTrue,exception);
-  if (noise_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(noise_image,DirectClass,exception) == MagickFalse)
-    {
-      noise_image=DestroyImage(noise_image);
-      return((Image *) NULL);
-    }
-  if (AcquireMagickResource(WidthResource,4*image->columns) == MagickFalse)
-    ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-  pixels_info=AcquireVirtualMemory(3*image->columns,image->rows*
-    sizeof(*pixels));
-  kernel=(float *) AcquireQuantumMemory(MagickMax(image->rows,image->columns)+1,
-    GetOpenMPMaximumThreads()*sizeof(*kernel));
-  if ((pixels_info == (MemoryInfo *) NULL) || (kernel == (float *) NULL))
-    {
-      if (kernel != (float *) NULL)
-        kernel=(float *) RelinquishMagickMemory(kernel);
-      if (pixels_info != (MemoryInfo *) NULL)
-        pixels_info=RelinquishVirtualMemory(pixels_info);
-      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-    }
-  pixels=(float *) GetVirtualMemoryBlob(pixels_info);
-  status=MagickTrue;
-  number_pixels=(MagickSizeType) image->columns*image->rows;
-  image_view=AcquireAuthenticCacheView(image,exception);
-  noise_view=AcquireAuthenticCacheView(noise_image,exception);
-  for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
-  {
-    register ssize_t
-      i;
-
-    size_t
-      high_pass,
-      low_pass;
-
-    ssize_t
-      level,
-      y;
-
-    PixelChannel
-      pixel_channel;
-
-    PixelTrait
-      traits;
-
-    if (status == MagickFalse)
-      continue;
-    traits=GetPixelChannelTraits(image,(PixelChannel) channel);
-    if (traits == UndefinedPixelTrait)
-      continue;
-    pixel_channel=GetPixelChannelChannel(image,channel);
-    if ((pixel_channel != RedPixelChannel) &&
-        (pixel_channel != GreenPixelChannel) &&
-        (pixel_channel != BluePixelChannel))
-      continue;
-    /*
-      Copy channel from image to wavelet pixel array.
-    */
-    i=0;
-    for (y=0; y < (ssize_t) image->rows; y++)
-    {
-      register const Quantum
-        *magick_restrict p;
-
-      ssize_t
-        x;
-
-      p=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
-      if (p == (const Quantum *) NULL)
-        {
-          status=MagickFalse;
-          break;
-        }
-      for (x=0; x < (ssize_t) image->columns; x++)
-      {
-        pixels[i++]=(float) p[channel];
-        p+=GetPixelChannels(image);
-      }
-    }
-    /*
-      Low pass filter outputs are called approximation kernel & high pass
-      filters are referred to as detail kernel. The detail kernel
-      have high values in the noisy parts of the signal.
-    */
-    high_pass=0;
-    for (level=0; level < 5; level++)
-    {
-      double
-        magnitude;
-
-      ssize_t
-        x,
-        y;
-
-      low_pass=(size_t) (number_pixels*((level & 0x01)+1));
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-      #pragma omp parallel for schedule(static,1) \
-        magick_number_threads(image,image,image->rows,1)
-#endif
-      for (y=0; y < (ssize_t) image->rows; y++)
-      {
-        const int
-          id = GetOpenMPThreadId();
-
-        register float
-          *magick_restrict p,
-          *magick_restrict q;
-
-        register ssize_t
-          x;
-
-        p=kernel+id*image->columns;
-        q=pixels+y*image->columns;
-        HatTransform(q+high_pass,1,image->columns,(size_t) (1UL << level),p);
-        q+=low_pass;
-        for (x=0; x < (ssize_t) image->columns; x++)
-          *q++=(*p++);
-      }
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-      #pragma omp parallel for schedule(static,1) \
-        magick_number_threads(image,image,image->columns,1)
-#endif
-      for (x=0; x < (ssize_t) image->columns; x++)
-      {
-        const int
-          id = GetOpenMPThreadId();
-
-        register float
-          *magick_restrict p,
-          *magick_restrict q;
-
-        register ssize_t
-          y;
-
-        p=kernel+id*image->rows;
-        q=pixels+x+low_pass;
-        HatTransform(q,image->columns,image->rows,(size_t) (1UL << level),p);
-        for (y=0; y < (ssize_t) image->rows; y++)
-        {
-          *q=(*p++);
-          q+=image->columns;
-        }
-      }
-      /*
-        To threshold, each coefficient is compared to a threshold value and
-        attenuated / shrunk by some factor.
-      */
-      magnitude=threshold*noise_levels[level];
-      for (i=0; i < (ssize_t) number_pixels; ++i)
-      {
-        pixels[high_pass+i]-=pixels[low_pass+i];
-        if (pixels[high_pass+i] < -magnitude)
-          pixels[high_pass+i]+=magnitude-softness*magnitude;
-        else
-          if (pixels[high_pass+i] > magnitude)
-            pixels[high_pass+i]-=magnitude-softness*magnitude;
-          else
-            pixels[high_pass+i]*=softness;
-        if (high_pass != 0)
-          pixels[i]+=pixels[high_pass+i];
-      }
-      high_pass=low_pass;
-    }
-    /*
-      Reconstruct image from the thresholded wavelet kernel.
-    */
-    i=0;
-    for (y=0; y < (ssize_t) image->rows; y++)
-    {
-      MagickBooleanType
-        sync;
-
-      register Quantum
-        *magick_restrict q;
-
-      register ssize_t
-        x;
-
-      ssize_t
-        offset;
-
-      q=GetCacheViewAuthenticPixels(noise_view,0,y,noise_image->columns,1,
-        exception);
-      if (q == (Quantum *) NULL)
-        {
-          status=MagickFalse;
-          break;
-        }
-      offset=GetPixelChannelOffset(noise_image,pixel_channel);
-      for (x=0; x < (ssize_t) image->columns; x++)
-      {
-        MagickRealType
-          pixel;
-
-        pixel=(MagickRealType) pixels[i]+pixels[low_pass+i];
-        q[offset]=ClampToQuantum(pixel);
-        i++;
-        q+=GetPixelChannels(noise_image);
-      }
-      sync=SyncCacheViewAuthenticPixels(noise_view,exception);
-      if (sync == MagickFalse)
-        status=MagickFalse;
-    }
-    if (image->progress_monitor != (MagickProgressMonitor) NULL)
-      {
-        MagickBooleanType
-          proceed;
-
-        proceed=SetImageProgress(image,AddNoiseImageTag,(MagickOffsetType)
-          channel,GetPixelChannels(image));
-        if (proceed == MagickFalse)
-          status=MagickFalse;
-      }
-  }
-  noise_view=DestroyCacheView(noise_view);
-  image_view=DestroyCacheView(image_view);
-  kernel=(float *) RelinquishMagickMemory(kernel);
-  pixels_info=RelinquishVirtualMemory(pixels_info);
-  if (status == MagickFalse)
-    noise_image=DestroyImage(noise_image);
-  return(noise_image);
-}
diff --git a/MagickCore/fx.h b/MagickCore/fx.h
index 4c5bef4..33e7a68 100644
--- a/MagickCore/fx.h
+++ b/MagickCore/fx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -24,51 +24,8 @@
 extern "C" {
 #endif
 
-typedef enum
-{
-  UndefinedNoise,
-  UniformNoise,
-  GaussianNoise,
-  MultiplicativeGaussianNoise,
-  ImpulseNoise,
-  LaplacianNoise,
-  PoissonNoise,
-  RandomNoise
-} NoiseType;
-
 extern MagickExport Image
-  *AddNoiseImage(const Image *,const NoiseType,const double,ExceptionInfo *),
-  *BlueShiftImage(const Image *,const double,ExceptionInfo *),
-  *CharcoalImage(const Image *,const double,const double,ExceptionInfo *),
-  *ColorizeImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
-  *ColorMatrixImage(const Image *,const KernelInfo *kernel,ExceptionInfo *),
-  *FxImage(const Image *,const char *,ExceptionInfo *),
-  *ImplodeImage(const Image *,const double,const PixelInterpolateMethod,
-    ExceptionInfo *),
-  *MorphImages(const Image *,const size_t,ExceptionInfo *),
-  *PolaroidImage(const Image *,const DrawInfo *,const char *,const double,
-    const PixelInterpolateMethod,ExceptionInfo *),
-  *SepiaToneImage(const Image *,const double,ExceptionInfo *),
-  *ShadowImage(const Image *,const double,const double,const ssize_t,
-    const ssize_t,ExceptionInfo *),
-  *SketchImage(const Image *,const double,const double,const double,
-    ExceptionInfo *),
-  *SteganoImage(const Image *,const Image *,ExceptionInfo *),
-  *StereoImage(const Image *,const Image *,ExceptionInfo *),
-  *StereoAnaglyphImage(const Image *,const Image *,const ssize_t,const ssize_t,
-     ExceptionInfo *),
-  *SwirlImage(const Image *,double,const PixelInterpolateMethod,
-    ExceptionInfo *),
-  *TintImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
-  *VignetteImage(const Image *,const double,const double,const ssize_t,
-    const ssize_t,ExceptionInfo *),
-  *WaveImage(const Image *,const double,const double,
-    const PixelInterpolateMethod,ExceptionInfo *),
-  *WaveletDenoiseImage(const Image *,const double,const double,ExceptionInfo *);
-
-extern MagickExport MagickBooleanType
-  PlasmaImage(Image *,const SegmentInfo *,size_t,size_t,ExceptionInfo *),
-  SolarizeImage(Image *,const double,ExceptionInfo *);
+  *FxImage(const Image *,const char *,ExceptionInfo *);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/MagickCore/gem-private.h b/MagickCore/gem-private.h
index fa7bd12..e15f741 100644
--- a/MagickCore/gem-private.h
+++ b/MagickCore/gem-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -19,6 +19,7 @@
 #define MAGICKCORE_GEM_PRIVATE_H
 
 #include "MagickCore/pixel-accessor.h"
+#include "MagickCore/visual-effects.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -107,6 +108,9 @@
 static inline void ConvertLuvToXYZ(const double L,const double u,const double v,
   double *X,double *Y,double *Z)
 {
+  double
+    gamma;
+
   assert(X != (double *) NULL);
   assert(Y != (double *) NULL);
   assert(Z != (double *) NULL);
@@ -114,9 +118,10 @@
     *Y=(double) pow((L+16.0)/116.0,3.0);
   else
     *Y=L/CIEK;
-  *X=((*Y*((39.0*L/(v+13.0*L*(9.0*D65Y/(D65X+15.0*D65Y+3.0*D65Z))))-5.0))+
-    5.0*(*Y))/((((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+3.0*D65Z))))-1.0)/
-    3.0)-(-1.0/3.0));
+  gamma=PerceptibleReciprocal((((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+
+    3.0*D65Z))))-1.0)/3.0)-(-1.0/3.0));
+  *X=gamma*((*Y*((39.0*L/(v+13.0*L*(9.0*D65Y/(D65X+15.0*D65Y+3.0*D65Z))))-5.0))+
+    5.0*(*Y));
   *Z=(*X*(((52.0*L/(u+13.0*L*(4.0*D65X/(D65X+15.0*D65Y+3.0*D65Z))))-1.0)/3.0))-
     5.0*(*Y);
 }
diff --git a/MagickCore/gem.c b/MagickCore/gem.c
index cc18efa..8dccbb9 100644
--- a/MagickCore/gem.c
+++ b/MagickCore/gem.c
@@ -17,7 +17,7 @@
 %                                 August 1996                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/gem.h b/MagickCore/gem.h
index da3851d..24d8df2 100644
--- a/MagickCore/gem.h
+++ b/MagickCore/gem.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/geometry.c b/MagickCore/geometry.c
index d67b1b5..c422d99 100644
--- a/MagickCore/geometry.c
+++ b/MagickCore/geometry.c
@@ -17,7 +17,7 @@
 %                              January 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -366,13 +366,13 @@
   typedef struct _PageInfo
   {
     const char
-      *name;
+      name[12];
 
     size_t
       extent;
 
     const char
-      *geometry;
+      geometry[10];
   } PageInfo;
 
   static const PageInfo
@@ -764,9 +764,9 @@
   p=(char *) geometry;
   for (i=0; (*p != '\0') && (i < 6); i++)
   {
-    GetNextToken(p,&p,MagickPathExtent,token);
+    (void) GetNextToken(p,&p,MagickPathExtent,token);
     if (*token == ',')
-      GetNextToken(p,&p,MagickPathExtent,token);
+      (void) GetNextToken(p,&p,MagickPathExtent,token);
     switch (i)
     {
       case 0:
@@ -942,6 +942,10 @@
         break;
       }
       case '(':
+      {
+        if (*(p+1) == ')')
+          return(flags);
+      }
       case ')':
       {
         (void) CopyMagickString(p,p+1,MagickPathExtent);
@@ -1131,7 +1135,7 @@
       if (((flags & XiValue) != 0) && (geometry_info->xi == 0.0))
         geometry_info->sigma=2.0;
     }
-  if (((flags & RhoValue) != 0) && ((flags & SigmaValue) == 0) && 
+  if (((flags & RhoValue) != 0) && ((flags & SigmaValue) == 0) &&
       ((flags & XiValue) != 0) && ((flags & XiNegative) != 0))
     {
       if ((flags & PsiValue) == 0)
@@ -1424,9 +1428,6 @@
         geometry_ratio,
         image_ratio;
 
-      GeometryInfo
-        geometry_info;
-
       /*
         Geometry is a relative to image size and aspect ratio.
       */
@@ -1437,13 +1438,13 @@
       if (geometry_ratio >= image_ratio)
         {
           *width=former_width;
-          *height=(size_t) floor((double) (former_height*image_ratio/
-            geometry_ratio)+0.5);
+          *height=(size_t) floor((double) (PerceptibleReciprocal(
+            geometry_ratio)*former_height*image_ratio)+0.5);
         }
       else
         {
-          *width=(size_t) floor((double) (former_width*geometry_ratio/
-            image_ratio)+0.5);
+          *width=(size_t) floor((double) (PerceptibleReciprocal(
+            image_ratio)*former_width*geometry_ratio)+0.5);
           *height=former_height;
         }
       former_width=(*width);
diff --git a/MagickCore/geometry.h b/MagickCore/geometry.h
index 318a3cc..40fcf62 100644
--- a/MagickCore/geometry.h
+++ b/MagickCore/geometry.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index a896b4c..a4c8369 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -18,7 +18,7 @@
 %                                August 2009                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -987,12 +987,12 @@
   color_1=(const PixelInfo *) x;
   color_2=(const PixelInfo *) y;
   if (color_2->red != color_1->red)
-    return((int) color_1->red-(int) color_2->red);
+    return((int) ((ssize_t) color_1->red-(ssize_t) color_2->red));
   if (color_2->green != color_1->green)
-    return((int) color_1->green-(int) color_2->green);
+    return((int) ((ssize_t) color_1->green-(ssize_t) color_2->green));
   if (color_2->blue != color_1->blue)
-    return((int) color_1->blue-(int) color_2->blue);
-  return((int) color_2->count-(int) color_1->count);
+    return((int) ((ssize_t) color_1->blue-(ssize_t) color_2->blue));
+  return((int) ((ssize_t) color_2->count-(ssize_t) color_1->count));
 }
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -1051,21 +1051,21 @@
   {
     pixel=(*p);
     (void) CopyMagickString(tuple,"(",MagickPathExtent);
-    ConcatenateColorComponent(&pixel,RedPixelChannel,X11Compliance,tuple);
+    ConcatenateColorComponent(&pixel,RedPixelChannel,NoCompliance,tuple);
     (void) ConcatenateMagickString(tuple,",",MagickPathExtent);
-    ConcatenateColorComponent(&pixel,GreenPixelChannel,X11Compliance,tuple);
+    ConcatenateColorComponent(&pixel,GreenPixelChannel,NoCompliance,tuple);
     (void) ConcatenateMagickString(tuple,",",MagickPathExtent);
-    ConcatenateColorComponent(&pixel,BluePixelChannel,X11Compliance,tuple);
+    ConcatenateColorComponent(&pixel,BluePixelChannel,NoCompliance,tuple);
     if (pixel.colorspace == CMYKColorspace)
       {
         (void) ConcatenateMagickString(tuple,",",MagickPathExtent);
-        ConcatenateColorComponent(&pixel,BlackPixelChannel,X11Compliance,
+        ConcatenateColorComponent(&pixel,BlackPixelChannel,NoCompliance,
           tuple);
       }
     if (pixel.alpha_trait != UndefinedPixelTrait)
       {
         (void) ConcatenateMagickString(tuple,",",MagickPathExtent);
-        ConcatenateColorComponent(&pixel,AlphaPixelChannel,X11Compliance,
+        ConcatenateColorComponent(&pixel,AlphaPixelChannel,NoCompliance,
           tuple);
       }
     (void) ConcatenateMagickString(tuple,")",MagickPathExtent);
diff --git a/MagickCore/histogram.h b/MagickCore/histogram.h
index e6ff64f..4c326b0 100644
--- a/MagickCore/histogram.h
+++ b/MagickCore/histogram.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index b5da9d8..8708ca5 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -17,7 +17,7 @@
 %                            September 1994                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1264,27 +1264,6 @@
       }
       image_info=DestroyImageInfo(image_info);
     }
-  (void) GetImageProperty(image,"exif:*",exception);
-  (void) GetImageProperty(image,"icc:*",exception);
-  (void) GetImageProperty(image,"iptc:*",exception);
-  (void) GetImageProperty(image,"xmp:*",exception);
-  ResetImagePropertyIterator(image);
-  property=GetNextImageProperty(image);
-  if (property != (const char *) NULL)
-    {
-      /*
-        Display image properties.
-      */
-      (void) FormatLocaleFile(file,"  Properties:\n");
-      while (property != (const char *) NULL)
-      {
-        (void) FormatLocaleFile(file,"    %s: ",property);
-        value=GetImageProperty(image,property,exception);
-        if (value != (const char *) NULL)
-          (void) FormatLocaleFile(file,"%s\n",value);
-        property=GetNextImageProperty(image);
-      }
-    }
   (void) FormatLocaleString(key,MagickPathExtent,"8BIM:1999,2998:#1");
   value=GetImageProperty(image,key,exception);
   if (value != (const char *) NULL)
@@ -1437,6 +1416,23 @@
         name=GetNextImageProfile(image);
       }
     }
+  ResetImagePropertyIterator(image);
+  property=GetNextImageProperty(image);
+  if (property != (const char *) NULL)
+    {
+      /*
+        Display image properties.
+      */
+      (void) FormatLocaleFile(file,"  Properties:\n");
+      while (property != (const char *) NULL)
+      {
+        (void) FormatLocaleFile(file,"    %s: ",property);
+        value=GetImageProperty(image,property,exception);
+        if (value != (const char *) NULL)
+          (void) FormatLocaleFile(file,"%s\n",value);
+        property=GetNextImageProperty(image);
+      }
+    }
   ResetImageArtifactIterator(image);
   artifact=GetNextImageArtifact(image);
   if (artifact != (const char *) NULL)
diff --git a/MagickCore/identify.h b/MagickCore/identify.h
index 1fd075e..28def6e 100644
--- a/MagickCore/identify.h
+++ b/MagickCore/identify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/image-private.h b/MagickCore/image-private.h
index ee58b59..344919f 100644
--- a/MagickCore/image-private.h
+++ b/MagickCore/image-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/image-view.c b/MagickCore/image-view.c
index 9cb2d0f..771789e 100644
--- a/MagickCore/image-view.c
+++ b/MagickCore/image-view.c
@@ -22,7 +22,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/image-view.h b/MagickCore/image-view.h
index 5f59388..ec4d168 100644
--- a/MagickCore/image-view.h
+++ b/MagickCore/image-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 65e865a..df05aba 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -96,6 +96,7 @@
 #include "MagickCore/thread-private.h"
 #include "MagickCore/threshold.h"
 #include "MagickCore/timer.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/token-private.h"
 #include "MagickCore/utility.h"
@@ -207,7 +208,7 @@
   image->channel_mask=DefaultChannels;
   image->channel_map=AcquirePixelChannelMap();
   image->blob=CloneBlobInfo((BlobInfo *) NULL);
-  image->timestamp=time((time_t *) NULL);
+  image->timestamp=GetMagickTime();
   image->debug=IsEventLogging();
   image->reference_count=1;
   image->semaphore=AcquireSemaphoreInfo();
@@ -258,10 +259,11 @@
         geometry_info;
 
       flags=ParseGeometry(image_info->density,&geometry_info);
-      image->resolution.x=geometry_info.rho;
-      image->resolution.y=geometry_info.sigma;
-      if ((flags & SigmaValue) == 0)
-        image->resolution.y=image->resolution.x;
+      if ((flags & RhoValue) != 0)
+        image->resolution.x=geometry_info.rho;
+      image->resolution.y=image->resolution.x;
+      if ((flags & SigmaValue) != 0)
+        image->resolution.y=geometry_info.sigma;
     }
   if (image_info->page != (char *) NULL)
     {
@@ -1763,14 +1765,12 @@
         break;
     }
   }
-  for (q=filename; *q != '\0'; q++)
-    if ((*q == '%') && (*(q+1) == '%'))
-      {
-        (void) CopyMagickString(q,q+1,(size_t) (MagickPathExtent-(q-filename)));
-        canonical=MagickTrue;
-      }
   if (canonical == MagickFalse)
     (void) CopyMagickString(filename,format,MagickPathExtent);
+  else
+    for (q=filename; *q != '\0'; q++)
+      if ((*q == '%') && (*(q+1) == '%'))
+        (void) CopyMagickString(q,q+1,(size_t) (MagickPathExtent-(q-filename)));
   return(strlen(filename));
 }
 
@@ -2433,7 +2433,7 @@
   assert(image->signature == MagickCoreSignature);
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
-  if ((image->background_color.alpha != OpaqueAlpha) &&
+  if ((image->background_color.alpha_trait != UndefinedPixelTrait) &&
       (image->alpha_trait == UndefinedPixelTrait))
     (void) SetImageAlphaChannel(image,OnAlphaChannel,exception);
   ConformPixelInfo(image,&image->background_color,&background,exception);
@@ -2661,8 +2661,18 @@
     ThrowBinaryException(ImageError,"NegativeOrZeroImageSize",image->filename);
   image->columns=columns;
   image->rows=rows;
-  if ((image->depth == 0) || (image->depth > (8*sizeof(MagickSizeType))))
-    ThrowBinaryException(ImageError,"ImageDepthNotSupported",image->filename);
+  if (image->depth == 0)
+    {
+      image->depth=8;
+      (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
+        "ImageDepthNotSupported","`%s'",image->filename);
+    }
+  if (image->depth > (8*sizeof(MagickSizeType)))
+    {
+      image->depth=8*sizeof(MagickSizeType);
+      (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
+        "ImageDepthNotSupported","`%s'",image->filename);
+    }
   return(SyncImagePixelCache(image,exception));
 }
 
@@ -2706,6 +2716,9 @@
   char
     component[MagickPathExtent],
     magic[MagickPathExtent],
+#if defined(MAGICKCORE_ZLIB_DELEGATE) || defined(MAGICKCORE_BZLIB_DELEGATE)
+    path[MagickPathExtent],
+#endif
     *q;
 
   const MagicInfo
@@ -2790,9 +2803,6 @@
         (LocaleCompare(component,"svgz") == 0) ||
         (LocaleCompare(component,"wmz") == 0))
       {
-        char
-          path[MagickPathExtent];
-
         (void) CopyMagickString(path,image_info->filename,MagickPathExtent);
         path[strlen(path)-strlen(component)-1]='\0';
         GetPathComponent(path,ExtensionPath,component);
@@ -2802,9 +2812,6 @@
   if (*component != '\0')
     if (LocaleCompare(component,"bz2") == 0)
       {
-        char
-          path[MagickPathExtent];
-
         (void) CopyMagickString(path,image_info->filename,MagickPathExtent);
         path[strlen(path)-strlen(component)-1]='\0';
         GetPathComponent(path,ExtensionPath,component);
@@ -3016,7 +3023,7 @@
           */
           if ((magick_info != (const MagickInfo *) NULL) &&
               (GetMagickUseExtension(magick_info) != MagickFalse) &&
-              (LocaleCompare(magick_info->module,GetMagicName(
+              (LocaleCompare(magick_info->magick_module,GetMagicName(
                 magic_info)) == 0))
             (void) CopyMagickString(image_info->magick,magick_info->name,
               MagickPathExtent);
@@ -4205,6 +4212,15 @@
             break;
         }
       image->units=units;
+      option=GetImageOption(image_info,"density");
+      if (option != (const char *) NULL)
+        {
+          flags=ParseGeometry(option,&geometry_info);
+          image->resolution.x=geometry_info.rho;
+          image->resolution.y=geometry_info.sigma;
+          if ((flags & SigmaValue) == 0)
+            image->resolution.y=image->resolution.x;
+        }
     }
   option=GetImageOption(image_info,"virtual-pixel");
   if (option != (const char *) NULL)
diff --git a/MagickCore/image.h b/MagickCore/image.h
index 3af01ae..cd4433b 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/layer.c b/MagickCore/layer.c
index 56b0c9c..57a9f39 100644
--- a/MagickCore/layer.c
+++ b/MagickCore/layer.c
@@ -16,7 +16,7 @@
 %                               January 2006                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -268,6 +268,7 @@
     exception);
   if (coalesce_image == (Image *) NULL)
     return((Image *) NULL);
+  coalesce_image->background_color.alpha_trait=BlendPixelTrait;
   coalesce_image->background_color.alpha=(MagickRealType) TransparentAlpha;
   (void) SetImageBackgroundColor(coalesce_image,exception);
   coalesce_image->alpha_trait=next->alpha_trait;
@@ -277,6 +278,12 @@
     Coalesce rest of the images.
   */
   dispose_image=CloneImage(coalesce_image,0,0,MagickTrue,exception);
+  if (dispose_image == (Image *) NULL)
+    {
+      coalesce_image=DestroyImage(coalesce_image);
+      return((Image *) NULL);
+    }
+  dispose_image->background_color.alpha_trait=BlendPixelTrait;
   (void) CompositeImage(coalesce_image,next,CopyCompositeOp,MagickTrue,
     next->page.x,next->page.y,exception);
   next=GetNextImageInList(next);
@@ -315,6 +322,7 @@
             coalesce_image=DestroyImageList(coalesce_image);
             return((Image *) NULL);
           }
+        dispose_image->background_color.alpha_trait=BlendPixelTrait;
       }
     /*
       Clear the overlaid area of the coalesced bounds for background disposal
@@ -328,6 +336,7 @@
     coalesce_image->next->previous=coalesce_image;
     previous=coalesce_image;
     coalesce_image=GetNextImageInList(coalesce_image);
+    coalesce_image->background_color.alpha_trait=BlendPixelTrait;
     (void) CompositeImage(coalesce_image,next,
       next->alpha_trait != UndefinedPixelTrait ? OverCompositeOp : CopyCompositeOp,
       MagickTrue,next->page.x,next->page.y,exception);
@@ -405,6 +414,7 @@
   dispose_image->page.x=0;
   dispose_image->page.y=0;
   dispose_image->dispose=NoneDispose;
+  dispose_image->background_color.alpha_trait=BlendPixelTrait;
   dispose_image->background_color.alpha=(MagickRealType) TransparentAlpha;
   (void) SetImageBackgroundColor(dispose_image,exception);
   dispose_images=NewImageList();
@@ -423,6 +433,7 @@
         dispose_image=DestroyImage(dispose_image);
         return((Image *) NULL);
       }
+    current_image->background_color.alpha_trait=BlendPixelTrait;
     (void) CompositeImage(current_image,next,
       next->alpha_trait != UndefinedPixelTrait ? OverCompositeOp : CopyCompositeOp,
       MagickTrue,next->page.x,next->page.y,exception);
@@ -475,6 +486,7 @@
           dispose_image=DestroyImage(dispose_image);
           return((Image *) NULL);
         }
+      dispose_image->background_color.alpha_trait=BlendPixelTrait;
       (void) CloneImageProfiles(dispose,next);
       (void) CloneImageProperties(dispose,next);
       (void) CloneImageArtifacts(dispose,next);
@@ -538,14 +550,14 @@
     Pixel goes from opaque to transprency.
   */
   if (method == CompareClearLayer)
-    return((MagickBooleanType) ( (o1 <= ((double) QuantumRange/2.0)) &&
-      (o2 > ((double) QuantumRange/2.0)) ) );
+    return((MagickBooleanType) ( (o1 >= ((double) QuantumRange/2.0)) &&
+      (o2 < ((double) QuantumRange/2.0)) ) );
   /*
     Overlay would change first pixel by second.
   */
   if (method == CompareOverlayLayer)
     {
-      if (o2 > ((double) QuantumRange/2.0))
+      if (o2 < ((double) QuantumRange/2.0))
         return MagickFalse;
       return((MagickBooleanType) (IsFuzzyEquivalencePixelInfo(p,q) == MagickFalse));
     }
@@ -574,7 +586,7 @@
 %  The format of the CompareImagesBounds method is:
 %
 %      RectangleInfo *CompareImagesBounds(const LayerMethod method,
-%        const Image *image1, const Image *image2, ExceptionInfo *exception)
+%        const Image *image1,const Image *image2,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -741,7 +753,7 @@
 */
 
 MagickExport Image *CompareImagesLayers(const Image *image,
-  const LayerMethod method, ExceptionInfo *exception)
+  const LayerMethod method,ExceptionInfo *exception)
 {
   Image
     *image_a,
@@ -784,6 +796,7 @@
       bounds=(RectangleInfo *) RelinquishMagickMemory(bounds);
       return((Image *) NULL);
     }
+  image_a->background_color.alpha_trait=BlendPixelTrait;
   image_a->background_color.alpha=(MagickRealType) TransparentAlpha;
   (void) SetImageBackgroundColor(image_a,exception);
   image_a->page=next->page;
@@ -805,6 +818,7 @@
         bounds=(RectangleInfo *) RelinquishMagickMemory(bounds);
         return((Image *) NULL);
       }
+    image_b->background_color.alpha_trait=BlendPixelTrait;
     (void) CompositeImage(image_a,next,CopyCompositeOp,MagickTrue,next->page.x,
       next->page.y,exception);
     bounds[i]=CompareImagesBounds(image_b,image_a,method,exception);
@@ -822,6 +836,7 @@
       bounds=(RectangleInfo *) RelinquishMagickMemory(bounds);
       return((Image *) NULL);
     }
+  layers->background_color.alpha_trait=BlendPixelTrait;
   /*
     Deconstruct the image sequence.
   */
@@ -842,6 +857,7 @@
     image_a=CloneImage(next,0,0,MagickTrue,exception);
     if (image_a == (Image *) NULL)
       break;
+    image_a->background_color.alpha_trait=BlendPixelTrait;
     image_b=CropImage(image_a,&bounds[i],exception);
     image_a=DestroyImage(image_a);
     if (image_b == (Image *) NULL)
@@ -881,7 +897,7 @@
 %  The format of the OptimizeLayerFrames method is:
 %
 %      Image *OptimizeLayerFrames(const Image *image,
-%        const LayerMethod method, ExceptionInfo *exception)
+%        const LayerMethod method,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -909,8 +925,8 @@
 
 #define DEBUG_OPT_FRAME 0
 
-static Image *OptimizeLayerFrames(const Image *image,
-  const LayerMethod method, ExceptionInfo *exception)
+static Image *OptimizeLayerFrames(const Image *image,const LayerMethod method,
+  ExceptionInfo *exception)
 {
   ExceptionInfo
     *sans_exception;
@@ -1008,7 +1024,7 @@
   */
 #if DEBUG_OPT_FRAME
   i=0;
-  (void) FormatLocaleFile(stderr, "frame %.20g :-\n", (double) i);
+  (void) FormatLocaleFile(stderr,"frame %.20g :-\n",(double) i);
 #endif
   disposals[0]=NoneDispose;
   bounds[0]=CompareImagesBounds(prev_image,curr,CompareAnyLayer,exception);
@@ -1031,7 +1047,7 @@
   for ( ; curr != (const Image *) NULL; curr=GetNextImageInList(curr))
   {
 #if DEBUG_OPT_FRAME
-    (void) FormatLocaleFile(stderr, "frame %.20g :-\n", (double) i);
+    (void) FormatLocaleFile(stderr,"frame %.20g :-\n",(double) i);
 #endif
     /*
       Assume none disposal is the best
@@ -1082,9 +1098,9 @@
             bounds[i]=try_bounds;
             disposals[i-1]=PreviousDispose;
 #if DEBUG_OPT_FRAME
-            (void) FormatLocaleFile(stderr, "previous: accepted\n");
+            (void) FormatLocaleFile(stderr,"previous: accepted\n");
           } else {
-            (void) FormatLocaleFile(stderr, "previous: rejected\n");
+            (void) FormatLocaleFile(stderr,"previous: rejected\n");
 #endif
           }
 
@@ -1104,6 +1120,7 @@
                 prev_image=DestroyImage(prev_image);
                 return((Image *) NULL);
               }
+            dup_image->background_color.alpha_trait=BlendPixelTrait;
             dup_bounds=CompareImagesBounds(dup_image,curr,CompareClearLayer,exception);
             ClearBounds(dup_image,&dup_bounds,exception);
             try_bounds=CompareImagesBounds(dup_image,curr,CompareAnyLayer,exception);
@@ -1133,6 +1150,7 @@
               dup_image=DestroyImage(dup_image);
             return((Image *) NULL);
           }
+        bgnd_image->background_color.alpha_trait=BlendPixelTrait;
         bgnd_bounds=bounds[i-1]; /* interum bounds of the previous image */
         ClearBounds(bgnd_image,&bgnd_bounds,exception);
         try_bounds=CompareImagesBounds(bgnd_image,curr,CompareAnyLayer,exception);
@@ -1244,9 +1262,9 @@
               dup_image=DestroyImage(dup_image);
             disposals[i-1]=BackgroundDispose;
 #if DEBUG_OPT_FRAME
-    (void) FormatLocaleFile(stderr, "expand_bgnd: accepted\n");
+    (void) FormatLocaleFile(stderr,"expand_bgnd: accepted\n");
           } else {
-    (void) FormatLocaleFile(stderr, "expand_bgnd: reject\n");
+    (void) FormatLocaleFile(stderr,"expand_bgnd: reject\n");
 #endif
           }
       }
@@ -1273,7 +1291,7 @@
         if ( disposals[i-1] != PreviousDispose )
           prev_image=DestroyImage(prev_image);
         if ( disposals[i-1] == BackgroundDispose )
-          prev_image=bgnd_image,  bgnd_image=(Image *) NULL;
+          prev_image=bgnd_image, bgnd_image=(Image *) NULL;
         if (bgnd_image != (Image *) NULL)
           bgnd_image=DestroyImage(bgnd_image);
         if ( disposals[i-1] == NoneDispose )
@@ -1293,17 +1311,17 @@
 #if DEBUG_OPT_FRAME
     (void) FormatLocaleFile(stderr, "final   %.20g : %s  %.20gx%.20g%+.20g%+.20g\n",
          (double) i-1,
-         CommandOptionToMnemonic(MagickDisposeOptions, disposals[i-1]),
-         (double) bounds[i-1].width, (double) bounds[i-1].height,
-         (double) bounds[i-1].x, (double) bounds[i-1].y );
+         CommandOptionToMnemonic(MagickDisposeOptions,disposals[i-1]),
+         (double) bounds[i-1].width,(double) bounds[i-1].height,
+         (double) bounds[i-1].x,(double) bounds[i-1].y );
 #endif
 #if DEBUG_OPT_FRAME
     (void) FormatLocaleFile(stderr, "interum %.20g : %s  %.20gx%.20g%+.20g%+.20g\n",
          (double) i,
-         CommandOptionToMnemonic(MagickDisposeOptions, disposals[i]),
-         (double) bounds[i].width, (double) bounds[i].height,
-         (double) bounds[i].x, (double) bounds[i].y );
-    (void) FormatLocaleFile(stderr, "\n");
+         CommandOptionToMnemonic(MagickDisposeOptions,disposals[i]),
+         (double) bounds[i].width,(double) bounds[i].height,
+         (double) bounds[i].x,(double) bounds[i].y );
+    (void) FormatLocaleFile(stderr,"\n");
 #endif
     i++;
   }
@@ -1320,8 +1338,7 @@
     prev_image=CloneImage(curr,0,0,MagickTrue,exception);
     if (prev_image == (Image *) NULL)
       break;
-    if (prev_image->alpha_trait == UndefinedPixelTrait)
-      (void) SetImageAlphaChannel(prev_image,OpaqueAlphaChannel,exception);
+    prev_image->background_color.alpha_trait=BlendPixelTrait;
     if ( disposals[i] == DelDispose ) {
       size_t time = 0;
       while ( disposals[i] == DelDispose ) {
@@ -1422,7 +1439,7 @@
 MagickExport Image *OptimizePlusImageLayers(const Image *image,
   ExceptionInfo *exception)
 {
-  return OptimizeLayerFrames(image, OptimizePlusLayer, exception);
+  return OptimizeLayerFrames(image,OptimizePlusLayer,exception);
 }
 
 /*
@@ -1501,6 +1518,7 @@
         dispose_image=DestroyImage(dispose_image);
         return;
       }
+    current_image->background_color.alpha_trait=BlendPixelTrait;
     (void) CompositeImage(current_image,next,next->alpha_trait != UndefinedPixelTrait ?
       OverCompositeOp : CopyCompositeOp,MagickTrue,next->page.x,next->page.y,
       exception);
@@ -1530,7 +1548,7 @@
           }
         if ((ssize_t) (bounds.y+bounds.height) > (ssize_t) current_image->rows)
           bounds.height=current_image->rows-bounds.y;
-        ClearBounds(current_image, &bounds,exception);
+        ClearBounds(current_image,&bounds,exception);
       }
     if (next->dispose != PreviousDispose)
       {
@@ -1575,7 +1593,7 @@
 %
 %  The format of the RemoveDuplicateLayers method is:
 %
-%      void RemoveDuplicateLayers(Image **image, ExceptionInfo *exception)
+%      void RemoveDuplicateLayers(Image **image,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1584,45 +1602,47 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport void RemoveDuplicateLayers(Image **images,
-     ExceptionInfo *exception)
+MagickExport void RemoveDuplicateLayers(Image **images,ExceptionInfo *exception)
 {
-  register Image
-    *curr,
-    *next;
-
   RectangleInfo
     bounds;
 
+  register Image
+    *image,
+    *next;
+
   assert((*images) != (const Image *) NULL);
   assert((*images)->signature == MagickCoreSignature);
   if ((*images)->debug != MagickFalse)
-    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",(*images)->filename);
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      (*images)->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
-
-  curr=GetFirstImageInList(*images);
-  for (; (next=GetNextImageInList(curr)) != (Image *) NULL; curr=next)
+  image=GetFirstImageInList(*images);
+  for ( ; (next=GetNextImageInList(image)) != (Image *) NULL; image=next)
   {
-    if ( curr->columns != next->columns || curr->rows != next->rows
-         || curr->page.x != next->page.x || curr->page.y != next->page.y )
+    if ((image->columns != next->columns) || (image->rows != next->rows) ||
+        (image->page.x != next->page.x) || (image->page.y != next->page.y))
       continue;
-    bounds=CompareImagesBounds(curr,next,CompareAnyLayer,exception);
-    if ( bounds.x < 0 ) {
-      /*
-        the two images are the same, merge time delays and delete one.
-      */
-      size_t time;
-      time = curr->delay*1000/curr->ticks_per_second;
-      time += next->delay*1000/next->ticks_per_second;
-      next->ticks_per_second = 100L;
-      next->delay = time*curr->ticks_per_second/1000;
-      next->iterations = curr->iterations;
-      *images = curr;
-      (void) DeleteImageFromList(images);
-    }
+    bounds=CompareImagesBounds(image,next,CompareAnyLayer,exception);
+    if (bounds.x < 0)
+      {
+        /*
+          Two images are the same, merge time delays and delete one.
+        */
+        size_t
+          time;
+
+        time=1000*image->delay*PerceptibleReciprocal(image->ticks_per_second);
+        time+=1000*next->delay*PerceptibleReciprocal(next->ticks_per_second);
+        next->ticks_per_second=100L;
+        next->delay=time*image->ticks_per_second/1000;
+        next->iterations=image->iterations;
+        *images=image;
+        (void) DeleteImageFromList(images);
+      }
   }
-  *images = GetFirstImageInList(*images);
+  *images=GetFirstImageInList(*images);
 }
 
 /*
@@ -1656,7 +1676,7 @@
 %
 %  The format of the RemoveZeroDelayLayers method is:
 %
-%      void RemoveZeroDelayLayers(Image **image, ExceptionInfo *exception)
+%      void RemoveZeroDelayLayers(Image **image,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1782,7 +1802,7 @@
   assert(exception->signature == MagickCoreSignature);
   if (source->debug != MagickFalse || destination->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s - %s",
-      source->filename, destination->filename);
+      source->filename,destination->filename);
 
   /*
     Overlay single source image over destation image/list
@@ -1806,29 +1826,32 @@
   {
     Image *dest = CloneImage(destination,0,0,MagickTrue,exception);
 
-    CompositeCanvas(destination, compose, source, x_offset, y_offset,
-      exception);
-    /* copy source image attributes ? */
-    if ( source->next != (Image *) NULL )
+    if (dest != (Image *) NULL)
       {
-        destination->delay = source->delay;
-        destination->iterations = source->iterations;
+        dest->background_color.alpha_trait=BlendPixelTrait;
+        CompositeCanvas(destination, compose, source, x_offset, y_offset,
+          exception);
+        /* copy source image attributes ? */
+        if ( source->next != (Image *) NULL )
+          {
+            destination->delay=source->delay;
+            destination->iterations=source->iterations;
+          }
+        source=GetNextImageInList(source);
+        while (source != (Image *) NULL)
+        {
+          AppendImageToList(&destination,
+            CloneImage(dest,0,0,MagickTrue,exception));
+          destination->background_color.alpha_trait=BlendPixelTrait;
+          destination=GetLastImageInList(destination);
+          CompositeCanvas(destination,compose,source,x_offset,y_offset,
+            exception);
+          destination->delay=source->delay;
+          destination->iterations=source->iterations;
+          source=GetNextImageInList(source);
+        }
+        dest=DestroyImage(dest);
       }
-    source=GetNextImageInList(source);
-
-    while ( source != (Image *) NULL )
-    {
-      AppendImageToList(&destination,
-           CloneImage(dest,0,0,MagickTrue,exception));
-      destination=GetLastImageInList(destination);
-
-      CompositeCanvas(destination, compose, source, x_offset, y_offset,
-        exception);
-      destination->delay = source->delay;
-      destination->iterations = source->iterations;
-      source=GetNextImageInList(source);
-    }
-    dest=DestroyImage(dest);
   }
 
   /*
@@ -2031,6 +2054,7 @@
   canvas=CloneImage(image,width,height,MagickTrue,exception);
   if (canvas == (Image *) NULL)
     return((Image *) NULL);
+  canvas->background_color.alpha_trait=BlendPixelTrait;
   (void) SetImageBackgroundColor(canvas,exception);
   canvas->page=page;
   canvas->dispose=UndefinedDispose;
diff --git a/MagickCore/layer.h b/MagickCore/layer.h
index abe2868..3bc534d 100644
--- a/MagickCore/layer.h
+++ b/MagickCore/layer.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/libMagickCore.map b/MagickCore/libMagickCore.map
index 749b6d4..85297c9 100644
--- a/MagickCore/libMagickCore.map
+++ b/MagickCore/libMagickCore.map
@@ -1,4 +1,4 @@
- VERS_6.0 {
+ VERS_7.0 {
      	 global:
      		 *;
      };
diff --git a/MagickCore/linked-list.c b/MagickCore/linked-list.c
index dec197b..b23d60d 100644
--- a/MagickCore/linked-list.c
+++ b/MagickCore/linked-list.c
@@ -17,7 +17,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/linked-list.h b/MagickCore/linked-list.h
index acc2654..7d6dcbd 100644
--- a/MagickCore/linked-list.h
+++ b/MagickCore/linked-list.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/list.c b/MagickCore/list.c
index d0fb009..7483f27 100644
--- a/MagickCore/list.c
+++ b/MagickCore/list.c
@@ -17,7 +17,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/list.h b/MagickCore/list.h
index 6ca6daf..522a296 100644
--- a/MagickCore/list.h
+++ b/MagickCore/list.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/locale-private.h b/MagickCore/locale-private.h
index 893c52b..58e855c 100644
--- a/MagickCore/locale-private.h
+++ b/MagickCore/locale-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index d30960e..bc38215 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -17,7 +17,7 @@
 %                                 July 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -66,7 +66,7 @@
 /*
   Define declarations.
 */
-#if defined(MAGICKCORE_HAVE_NEWLOCALE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
+#if (defined(MAGICKCORE_HAVE_NEWLOCALE) || defined(MAGICKCORE_WINDOWS_SUPPORT)) && !defined(__MINGW32__)
 #  define MAGICKCORE_LOCALE_SUPPORT
 #endif
 #define LocaleFilename  "locale.xml"
@@ -226,7 +226,7 @@
   cache=NewSplayTree(CompareSplayTreeString,(void *(*)(void *)) NULL,
     DestroyLocaleNode);
   status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -1220,7 +1220,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickLocaleExtent);
@@ -1231,7 +1231,7 @@
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
         {
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           while (isspace((int) ((unsigned char) *q)) != 0)
             q++;
         }
@@ -1244,7 +1244,7 @@
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
         {
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           while (isspace((int) ((unsigned char) *q)) != 0)
             q++;
         }
@@ -1258,10 +1258,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"locale") == 0)
             {
               if (LocaleCompare(locale,token) != 0)
@@ -1308,10 +1308,10 @@
         while ((*token != '>') && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         }
         continue;
       }
@@ -1333,10 +1333,10 @@
         while ((*token != '>') && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickLocaleExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"name") == 0)
             {
               (void) ConcatenateMagickString(tag,token,MagickLocaleExtent);
@@ -1393,7 +1393,7 @@
         (void) ConcatenateMagickString(tag,"/",MagickLocaleExtent);
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
   }
@@ -1521,11 +1521,13 @@
 */
 MagickExport int LocaleLowercase(const int c)
 {
+  if (c == EOF)
+    return(c);
 #if defined(MAGICKCORE_LOCALE_SUPPORT)
   if (c_locale != (locale_t) NULL)
-    return(tolower_l(c,c_locale));
+    return(tolower_l((int) ((unsigned char) c),c_locale));
 #endif
-  return(tolower(c));
+  return(tolower((int) ((unsigned char) c)));
 }
 
 /*
@@ -1659,11 +1661,13 @@
 */
 MagickExport int LocaleUppercase(const int c)
 {
+  if (c == EOF)
+    return(c);
 #if defined(MAGICKCORE_LOCALE_SUPPORT)
   if (c_locale != (locale_t) NULL)
-    return(toupper_l(c,c_locale));
+    return(toupper_l((int) ((unsigned char) c),c_locale));
 #endif
-  return(toupper(c));
+  return(toupper((int) ((unsigned char) c)));
 }
 
 /*
@@ -1688,6 +1692,9 @@
 {
   if (locale_semaphore == (SemaphoreInfo *) NULL)
     locale_semaphore=AcquireSemaphoreInfo();
+#if defined(MAGICKCORE_LOCALE_SUPPORT)
+  (void) AcquireCLocale();
+#endif
   return(MagickTrue);
 }
 
diff --git a/MagickCore/locale_.h b/MagickCore/locale_.h
index 57d61d5..3e7ed95 100644
--- a/MagickCore/locale_.h
+++ b/MagickCore/locale_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/log-private.h b/MagickCore/log-private.h
index 70e6aba..b1a2edd 100644
--- a/MagickCore/log-private.h
+++ b/MagickCore/log-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/log.c b/MagickCore/log.c
index 4ec9467..1b2c02c 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -17,7 +17,7 @@
 %                                September 2002                               %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -50,16 +50,16 @@
 #include "MagickCore/log.h"
 #include "MagickCore/log-private.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/nt-base-private.h"
 #include "MagickCore/option.h"
 #include "MagickCore/semaphore.h"
 #include "MagickCore/timer.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
-#include "MagickCore/token.h"
 #include "MagickCore/thread_.h"
 #include "MagickCore/thread-private.h"
+#include "MagickCore/timer-private.h"
+#include "MagickCore/token.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
@@ -99,7 +99,7 @@
 typedef struct _HandlerInfo
 {
   const char
-    *name;
+    name[10];
 
   LogHandlerType
     handler;
@@ -136,11 +136,14 @@
   TimerInfo
     timer;
 
-  size_t
-    signature;
-
   MagickLogMethod
     method;
+
+  SemaphoreInfo
+    *event_semaphore;
+
+  size_t
+    signature;
 };
 
 typedef struct _LogMapInfo
@@ -169,31 +172,31 @@
     { "None", NoHandler },
     { "Stderr", StderrHandler },
     { "Stdout", StdoutHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler },
-    { (char *) NULL, UndefinedHandler }
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler },
+    { "", UndefinedHandler }
   };
 
 static const LogMapInfo
@@ -213,22 +216,27 @@
   event_logging = MagickFalse;
 
 static SemaphoreInfo
-  *event_semaphore = (SemaphoreInfo *) NULL,
   *log_semaphore = (SemaphoreInfo *) NULL;
 
 /*
   Forward declarations.
 */
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 static LogHandlerType
   ParseLogHandlers(const char *) magick_attribute((__pure__));
+#endif
 
 static LogInfo
   *GetLogInfo(const char *,ExceptionInfo *);
 
 static MagickBooleanType
-  IsLogCacheInstantiated(ExceptionInfo *) magick_attribute((__pure__)),
+  IsLogCacheInstantiated(ExceptionInfo *) magick_attribute((__pure__));
+
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+static MagickBooleanType
   LoadLogCache(LinkedListInfo *,const char *,const char *,const size_t,
     ExceptionInfo *);
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -273,7 +281,7 @@
   */
   cache=NewLinkedList(0);
   status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -787,7 +795,7 @@
           size_t
             mask;
 
-          if (LogHandlers[j].name == (const char *) NULL)
+          if (*LogHandlers[j].name == '\0')
             break;
           mask=1;
           mask<<=j;
@@ -821,6 +829,248 @@
   return(MagickTrue);
 }
 
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   L o a d L o g C a c h e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  LoadLogCache() loads the log configurations which provides a
+%  mapping between log attributes and log name.
+%
+%  The format of the LoadLogCache method is:
+%
+%      MagickBooleanType LoadLogCache(LinkedListInfo *cache,const char *xml,
+%        const char *filename,const size_t depth,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o xml:  The log list in XML format.
+%
+%    o filename:  The log list filename.
+%
+%    o depth: depth of <include /> statements.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+static MagickBooleanType LoadLogCache(LinkedListInfo *cache,const char *xml,
+  const char *filename,const size_t depth,ExceptionInfo *exception)
+{
+  char
+    keyword[MagickPathExtent],
+    *token;
+
+  const char
+    *q;
+
+  LogInfo
+    *log_info = (LogInfo *) NULL;
+
+  MagickStatusType
+    status;
+
+  size_t
+    extent;
+
+  /*
+    Load the log map file.
+  */
+  if (xml == (const char *) NULL)
+    return(MagickFalse);
+  status=MagickTrue;
+  token=AcquireString(xml);
+  extent=strlen(token)+MagickPathExtent;
+  for (q=(const char *) xml; *q != '\0'; )
+  {
+    /*
+      Interpret XML.
+    */
+    (void) GetNextToken(q,&q,extent,token);
+    if (*token == '\0')
+      break;
+    (void) CopyMagickString(keyword,token,MagickPathExtent);
+    if (LocaleNCompare(keyword,"<!DOCTYPE",9) == 0)
+      {
+        /*
+          Doctype element.
+        */
+        while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
+          (void) GetNextToken(q,&q,extent,token);
+        continue;
+      }
+    if (LocaleNCompare(keyword,"<!--",4) == 0)
+      {
+        /*
+          Comment element.
+        */
+        while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
+          (void) GetNextToken(q,&q,extent,token);
+        continue;
+      }
+    if (LocaleCompare(keyword,"<include") == 0)
+      {
+        /*
+          Include element.
+        */
+        while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
+        {
+          (void) CopyMagickString(keyword,token,MagickPathExtent);
+          (void) GetNextToken(q,&q,extent,token);
+          if (*token != '=')
+            continue;
+          (void) GetNextToken(q,&q,extent,token);
+          if (LocaleCompare(keyword,"file") == 0)
+            {
+              if (depth > MagickMaxRecursionDepth)
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  ConfigureError,"IncludeElementNestedTooDeeply","`%s'",token);
+              else
+                {
+                  char
+                    path[MagickPathExtent],
+                    *file_xml;
+
+                  GetPathComponent(filename,HeadPath,path);
+                  if (*path != '\0')
+                    (void) ConcatenateMagickString(path,DirectorySeparator,
+                      MagickPathExtent);
+                  if (*token == *DirectorySeparator)
+                    (void) CopyMagickString(path,token,MagickPathExtent);
+                  else
+                    (void) ConcatenateMagickString(path,token,MagickPathExtent);
+                  file_xml=FileToXML(path,~0UL);
+                  if (file_xml != (char *) NULL)
+                    {
+                      status&=LoadLogCache(cache,file_xml,path,depth+1,
+                        exception);
+                      file_xml=DestroyString(file_xml);
+                    }
+                }
+            }
+        }
+        continue;
+      }
+    if (LocaleCompare(keyword,"<logmap>") == 0)
+      {
+        /*
+          Allocate memory for the log list.
+        */
+        log_info=(LogInfo *) AcquireCriticalMemory(sizeof(*log_info));
+        (void) memset(log_info,0,sizeof(*log_info));
+        log_info->path=ConstantString(filename);
+        GetTimerInfo((TimerInfo *) &log_info->timer);
+        log_info->signature=MagickCoreSignature;
+        continue;
+      }
+    if (log_info == (LogInfo *) NULL)
+      continue;
+    if (LocaleCompare(keyword,"</logmap>") == 0)
+      {
+        status=AppendValueToLinkedList(cache,log_info);
+        if (status == MagickFalse)
+          (void) ThrowMagickException(exception,GetMagickModule(),
+            ResourceLimitError,"MemoryAllocationFailed","`%s'",filename);
+        log_info=(LogInfo *) NULL;
+        continue;
+      }
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
+    if (*token != '=')
+      continue;
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    switch (*keyword)
+    {
+      case 'E':
+      case 'e':
+      {
+        if (LocaleCompare((char *) keyword,"events") == 0)
+          {
+            log_info->event_mask=(LogEventType) (log_info->event_mask |
+              ParseCommandOption(MagickLogEventOptions,MagickTrue,token));
+            break;
+          }
+        break;
+      }
+      case 'F':
+      case 'f':
+      {
+        if (LocaleCompare((char *) keyword,"filename") == 0)
+          {
+            if (log_info->filename != (char *) NULL)
+              log_info->filename=(char *)
+                RelinquishMagickMemory(log_info->filename);
+            log_info->filename=ConstantString(token);
+            break;
+          }
+        if (LocaleCompare((char *) keyword,"format") == 0)
+          {
+            if (log_info->format != (char *) NULL)
+              log_info->format=(char *)
+                RelinquishMagickMemory(log_info->format);
+            log_info->format=ConstantString(token);
+            break;
+          }
+        break;
+      }
+      case 'G':
+      case 'g':
+      {
+        if (LocaleCompare((char *) keyword,"generations") == 0)
+          {
+            if (LocaleCompare(token,"unlimited") == 0)
+              {
+                log_info->generations=(~0UL);
+                break;
+              }
+            log_info->generations=StringToUnsignedLong(token);
+            break;
+          }
+        break;
+      }
+      case 'L':
+      case 'l':
+      {
+        if (LocaleCompare((char *) keyword,"limit") == 0)
+          {
+            if (LocaleCompare(token,"unlimited") == 0)
+              {
+                log_info->limit=(~0UL);
+                break;
+              }
+            log_info->limit=StringToUnsignedLong(token);
+            break;
+          }
+        break;
+      }
+      case 'O':
+      case 'o':
+      {
+        if (LocaleCompare((char *) keyword,"output") == 0)
+          {
+            log_info->handler_mask=(LogHandlerType)
+              (log_info->handler_mask | ParseLogHandlers(token));
+            break;
+          }
+        break;
+      }
+      default:
+        break;
+    }
+  }
+  token=DestroyString(token);
+  if (cache == (LinkedListInfo *) NULL)
+    return(MagickFalse);
+  return(status != 0 ? MagickTrue : MagickFalse);
+}
+#endif
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -849,7 +1099,6 @@
   exception=AcquireExceptionInfo();
   (void) GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
-  event_semaphore=AcquireSemaphoreInfo();
   return(MagickTrue);
 }
 
@@ -890,17 +1139,14 @@
     p->path=DestroyString(p->path);
   if (p->filename != (char *) NULL)
     p->filename=DestroyString(p->filename);
+  if (p->event_semaphore != (SemaphoreInfo *) NULL)
+    RelinquishSemaphoreInfo(&p->event_semaphore);
   p=(LogInfo *) RelinquishMagickMemory(p);
   return((void *) NULL);
 }
 
 MagickPrivate void LogComponentTerminus(void)
 {
-  if (event_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&event_semaphore);
-  LockSemaphoreInfo(event_semaphore);
-  UnlockSemaphoreInfo(event_semaphore);
-  RelinquishSemaphoreInfo(&event_semaphore);
   if (log_semaphore == (SemaphoreInfo *) NULL)
     ActivateSemaphoreInfo(&log_semaphore);
   LockSemaphoreInfo(log_semaphore);
@@ -975,7 +1221,7 @@
   exception=AcquireExceptionInfo();
   log_info=(LogInfo *) GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
-  seconds=time((time_t *) NULL);
+  seconds=GetMagickTime();
   elapsed_time=GetElapsedTime(&log_info->timer);
   user_time=GetUserTime(&log_info->timer);
   text=AcquireString(event);
@@ -994,7 +1240,7 @@
       (void) FormatLocaleString(text,extent,
         "<entry>\n"
         "  <timestamp>%s</timestamp>\n"
-        "  <elapsed-time>%lu:%02lu.%03lu</elapsed-time>\n"
+        "  <elapsed-time>%lu:%02lu.%06lu</elapsed-time>\n"
         "  <user-time>%0.3f</user-time>\n"
         "  <process-id>%.20g</process-id>\n"
         "  <thread-id>%.20g</thread-id>\n"
@@ -1005,7 +1251,7 @@
         "  <event>%s</event>\n"
         "</entry>",timestamp,(unsigned long) (elapsed_time/60.0),
         (unsigned long) floor(fmod(elapsed_time,60.0)),(unsigned long)
-        (1000.0*(elapsed_time-floor(elapsed_time))+0.5),user_time,
+        (1000000.0*(elapsed_time-floor(elapsed_time))+0.5),user_time,
         (double) getpid(),(double) GetMagickThreadSignature(),module,function,
         (double) line,domain,event);
       return(text);
@@ -1034,6 +1280,7 @@
         %e   event
         %f   function
         %g   generation
+        %i   thread id
         %l   line
         %m   module
         %n   log name
@@ -1064,6 +1311,8 @@
         continue;
       }
     p++;
+    if (*p == '\0')
+      break;
     switch (*p)
     {
       case 'c':
@@ -1098,6 +1347,12 @@
           log_info->generations));
         break;
       }
+      case 'i':
+      {
+        q+=FormatLocaleString(q,extent,"%.20g",(double)
+          GetMagickThreadSignature());
+        break;
+      }
       case 'l':
       {
         q+=FormatLocaleString(q,extent,"%.20g",(double) line);
@@ -1216,8 +1471,15 @@
         continue;
       }
     p++;
+    if (*p == '\0')
+      break;
     switch (*p)
     {
+      case '\0':
+      {
+        p--;
+        break;
+      }
       case 'c':
       {
         q+=CopyMagickString(q,GetClientName(),extent);
@@ -1290,12 +1552,12 @@
   exception=AcquireExceptionInfo();
   log_info=(LogInfo *) GetLogInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
-  if (event_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&event_semaphore);
-  LockSemaphoreInfo(event_semaphore);
+  if (log_info->event_semaphore == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&log_info->event_semaphore);
+  LockSemaphoreInfo(log_info->event_semaphore);
   if ((log_info->event_mask & type) == 0)
     {
-      UnlockSemaphoreInfo(event_semaphore);
+      UnlockSemaphoreInfo(log_info->event_semaphore);
       return(MagickTrue);
     }
   domain=CommandOptionToMnemonic(MagickLogEventOptions,type);
@@ -1310,7 +1572,7 @@
   if (text == (char *) NULL)
     {
       (void) ContinueTimer((TimerInfo *) &log_info->timer);
-      UnlockSemaphoreInfo(event_semaphore);
+      UnlockSemaphoreInfo(log_info->event_semaphore);
       return(MagickFalse);
     }
   if ((log_info->handler_mask & ConsoleHandler) != 0)
@@ -1339,7 +1601,7 @@
       file_info.st_size=0;
       if (log_info->file != (FILE *) NULL)
         (void) fstat(fileno(log_info->file),&file_info);
-      if (file_info.st_size > (ssize_t) (1024*1024*log_info->limit))
+      if (file_info.st_size > (MagickOffsetType) (1024*1024*log_info->limit))
         {
           (void) FormatLocaleFile(log_info->file,"</log>\n");
           (void) fclose(log_info->file);
@@ -1354,7 +1616,7 @@
           if (filename == (char *) NULL)
             {
               (void) ContinueTimer((TimerInfo *) &log_info->timer);
-              UnlockSemaphoreInfo(event_semaphore);
+              UnlockSemaphoreInfo(log_info->event_semaphore);
               return(MagickFalse);
             }
           log_info->append=IsPathAccessible(filename);
@@ -1362,7 +1624,7 @@
           filename=(char  *) RelinquishMagickMemory(filename);
           if (log_info->file == (FILE *) NULL)
             {
-              UnlockSemaphoreInfo(event_semaphore);
+              UnlockSemaphoreInfo(log_info->event_semaphore);
               return(MagickFalse);
             }
           log_info->generation++;
@@ -1391,7 +1653,7 @@
     }
   text=(char  *) RelinquishMagickMemory(text);
   (void) ContinueTimer((TimerInfo *) &log_info->timer);
-  UnlockSemaphoreInfo(event_semaphore);
+  UnlockSemaphoreInfo(log_info->event_semaphore);
   return(MagickTrue);
 }
 
@@ -1413,252 +1675,13 @@
   return(status);
 }
 
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   L o a d L o g C a c h e                                                   %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  LoadLogCache() loads the log configurations which provides a
-%  mapping between log attributes and log name.
-%
-%  The format of the LoadLogCache method is:
-%
-%      MagickBooleanType LoadLogCache(LinkedListInfo *cache,const char *xml,
-%        const char *filename,const size_t depth,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o xml:  The log list in XML format.
-%
-%    o filename:  The log list filename.
-%
-%    o depth: depth of <include /> statements.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-static MagickBooleanType LoadLogCache(LinkedListInfo *cache,const char *xml,
-  const char *filename,const size_t depth,ExceptionInfo *exception)
-{
-  char
-    keyword[MagickPathExtent],
-    *token;
-
-  const char
-    *q;
-
-  LogInfo
-    *log_info = (LogInfo *) NULL;
-
-  MagickStatusType
-    status;
-
-  size_t
-    extent;
-
-  /*
-    Load the log map file.
-  */
-  if (xml == (const char *) NULL)
-    return(MagickFalse);
-  status=MagickTrue;
-  token=AcquireString(xml);
-  extent=strlen(token)+MagickPathExtent;
-  for (q=(const char *) xml; *q != '\0'; )
-  {
-    /*
-      Interpret XML.
-    */
-    GetNextToken(q,&q,extent,token);
-    if (*token == '\0')
-      break;
-    (void) CopyMagickString(keyword,token,MagickPathExtent);
-    if (LocaleNCompare(keyword,"<!DOCTYPE",9) == 0)
-      {
-        /*
-          Doctype element.
-        */
-        while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
-        continue;
-      }
-    if (LocaleNCompare(keyword,"<!--",4) == 0)
-      {
-        /*
-          Comment element.
-        */
-        while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
-        continue;
-      }
-    if (LocaleCompare(keyword,"<include") == 0)
-      {
-        /*
-          Include element.
-        */
-        while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
-        {
-          (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
-          if (*token != '=')
-            continue;
-          GetNextToken(q,&q,extent,token);
-          if (LocaleCompare(keyword,"file") == 0)
-            {
-              if (depth > MagickMaxRecursionDepth)
-                (void) ThrowMagickException(exception,GetMagickModule(),
-                  ConfigureError,"IncludeElementNestedTooDeeply","`%s'",token);
-              else
-                {
-                  char
-                    path[MagickPathExtent],
-                    *file_xml;
-
-                  GetPathComponent(filename,HeadPath,path);
-                  if (*path != '\0')
-                    (void) ConcatenateMagickString(path,DirectorySeparator,
-                      MagickPathExtent);
-                  if (*token == *DirectorySeparator)
-                    (void) CopyMagickString(path,token,MagickPathExtent);
-                  else
-                    (void) ConcatenateMagickString(path,token,MagickPathExtent);
-                  file_xml=FileToXML(path,~0UL);
-                  if (file_xml != (char *) NULL)
-                    {
-                      status&=LoadLogCache(cache,file_xml,path,depth+1,
-                        exception);
-                      file_xml=DestroyString(file_xml);
-                    }
-                }
-            }
-        }
-        continue;
-      }
-    if (LocaleCompare(keyword,"<logmap>") == 0)
-      {
-        /*
-          Allocate memory for the log list.
-        */
-        log_info=(LogInfo *) AcquireCriticalMemory(sizeof(*log_info));
-        (void) memset(log_info,0,sizeof(*log_info));
-        log_info->path=ConstantString(filename);
-        GetTimerInfo((TimerInfo *) &log_info->timer);
-        log_info->signature=MagickCoreSignature;
-        continue;
-      }
-    if (log_info == (LogInfo *) NULL)
-      continue;
-    if (LocaleCompare(keyword,"</logmap>") == 0)
-      {
-        status=AppendValueToLinkedList(cache,log_info);
-        if (status == MagickFalse)
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            ResourceLimitError,"MemoryAllocationFailed","`%s'",filename);
-        log_info=(LogInfo *) NULL;
-        continue;
-      }
-    GetNextToken(q,(const char **) NULL,extent,token);
-    if (*token != '=')
-      continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
-    switch (*keyword)
-    {
-      case 'E':
-      case 'e':
-      {
-        if (LocaleCompare((char *) keyword,"events") == 0)
-          {
-            log_info->event_mask=(LogEventType) (log_info->event_mask |
-              ParseCommandOption(MagickLogEventOptions,MagickTrue,token));
-            break;
-          }
-        break;
-      }
-      case 'F':
-      case 'f':
-      {
-        if (LocaleCompare((char *) keyword,"filename") == 0)
-          {
-            if (log_info->filename != (char *) NULL)
-              log_info->filename=(char *)
-                RelinquishMagickMemory(log_info->filename);
-            log_info->filename=ConstantString(token);
-            break;
-          }
-        if (LocaleCompare((char *) keyword,"format") == 0)
-          {
-            if (log_info->format != (char *) NULL)
-              log_info->format=(char *)
-                RelinquishMagickMemory(log_info->format);
-            log_info->format=ConstantString(token);
-            break;
-          }
-        break;
-      }
-      case 'G':
-      case 'g':
-      {
-        if (LocaleCompare((char *) keyword,"generations") == 0)
-          {
-            if (LocaleCompare(token,"unlimited") == 0)
-              {
-                log_info->generations=(~0UL);
-                break;
-              }
-            log_info->generations=StringToUnsignedLong(token);
-            break;
-          }
-        break;
-      }
-      case 'L':
-      case 'l':
-      {
-        if (LocaleCompare((char *) keyword,"limit") == 0)
-          {
-            if (LocaleCompare(token,"unlimited") == 0)
-              {
-                log_info->limit=(~0UL);
-                break;
-              }
-            log_info->limit=StringToUnsignedLong(token);
-            break;
-          }
-        break;
-      }
-      case 'O':
-      case 'o':
-      {
-        if (LocaleCompare((char *) keyword,"output") == 0)
-          {
-            log_info->handler_mask=(LogHandlerType)
-              (log_info->handler_mask | ParseLogHandlers(token));
-            break;
-          }
-        break;
-      }
-      default:
-        break;
-    }
-  }
-  token=DestroyString(token);
-  if (cache == (LinkedListInfo *) NULL)
-    return(MagickFalse);
-  return(status != 0 ? MagickTrue : MagickFalse);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-+   P a r s e L o g H a n d l e r s                                           %
+%   P a r s e L o g H a n d l e r s                                           %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1696,7 +1719,7 @@
     while ((*p != '\0') && ((isspace((int) ((unsigned char) *p)) != 0) ||
            (*p == ',')))
       p++;
-    for (i=0; LogHandlers[i].name != (char *) NULL; i++)
+    for (i=0; *LogHandlers[i].name != '\0'; i++)
     {
       length=strlen(LogHandlers[i].name);
       if (LocaleNCompare(p,LogHandlers[i].name,length) == 0)
@@ -1705,11 +1728,12 @@
           break;
         }
     }
-    if (LogHandlers[i].name == (char *) NULL)
+    if (*LogHandlers[i].name == '\0')
       return(UndefinedHandler);
   }
   return(handler_mask);
 }
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/log.h b/MagickCore/log.h
index 41f710b..88054d4 100644
--- a/MagickCore/log.h
+++ b/MagickCore/log.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -45,7 +45,7 @@
   ExceptionEvent = 0x00100,   /* Log Errors and Warnings immediately */
   ImageEvent = 0x00200,
   LocaleEvent = 0x00400,
-  ModuleEvent = 0x00800,      /* Loding of coder and filter modules */
+  ModuleEvent = 0x00800,      /* Log coder and filter modules */
   PixelEvent = 0x01000,
   PolicyEvent = 0x02000,
   ResourceEvent = 0x04000,
diff --git a/MagickCore/magic-private.h b/MagickCore/magic-private.h
index d38c051..4b6747a 100644
--- a/MagickCore/magic-private.h
+++ b/MagickCore/magic-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index 402d20d..fb24ffc 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -17,7 +17,7 @@
 %                                 July 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -70,13 +70,13 @@
 typedef struct _MagicMapInfo
 {
   const char
-    *name;
+    name[10];
 
   const MagickOffsetType
     offset;
 
   const unsigned char
-    *magic;
+    *const magic;
 
   const size_t
     length;
diff --git a/MagickCore/magic.h b/MagickCore/magic.h
index e1089db..dc20ce8 100644
--- a/MagickCore/magic.h
+++ b/MagickCore/magic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magick-config.h b/MagickCore/magick-config.h
index 6fb9ad8..21d71ed 100644
--- a/MagickCore/magick-config.h
+++ b/MagickCore/magick-config.h
@@ -38,6 +38,40 @@
 #undef MAGICKCORE_X11_DELEGATE
 #undef MAGICKCORE_BUILD_MODULES
 
+#define MAGICKCORE_STRING_QUOTE(str) #str
+#define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str)
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+# if defined(__GNUC__) || defined(__clang__)
+#  define MAGICK_COMPILER_WARNING(w) _Pragma(MAGICKCORE_STRING_QUOTE(GCC warning w))
+# elif defined(_MSC_VER)
+#  define MAGICK_COMPILER_WARNING(w) _Pragma(MAGICKCORE_STRING_QUOTE(message(w)))
+# endif
+#endif
+
+#ifndef MAGICK_COMPILER_WARNING
+# define MAGICK_COMPILER_WARNING(w)
+#endif
+
+#ifdef MAGICKCORE__FILE_OFFSET_BITS
+# ifdef _FILE_OFFSET_BITS
+#  if _FILE_OFFSET_BITS != MAGICKCORE__FILE_OFFSET_BITS
+    MAGICK_COMPILER_WARNING("_FILE_OFFSET_BITS is already defined, but does not match MAGICKCORE__FILE_OFFSET_BITS")
+#  else
+#   undef _FILE_OFFSET_BITS
+#  endif
+# endif
+# ifndef _FILE_OFFSET_BITS
+#  if MAGICKCORE__FILE_OFFSET_BITS == 64
+#   define _FILE_OFFSET_BITS 64
+#  elif MAGICKCORE__FILE_OFFSET_BITS == 32
+#   define _FILE_OFFSET_BITS 32
+#  else
+#   define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS
+#  endif
+# endif
+#endif
+
 /* Compatibility block */
 #if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
 # warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
@@ -123,10 +157,6 @@
 #  define __CYGWIN__  __CYGWIN32__
 #endif
 
-/*! stringify */
-#define MAGICKCORE_STRING_QUOTE(str) #str
-#define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str)
-
 /*  ABI SUFFIX */
 #ifndef MAGICKCORE_HDRI_SUPPORT
 #define MAGICKCORE_ABI_SUFFIX  "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH)
@@ -211,6 +241,46 @@
 #endif
 
 #endif
+
+/* for Clang compatibility */
+#ifndef __has_builtin
+#  define __has_builtin(x) 0
+#endif
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ > 201112L && !defined(__MINGW32__)
+# define MAGICKCORE_HAVE_STDC_ALIGNED_ALLOC 1
+#endif
+
+#if defined(__GNUC__) && !defined(__clang__)
+# define MAGICKCORE_DIAGNOSTIC_PUSH() \
+   _Pragma("GCC diagnostic push")
+# define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED() \
+   _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# define MAGICKCORE_DIAGNOSTIC_POP() \
+   _Pragma("GCC diagnostic pop")
+#else
+# define MAGICKCORE_DIAGNOSTIC_PUSH()
+# define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED()
+# define MAGICKCORE_DIAGNOSTIC_POP()
+#endif
+
+#define MAGICKCORE_BITS_BELOW(power_of_2) \
+  ((power_of_2)-1)
+
+#define MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2) \
+  MAGICKCORE_BITS_BELOW(power_of_2)
+
+#define MAGICKCORE_IS_NOT_ALIGNED(n, power_of_2) \
+  ((n) & MAGICKCORE_BITS_BELOW(power_of_2))
+
+#define MAGICKCORE_IS_NOT_POWER_OF_2(n) \
+  MAGICKCORE_IS_NOT_ALIGNED((n), (n))
+
+#define MAGICKCORE_ALIGN_DOWN(n, power_of_2) \
+  ((n) & ~MAGICKCORE_BITS_BELOW(power_of_2))
+
+#define MAGICKCORE_ALIGN_UP(n, power_of_2) \
+  MAGICKCORE_ALIGN_DOWN((n) + MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2),power_of_2)
  
 #if defined(__cplusplus) || defined(c_plusplus)
 }
diff --git a/MagickCore/magick-private.h b/MagickCore/magick-private.h
index 8a49999..06c34ce 100644
--- a/MagickCore/magick-private.h
+++ b/MagickCore/magick-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magick-type.h b/MagickCore/magick-type.h
index d8ed406..35b9080 100644
--- a/MagickCore/magick-type.h
+++ b/MagickCore/magick-type.h
@@ -1,12 +1,12 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
 
     https://imagemagick.org/script/license.php
- 
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,6 +20,10 @@
 
 #include "MagickCore/magick-config.h"
 
+#if MAGICKCORE_HAVE_UINTPTR_T
+#  include <stdint.h>
+#endif
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
@@ -138,6 +142,13 @@
 #define MagickSizeFormat  "I64u"
 #endif
 
+#if MAGICKCORE_HAVE_UINTPTR_T || defined(uintptr_t)
+typedef uintptr_t MagickAddressType;
+#else
+/* Hope for the best, I guess. */
+typedef size_t MagickAddressType;
+#endif
+
 #if defined(_MSC_VER) && (_MSC_VER == 1200)
 typedef MagickOffsetType QuantumAny;
 #else
@@ -181,7 +192,7 @@
 #  define IsNaN(a) ((a) != (a))
 #endif
 #if !defined(INFINITY)
-#  define INFINITY (-logf(0f))
+#  define INFINITY ((double) -logf(0f))
 #endif
 
 typedef struct _BlobInfo BlobInfo;
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index 9951a95..e79184f 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -18,7 +18,7 @@
 %                             November 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -61,7 +61,6 @@
 #include "MagickCore/magick.h"
 #include "MagickCore/magick-private.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/mime-private.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/module.h"
@@ -77,6 +76,7 @@
 #include "MagickCore/resource-private.h"
 #include "MagickCore/policy.h"
 #include "MagickCore/policy-private.h"
+#include "MagickCore/mutex.h"
 #include "MagickCore/semaphore.h"
 #include "MagickCore/semaphore-private.h"
 #include "MagickCore/signature-private.h"
@@ -103,9 +103,6 @@
 /*
   Define declarations.
 */
-#if !defined(MAGICKCORE_RETSIGTYPE)
-# define MAGICKCORE_RETSIGTYPE  void
-#endif
 #if !defined(SIG_DFL)
 # define SIG_DFL  ((SignalHandler *) 0)
 #endif
@@ -119,8 +116,7 @@
 /*
   Typedef declarations.
 */
-typedef MAGICKCORE_RETSIGTYPE
-  SignalHandler(int);
+typedef void SignalHandler(int);
 
 /*
   Global declarations.
@@ -135,7 +131,7 @@
   *magick_list = (SplayTreeInfo *) NULL;
 
 static volatile MagickBooleanType
-  instantiate_magickcore = MagickFalse,
+  magickcore_instantiated = MagickFalse,
   magickcore_signal_in_progress = MagickFalse,
   magick_list_initialized = MagickFalse;
 
@@ -164,11 +160,12 @@
 %
 %  The format of the AcquireMagickInfo method is:
 %
-%      MagickInfo *AcquireMagickInfo(const char *module, const char *name,)
+%      MagickInfo *AcquireMagickInfo(const char *magick_module,
+%        const char *name,const char *description)
 %
 %  A description of each parameter follows:
 %
-%    o module: a character string that represents the module associated
+%    o magick_module: a character string that represents the module associated
 %      with the MagickInfo structure.
 %
 %    o name: a character string that represents the image format associated
@@ -178,19 +175,19 @@
 %      associated with the MagickInfo structure.
 %
 */
-MagickExport MagickInfo *AcquireMagickInfo(const char *module,const char *name,
-  const char *description)
+MagickExport MagickInfo *AcquireMagickInfo(const char *magick_module,
+  const char *name,const char *description)
 {
   MagickInfo
     *magick_info;
 
-  assert(module != (const char *) NULL);
+  assert(magick_module != (const char *) NULL);
   assert(name != (const char *) NULL);
   assert(description != (const char *) NULL);
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",name);
   magick_info=(MagickInfo *) AcquireCriticalMemory(sizeof(*magick_info));
   (void) memset(magick_info,0,sizeof(*magick_info));
-  magick_info->module=ConstantString(module);
+  magick_info->magick_module=ConstantString(magick_module);
   magick_info->name=ConstantString(name);
   magick_info->description=ConstantString(description);
   magick_info->flags=CoderAdjoinFlag | CoderBlobSupportFlag |
@@ -869,6 +866,64 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   G e t M a g i c k M o d u l e N a m e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  GetMagickModuleName() returns the magick module name.
+%
+%  The format of the GetMagickModuleName method is:
+%
+%      const char *GetMagickModuleName(const MagickInfo *magick_info)
+%
+%  A description of each parameter follows:
+%
+%    o magick_info:  The magick info.
+%
+*/
+MagickExport const char *GetMagickModuleName(const MagickInfo *magick_info)
+{
+  assert(magick_info != (MagickInfo *) NULL);
+  assert(magick_info->signature == MagickCoreSignature);
+  return(magick_info->magick_module);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
++   G e t M a g i c k N a m e                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  GetMagickName() returns the magick name.
+%
+%  The format of the GetMagickName method is:
+%
+%      const char *GetMagickName(const MagickInfo *magick_info)
+%
+%  A description of each parameter follows:
+%
+%    o magick_info:  The magick info.
+%
+*/
+MagickExport const char *GetMagickName(const MagickInfo *magick_info)
+{
+  assert(magick_info != (MagickInfo *) NULL);
+  assert(magick_info->signature == MagickCoreSignature);
+  return(magick_info->name);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   G e t M a g i c k P r e c i s i o n                                       %
 %                                                                             %
 %                                                                             %
@@ -1015,8 +1070,8 @@
     *p;
 
   p=(MagickInfo *) magick_info;
-  if (p->module != (char *) NULL)
-    p->module=DestroyString(p->module);
+  if (p->magick_module != (char *) NULL)
+    p->magick_module=DestroyString(p->magick_module);
   if (p->note != (char *) NULL)
     p->note=DestroyString(p->note);
   if (p->mime_type != (char *) NULL)
@@ -1153,14 +1208,16 @@
 #if defined(MAGICKCORE_MODULES_SUPPORT)
     {
       char
-        module[MagickPathExtent];
+        magick_module[MagickPathExtent];
 
-      *module='\0';
-      if (magick_info[i]->module != (char *) NULL)
-        (void) CopyMagickString(module,magick_info[i]->module,MagickPathExtent);
-      (void) ConcatenateMagickString(module,"          ",MagickPathExtent);
-      module[9]='\0';
-      (void) FormatLocaleFile(file,"%9s ",module);
+      *magick_module='\0';
+      if (magick_info[i]->magick_module != (char *) NULL)
+        (void) CopyMagickString(magick_module,magick_info[i]->magick_module,
+          MagickPathExtent);
+      (void) ConcatenateMagickString(magick_module,"          ",
+        MagickPathExtent);
+      magick_module[9]='\0';
+      (void) FormatLocaleFile(file,"%9s ",magick_module);
     }
 #endif
     (void) FormatLocaleFile(file,"%c%c%c ",magick_info[i]->decoder ? 'r' : '-',
@@ -1209,9 +1266,10 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  IsMagickCoreInstantiated() returns MagickTrue if the ImageMagick environment
-%  is currently instantiated:  MagickCoreGenesis() has been called but
-%  MagickDestroy() has not.
+%  IsMagickCoreInstantiated() returns MagickFalse if the ImageMagick
+%  environment has not been instantiated; the ImageMagick environment
+%  has been instantiated when MagickCoreGenesis() has been called but
+%  MagickDestroy() has not been called.
 %
 %  The format of the IsMagickCoreInstantiated method is:
 %
@@ -1220,7 +1278,7 @@
 */
 MagickExport MagickBooleanType IsMagickCoreInstantiated(void)
 {
-  return(instantiate_magickcore);
+  return(magickcore_instantiated);
 }
 
 /*
@@ -1365,14 +1423,6 @@
   if (signal_number == SIGFPE)
     abort();
 #endif
-#if defined(SIGXCPU)
-  if (signal_number == SIGXCPU)
-    abort();
-#endif
-#if defined(SIGXFSZ)
-  if (signal_number == SIGXFSZ)
-    abort();
-#endif
 #if defined(SIGSEGV)
   if (signal_number == SIGSEGV)
     abort();
@@ -1388,10 +1438,6 @@
   if (signal_number == SIGINT)
     _exit(signal_number);
 #endif
-#if defined(SIGBUS)
-  if (signal_number == SIGBUS)
-    _exit(signal_number);
-#endif
 #if defined(MAGICKCORE_HAVE_RAISE)
   if (signal_handlers[signal_number] != MagickSignalHandler)
     raise(signal_number);
@@ -1427,14 +1473,10 @@
   /*
     Initialize the Magick environment.
   */
-  InitializeMagickMutex();
-  LockMagickMutex();
-  if (instantiate_magickcore != MagickFalse)
-    {
-      UnlockMagickMutex();
-      return;
-    }
+  if (magickcore_instantiated != MagickFalse)
+    return;
   (void) SemaphoreComponentGenesis();
+  (void) ExceptionComponentGenesis();
   (void) LogComponentGenesis();
   (void) LocaleComponentGenesis();
   (void) RandomComponentGenesis();
@@ -1514,7 +1556,7 @@
   */
   (void) ConfigureComponentGenesis();
   (void) PolicyComponentGenesis();
-#if defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   (void) ZeroConfigurationPolicy;
 #endif
   (void) CacheComponentGenesis();
@@ -1535,8 +1577,7 @@
 #endif
   (void) RegistryComponentGenesis();
   (void) MonitorComponentGenesis();
-  instantiate_magickcore=MagickTrue;
-  UnlockMagickMutex();
+  magickcore_instantiated=MagickTrue;
 }
 
 /*
@@ -1559,13 +1600,8 @@
 */
 MagickExport void MagickCoreTerminus(void)
 {
-  InitializeMagickMutex();
-  LockMagickMutex();
-  if (instantiate_magickcore == MagickFalse)
-    {
-      UnlockMagickMutex();
-      return;
-    }
+  if (magickcore_instantiated == MagickFalse)
+    return;
   MonitorComponentTerminus();
   RegistryComponentTerminus();
 #if defined(MAGICKCORE_X11_DELEGATE)
@@ -1601,9 +1637,9 @@
   RandomComponentTerminus();
   LocaleComponentTerminus();
   LogComponentTerminus();
-  instantiate_magickcore=MagickFalse;
-  UnlockMagickMutex();
+  ExceptionComponentTerminus();
   SemaphoreComponentTerminus();
+  magickcore_instantiated=MagickFalse;
 }
 
 /*
diff --git a/MagickCore/magick.h b/MagickCore/magick.h
index 2e8a59b..af55706 100644
--- a/MagickCore/magick.h
+++ b/MagickCore/magick.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -25,6 +25,12 @@
 #include <stdarg.h>
 #include "MagickCore/semaphore.h"
 
+#if defined(__cplusplus) || defined(c_plusplus)
+# define magick_module  _module   /* reserved word in C++(20) */
+#else
+# define magick_module  module
+#endif
+
 typedef enum
 {
   UndefinedFormatType,
@@ -66,7 +72,7 @@
     *version,
     *mime_type,
     *note,
-    *module;
+    *magick_module;
 
   DecodeImageHandler
     *decoder;
@@ -101,7 +107,9 @@
 
 extern MagickExport const char
   *GetMagickDescription(const MagickInfo *),
-  *GetMagickMimeType(const MagickInfo *);
+  *GetMagickMimeType(const MagickInfo *),
+  *GetMagickModuleName(const MagickInfo *),
+  *GetMagickName(const MagickInfo *);
 
 extern MagickExport DecodeImageHandler
   *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
diff --git a/MagickCore/matrix-private.h b/MagickCore/matrix-private.h
index e449f5e..89a5734 100644
--- a/MagickCore/matrix-private.h
+++ b/MagickCore/matrix-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/matrix.c b/MagickCore/matrix.c
index 2e595b3..7d94fc7 100644
--- a/MagickCore/matrix.c
+++ b/MagickCore/matrix.c
@@ -17,7 +17,7 @@
 %                              August 2007                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -878,8 +878,7 @@
   double
     max_value,
     min_value,
-    scale_factor,
-    value;
+    scale_factor;
 
   Image
     *image;
@@ -899,9 +898,8 @@
   /*
     Determine range of matrix.
   */
-  (void) GetMatrixElement(matrix_info,0,0,&value);
-  min_value=value;
-  max_value=value;
+  (void) GetMatrixElement(matrix_info,0,0,&min_value);
+  max_value=min_value;
   for (y=0; y < (ssize_t) matrix_info->rows; y++)
   {
     register ssize_t
@@ -909,6 +907,9 @@
 
     for (x=0; x < (ssize_t) matrix_info->columns; x++)
     {
+      double
+        value;
+
       if (GetMatrixElement(matrix_info,x,y,&value) == MagickFalse)
         continue;
       if (value < min_value)
diff --git a/MagickCore/matrix.h b/MagickCore/matrix.h
index c5a78e7..0d7f970 100644
--- a/MagickCore/matrix.h
+++ b/MagickCore/matrix.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/memory-private.h b/MagickCore/memory-private.h
index f092a8f..405a531 100644
--- a/MagickCore/memory-private.h
+++ b/MagickCore/memory-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -18,19 +18,19 @@
 #ifndef MAGICKCORE_MEMORY_PRIVATE_H
 #define MAGICKCORE_MEMORY_PRIVATE_H
 
+#include "MagickCore/magick-config.h"
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
 
-#include "MagickCore/exception-private.h"
-
 #if defined(__powerpc__)
-#  define CACHE_LINE_SIZE  (16*sizeof(void *))
+#  define CACHE_LINE_SIZE  (16 * MAGICKCORE_SIZEOF_VOID_P)
 #else
-#  define CACHE_LINE_SIZE  (8*sizeof(void *))
+#  define CACHE_LINE_SIZE  (8 * MAGICKCORE_SIZEOF_VOID_P)
 #endif
 
-#define CacheAlign(size)  ((size) < CACHE_LINE_SIZE ? CACHE_LINE_SIZE : (size))
+#define CACHE_ALIGNED(n)  MAGICKCORE_ALIGN_UP(n,CACHE_LINE_SIZE)
 
 #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
 #if !defined(__ICC)
@@ -43,30 +43,10 @@
 #define MagickAssumeAligned(address)  (address)
 #endif
 
-MagickExport MagickBooleanType 
-  HeapOverflowSanityCheck(const size_t,const size_t) magick_alloc_sizes(1,2);
-
-MagickExport size_t
-  GetMaxMemoryRequest(void);
-
 extern MagickPrivate void
   ResetMaxMemoryRequest(void),
   ResetVirtualAnonymousMemory(void);
 
-static inline void *AcquireCriticalMemory(const size_t size)
-{
-  register void
-    *memory;
- 
-  /*
-    Fail if memory request cannot be fulfilled.
-  */
-  memory=AcquireMagickMemory(size);
-  if (memory == (void *) NULL)
-    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
-  return(memory);
-}
-
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/memory.c b/MagickCore/memory.c
index ae135c0..b5bd153 100644
--- a/MagickCore/memory.c
+++ b/MagickCore/memory.c
@@ -17,7 +17,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -43,7 +43,7 @@
 %  sizes.  It is based on the paper, "Fast Memory Allocation using Lazy Fits."
 %  written by Yoo C. Chung.
 %
-%  By default, ANSI memory methods are called (e.g. malloc).  Use the
+%  By default, C's standard library is used (e.g. malloc);  use the
 %  custom memory allocator by defining MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT
 %  to allocate memory with private anonymous mapping rather than from the
 %  heap.
@@ -73,12 +73,10 @@
 #define BlockFooter(block,size) \
   ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t)))
 #define BlockHeader(block)  ((size_t *) (block)-1)
-#define BlockSize  4096
 #define BlockThreshold  1024
 #define MaxBlockExponent  16
 #define MaxBlocks ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1)
 #define MaxSegments  1024
-#define MemoryGuard  ((0xdeadbeef << 31)+0xdeafdeed)
 #define NextBlock(block)  ((char *) (block)+SizeOfBlock(block))
 #define NextBlockInList(block)  (*(void **) (block))
 #define PreviousBlock(block)  ((char *) (block)-(*((size_t *) (block)-2)))
@@ -126,6 +124,12 @@
 
   DestroyMemoryHandler
     destroy_memory_handler;
+
+  AcquireAlignedMemoryHandler
+    acquire_aligned_memory_handler;
+
+  RelinquishAlignedMemoryHandler
+    relinquish_aligned_memory_handler;
 } MagickMemoryMethods;
 
 struct _MemoryInfo
@@ -174,10 +178,12 @@
 {
   return malloc(size);
 }
+
 static void* MSCRealloc(void* ptr, size_t size)
 {
-  return realloc(ptr, size);
+  return realloc(ptr,size);
 }
+
 static void MSCFree(void* ptr)
 {
   free(ptr);
@@ -190,12 +196,14 @@
 #if defined _MSC_VER
     (AcquireMemoryHandler) MSCMalloc,
     (ResizeMemoryHandler) MSCRealloc,
-    (DestroyMemoryHandler) MSCFree
+    (DestroyMemoryHandler) MSCFree,
 #else
     (AcquireMemoryHandler) malloc,
     (ResizeMemoryHandler) realloc,
-    (DestroyMemoryHandler) free
+    (DestroyMemoryHandler) free,
 #endif
+    (AcquireAlignedMemoryHandler) NULL,
+    (RelinquishAlignedMemoryHandler) NULL
   };
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
 static MemoryPool
@@ -225,8 +233,8 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  AcquireAlignedMemory() returns a pointer to a block of memory at least size
-%  bytes whose address is aligned on a cache line or page boundary.
+%  AcquireAlignedMemory() returns a pointer to a block of memory whose size is
+%  at least (count*quantum) bytes, and whose address is aligned on a cache line.
 %
 %  The format of the AcquireAlignedMemory method is:
 %
@@ -234,68 +242,109 @@
 %
 %  A description of each parameter follows:
 %
-%    o count: the number of quantum elements to allocate.
+%    o count: the number of objects to allocate contiguously.
 %
-%    o quantum: the number of bytes in each quantum.
+%    o quantum: the size (in bytes) of each object.
 %
 */
-MagickExport void *AcquireAlignedMemory(const size_t count,const size_t quantum)
+#if MAGICKCORE_HAVE_STDC_ALIGNED_ALLOC
+#define AcquireAlignedMemory_Actual AcquireAlignedMemory_STDC
+static inline void *AcquireAlignedMemory_STDC(const size_t size)
 {
-#define AlignedExtent(size,alignment) \
-  (((size)+((alignment)-1)) & ~((alignment)-1))
-#define AlignedPowerOf2(x)  ((((x) - 1) & (x)) == 0)
-
   size_t
-    alignment,
-    extent,
-    size;
+    extent = CACHE_ALIGNED(size);
 
+  if (extent < size)
+    {
+      errno=ENOMEM;
+      return(NULL);
+    }
+  return(aligned_alloc(CACHE_LINE_SIZE,extent));
+}
+#elif defined(MAGICKCORE_HAVE_POSIX_MEMALIGN)
+#define AcquireAlignedMemory_Actual AcquireAlignedMemory_POSIX
+static inline void *AcquireAlignedMemory_POSIX(const size_t size)
+{
   void
     *memory;
 
-  if (HeapOverflowSanityCheck(count,quantum) != MagickFalse)
-    return((void *) NULL);
-  memory=NULL;
-  size=count*quantum;
-  alignment=CACHE_LINE_SIZE;
-  extent=AlignedExtent(size,alignment);
-  if ((size == 0) || (extent < size))
-    return((void *) NULL);
-#if defined(MAGICKCORE_HAVE_POSIX_MEMALIGN)
-  if (posix_memalign(&memory,alignment,extent) != 0)
-    memory=NULL;
-#elif defined(MAGICKCORE_HAVE__ALIGNED_MALLOC)
-  memory=_aligned_malloc(extent,alignment);
-#else
-  {
-    void
-      *p;
-
-    if ((alignment == 0) || (alignment % sizeof(void *) != 0) ||
-        (AlignedPowerOf2(alignment/sizeof(void *)) == 0))
-      {
-        errno=EINVAL;
-        return((void *) NULL);
-      }
-    if (size > (SIZE_MAX-alignment-sizeof(void *)-1))
-      {
-        errno=ENOMEM;
-        return((void *) NULL);
-      }
-    extent=(size+alignment-1)+sizeof(void *);
-    if (extent > size)
-      {
-        p=malloc(extent);
-        if (p != NULL)
-          {
-            memory=(void *) AlignedExtent((size_t) p+sizeof(void *),alignment);
-            *((void **) memory-1)=p;
-          }
-      }
-  }
-#endif
+  if (posix_memalign(&memory,CACHE_LINE_SIZE,size))
+    return(NULL);
   return(memory);
 }
+#elif defined(MAGICKCORE_HAVE__ALIGNED_MALLOC)
+#define AcquireAlignedMemory_Actual AcquireAlignedMemory_WinAPI
+static inline void *AcquireAlignedMemory_WinAPI(const size_t size)
+{
+  return(_aligned_malloc(size,CACHE_LINE_SIZE));
+}
+#else
+#define ALIGNMENT_OVERHEAD \
+  (MAGICKCORE_MAX_ALIGNMENT_PADDING(CACHE_LINE_SIZE) + MAGICKCORE_SIZEOF_VOID_P)
+static inline void *reserve_space_for_actual_base_address(void *const p)
+{
+  return((void **) p+1);
+}
+
+static inline void **pointer_to_space_for_actual_base_address(void *const p)
+{
+  return((void **) p-1);
+}
+
+static inline void *actual_base_address(void *const p)
+{
+  return(*pointer_to_space_for_actual_base_address(p));
+}
+
+static inline void *align_to_cache(void *const p)
+{
+  return((void *) CACHE_ALIGNED((MagickAddressType) p));
+}
+
+static inline void *adjust(void *const p)
+{
+  return(align_to_cache(reserve_space_for_actual_base_address(p)));
+}
+
+#define AcquireAlignedMemory_Actual AcquireAlignedMemory_Generic
+static inline void *AcquireAlignedMemory_Generic(const size_t size)
+{
+  size_t
+    extent;
+
+  void
+    *memory,
+    *p;
+
+  #if SIZE_MAX < ALIGNMENT_OVERHEAD
+    #error "CACHE_LINE_SIZE is way too big."
+  #endif
+  extent=(size + ALIGNMENT_OVERHEAD);
+  if (extent <= size)
+    {
+      errno=ENOMEM;
+      return(NULL);
+    }
+  p=AcquireMagickMemory(extent);
+  if (p == NULL)
+    return(NULL);
+  memory=adjust(p);
+  *pointer_to_space_for_actual_base_address(memory)=p;
+  return(memory);
+}
+#endif
+
+MagickExport void *AcquireAlignedMemory(const size_t count,const size_t quantum)
+{
+  size_t
+    size;
+
+  if (HeapOverflowSanityCheckGetSize(count,quantum,&size) != MagickFalse)
+    return(NULL);
+  if (memory_methods.acquire_aligned_memory_handler != (AcquireAlignedMemoryHandler) NULL)
+    return(memory_methods.acquire_aligned_memory_handler(size,CACHE_LINE_SIZE));
+  return(AcquireAlignedMemory_Actual(size));
+}
 
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
 /*
@@ -520,6 +569,48 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   A c q u i r e C r i t i c a l M e m o r y                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  AcquireCriticalMemory() is just like AcquireMagickMemory(), throws a fatal
+%  exception if the memory cannot be acquired.
+%
+%  That is, AcquireCriticalMemory() returns a pointer to a block of memory that
+%  is at least size bytes, and that is suitably aligned for any use; however,
+%  if this is not possible, it throws an exception and terminates the program
+%  as unceremoniously as possible.
+%
+%  The format of the AcquireCriticalMemory method is:
+%
+%      void *AcquireCriticalMemory(const size_t size)
+%
+%  A description of each parameter follows:
+%
+%    o size: the size (in bytes) of the memory to allocate.
+%
+*/
+MagickExport void *AcquireCriticalMemory(const size_t size)
+{
+  register void
+    *memory;
+
+  /*
+    Fail if memory request cannot be fulfilled.
+  */
+  memory=AcquireMagickMemory(size);
+  if (memory == (void *) NULL)
+    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+  return(memory);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   A c q u i r e Q u a n t u m M e m o r y                                   %
 %                                                                             %
 %                                                                             %
@@ -535,20 +626,19 @@
 %
 %  A description of each parameter follows:
 %
-%    o count: the number of quantum elements to allocate.
+%    o count: the number of objects to allocate contiguously.
 %
-%    o quantum: the number of bytes in each quantum.
+%    o quantum: the size (in bytes) of each object.
 %
 */
 MagickExport void *AcquireQuantumMemory(const size_t count,const size_t quantum)
 {
   size_t
-    extent;
+    size;
 
-  if (HeapOverflowSanityCheck(count,quantum) != MagickFalse)
+  if (HeapOverflowSanityCheckGetSize(count,quantum,&size) != MagickFalse)
     return((void *) NULL);
-  extent=count*quantum;
-  return(AcquireMagickMemory(extent));
+  return(AcquireMagickMemory(size));
 }
 
 /*
@@ -572,12 +662,11 @@
 %
 %  A description of each parameter follows:
 %
-%    o count: the number of quantum elements to allocate.
+%    o count: the number of objects to allocate contiguously.
 %
-%    o quantum: the number of bytes in each quantum.
+%    o quantum: the size (in bytes) of each object.
 %
 */
-
 MagickExport MemoryInfo *AcquireVirtualMemory(const size_t count,
   const size_t quantum)
 {
@@ -588,9 +677,9 @@
     *memory_info;
 
   size_t
-    extent;
+    size;
 
-  if (HeapOverflowSanityCheck(count,quantum) != MagickFalse)
+  if (HeapOverflowSanityCheckGetSize(count,quantum,&size) != MagickFalse)
     return((MemoryInfo *) NULL);
   if (virtual_anonymous_memory == 0)
     {
@@ -612,13 +701,12 @@
   if (memory_info == (MemoryInfo *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) memset(memory_info,0,sizeof(*memory_info));
-  extent=count*quantum;
-  memory_info->length=extent;
+  memory_info->length=size;
   memory_info->signature=MagickCoreSignature;
   if ((virtual_anonymous_memory == 1) &&
-      ((count*quantum) <= GetMaxMemoryRequest()))
+      (size <= GetMaxMemoryRequest()))
     {
-      memory_info->blob=AcquireAlignedMemory(1,extent);
+      memory_info->blob=AcquireAlignedMemory(1,size);
       if (memory_info->blob != NULL)
         memory_info->type=AlignedVirtualMemory;
     }
@@ -628,8 +716,8 @@
         Acquire anonymous memory map.
       */
       memory_info->blob=NULL;
-      if ((count*quantum) <= GetMaxMemoryRequest())
-        memory_info->blob=MapBlob(-1,IOMode,0,extent);
+      if (size <= GetMaxMemoryRequest())
+        memory_info->blob=MapBlob(-1,IOMode,0,size);
       if (memory_info->blob != NULL)
         memory_info->type=MapVirtualMemory;
       else
@@ -646,15 +734,15 @@
               MagickOffsetType
                 offset;
 
-              offset=(MagickOffsetType) lseek(file,extent-1,SEEK_SET);
-              if ((offset == (MagickOffsetType) (extent-1)) &&
+              offset=(MagickOffsetType) lseek(file,size-1,SEEK_SET);
+              if ((offset == (MagickOffsetType) (size-1)) &&
                   (write(file,"",1) == 1))
                 {
 #if !defined(MAGICKCORE_HAVE_POSIX_FALLOCATE)
-                  memory_info->blob=MapBlob(file,IOMode,0,extent);
+                  memory_info->blob=MapBlob(file,IOMode,0,size);
 #else
-                  if (posix_fallocate(file,0,extent) == 0)
-                    memory_info->blob=MapBlob(file,IOMode,0,extent);
+                  if (posix_fallocate(file,0,size) == 0)
+                    memory_info->blob=MapBlob(file,IOMode,0,size);
 #endif
                   if (memory_info->blob != NULL)
                     memory_info->type=MapVirtualMemory;
@@ -671,7 +759,7 @@
     }
   if (memory_info->blob == NULL)
     {
-      memory_info->blob=AcquireQuantumMemory(1,extent);
+      memory_info->blob=AcquireQuantumMemory(1,size);
       if (memory_info->blob != NULL)
         memory_info->type=UnalignedVirtualMemory;
     }
@@ -697,8 +785,8 @@
 %
 %  The format of the CopyMagickMemory method is:
 %
-%      void *CopyMagickMemory(void *destination,const void *source,
-%        const size_t size)
+%      void *CopyMagickMemory(void *magick_restrict destination,
+%        const void *magick_restrict source,const size_t size)
 %
 %  A description of each parameter follows:
 %
@@ -709,8 +797,8 @@
 %    o size: the size of the memory in bytes to allocate.
 %
 */
-MagickExport void *CopyMagickMemory(void *destination,const void *source,
-  const size_t size)
+MagickExport void *CopyMagickMemory(void *magick_restrict destination,
+  const void *magick_restrict source,const size_t size)
 {
   register const unsigned char
     *p;
@@ -972,45 +1060,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   H e a p O v e r f l o w S a n i t y C h e c k                             %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  HeapOverflowSanityCheck() returns MagickTrue if the heap allocation request
-%  does not exceed the maximum limits of a size_t otherwise MagickFalse.
-%
-%  The format of the HeapOverflowSanityCheck method is:
-%
-%      MagickBooleanType HeapOverflowSanityCheck(const size_t count,
-%        const size_t quantum)
-%
-%  A description of each parameter follows:
-%
-%    o size: the size of the memory in bytes we require.
-%
-*/
-MagickExport MagickBooleanType HeapOverflowSanityCheck(const size_t count,
-  const size_t quantum)
-{
-  size_t
-    size;
-
-  size=count*quantum;
-  if ((count == 0) || (quantum != (size/count)))
-    {
-      errno=ENOMEM;
-      return(MagickTrue);
-    }
-  return(MagickFalse);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 %   R e l i n q u i s h A l i g n e d M e m o r y                             %
 %                                                                             %
 %                                                                             %
@@ -1033,12 +1082,17 @@
 {
   if (memory == (void *) NULL)
     return((void *) NULL);
-#if defined(MAGICKCORE_HAVE_POSIX_MEMALIGN)
+  if (memory_methods.relinquish_aligned_memory_handler != (RelinquishAlignedMemoryHandler) NULL)
+    {
+      memory_methods.relinquish_aligned_memory_handler(memory);
+      return(NULL);
+    }
+#if MAGICKCORE_HAVE_STDC_ALIGNED_ALLOC || defined(MAGICKCORE_HAVE_POSIX_MEMALIGN)
   free(memory);
 #elif defined(MAGICKCORE_HAVE__ALIGNED_MALLOC)
   _aligned_free(memory);
 #else
-  free(*((void **) memory-1));
+  RelinquishMagickMemory(actual_base_address(memory));
 #endif
   return(NULL);
 }
@@ -1346,24 +1400,59 @@
 %
 %    o memory: A pointer to a memory allocation.
 %
-%    o count: the number of quantum elements to allocate.
+%    o count: the number of objects to allocate contiguously.
 %
-%    o quantum: the number of bytes in each quantum.
+%    o quantum: the size (in bytes) of each object.
 %
 */
 MagickExport void *ResizeQuantumMemory(void *memory,const size_t count,
   const size_t quantum)
 {
   size_t
-    extent;
+    size;
 
-  if (HeapOverflowSanityCheck(count,quantum) != MagickFalse)
+  if (HeapOverflowSanityCheckGetSize(count,quantum,&size) != MagickFalse)
     {
       memory=RelinquishMagickMemory(memory);
       return((void *) NULL);
     }
-  extent=count*quantum;
-  return(ResizeMagickMemory(memory,extent));
+  return(ResizeMagickMemory(memory,size));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   S e t M a g i c k A l i g n e d M e m o r y M e t h o d s                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  SetMagickAlignedMemoryMethods() sets the methods to acquire and relinquish
+%  aligned memory.
+%
+%  The format of the SetMagickAlignedMemoryMethods() method is:
+%
+%      SetMagickAlignedMemoryMethods(
+%        AcquireAlignedMemoryHandler acquire_aligned_memory_handler,
+%        RelinquishAlignedMemoryHandler relinquish_aligned_memory_handler)
+%
+%  A description of each parameter follows:
+%
+%    o acquire_memory_handler: method to acquire aligned memory.
+%
+%    o relinquish_aligned_memory_handler: method to relinquish aligned memory.
+%
+*/
+MagickExport void SetMagickAlignedMemoryMethods(
+  AcquireAlignedMemoryHandler acquire_aligned_memory_handler,
+  RelinquishAlignedMemoryHandler relinquish_aligned_memory_handler)
+{
+  memory_methods.acquire_aligned_memory_handler=acquire_aligned_memory_handler;
+  memory_methods.relinquish_aligned_memory_handler=
+      relinquish_aligned_memory_handler;
 }
 
 /*
diff --git a/MagickCore/memory_.h b/MagickCore/memory_.h
index 189c44c..1c286c7 100644
--- a/MagickCore/memory_.h
+++ b/MagickCore/memory_.h
@@ -1,12 +1,12 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
-  
+
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
-  
+
     https://imagemagick.org/script/license.php
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -18,6 +18,9 @@
 #ifndef MAGICKCORE_MEMORY_H
 #define MAGICKCORE_MEMORY_H
 
+#include <errno.h>
+#include <assert.h>
+
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
@@ -28,21 +31,27 @@
 typedef void
   *(*AcquireMemoryHandler)(size_t) magick_alloc_size(1),
   (*DestroyMemoryHandler)(void *),
-  *(*ResizeMemoryHandler)(void *,size_t) magick_alloc_size(2);
+  *(*ResizeMemoryHandler)(void *,size_t) magick_alloc_size(2),
+  *(*AcquireAlignedMemoryHandler)(const size_t,const size_t),
+  (*RelinquishAlignedMemoryHandler)(void *);
 
 extern MagickExport MemoryInfo
   *AcquireVirtualMemory(const size_t,const size_t) magick_alloc_sizes(1,2),
   *RelinquishVirtualMemory(MemoryInfo *);
 
+extern MagickExport size_t
+  GetMaxMemoryRequest(void);
+
 extern MagickExport void
   *AcquireAlignedMemory(const size_t,const size_t)
     magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
   *AcquireMagickMemory(const size_t) magick_attribute((__malloc__))
     magick_alloc_size(1),
+  *AcquireCriticalMemory(const size_t),
   *AcquireQuantumMemory(const size_t,const size_t)
     magick_attribute((__malloc__)) magick_alloc_sizes(1,2),
-  *CopyMagickMemory(void *,const void *,const size_t)
-    magick_attribute((__nonnull__)),
+  *CopyMagickMemory(void *magick_restrict,const void *magick_restrict,
+    const size_t) magick_attribute((__nonnull__)),
   DestroyMagickMemory(void),
   GetMagickMemoryMethods(AcquireMemoryHandler *,ResizeMemoryHandler *,
     DestroyMemoryHandler *),
@@ -54,9 +63,43 @@
     magick_attribute((__malloc__)) magick_alloc_size(2),
   *ResizeQuantumMemory(void *,const size_t,const size_t)
     magick_attribute((__malloc__)) magick_alloc_sizes(2,3),
+  SetMagickAlignedMemoryMethods(AcquireAlignedMemoryHandler,
+    RelinquishAlignedMemoryHandler),
   SetMagickMemoryMethods(AcquireMemoryHandler,ResizeMemoryHandler,
     DestroyMemoryHandler);
 
+static inline MagickBooleanType HeapOverflowSanityCheck(
+  const size_t count,const size_t quantum)
+{
+  if ((count == 0) || (quantum == 0))
+    return(MagickTrue);
+  if (quantum != ((count*quantum)/count))
+    {
+      errno=ENOMEM;
+      return(MagickTrue);
+    }
+  return(MagickFalse);
+}
+
+static inline MagickBooleanType HeapOverflowSanityCheckGetSize(
+  const size_t count,const size_t quantum,size_t *const extent)
+{
+  size_t
+    length;
+
+  if ((count == 0) || (quantum == 0))
+    return(MagickTrue);
+  length=count*quantum;
+  if (quantum != (length/count))
+    {
+      errno=ENOMEM;
+      return(MagickTrue);
+    }
+  assert(extent != (size_t *const) NULL);
+  *extent=length;
+  return(MagickFalse);
+}
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/method-attribute.h b/MagickCore/method-attribute.h
index f158347..b46c607 100644
--- a/MagickCore/method-attribute.h
+++ b/MagickCore/method-attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/methods.h b/MagickCore/methods.h
index 03d0353..61a20da 100644
--- a/MagickCore/methods.h
+++ b/MagickCore/methods.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -124,6 +124,7 @@
 #define CharcoalImage  PrependMagickMethod(CharcoalImage)
 #define ChopImage  PrependMagickMethod(ChopImage)
 #define ChopPathComponents  PrependMagickMethod(ChopPathComponents)
+#define CLAHEImage  PrependMagickMethod(CLAHEImage)
 #define ClampImage  PrependMagickMethod(ClampImage)
 #define ClearLinkedList  PrependMagickMethod(ClearLinkedList)
 #define ClipImagePath  PrependMagickMethod(ClipImagePath)
@@ -296,9 +297,12 @@
 #define EnhanceImage  PrependMagickMethod(EnhanceImage)
 #define EOFBlob  PrependMagickMethod(EOFBlob)
 #define EqualizeImage  PrependMagickMethod(EqualizeImage)
+#define ErrorBlob  PrependMagickMethod(ErrorBlob)
 #define EscapeString  PrependMagickMethod(EscapeString)
 #define EvaluateImage  PrependMagickMethod(EvaluateImage)
 #define EvaluateImages  PrependMagickMethod(EvaluateImages)
+#define ExceptionComponentGenesis  PrependMagickMethod(ExceptionComponentGenesis)
+#define ExceptionComponentTerminus  PrependMagickMethod(ExceptionComponentTerminus)
 #define ExcerptImage  PrependMagickMethod(ExcerptImage)
 #define ExpandAffine  PrependMagickMethod(ExpandAffine)
 #define ExpandFilename  PrependMagickMethod(ExpandFilename)
@@ -457,6 +461,7 @@
 #define GetMatrixColumns  PrependMagickMethod(GetMatrixColumns)
 #define GetMatrixElement  PrependMagickMethod(GetMatrixElement)
 #define GetMatrixRows  PrependMagickMethod(GetMatrixRows)
+#define GetMaxMemoryRequest  PrependMagickMethod(GetMaxMemoryRequest)
 #define GetMimeDescription  PrependMagickMethod(GetMimeDescription)
 #define GetMimeInfoList  PrependMagickMethod(GetMimeInfoList)
 #define GetMimeInfo  PrependMagickMethod(GetMimeInfo)
@@ -544,6 +549,7 @@
 #define GetStreamInfoClientData  PrependMagickMethod(GetStreamInfoClientData)
 #define GetStringInfoDatum  PrependMagickMethod(GetStringInfoDatum)
 #define GetStringInfoLength  PrependMagickMethod(GetStringInfoLength)
+#define GetStringInfoName  PrependMagickMethod(GetStringInfoName)
 #define GetStringInfoPath  PrependMagickMethod(GetStringInfoPath)
 #define GetThresholdMap  PrependMagickMethod(GetThresholdMap)
 #define GetTimerInfo  PrependMagickMethod(GetTimerInfo)
@@ -558,8 +564,8 @@
 #define GetVirtualMemoryBlob  PrependMagickMethod(GetVirtualMemoryBlob)
 #define GetVirtualMetacontentFromNexus  PrependMagickMethod(GetVirtualMetacontentFromNexus)
 #define GetVirtualMetacontent  PrependMagickMethod(GetVirtualMetacontent)
-#define GetVirtualPixelQueue  PrependMagickMethod(GetVirtualPixelQueue)
 #define GetVirtualPixelCacheNexus  PrependMagickMethod(GetVirtualPixelCacheNexus)
+#define GetVirtualPixelQueue  PrependMagickMethod(GetVirtualPixelQueue)
 #define GetVirtualPixelsNexus  PrependMagickMethod(GetVirtualPixelsNexus)
 #define GetVirtualPixels  PrependMagickMethod(GetVirtualPixels)
 #define GetXMLTreeAttribute  PrependMagickMethod(GetXMLTreeAttribute)
@@ -672,8 +678,10 @@
 #define LocaleCompare  PrependMagickMethod(LocaleCompare)
 #define LocaleComponentGenesis  PrependMagickMethod(LocaleComponentGenesis)
 #define LocaleComponentTerminus  PrependMagickMethod(LocaleComponentTerminus)
+#define LocaleLowercase  PrependMagickMethod(LocaleLowercase)
 #define LocaleLower  PrependMagickMethod(LocaleLower)
 #define LocaleNCompare  PrependMagickMethod(LocaleNCompare)
+#define LocaleUppercase  PrependMagickMethod(LocaleUppercase)
 #define LocaleUpper  PrependMagickMethod(LocaleUpper)
 #define LockSemaphoreInfo  PrependMagickMethod(LockSemaphoreInfo)
 #define LogComponentGenesis  PrependMagickMethod(LogComponentGenesis)
@@ -692,6 +700,8 @@
 #define MinMaxStretchImage  PrependMagickMethod(MinMaxStretchImage)
 #define ModifyImage  PrependMagickMethod(ModifyImage)
 #define ModulateImage  PrependMagickMethod(ModulateImage)
+#define MonitorComponentGenesis  PrependMagickMethod(MonitorComponentGenesis)
+#define MonitorComponentTerminus  PrependMagickMethod(MonitorComponentTerminus)
 #define MontageImageList  PrependMagickMethod(MontageImageList)
 #define MontageImages  PrependMagickMethod(MontageImages)
 #define MorphImages  PrependMagickMethod(MorphImages)
@@ -701,6 +711,7 @@
 #define MSBOrderLong  PrependMagickMethod(MSBOrderLong)
 #define MSBOrderShort  PrependMagickMethod(MSBOrderShort)
 #define MultilineCensus  PrependMagickMethod(MultilineCensus)
+#define MVGMacroCompare  PrependMagickMethod(MVGMacroCompare)
 #define NegateImage  PrependMagickMethod(NegateImage)
 #define NewImageList  PrependMagickMethod(NewImageList)
 #define NewImageView  PrependMagickMethod(NewImageView)
@@ -761,6 +772,7 @@
 #define RandomComponentGenesis  PrependMagickMethod(RandomComponentGenesis)
 #define RandomComponentTerminus  PrependMagickMethod(RandomComponentTerminus)
 #define RandomThresholdImage  PrependMagickMethod(RandomThresholdImage)
+#define RangeThresholdImage  PrependMagickMethod(RangeThresholdImage)
 #define ReadBlobByte  PrependMagickMethod(ReadBlobByte)
 #define ReadBlobDouble  PrependMagickMethod(ReadBlobDouble)
 #define ReadBlobFloat  PrependMagickMethod(ReadBlobFloat)
@@ -791,6 +803,132 @@
 #define ReferenceBlob  PrependMagickMethod(ReferenceBlob)
 #define ReferenceImage  PrependMagickMethod(ReferenceImage)
 #define ReferencePixelCache  PrependMagickMethod(ReferencePixelCache)
+#define RegisterAAIImage  PrependMagickMethod(RegisterAAIImage)
+#define RegisterARTImage  PrependMagickMethod(RegisterARTImage)
+#define RegisterAVSImage  PrependMagickMethod(RegisterAVSImage)
+#define RegisterBGRImage  PrependMagickMethod(RegisterBGRImage)
+#define RegisterBMPImage  PrependMagickMethod(RegisterBMPImage)
+#define RegisterBRAILLEImage  PrependMagickMethod(RegisterBRAILLEImage)
+#define RegisterCALSImage  PrependMagickMethod(RegisterCALSImage)
+#define RegisterCAPTIONImage  PrependMagickMethod(RegisterCAPTIONImage)
+#define RegisterCINImage  PrependMagickMethod(RegisterCINImage)
+#define RegisterCIPImage  PrependMagickMethod(RegisterCIPImage)
+#define RegisterCLIPImage  PrependMagickMethod(RegisterCLIPImage)
+#define RegisterCMYKImage  PrependMagickMethod(RegisterCMYKImage)
+#define RegisterCUBEImage  PrependMagickMethod(RegisterCUBEImage)
+#define RegisterCUTImage  PrependMagickMethod(RegisterCUTImage)
+#define RegisterDCMImage  PrependMagickMethod(RegisterDCMImage)
+#define RegisterDDSImage  PrependMagickMethod(RegisterDDSImage)
+#define RegisterDEBUGImage  PrependMagickMethod(RegisterDEBUGImage)
+#define RegisterDIBImage  PrependMagickMethod(RegisterDIBImage)
+#define RegisterDJVUImage  PrependMagickMethod(RegisterDJVUImage)
+#define RegisterDNGImage  PrependMagickMethod(RegisterDNGImage)
+#define RegisterDOTImage  PrependMagickMethod(RegisterDOTImage)
+#define RegisterDPXImage  PrependMagickMethod(RegisterDPXImage)
+#define RegisterEPTImage  PrependMagickMethod(RegisterEPTImage)
+#define RegisterEXRImage  PrependMagickMethod(RegisterEXRImage)
+#define RegisterFAXImage  PrependMagickMethod(RegisterFAXImage)
+#define RegisterFITSImage  PrependMagickMethod(RegisterFITSImage)
+#define RegisterGIFImage  PrependMagickMethod(RegisterGIFImage)
+#define RegisterGRADIENTImage  PrependMagickMethod(RegisterGRADIENTImage)
+#define RegisterGRAYImage  PrependMagickMethod(RegisterGRAYImage)
+#define RegisterHALDImage  PrependMagickMethod(RegisterHALDImage)
+#define RegisterHDRImage  PrependMagickMethod(RegisterHDRImage)
+#define RegisterHEICImage  PrependMagickMethod(RegisterHEICImage)
+#define RegisterHISTOGRAMImage  PrependMagickMethod(RegisterHISTOGRAMImage)
+#define RegisterHRZImage  PrependMagickMethod(RegisterHRZImage)
+#define RegisterHTMLImage  PrependMagickMethod(RegisterHTMLImage)
+#define RegisterICONImage  PrependMagickMethod(RegisterICONImage)
+#define RegisterINFOImage  PrependMagickMethod(RegisterINFOImage)
+#define RegisterINLINEImage  PrependMagickMethod(RegisterINLINEImage)
+#define RegisterIPLImage  PrependMagickMethod(RegisterIPLImage)
+#define RegisterJBIGImage  PrependMagickMethod(RegisterJBIGImage)
+#define RegisterJNXImage  PrependMagickMethod(RegisterJNXImage)
+#define RegisterJP2Image  PrependMagickMethod(RegisterJP2Image)
+#define RegisterJPEGImage  PrependMagickMethod(RegisterJPEGImage)
+#define RegisterJSONImage  PrependMagickMethod(RegisterJSONImage)
+#define RegisterLABELImage  PrependMagickMethod(RegisterLABELImage)
+#define RegisterMACImage  PrependMagickMethod(RegisterMACImage)
+#define RegisterMAPImage  PrependMagickMethod(RegisterMAPImage)
+#define RegisterMASKImage  PrependMagickMethod(RegisterMASKImage)
+#define RegisterMATImage  PrependMagickMethod(RegisterMATImage)
+#define RegisterMATTEImage  PrependMagickMethod(RegisterMATTEImage)
+#define RegisterMETAImage  PrependMagickMethod(RegisterMETAImage)
+#define RegisterMIFFImage  PrependMagickMethod(RegisterMIFFImage)
+#define RegisterMONOImage  PrependMagickMethod(RegisterMONOImage)
+#define RegisterMPCImage  PrependMagickMethod(RegisterMPCImage)
+#define RegisterMPEGImage  PrependMagickMethod(RegisterMPEGImage)
+#define RegisterMPRImage  PrependMagickMethod(RegisterMPRImage)
+#define RegisterMSLImage  PrependMagickMethod(RegisterMSLImage)
+#define RegisterMTVImage  PrependMagickMethod(RegisterMTVImage)
+#define RegisterMVGImage  PrependMagickMethod(RegisterMVGImage)
+#define RegisterNULLImage  PrependMagickMethod(RegisterNULLImage)
+#define RegisterOTBImage  PrependMagickMethod(RegisterOTBImage)
+#define RegisterPALMImage  PrependMagickMethod(RegisterPALMImage)
+#define RegisterPANGOImage  PrependMagickMethod(RegisterPANGOImage)
+#define RegisterPATTERNImage  PrependMagickMethod(RegisterPATTERNImage)
+#define RegisterPCDImage  PrependMagickMethod(RegisterPCDImage)
+#define RegisterPCLImage  PrependMagickMethod(RegisterPCLImage)
+#define RegisterPCXImage  PrependMagickMethod(RegisterPCXImage)
+#define RegisterPDBImage  PrependMagickMethod(RegisterPDBImage)
+#define RegisterPDFImage  PrependMagickMethod(RegisterPDFImage)
+#define RegisterPESImage  PrependMagickMethod(RegisterPESImage)
+#define RegisterPGXImage  PrependMagickMethod(RegisterPGXImage)
+#define RegisterPICTImage  PrependMagickMethod(RegisterPICTImage)
+#define RegisterPIXImage  PrependMagickMethod(RegisterPIXImage)
+#define RegisterPLASMAImage  PrependMagickMethod(RegisterPLASMAImage)
+#define RegisterPNGImage  PrependMagickMethod(RegisterPNGImage)
+#define RegisterPNMImage  PrependMagickMethod(RegisterPNMImage)
+#define RegisterPS2Image  PrependMagickMethod(RegisterPS2Image)
+#define RegisterPS3Image  PrependMagickMethod(RegisterPS3Image)
+#define RegisterPSDImage  PrependMagickMethod(RegisterPSDImage)
+#define RegisterPSImage  PrependMagickMethod(RegisterPSImage)
+#define RegisterPWPImage  PrependMagickMethod(RegisterPWPImage)
+#define RegisterRAWImage  PrependMagickMethod(RegisterRAWImage)
+#define RegisterRGBImage  PrependMagickMethod(RegisterRGBImage)
+#define RegisterRGFImage  PrependMagickMethod(RegisterRGFImage)
+#define RegisterRLAImage  PrependMagickMethod(RegisterRLAImage)
+#define RegisterRLEImage  PrependMagickMethod(RegisterRLEImage)
+#define RegisterSCREENSHOTImage  PrependMagickMethod(RegisterSCREENSHOTImage)
+#define RegisterSCRImage  PrependMagickMethod(RegisterSCRImage)
+#define RegisterSCTImage  PrependMagickMethod(RegisterSCTImage)
+#define RegisterSFWImage  PrependMagickMethod(RegisterSFWImage)
+#define RegisterSGIImage  PrependMagickMethod(RegisterSGIImage)
+#define RegisterSIXELImage  PrependMagickMethod(RegisterSIXELImage)
+#define RegisterStaticModule  PrependMagickMethod(RegisterStaticModule)
+#define RegisterStaticModules  PrependMagickMethod(RegisterStaticModules)
+#define RegisterSTEGANOImage  PrependMagickMethod(RegisterSTEGANOImage)
+#define RegisterSUNImage  PrependMagickMethod(RegisterSUNImage)
+#define RegisterSVGImage  PrependMagickMethod(RegisterSVGImage)
+#define RegisterTGAImage  PrependMagickMethod(RegisterTGAImage)
+#define RegisterTHUMBNAILImage  PrependMagickMethod(RegisterTHUMBNAILImage)
+#define RegisterTIFFImage  PrependMagickMethod(RegisterTIFFImage)
+#define RegisterTILEImage  PrependMagickMethod(RegisterTILEImage)
+#define RegisterTIMImage  PrependMagickMethod(RegisterTIMImage)
+#define RegisterTTFImage  PrependMagickMethod(RegisterTTFImage)
+#define RegisterTXTImage  PrependMagickMethod(RegisterTXTImage)
+#define RegisterUILImage  PrependMagickMethod(RegisterUILImage)
+#define RegisterUndefinedImage  PrependMagickMethod(RegisterUndefinedImage)
+#define RegisterURLImage  PrependMagickMethod(RegisterURLImage)
+#define RegisterUYVYImage  PrependMagickMethod(RegisterUYVYImage)
+#define RegisterVICARImage  PrependMagickMethod(RegisterVICARImage)
+#define RegisterVIDImage  PrependMagickMethod(RegisterVIDImage)
+#define RegisterVIFFImage  PrependMagickMethod(RegisterVIFFImage)
+#define RegisterVIPSImage  PrependMagickMethod(RegisterVIPSImage)
+#define RegisterWBMPImage  PrependMagickMethod(RegisterWBMPImage)
+#define RegisterWEBPImage  PrependMagickMethod(RegisterWEBPImage)
+#define RegisterWMFImage  PrependMagickMethod(RegisterWMFImage)
+#define RegisterWPGImage  PrependMagickMethod(RegisterWPGImage)
+#define RegisterXBMImage  PrependMagickMethod(RegisterXBMImage)
+#define RegisterXCFImage  PrependMagickMethod(RegisterXCFImage)
+#define RegisterXCImage  PrependMagickMethod(RegisterXCImage)
+#define RegisterXImage  PrependMagickMethod(RegisterXImage)
+#define RegisterXPMImage  PrependMagickMethod(RegisterXPMImage)
+#define RegisterXPSImage  PrependMagickMethod(RegisterXPSImage)
+#define RegisterXTRNImage  PrependMagickMethod(RegisterXTRNImage)
+#define RegisterXWDImage  PrependMagickMethod(RegisterXWDImage)
+#define RegisterYCBCRImage  PrependMagickMethod(RegisterYCBCRImage)
+#define RegisterYUVImage  PrependMagickMethod(RegisterYUVImage)
 #define RegistryComponentGenesis  PrependMagickMethod(RegistryComponentGenesis)
 #define RegistryComponentTerminus  PrependMagickMethod(RegistryComponentTerminus)
 #define RelinquishAlignedMemory  PrependMagickMethod(RelinquishAlignedMemory)
@@ -825,6 +963,7 @@
 #define ResetImageOptionIterator  PrependMagickMethod(ResetImageOptionIterator)
 #define ResetImageOptions  PrependMagickMethod(ResetImageOptions)
 #define ResetImagePage  PrependMagickMethod(ResetImagePage)
+#define ResetImagePixels  PrependMagickMethod(ResetImagePixels)
 #define ResetImageProfileIterator  PrependMagickMethod(ResetImageProfileIterator)
 #define ResetImagePropertyIterator  PrependMagickMethod(ResetImagePropertyIterator)
 #define ResetImageRegistryIterator  PrependMagickMethod(ResetImageRegistryIterator)
@@ -897,6 +1036,7 @@
 #define SetImageOption  PrependMagickMethod(SetImageOption)
 #define SetImageProfile  PrependMagickMethod(SetImageProfile)
 #define SetImageProgressMonitor  PrependMagickMethod(SetImageProgressMonitor)
+#define SetImageProgress  PrependMagickMethod(SetImageProgress)
 #define SetImageProperty  PrependMagickMethod(SetImageProperty)
 #define SetImageRegionMask  PrependMagickMethod(SetImageRegionMask)
 #define SetImageRegistry  PrependMagickMethod(SetImageRegistry)
@@ -939,6 +1079,7 @@
 #define SetStreamInfoStorageType  PrependMagickMethod(SetStreamInfoStorageType)
 #define SetStringInfoDatum  PrependMagickMethod(SetStringInfoDatum)
 #define SetStringInfoLength  PrependMagickMethod(SetStringInfoLength)
+#define SetStringInfoName  PrependMagickMethod(SetStringInfoName)
 #define SetStringInfoPath  PrependMagickMethod(SetStringInfoPath)
 #define SetStringInfo  PrependMagickMethod(SetStringInfo)
 #define SetWarningHandler  PrependMagickMethod(SetWarningHandler)
@@ -980,6 +1121,7 @@
 #define StringToken  PrependMagickMethod(StringToken)
 #define StringToList  PrependMagickMethod(StringToList)
 #define StringToStringInfo  PrependMagickMethod(StringToStringInfo)
+#define StringToStrings  PrependMagickMethod(StringToStrings)
 #define StripImage  PrependMagickMethod(StripImage)
 #define StripString  PrependMagickMethod(StripString)
 #define SubstituteString  PrependMagickMethod(SubstituteString)
@@ -1014,6 +1156,132 @@
 #define UnityAddKernelInfo  PrependMagickMethod(UnityAddKernelInfo)
 #define UnlockSemaphoreInfo  PrependMagickMethod(UnlockSemaphoreInfo)
 #define UnmapBlob  PrependMagickMethod(UnmapBlob)
+#define UnregisterAAIImage  PrependMagickMethod(UnregisterAAIImage)
+#define UnregisterARTImage  PrependMagickMethod(UnregisterARTImage)
+#define UnregisterAVSImage  PrependMagickMethod(UnregisterAVSImage)
+#define UnregisterBGRImage  PrependMagickMethod(UnregisterBGRImage)
+#define UnregisterBMPImage  PrependMagickMethod(UnregisterBMPImage)
+#define UnregisterBRAILLEImage  PrependMagickMethod(UnregisterBRAILLEImage)
+#define UnregisterCALSImage  PrependMagickMethod(UnregisterCALSImage)
+#define UnregisterCAPTIONImage  PrependMagickMethod(UnregisterCAPTIONImage)
+#define UnregisterCINImage  PrependMagickMethod(UnregisterCINImage)
+#define UnregisterCIPImage  PrependMagickMethod(UnregisterCIPImage)
+#define UnregisterCLIPImage  PrependMagickMethod(UnregisterCLIPImage)
+#define UnregisterCMYKImage  PrependMagickMethod(UnregisterCMYKImage)
+#define UnregisterCUBEImage  PrependMagickMethod(UnregisterCUBEImage)
+#define UnregisterCUTImage  PrependMagickMethod(UnregisterCUTImage)
+#define UnregisterDCMImage  PrependMagickMethod(UnregisterDCMImage)
+#define UnregisterDDSImage  PrependMagickMethod(UnregisterDDSImage)
+#define UnregisterDEBUGImage  PrependMagickMethod(UnregisterDEBUGImage)
+#define UnregisterDIBImage  PrependMagickMethod(UnregisterDIBImage)
+#define UnregisterDJVUImage  PrependMagickMethod(UnregisterDJVUImage)
+#define UnregisterDNGImage  PrependMagickMethod(UnregisterDNGImage)
+#define UnregisterDOTImage  PrependMagickMethod(UnregisterDOTImage)
+#define UnregisterDPXImage  PrependMagickMethod(UnregisterDPXImage)
+#define UnregisterEPTImage  PrependMagickMethod(UnregisterEPTImage)
+#define UnregisterEXRImage  PrependMagickMethod(UnregisterEXRImage)
+#define UnregisterFAXImage  PrependMagickMethod(UnregisterFAXImage)
+#define UnregisterFITSImage  PrependMagickMethod(UnregisterFITSImage)
+#define UnregisterGIFImage  PrependMagickMethod(UnregisterGIFImage)
+#define UnregisterGRADIENTImage  PrependMagickMethod(UnregisterGRADIENTImage)
+#define UnregisterGRAYImage  PrependMagickMethod(UnregisterGRAYImage)
+#define UnregisterHALDImage  PrependMagickMethod(UnregisterHALDImage)
+#define UnregisterHDRImage  PrependMagickMethod(UnregisterHDRImage)
+#define UnregisterHEICImage  PrependMagickMethod(UnregisterHEICImage)
+#define UnregisterHISTOGRAMImage  PrependMagickMethod(UnregisterHISTOGRAMImage)
+#define UnregisterHRZImage  PrependMagickMethod(UnregisterHRZImage)
+#define UnregisterHTMLImage  PrependMagickMethod(UnregisterHTMLImage)
+#define UnregisterICONImage  PrependMagickMethod(UnregisterICONImage)
+#define UnregisterINFOImage  PrependMagickMethod(UnregisterINFOImage)
+#define UnregisterINLINEImage  PrependMagickMethod(UnregisterINLINEImage)
+#define UnregisterIPLImage  PrependMagickMethod(UnregisterIPLImage)
+#define UnregisterJBIGImage  PrependMagickMethod(UnregisterJBIGImage)
+#define UnregisterJNXImage  PrependMagickMethod(UnregisterJNXImage)
+#define UnregisterJP2Image  PrependMagickMethod(UnregisterJP2Image)
+#define UnregisterJPEGImage  PrependMagickMethod(UnregisterJPEGImage)
+#define UnregisterJSONImage  PrependMagickMethod(UnregisterJSONImage)
+#define UnregisterLABELImage  PrependMagickMethod(UnregisterLABELImage)
+#define UnregisterMACImage  PrependMagickMethod(UnregisterMACImage)
+#define UnregisterMAPImage  PrependMagickMethod(UnregisterMAPImage)
+#define UnregisterMASKImage  PrependMagickMethod(UnregisterMASKImage)
+#define UnregisterMATImage  PrependMagickMethod(UnregisterMATImage)
+#define UnregisterMATTEImage  PrependMagickMethod(UnregisterMATTEImage)
+#define UnregisterMETAImage  PrependMagickMethod(UnregisterMETAImage)
+#define UnregisterMIFFImage  PrependMagickMethod(UnregisterMIFFImage)
+#define UnregisterMONOImage  PrependMagickMethod(UnregisterMONOImage)
+#define UnregisterMPCImage  PrependMagickMethod(UnregisterMPCImage)
+#define UnregisterMPEGImage  PrependMagickMethod(UnregisterMPEGImage)
+#define UnregisterMPRImage  PrependMagickMethod(UnregisterMPRImage)
+#define UnregisterMSLImage  PrependMagickMethod(UnregisterMSLImage)
+#define UnregisterMTVImage  PrependMagickMethod(UnregisterMTVImage)
+#define UnregisterMVGImage  PrependMagickMethod(UnregisterMVGImage)
+#define UnregisterNULLImage  PrependMagickMethod(UnregisterNULLImage)
+#define UnregisterOTBImage  PrependMagickMethod(UnregisterOTBImage)
+#define UnregisterPALMImage  PrependMagickMethod(UnregisterPALMImage)
+#define UnregisterPANGOImage  PrependMagickMethod(UnregisterPANGOImage)
+#define UnregisterPATTERNImage  PrependMagickMethod(UnregisterPATTERNImage)
+#define UnregisterPCDImage  PrependMagickMethod(UnregisterPCDImage)
+#define UnregisterPCLImage  PrependMagickMethod(UnregisterPCLImage)
+#define UnregisterPCXImage  PrependMagickMethod(UnregisterPCXImage)
+#define UnregisterPDBImage  PrependMagickMethod(UnregisterPDBImage)
+#define UnregisterPDFImage  PrependMagickMethod(UnregisterPDFImage)
+#define UnregisterPESImage  PrependMagickMethod(UnregisterPESImage)
+#define UnregisterPGXImage  PrependMagickMethod(UnregisterPGXImage)
+#define UnregisterPICTImage  PrependMagickMethod(UnregisterPICTImage)
+#define UnregisterPIXImage  PrependMagickMethod(UnregisterPIXImage)
+#define UnregisterPLASMAImage  PrependMagickMethod(UnregisterPLASMAImage)
+#define UnregisterPNGImage  PrependMagickMethod(UnregisterPNGImage)
+#define UnregisterPNMImage  PrependMagickMethod(UnregisterPNMImage)
+#define UnregisterPS2Image  PrependMagickMethod(UnregisterPS2Image)
+#define UnregisterPS3Image  PrependMagickMethod(UnregisterPS3Image)
+#define UnregisterPSDImage  PrependMagickMethod(UnregisterPSDImage)
+#define UnregisterPSImage  PrependMagickMethod(UnregisterPSImage)
+#define UnregisterPWPImage  PrependMagickMethod(UnregisterPWPImage)
+#define UnregisterRAWImage  PrependMagickMethod(UnregisterRAWImage)
+#define UnregisterRGBImage  PrependMagickMethod(UnregisterRGBImage)
+#define UnregisterRGFImage  PrependMagickMethod(UnregisterRGFImage)
+#define UnregisterRLAImage  PrependMagickMethod(UnregisterRLAImage)
+#define UnregisterRLEImage  PrependMagickMethod(UnregisterRLEImage)
+#define UnregisterSCREENSHOTImage  PrependMagickMethod(UnregisterSCREENSHOTImage)
+#define UnregisterSCRImage  PrependMagickMethod(UnregisterSCRImage)
+#define UnregisterSCTImage  PrependMagickMethod(UnregisterSCTImage)
+#define UnregisterSFWImage  PrependMagickMethod(UnregisterSFWImage)
+#define UnregisterSGIImage  PrependMagickMethod(UnregisterSGIImage)
+#define UnregisterSIXELImage  PrependMagickMethod(UnregisterSIXELImage)
+#define UnregisterStaticModule  PrependMagickMethod(UnregisterStaticModule)
+#define UnregisterStaticModules  PrependMagickMethod(UnregisterStaticModules)
+#define UnregisterSTEGANOImage  PrependMagickMethod(UnregisterSTEGANOImage)
+#define UnregisterSUNImage  PrependMagickMethod(UnregisterSUNImage)
+#define UnregisterSVGImage  PrependMagickMethod(UnregisterSVGImage)
+#define UnregisterTGAImage  PrependMagickMethod(UnregisterTGAImage)
+#define UnregisterTHUMBNAILImage  PrependMagickMethod(UnregisterTHUMBNAILImage)
+#define UnregisterTIFFImage  PrependMagickMethod(UnregisterTIFFImage)
+#define UnregisterTILEImage  PrependMagickMethod(UnregisterTILEImage)
+#define UnregisterTIMImage  PrependMagickMethod(UnregisterTIMImage)
+#define UnregisterTTFImage  PrependMagickMethod(UnregisterTTFImage)
+#define UnregisterTXTImage  PrependMagickMethod(UnregisterTXTImage)
+#define UnregisterUILImage  PrependMagickMethod(UnregisterUILImage)
+#define UnregisterUndefinedImage  PrependMagickMethod(UnregisterUndefinedImage)
+#define UnregisterURLImage  PrependMagickMethod(UnregisterURLImage)
+#define UnregisterUYVYImage  PrependMagickMethod(UnregisterUYVYImage)
+#define UnregisterVICARImage  PrependMagickMethod(UnregisterVICARImage)
+#define UnregisterVIDImage  PrependMagickMethod(UnregisterVIDImage)
+#define UnregisterVIFFImage  PrependMagickMethod(UnregisterVIFFImage)
+#define UnregisterVIPSImage  PrependMagickMethod(UnregisterVIPSImage)
+#define UnregisterWBMPImage  PrependMagickMethod(UnregisterWBMPImage)
+#define UnregisterWEBPImage  PrependMagickMethod(UnregisterWEBPImage)
+#define UnregisterWMFImage  PrependMagickMethod(UnregisterWMFImage)
+#define UnregisterWPGImage  PrependMagickMethod(UnregisterWPGImage)
+#define UnregisterXBMImage  PrependMagickMethod(UnregisterXBMImage)
+#define UnregisterXCFImage  PrependMagickMethod(UnregisterXCFImage)
+#define UnregisterXCImage  PrependMagickMethod(UnregisterXCImage)
+#define UnregisterXImage  PrependMagickMethod(UnregisterXImage)
+#define UnregisterXPMImage  PrependMagickMethod(UnregisterXPMImage)
+#define UnregisterXPSImage  PrependMagickMethod(UnregisterXPSImage)
+#define UnregisterXTRNImage  PrependMagickMethod(UnregisterXTRNImage)
+#define UnregisterXWDImage  PrependMagickMethod(UnregisterXWDImage)
+#define UnregisterYCBCRImage  PrependMagickMethod(UnregisterYCBCRImage)
+#define UnregisterYUVImage  PrependMagickMethod(UnregisterYUVImage)
 #define UnsharpMaskImage  PrependMagickMethod(UnsharpMaskImage)
 #define UpdateImageViewIterator  PrependMagickMethod(UpdateImageViewIterator)
 #define UpdateSignature  PrependMagickMethod(UpdateSignature)
diff --git a/MagickCore/mime-private.h b/MagickCore/mime-private.h
index f5bc27f..c12eae5 100644
--- a/MagickCore/mime-private.h
+++ b/MagickCore/mime-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/mime.c b/MagickCore/mime.c
index e37f9b8..2e05b84 100644
--- a/MagickCore/mime.c
+++ b/MagickCore/mime.c
@@ -15,13 +15,13 @@
 %                                 July 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
 %  obtain a copy of the License at                                            %
 %                                                                             %
-%    http://imagemagick.org/MagicksToolkit/script/license.php             %
+%    https://imagemagick.org/script/license.php                               %
 %                                                                             %
 %  Unless required by applicable law or agreed to in writing, software        %
 %  distributed under the License is distributed on an "AS IS" BASIS,          %
@@ -46,7 +46,6 @@
 #include "MagickCore/exception-private.h"
 #include "MagickCore/linked-list.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/mime.h"
 #include "MagickCore/mime-private.h"
 #include "MagickCore/option.h"
@@ -109,12 +108,6 @@
 /*
   Static declarations.
 */
-static const char
-  *MimeMap = (char *)
-    "<?xml version=\"1.0\"?>"
-    "<mimemap>"
-    "</mimemap>";
-
 static LinkedListInfo
   *mime_cache = (LinkedListInfo *) NULL;
 
@@ -125,9 +118,13 @@
   Forward declarations.
 */
 static MagickBooleanType
-  IsMimeCacheInstantiated(ExceptionInfo *),
-  LoadMimeCache(LinkedListInfo *,const char *,const char *,const size_t,
+  IsMimeCacheInstantiated(ExceptionInfo *);
+
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+static MagickBooleanType
+ LoadMimeCache(LinkedListInfo *,const char *,const char *,const size_t,
     ExceptionInfo *);
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -161,12 +158,8 @@
   LinkedListInfo
     *cache;
 
-  MagickStatusType
-    status;
-
   cache=NewLinkedList(0);
-  status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -178,15 +171,13 @@
     option=(const StringInfo *) GetNextValueInLinkedList(options);
     while (option != (const StringInfo *) NULL)
     {
-      status&=LoadMimeCache(cache,(const char *)
+      (void) LoadMimeCache(cache,(const char *)
         GetStringInfoDatum(option),GetStringInfoPath(option),0,exception);
       option=(const StringInfo *) GetNextValueInLinkedList(options);
     }
     options=DestroyConfigureOptions(options);
   }
 #endif
-  if (IsLinkedListEmpty(cache) != MagickFalse)
-    status&=LoadMimeCache(cache,MimeMap,"built-in",0,exception);
   return(cache);
 }
 
@@ -758,6 +749,7 @@
   return(MagickTrue);
 }
 
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -965,6 +957,7 @@
   mime_map=DestroyXMLTree(mime_map);
   return(status != 0 ? MagickTrue : MagickFalse);
 }
+#endif
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/mime.h b/MagickCore/mime.h
index db479f3..5f9230a 100644
--- a/MagickCore/mime.h
+++ b/MagickCore/mime.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/module-private.h b/MagickCore/module-private.h
index 4ec7398..049c989 100644
--- a/MagickCore/module-private.h
+++ b/MagickCore/module-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/module.c b/MagickCore/module.c
index 99985d7..e270d34 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -17,7 +17,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -781,11 +781,13 @@
 
     home=GetEnvironmentValue("XDG_CONFIG_HOME");
     if (home == (char *) NULL)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
       home=GetEnvironmentValue("LOCALAPPDATA");
     if (home == (char *) NULL)
       home=GetEnvironmentValue("APPDATA");
     if (home == (char *) NULL)
       home=GetEnvironmentValue("USERPROFILE");
+#endif
     if (home != (char *) NULL)
       {
         /*
@@ -1220,7 +1222,6 @@
   ExceptionInfo *exception)
 {
   char
-    filename[MagickPathExtent],
     module_name[MagickPathExtent],
     name[MagickPathExtent],
     path[MagickPathExtent];
@@ -1268,11 +1269,11 @@
     Locate module.
   */
   handle=(ModuleHandle) NULL;
-  TagToCoderModuleName(module_name,filename);
+  TagToCoderModuleName(module_name,name);
   (void) LogMagickEvent(ModuleEvent,GetMagickModule(),
-    "Searching for module \"%s\" using filename \"%s\"",module_name,filename);
+    "Searching for module \"%s\" using filename \"%s\"",module_name,name);
   *path='\0';
-  status=GetMagickModulePath(filename,MagickImageCoderModule,path,exception);
+  status=GetMagickModulePath(name,MagickImageCoderModule,path,exception);
   if (status == MagickFalse)
     return(MagickFalse);
   /*
diff --git a/MagickCore/module.h b/MagickCore/module.h
index f5e080d..19d7335 100644
--- a/MagickCore/module.h
+++ b/MagickCore/module.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/monitor-private.h b/MagickCore/monitor-private.h
index 0615347..d7cdb70 100644
--- a/MagickCore/monitor-private.h
+++ b/MagickCore/monitor-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/monitor.c b/MagickCore/monitor.c
index 0c79af1..bf7cb92 100644
--- a/MagickCore/monitor.c
+++ b/MagickCore/monitor.c
@@ -17,7 +17,7 @@
 %                               December 1995                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/monitor.h b/MagickCore/monitor.h
index 258825b..f0fd907 100644
--- a/MagickCore/monitor.h
+++ b/MagickCore/monitor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index d04be87..b160197 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -52,7 +52,6 @@
 #include "MagickCore/enhance.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
-#include "MagickCore/fx.h"
 #include "MagickCore/gem.h"
 #include "MagickCore/geometry.h"
 #include "MagickCore/image.h"
@@ -73,6 +72,7 @@
 #include "MagickCore/utility.h"
 #include "MagickCore/utility-private.h"
 #include "MagickCore/version.h"
+#include "MagickCore/visual-effects.h"
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/montage.h b/MagickCore/montage.h
index bd990c7..b21e41b 100644
--- a/MagickCore/montage.h
+++ b/MagickCore/montage.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/morphology-private.h b/MagickCore/morphology-private.h
index 57151b6..aa690fa 100644
--- a/MagickCore/morphology-private.h
+++ b/MagickCore/morphology-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index 30680d5..83a9bcb 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -17,7 +17,7 @@
 %                               January 2010                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -298,9 +298,9 @@
         p++;  /* ignore "'" chars for convolve filter usage - Cristy */
       for (i=0; p < end; i++)
       {
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         if (*token == ',')
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
       }
       /* set the size of the kernel - old sized square */
       kernel->width = kernel->height= (size_t) sqrt((double) i+1.0);
@@ -320,9 +320,9 @@
   kernel->negative_range = kernel->positive_range = 0.0;
   for (i=0; (i < (ssize_t) (kernel->width*kernel->height)) && (p < end); i++)
   {
-    GetNextToken(p,&p,MagickPathExtent,token);
+    (void) GetNextToken(p,&p,MagickPathExtent,token);
     if (*token == ',')
-      GetNextToken(p,&p,MagickPathExtent,token);
+      (void) GetNextToken(p,&p,MagickPathExtent,token);
     if (    LocaleCompare("nan",token) == 0
         || LocaleCompare("-",token) == 0 ) {
       kernel->values[i] = nan; /* this value is not part of neighbourhood */
@@ -338,7 +338,7 @@
   }
 
   /* sanity check -- no more values in kernel definition */
-  GetNextToken(p,&p,MagickPathExtent,token);
+  (void) GetNextToken(p,&p,MagickPathExtent,token);
   if ( *token != '\0' && *token != ';' && *token != '\'' )
     return(DestroyKernelInfo(kernel));
 
@@ -393,7 +393,7 @@
     type;
 
   /* Parse special 'named' kernel */
-  GetNextToken(kernel_string,&p,MagickPathExtent,token);
+  (void) GetNextToken(kernel_string,&p,MagickPathExtent,token);
   type=ParseCommandOption(MagickKernelOptions,MagickFalse,token);
   if ( type < 0 || type == UserDefinedKernel )
     return((KernelInfo *) NULL);  /* not a valid named kernel */
@@ -2417,12 +2417,13 @@
   return MagickTrue;
 }
 
-static void ExpandRotateKernelInfo(KernelInfo *kernel, const double angle)
+static void ExpandRotateKernelInfo(KernelInfo *kernel,const double angle)
 {
   KernelInfo
     *clone_info,
     *last;
 
+  clone_info=(KernelInfo *) NULL;
   last=kernel;
 DisableMSCWarning(4127)
   while (1) {
@@ -2730,7 +2731,8 @@
             pixel=bias;
             gamma=0.0;
             count=0;
-            if ((morphology_traits & BlendPixelTrait) == 0)
+            if (((image->alpha_trait & BlendPixelTrait) == 0) ||
+                ((morphology_traits & BlendPixelTrait) == 0))
               for (v=0; v < (ssize_t) kernel->height; v++)
               {
                 if (!IsNaN(*k))
@@ -2853,7 +2855,8 @@
           *magick_restrict k;
 
         register const Quantum
-          *magick_restrict pixels;
+          *magick_restrict pixels,
+          *magick_restrict quantum_pixels;
 
         register ssize_t
           u;
@@ -2876,6 +2879,7 @@
             continue;
           }
         pixels=p;
+        quantum_pixels=(const Quantum *) NULL;
         maximum=0.0;
         minimum=(double) QuantumRange;
         switch (method)
@@ -2929,7 +2933,8 @@
                  http://www.cs.umd.edu/~djacobs/CMSC426/Convolution.pdf
             */
             k=(&kernel->values[kernel->width*kernel->height-1]);
-            if ((morphology_traits & BlendPixelTrait) == 0)
+            if (((image->alpha_trait & BlendPixelTrait) == 0) ||
+                ((morphology_traits & BlendPixelTrait) == 0))
               {
                 /*
                   No alpha blending.
@@ -3073,10 +3078,10 @@
             pixel-=maximum;
             if (pixel < 0.0)
               pixel=0.0;
-            if (method ==  ThinningMorphology)
+            if (method == ThinningMorphology)
               pixel=(double) p[center+i]-pixel;
             else
-              if (method ==  ThickenMorphology)
+              if (method == ThickenMorphology)
                 pixel+=(double) p[center+i]+pixel;
             break;
           }
@@ -3097,6 +3102,7 @@
                     intensity=(double) GetPixelIntensity(image,pixels);
                     if (intensity < minimum)
                       {
+                        quantum_pixels=pixels;
                         pixel=(double) pixels[i];
                         minimum=intensity;
                       }
@@ -3127,6 +3133,7 @@
                     if (intensity > maximum)
                       {
                         pixel=(double) pixels[i];
+                        quantum_pixels=pixels;
                         maximum=intensity;
                       }
                     count++;
@@ -3187,6 +3194,11 @@
         }
         if (fabs(pixel-p[center+i]) > MagickEpsilon)
           changes[id]++;
+        if (quantum_pixels != (const Quantum *) NULL)
+          {
+            SetPixelChannel(morphology_image,channel,quantum_pixels[i],q);
+            continue;
+          }
         gamma=PerceptibleReciprocal(gamma);
         if (count != 0)
           gamma*=(double) kernel->height*kernel->width/count;
diff --git a/MagickCore/morphology.h b/MagickCore/morphology.h
index 7018907..f3999a4 100644
--- a/MagickCore/morphology.h
+++ b/MagickCore/morphology.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/mutex.h b/MagickCore/mutex.h
new file mode 100644
index 0000000..f267f5a
--- /dev/null
+++ b/MagickCore/mutex.h
@@ -0,0 +1,105 @@
+/*
+  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+
+    https://imagemagick.org/script/license.php
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore methods to synchronize code within a translation unit.
+*/
+#ifndef MAGICKCORE_MUTEX_H
+#define MAGICKCORE_MUTEX_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+/*
+  When included in a translation unit, the following code provides the
+  translation unit a means by which to synchronize multiple threads that might
+  try to enter the same critical section or to access a shared resource; it can
+  be included in multiple translation units, and thereby provide a separate,
+  independent means of synchronization to each such translation unit.
+*/
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+static omp_lock_t
+  translation_unit_mutex;
+#elif defined(MAGICKCORE_THREAD_SUPPORT)
+static pthread_mutex_t
+  translation_unit_mutex = PTHREAD_MUTEX_INITIALIZER;
+#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
+static LONG
+  translation_unit_mutex = 0;
+#endif
+
+static inline void DestroyMagickMutex(void)
+{
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_destroy_lock(&translation_unit_mutex);
+#endif
+}
+
+static inline void InitializeMagickMutex(void)
+{
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_init_lock(&translation_unit_mutex);
+#endif
+}
+
+static inline void LockMagickMutex(void)
+{
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_set_lock(&translation_unit_mutex);
+#elif defined(MAGICKCORE_THREAD_SUPPORT)
+  {
+    int
+      status;
+
+    status=pthread_mutex_lock(&translation_unit_mutex);
+    if (status != 0)
+      {
+        errno=status;
+        ThrowFatalException(ResourceLimitFatalError,"UnableToLockSemaphore");
+      }
+  }
+#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
+  while (InterlockedCompareExchange(&translation_unit_mutex,1L,0L) != 0)
+    Sleep(10);
+#endif
+}
+
+static inline void UnlockMagickMutex(void)
+{
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  omp_unset_lock(&translation_unit_mutex);
+#elif defined(MAGICKCORE_THREAD_SUPPORT)
+  {
+    int
+      status;
+
+    status=pthread_mutex_unlock(&translation_unit_mutex);
+    if (status != 0)
+      {
+        errno=status;
+        ThrowFatalException(ResourceLimitFatalError,"UnableToUnlockSemaphore");
+      }
+  }
+#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
+  InterlockedExchange(&translation_unit_mutex,0L);
+#endif
+}
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/nt-base-private.h b/MagickCore/nt-base-private.h
index 69ad10a..77511f0 100644
--- a/MagickCore/nt-base-private.h
+++ b/MagickCore/nt-base-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -147,6 +147,9 @@
   NTGetModulePath(const char *,char *),
   NTReportEvent(const char *,const MagickBooleanType);
 
+extern MagickExport MagickBooleanType
+  NTLongPathsEnabled();
+
 extern MagickPrivate struct dirent
   *NTReadDirectory(DIR *);
 
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index d49535c..a2ea46f 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -17,7 +17,7 @@
 %                                December 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -119,6 +119,9 @@
 
 static WSADATA
   *wsaData = (WSADATA*) NULL;
+
+static size_t
+  long_paths_enabled = 2;
 
 struct
 {
@@ -1224,8 +1227,8 @@
   return(status);
 }
 
-static int NTGhostscriptGetString(const char *name,BOOL *is_64_bit,
-  char *value,const size_t length)
+static int NTGhostscriptGetString(const char *name,BOOL *is_64_bit,char *value,
+  const size_t length)
 {
   char
     buffer[MagickPathExtent],
@@ -1235,16 +1238,16 @@
     extent;
 
   static const char
-    *product_family=(const char *) NULL;
+    *product_family = (const char *) NULL;
 
   static BOOL
-    is_64_bit_version=FALSE;
+    is_64_bit_version = FALSE;
 
   static int
-    flags=0,
-    major_version=0,
-    minor_version=0,
-    root_index=0;
+    flags = 0,
+    major_version = 0,
+    minor_version = 0,
+    root_index = 0;
 
   /*
     Get a string from the installed Ghostscript.
@@ -1315,8 +1318,7 @@
   (void) FormatLocaleString(buffer,MagickPathExtent,"SOFTWARE\\%s\\%d.%02d",
     product_family,major_version,minor_version);
   extent=(int) length;
-  if (NTGetRegistryValue(registry_roots[root_index].hkey,buffer,flags,name,
-    value,&extent) == 0)
+  if (NTGetRegistryValue(registry_roots[root_index].hkey,buffer,flags,name,value,&extent) == 0)
     {
       (void) LogMagickEvent(ConfigureEvent,GetMagickModule(),
         "registry: \"%s\\%s\\%s\"=\"%s\"",registry_roots[root_index].name,
@@ -1338,7 +1340,6 @@
   if ((*dll == '\0') &&
       (NTGhostscriptGetString("GS_DLL",&is_64_bit_version,dll,sizeof(dll)) == FALSE))
     return(FALSE);
-
 #if defined(_WIN64)
   if (!is_64_bit_version)
     return(FALSE);
@@ -1460,7 +1461,7 @@
 %
 %  The format of the NTGhostscriptFonts method is:
 %
-%      int NTGhostscriptFonts(char *path, int length)
+%      int NTGhostscriptFonts(char *path,int length)
 %
 %  A description of each parameter follows:
 %
@@ -1502,6 +1503,10 @@
       DirectorySeparator);
     if (IsPathAccessible(filename) != MagickFalse)
       return(TRUE);
+    (void) FormatLocaleString(filename,MagickPathExtent,"%s%sn019003l.pfb",path,
+      DirectorySeparator);
+    if (IsPathAccessible(filename) != MagickFalse)
+      return(TRUE);
   }
   *path='\0';
   return(FALSE);
@@ -1686,6 +1691,72 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   N T L o n g P a t h s E n a b l e d                                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  NTLongPathsEnabled() returns a boolean indicating whether long paths are
+$  enabled.
+%
+%  The format of the NTLongPathsEnabled method is:
+%
+%      MagickBooleanType NTLongPathsEnabled()
+%
+*/
+MagickExport MagickBooleanType NTLongPathsEnabled()
+{
+  if (long_paths_enabled == 2)
+    {
+      DWORD
+        size,
+        type,
+        value;
+
+      HKEY
+        registry_key;
+
+      LONG
+        status;
+
+      registry_key=(HKEY) INVALID_HANDLE_VALUE;
+      status=RegOpenKeyExA(HKEY_LOCAL_MACHINE,
+        "SYSTEM\\CurrentControlSet\\Control\\FileSystem",0,KEY_READ,
+        &registry_key);
+      if (status != ERROR_SUCCESS)
+        {
+          RegCloseKey(registry_key);
+          long_paths_enabled=0;
+          return(MagickFalse);
+        }
+      value=0;
+      status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,NULL,
+        NULL);
+      if ((status != ERROR_SUCCESS) || (type != REG_DWORD))
+        {
+          RegCloseKey(registry_key);
+          long_paths_enabled=0;
+          return(MagickFalse);
+        }
+      status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,
+        (LPBYTE) &value,&size);
+      RegCloseKey(registry_key);
+      if (status != ERROR_SUCCESS)
+        {
+          long_paths_enabled=0;
+          return(MagickFalse);
+        }
+      long_paths_enabled=(size_t) value;
+    }
+  return(long_paths_enabled == 1 ? MagickTrue : MagickFalse);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +  N T M a p M e m o r y                                                      %
 %                                                                             %
 %                                                                             %
@@ -1802,7 +1873,7 @@
   if (length == 0)
     return((DIR *) NULL);
   if (wcsncat(file_specification,(const wchar_t*) DirectorySeparator,
-        MagickPathExtent-wcslen(file_specification)-1) == (wchar_t*) NULL)
+        MagickPathExtent-wcslen(file_specification)-1) == (wchar_t *) NULL)
     return((DIR *) NULL);
   entry=(DIR *) AcquireCriticalMemory(sizeof(DIR));
   entry->firsttime=TRUE;
@@ -1810,7 +1881,7 @@
   if (entry->hSearch == INVALID_HANDLE_VALUE)
     {
       if(wcsncat(file_specification,L"*.*",
-        MagickPathExtent-wcslen(file_specification)-1) == (wchar_t*) NULL)
+        MagickPathExtent-wcslen(file_specification)-1) == (wchar_t *) NULL)
         {
           entry=(DIR *) RelinquishMagickMemory(entry);
           return((DIR *) NULL);
@@ -2573,6 +2644,7 @@
 */
 MagickPrivate ssize_t NTTellDirectory(DIR *entry)
 {
+  magick_unreferenced(entry);
   assert(entry != (DIR *) NULL);
   return(0);
 }
diff --git a/MagickCore/nt-base.h b/MagickCore/nt-base.h
index fc2314d..a8c84d9 100644
--- a/MagickCore/nt-base.h
+++ b/MagickCore/nt-base.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -328,6 +328,7 @@
   NTErrorHandler(const ExceptionType,const char *,const char *),
   NTGhostscriptUnLoadDLL(void),
   NTWarningHandler(const ExceptionType,const char *,const char *);
+
 #endif
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/nt-feature.c b/MagickCore/nt-feature.c
index 0f756ed..679ae9e 100644
--- a/MagickCore/nt-feature.c
+++ b/MagickCore/nt-feature.c
@@ -18,7 +18,7 @@
 %                                December 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -191,7 +191,6 @@
 
     DWORD
       registry_index = 0,
-      type,
       value_data_size,
       value_name_length;
 
@@ -266,7 +265,7 @@
 
         for (q=value_name; *q != '\0'; )
           {
-            GetNextToken(q,(const char **) &q,MagickPathExtent,token);
+            (void) GetNextToken(q,(const char **) &q,MagickPathExtent,token);
             if (*token == '\0')
               break;
 
diff --git a/MagickCore/nt-feature.h b/MagickCore/nt-feature.h
index 36647c7..5071059 100644
--- a/MagickCore/nt-feature.h
+++ b/MagickCore/nt-feature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/opencl-private.h b/MagickCore/opencl-private.h
index cc00559..807505f 100644
--- a/MagickCore/opencl-private.h
+++ b/MagickCore/opencl-private.h
@@ -1,5 +1,5 @@
 /*
-Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 dedicated to making software imaging solutions freely available.
 
 You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c
index 923a2cc..173786a 100644
--- a/MagickCore/opencl.c
+++ b/MagickCore/opencl.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -298,12 +298,14 @@
           if (home == (char *) NULL)
             {
               home=GetEnvironmentValue("XDG_CACHE_HOME");
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
               if (home == (char *) NULL)
                 home=GetEnvironmentValue("LOCALAPPDATA");
               if (home == (char *) NULL)
                 home=GetEnvironmentValue("APPDATA");
               if (home == (char *) NULL)
                 home=GetEnvironmentValue("USERPROFILE");
+#endif
             }
 
           if (home != (char *) NULL)
@@ -364,7 +366,14 @@
                 }
             }
           if (temp == (char *) NULL)
-            temp=AcquireString("?");
+            {
+              temp=AcquireString("?");
+              (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+                "Cannot use cache directory: \"%s\"",path);
+            }
+          else
+            (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+              "Using cache directory: \"%s\"",temp);
           cache_directory=temp;
         }
       UnlockSemaphoreInfo(cache_directory_lock);
@@ -383,6 +392,8 @@
     i,
     j;
 
+  (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+    "Selecting device for type: %d",(int) type);
   for (i = 0; i < clEnv->number_devices; i++)
     clEnv->devices[i]->enabled=MagickFalse;
 
@@ -393,6 +404,8 @@
       continue;
 
     device->enabled=MagickTrue;
+    (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+      "Selected device: %s",device->name);
     for (j = i+1; j < clEnv->number_devices; j++)
     {
       MagickCLDevice
@@ -707,6 +720,8 @@
     kernel;
 
   assert(device != (MagickCLDevice) NULL);
+  (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),"Using kernel: %s",
+    kernel_name);
   kernel=openCL_library->clCreateKernel(device->program,kernel_name,
     (cl_int *) NULL);
   return(kernel);
@@ -764,7 +779,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -774,7 +789,7 @@
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -783,7 +798,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<device") == 0)
@@ -835,11 +850,11 @@
           device_benchmark);
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'M':
@@ -903,8 +918,12 @@
 
   profileFile=fopen(filename,"ab");
 
-  if (profileFile == (FILE *)NULL)
-    return(MagickFalse);
+  if (profileFile == (FILE *) NULL)
+    {
+      (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+        "Unable to save profile to: \"%s\"",filename);
+      return(MagickFalse);
+    }
 
   fclose(profileFile);
   return(MagickTrue);
@@ -928,7 +947,7 @@
     We don't run the benchmark when we can not write out a device profile. The
     first GPU device will be used.
   */
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   if (CanWriteProfileToFile(filename) == MagickFalse)
 #endif
     {
@@ -1180,6 +1199,8 @@
     i,
     j;
 
+  (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+    "Starting benchmark");
   testEnv=AcquireMagickCLEnv();
   testEnv->library=openCL_library;
   testEnv->devices=(MagickCLDevice *) AcquireCriticalMemory(
@@ -1278,11 +1299,15 @@
   status=openCL_library->clGetProgramInfo(device->program,
     CL_PROGRAM_BINARIES,sizeof(unsigned char*),&binaryProgram,NULL);
   if (status == CL_SUCCESS)
-    (void) BlobToFile(filename,binaryProgram,binaryProgramSize,exception);
+    {
+      (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+        "Creating cache file: \"%s\"",filename);
+      (void) BlobToFile(filename,binaryProgram,binaryProgramSize,exception);
+    }
   binaryProgram=(unsigned char *) RelinquishMagickMemory(binaryProgram);
 }
 
-static MagickBooleanType LoadCachedOpenCLKernel(MagickCLDevice device,
+static MagickBooleanType LoadCachedOpenCLKernels(MagickCLDevice device,
   const char *filename)
 {
   cl_int
@@ -1304,6 +1329,8 @@
   sans_exception=DestroyExceptionInfo(sans_exception);
   if (binaryProgram == (unsigned char *) NULL)
     return(MagickFalse);
+  (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+    "Loaded cached kernels: \"%s\"",filename);
   device->program=openCL_library->clCreateProgramWithBinary(device->context,1,
     &device->deviceID,&length,(const unsigned char**)&binaryProgram,
     &binaryStatus,&status);
@@ -1375,7 +1402,7 @@
     "%s%s%s_%s_%08x_%.20g.bin",GetOpenCLCacheDirectory(),
     DirectorySeparator,"magick_opencl",deviceName,(unsigned int) signature,
     (double) sizeof(char*)*8);
-  loaded=LoadCachedOpenCLKernel(device,filename);
+  loaded=LoadCachedOpenCLKernels(device,filename);
   if (loaded == MagickFalse)
     {
       /* Binary CL program unavailable, compile the program from source */
@@ -1532,34 +1559,31 @@
   FILE
     *log;
 
-  MagickCLEnv
-    clEnv;
-
   size_t
     i,
     j;
 
-  clEnv=GetCurrentOpenCLEnv();
-  if (clEnv == (MagickCLEnv) NULL)
+  if (default_CLEnv == (MagickCLEnv) NULL)
     return;
 
-  for (i = 0; i < clEnv->number_devices; i++)
-    if (clEnv->devices[i]->profile_kernels != MagickFalse)
+  for (i = 0; i < default_CLEnv->number_devices; i++)
+    if (default_CLEnv->devices[i]->profile_kernels != MagickFalse)
       break;
-  if (i == clEnv->number_devices)
+  if (i == default_CLEnv->number_devices)
     return;
 
   (void) FormatLocaleString(filename,MagickPathExtent,"%s%s%s",
     GetOpenCLCacheDirectory(),DirectorySeparator,"ImageMagickOpenCL.log");
 
   log=fopen_utf8(filename,"wb");
-
-  for (i = 0; i < clEnv->number_devices; i++)
+  if (log == (FILE *) NULL)
+    return;
+  for (i = 0; i < default_CLEnv->number_devices; i++)
   {
     MagickCLDevice
       device;
 
-    device=clEnv->devices[i];
+    device=default_CLEnv->devices[i];
     if ((device->profile_kernels == MagickFalse) ||
         (device->profile_records == (KernelProfileRecord *) NULL))
       continue;
@@ -1736,7 +1760,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   G e t C u r r u n t O p e n C L E n v                                     %
++   G e t C u r r e n t O p e n C L E n v                                     %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -2383,6 +2407,8 @@
         sizeof(cl_ulong),&device->local_memory_size,NULL);
 
       clEnv->devices[next]=device;
+      (void) LogMagickEvent(AccelerateEvent,GetMagickModule(),
+        "Found device: %s",device->name);
     }
   }
   if (next != clEnv->number_devices)
diff --git a/MagickCore/opencl.h b/MagickCore/opencl.h
index 9feb32d..4690b65 100644
--- a/MagickCore/opencl.h
+++ b/MagickCore/opencl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/option-private.h b/MagickCore/option-private.h
index b841573..3cc79fa 100644
--- a/MagickCore/option-private.h
+++ b/MagickCore/option-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/option.c b/MagickCore/option.c
index daac3b5..dba8d46 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -52,7 +52,6 @@
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
 #include "MagickCore/fourier.h"
-#include "MagickCore/fx.h"
 #include "MagickCore/gem.h"
 #include "MagickCore/geometry.h"
 #include "MagickCore/image.h"
@@ -78,6 +77,7 @@
 #include "MagickCore/threshold.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/visual-effects.h"
 
 /*
   ImageMagick options.
@@ -330,6 +330,7 @@
     { "  gaussian-blur", 0, UndefinedOptionFlag, MagickFalse },
     { "  grayscale", 0, UndefinedOptionFlag, MagickFalse },
     { "  implode", 0, UndefinedOptionFlag, MagickFalse },
+    { "  kmeans", 0, UndefinedOptionFlag, MagickFalse },
     { "  lat", 0, UndefinedOptionFlag, MagickFalse },
     { "  level", 0, UndefinedOptionFlag, MagickFalse },
     { "  map", 0, UndefinedOptionFlag, MagickFalse },
@@ -815,6 +816,7 @@
     { "-interword-spacing", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
     { "+kerning", 0L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
     { "-kerning", 1L, ImageInfoOptionFlag | DrawInfoOptionFlag, MagickFalse },
+    { "-kmeans", 1L, SimpleOperatorFlag, MagickFalse },
     { "+kuwahara", 0L, DeprecateOptionFlag, MagickTrue },
     { "-kuwahara", 1L, SimpleOperatorFlag, MagickFalse },
     { "+label", 0L, ImageInfoOptionFlag | NeverInterpretArgsFlag, MagickFalse },
@@ -1225,6 +1227,8 @@
     { "B44A", B44ACompression, UndefinedOptionFlag, MagickFalse },
     { "B44", B44Compression, UndefinedOptionFlag, MagickFalse },
     { "BZip", BZipCompression, UndefinedOptionFlag, MagickFalse },
+    { "DWAA", DWAACompression, UndefinedOptionFlag, MagickFalse },
+    { "DWAB", DWABCompression, UndefinedOptionFlag, MagickFalse },
     { "DXT1", DXT1Compression, UndefinedOptionFlag, MagickFalse },
     { "DXT3", DXT3Compression, UndefinedOptionFlag, MagickFalse },
     { "DXT5", DXT5Compression, UndefinedOptionFlag, MagickFalse },
@@ -1479,7 +1483,6 @@
     { "Nearest", NearestInterpolatePixel, UndefinedOptionFlag, MagickFalse },
     { "NearestNeighbor", NearestInterpolatePixel, UndefinedOptionFlag, MagickTrue },
     { "Spline", SplineInterpolatePixel, UndefinedOptionFlag, MagickFalse },
-/*  { "Filter", FilterInterpolatePixel, UndefinedOptionFlag, MagickFalse }, */
     { (char *) NULL, UndefinedInterpolatePixel, UndefinedOptionFlag, MagickFalse }
   },
   KernelOptions[] =
@@ -2849,6 +2852,9 @@
   register ssize_t
     i;
 
+  size_t
+    length;
+
   ssize_t
     channel;
 
@@ -2856,7 +2862,8 @@
   if (channel >= 0)
     return(channel);
   channel=0;
-  for (i=0; i < (ssize_t) strlen(channels); i++)
+  length=strlen(channels);
+  for (i=0; i < (ssize_t) length; i++)
   {
     switch (channels[i])
     {
@@ -3079,7 +3086,7 @@
   ssize_t
     channel;
 
-  GetNextToken(channels,(const char **) NULL,MagickPathExtent,token);
+  (void) GetNextToken(channels,(const char **) NULL,MagickPathExtent,token);
   if ((*token == ';') || (*token == '|'))
     return(RedPixelChannel);
   channel=ParseCommandOption(MagickPixelChannelOptions,MagickTrue,token);
diff --git a/MagickCore/option.h b/MagickCore/option.h
index e0ab761..59482ed 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/paint.c b/MagickCore/paint.c
index 5e79411..ca6ab61 100644
--- a/MagickCore/paint.c
+++ b/MagickCore/paint.c
@@ -17,7 +17,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -605,8 +605,7 @@
   if (gradient->stops == (StopInfo *) NULL)
     ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
       image->filename);
-  (void) memcpy(gradient->stops,stops,(size_t) number_stops*
-    sizeof(*stops));
+  (void) memcpy(gradient->stops,stops,(size_t) number_stops*sizeof(*stops));
   /*
     Draw a gradient on the image.
   */
diff --git a/MagickCore/paint.h b/MagickCore/paint.h
index 3bd2487..0a617f6 100644
--- a/MagickCore/paint.h
+++ b/MagickCore/paint.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h
index 8af0e36..c8dac5c 100644
--- a/MagickCore/pixel-accessor.h
+++ b/MagickCore/pixel-accessor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -214,8 +214,18 @@
     case RedPixelChannel: return(pixel_info->red);
     case GreenPixelChannel: return(pixel_info->green);
     case BluePixelChannel: return(pixel_info->blue);
-    case BlackPixelChannel: return(pixel_info->black);
-    case AlphaPixelChannel: return(pixel_info->alpha);
+    case BlackPixelChannel:
+    {
+      if (pixel_info->colorspace != CMYKColorspace)
+        return(0.0);
+      return(pixel_info->black);
+    }
+    case AlphaPixelChannel:
+    {
+      if (pixel_info->alpha_trait == UndefinedPixelTrait)
+        return(OpaqueAlpha);
+      return(pixel_info->alpha);
+    }
     case IndexPixelChannel: return(pixel_info->index);
     default: return((MagickRealType) 0.0);
   }
diff --git a/MagickCore/pixel-private.h b/MagickCore/pixel-private.h
index 0a5a338..bb66547 100644
--- a/MagickCore/pixel-private.h
+++ b/MagickCore/pixel-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index d5fe7a6..f18deef 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -2393,7 +2393,8 @@
     }
     case Rec601LumaPixelIntensityMethod:
     {
-      if (image->colorspace == RGBColorspace)
+      if ((image->colorspace == RGBColorspace) ||
+          (image->colorspace == LinearGRAYColorspace))
         {
           red=EncodePixelGamma(red);
           green=EncodePixelGamma(green);
@@ -2404,7 +2405,8 @@
     }
     case Rec601LuminancePixelIntensityMethod:
     {
-      if (image->colorspace == sRGBColorspace)
+      if ((image->colorspace == sRGBColorspace) ||
+          (image->colorspace == GRAYColorspace))
         {
           red=DecodePixelGamma(red);
           green=DecodePixelGamma(green);
@@ -2416,7 +2418,8 @@
     case Rec709LumaPixelIntensityMethod:
     default:
     {
-      if (image->colorspace == RGBColorspace)
+      if ((image->colorspace == RGBColorspace) ||
+          (image->colorspace == LinearGRAYColorspace))
         {
           red=EncodePixelGamma(red);
           green=EncodePixelGamma(green);
@@ -2427,7 +2430,8 @@
     }
     case Rec709LuminancePixelIntensityMethod:
     {
-      if (image->colorspace == sRGBColorspace)
+      if ((image->colorspace == sRGBColorspace) ||
+          (image->colorspace == GRAYColorspace))
         {
           red=DecodePixelGamma(red);
           green=DecodePixelGamma(green);
@@ -4398,10 +4402,10 @@
 %
 %  The format of the InterpolatePixelChannel method is:
 %
-%      MagickBooleanType InterpolatePixelChannel(const Image *image,
-%        const CacheView *image_view,const PixelChannel channel,
-%        const PixelInterpolateMethod method,const double x,const double y,
-%        double *pixel,ExceptionInfo *exception)
+%      MagickBooleanType InterpolatePixelChannel(
+%        const Image *magick_restrict image,const CacheView *image_view,
+%        const PixelChannel channel,const PixelInterpolateMethod method,
+%        const double x,const double y,double *pixel,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -4448,6 +4452,15 @@
   (*weights)[2]=x-(*weights)[3]-gamma;
 }
 
+static inline double ConstrainPixelOffset(double x)
+{
+  if (x < (double) -(SSIZE_MAX-512))
+    return((double) -(SSIZE_MAX-512));
+  if (x > (double) (SSIZE_MAX-512))
+    return((double) (SSIZE_MAX-512));
+  return(x);
+}
+
 static inline void SplineWeights(const double x,double (*weights)[4])
 {
   double
@@ -4474,19 +4487,10 @@
   return(delta->x*x+delta->y*y+(1.0-delta->x-delta->y)*p);
 }
 
-/*
-static inline ssize_t NearestNeighbor(const double x)
-{
-  if (x >= 0.0)
-    return((ssize_t) (x+0.5));
-  return((ssize_t) (x-0.5));
-}
-*/
-
-MagickExport MagickBooleanType InterpolatePixelChannel(const Image *image,
-  const CacheView_ *image_view,const PixelChannel channel,
-  const PixelInterpolateMethod method,const double x,const double y,
-  double *pixel,ExceptionInfo *exception)
+MagickExport MagickBooleanType InterpolatePixelChannel(
+  const Image *magick_restrict image,const CacheView_ *image_view,
+  const PixelChannel channel,const PixelInterpolateMethod method,
+  const double x,const double y,double *pixel,ExceptionInfo *exception)
 {
   double
     alpha[16],
@@ -4503,7 +4507,7 @@
     traits;
 
   register const Quantum
-    *p;
+    *magick_restrict p;
 
   register ssize_t
     i;
@@ -4518,8 +4522,8 @@
   status=MagickTrue;
   *pixel=0.0;
   traits=GetPixelChannelTraits(image,channel);
-  x_offset=(ssize_t) floor(x);
-  y_offset=(ssize_t) floor(y);
+  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
+  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=image->interpolate;
@@ -4536,8 +4540,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(x+0.5)-1);
-          y_offset=(ssize_t) (floor(y+0.5)-1);
+          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
+          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
         }
       else
         if (interpolate == Average16InterpolatePixel)
@@ -4720,8 +4724,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(x+0.5);
-      y_offset=(ssize_t) floor(y+0.5);
+      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
+      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
       p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -4885,8 +4889,9 @@
 %
 %  The format of the InterpolatePixelChannels method is:
 %
-%      MagickBooleanType InterpolatePixelChannels(const Image *source,
-%        const CacheView *source_view,const Image *destination,
+%      MagickBooleanType InterpolatePixelChannels(
+%        const Image *magick_restrict source,const CacheView *source_view,
+%        const Image *magick_restrict destination,
 %        const PixelInterpolateMethod method,const double x,const double y,
 %        Quantum *pixel,ExceptionInfo *exception)
 %
@@ -4907,10 +4912,10 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport MagickBooleanType InterpolatePixelChannels(const Image *source,
-  const CacheView_ *source_view,const Image *destination,
-  const PixelInterpolateMethod method,const double x,const double y,
-  Quantum *pixel,ExceptionInfo *exception)
+MagickExport MagickBooleanType InterpolatePixelChannels(
+  const Image *magick_restrict source,const CacheView_ *source_view,
+  const Image *magick_restrict destination,const PixelInterpolateMethod method,
+  const double x,const double y,Quantum *pixel,ExceptionInfo *exception)
 {
   MagickBooleanType
     status;
@@ -4921,7 +4926,7 @@
     pixels[16];
 
   register const Quantum
-    *p;
+    *magick_restrict p;
 
   register ssize_t
     i;
@@ -4937,8 +4942,8 @@
   assert(source->signature == MagickCoreSignature);
   assert(source_view != (CacheView *) NULL);
   status=MagickTrue;
-  x_offset=(ssize_t) floor(x);
-  y_offset=(ssize_t) floor(y);
+  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
+  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=source->interpolate;
@@ -4955,8 +4960,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(x+0.5)-1);
-          y_offset=(ssize_t) (floor(y+0.5)-1);
+          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
+          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
         }
       else
         if (interpolate == Average16InterpolatePixel)
@@ -5220,8 +5225,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(x+0.5);
-      y_offset=(ssize_t) floor(y+0.5);
+      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
+      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
       p=GetCacheViewVirtualPixels(source_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -5504,8 +5509,8 @@
   assert(image->signature == MagickCoreSignature);
   assert(image_view != (CacheView *) NULL);
   status=MagickTrue;
-  x_offset=(ssize_t) floor(x);
-  y_offset=(ssize_t) floor(y);
+  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
+  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=image->interpolate;
@@ -5524,8 +5529,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(x+0.5)-1);
-          y_offset=(ssize_t) (floor(y+0.5)-1);
+          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
+          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
         }
       else if (interpolate == Average16InterpolatePixel)
         {
@@ -5849,8 +5854,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(x+0.5);
-      y_offset=(ssize_t) floor(y+0.5);
+      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
+      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
       p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -5997,7 +6002,7 @@
       */
       if (fabs((double) pixel) > (QuantumRange/2))
         pixel-=QuantumRange;
-      pixel*=2;
+      pixel*=2.0;
     }
   distance+=scale*pixel*pixel;
   if (distance > fuzz)
@@ -6037,7 +6042,7 @@
 %  For example for an RGB:
 %    color_distance^2  = ( (u.r-v.r)^2 + (u.g-v.g)^2 + (u.b-v.b)^2 ) / 3
 %
-%  See http://imagemagick.org/Usage/bugs/fuzz_distance/
+%  See https://imagemagick.org/Usage/bugs/fuzz_distance/
 %
 %  Hue colorspace distances need more work.  Hue is not a distance, it is an
 %  angle!
@@ -6123,7 +6128,7 @@
       */
       if (fabs((double) pixel) > (QuantumRange/2))
         pixel-=QuantumRange;
-      pixel*=2;
+      pixel*=2.0;
     }
   distance+=pixel*pixel*scale;
   if (distance > fuzz)
diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h
index 2069d2a..b5e8012 100644
--- a/MagickCore/pixel.h
+++ b/MagickCore/pixel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -121,7 +121,6 @@
   MeshInterpolatePixel,       /* Triangular Mesh interpolation */
   NearestInterpolatePixel,    /* Nearest Neighbour Only */
   SplineInterpolatePixel      /* Cubic Spline (blurred) interpolation */
-  /* FilterInterpolatePixel,  ** Use resize filter - (very slow) */
 } PixelInterpolateMethod;
 
 typedef enum
@@ -220,12 +219,12 @@
     const size_t,const char *,const StorageType,void *,ExceptionInfo *),
   ImportImagePixels(Image *,const ssize_t,const ssize_t,const size_t,
     const size_t,const char *,const StorageType,const void *,ExceptionInfo *),
-  InterpolatePixelChannel(const Image *,const CacheView_ *,
+  InterpolatePixelChannel(const Image *magick_restrict,const CacheView_ *,
     const PixelChannel,const PixelInterpolateMethod,const double,const double,
     double *,ExceptionInfo *),
-  InterpolatePixelChannels(const Image *,const CacheView_ *,const Image *,
-    const PixelInterpolateMethod,const double,const double,Quantum *,
-    ExceptionInfo *),
+  InterpolatePixelChannels(const Image *magick_restrict,const CacheView_ *,
+    const Image * magick_restrict,const PixelInterpolateMethod,const double,
+    const double,Quantum *,ExceptionInfo *),
   InterpolatePixelInfo(const Image *,const CacheView_ *,
     const PixelInterpolateMethod,const double,const double,PixelInfo *,
     ExceptionInfo *),
diff --git a/MagickCore/policy-private.h b/MagickCore/policy-private.h
index 04659eb..465c2d3 100644
--- a/MagickCore/policy-private.h
+++ b/MagickCore/policy-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -13,7 +13,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 
-  MagickCore private image color methods.
+  MagickCore private policy methods.
 */
 #ifndef MAGICKCORE_POLICY_PRIVATE_H
 #define MAGICKCORE_POLICY_PRIVATE_H
@@ -22,7 +22,7 @@
 extern "C" {
 #endif
 
-#if defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
 /*
   Zero configuration security policy.  Discussion @
   https://imagemagick.org/script/security-policy.php.
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index eb06976..90e080a 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -16,7 +16,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -184,7 +184,7 @@
   */
   cache=NewLinkedList(0);
   status=MagickTrue;
-#if defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   status=LoadPolicyCache(cache,ZeroConfigurationPolicy,"[zero-configuration]",0,
     exception);
 #else
@@ -222,7 +222,8 @@
     if (policy_info == (PolicyInfo *) NULL)
       {
         (void) ThrowMagickException(exception,GetMagickModule(),
-          ResourceLimitError,"MemoryAllocationFailed","`%s'",p->name);
+          ResourceLimitError,"MemoryAllocationFailed","`%s'",
+          p->name == (char *) NULL ? "" : p->name);
         continue;
       }
     (void) memset(policy_info,0,sizeof(*policy_info));
@@ -606,10 +607,11 @@
   register PolicyInfo
     *p;
 
-  (void) LogMagickEvent(PolicyEvent,GetMagickModule(),
-    "Domain: %s; rights=%s; pattern=\"%s\" ...",
-    CommandOptionToMnemonic(MagickPolicyDomainOptions,domain),
-    CommandOptionToMnemonic(MagickPolicyRightsOptions,rights),pattern);
+  if (IsEventLogging() != MagickFalse)
+    (void) LogMagickEvent(PolicyEvent,GetMagickModule(),
+      "Domain: %s; rights=%s; pattern=\"%s\" ...",
+      CommandOptionToMnemonic(MagickPolicyDomainOptions,domain),
+      CommandOptionToMnemonic(MagickPolicyRightsOptions,rights),pattern);
   exception=AcquireExceptionInfo();
   policy_info=GetPolicyInfo("*",exception);
   exception=DestroyExceptionInfo(exception);
@@ -798,7 +800,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -808,7 +810,7 @@
           Docdomain element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -817,7 +819,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -828,10 +830,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > MagickMaxRecursionDepth)
@@ -888,11 +890,11 @@
         policy_info=(PolicyInfo *) NULL;
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'D':
diff --git a/MagickCore/policy.h b/MagickCore/policy.h
index c4500d1..a090541 100644
--- a/MagickCore/policy.h
+++ b/MagickCore/policy.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/prepress.c b/MagickCore/prepress.c
index 6c0720e..c5beb3a 100644
--- a/MagickCore/prepress.c
+++ b/MagickCore/prepress.c
@@ -17,7 +17,7 @@
 %                                October 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/prepress.h b/MagickCore/prepress.h
index e8888c0..0c0a7fc 100644
--- a/MagickCore/prepress.h
+++ b/MagickCore/prepress.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/profile-private.h b/MagickCore/profile-private.h
index d0b726b..22f8025 100644
--- a/MagickCore/profile-private.h
+++ b/MagickCore/profile-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index f5c98f4..9b109d4 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -63,6 +63,7 @@
 #include "MagickCore/resource_.h"
 #include "MagickCore/splay-tree.h"
 #include "MagickCore/string_.h"
+#include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
@@ -86,33 +87,6 @@
 #endif
 
 /*
-  Definitions
-*/
-#define LCMSHDRI
-#if !defined(MAGICKCORE_HDRI_SUPPORT)
-  #if (MAGICKCORE_QUANTUM_DEPTH == 8)
-  #undef LCMSHDRI
-  #define LCMSScaleSource(pixel)  ScaleQuantumToShort(pixel)
-  #define LCMSScaleTarget(pixel)  ScaleShortToQuantum(pixel)
-  typedef unsigned short
-    LCMSType;
-  #elif (MAGICKCORE_QUANTUM_DEPTH == 16)
-  #undef LCMSHDRI
-  #define LCMSScaleSource(pixel)  (pixel)
-  #define LCMSScaleTarget(pixel)  (pixel)
-  typedef unsigned short
-    LCMSType;
-  #endif
-#endif
-
-#if defined(LCMSHDRI)
-#define LCMSScaleSource(pixel)  (source_scale*QuantumScale*(pixel))
-#define LCMSScaleTarget(pixel) ClampToQuantum(target_scale*QuantumRange*(pixel))
-typedef double
-  LCMSType;
-#endif
-
-/*
   Forward declarations
 */
 static MagickBooleanType
@@ -373,24 +347,73 @@
 */
 
 #if defined(MAGICKCORE_LCMS_DELEGATE)
-static LCMSType **DestroyPixelThreadSet(LCMSType **pixels)
+
+typedef struct _LCMSInfo
+{
+  ColorspaceType
+    colorspace;
+
+  cmsUInt32Number
+    type;
+
+  size_t
+    channels;
+
+  cmsHPROFILE
+    profile;
+
+  int
+    intent;
+
+  double
+    **magick_restrict pixels,
+    scale,
+    translate;
+} LCMSInfo;
+
+#if LCMS_VERSION < 2060
+static void* cmsGetContextUserData(cmsContext ContextID)
+{
+  return(ContextID);
+}
+
+static cmsContext cmsCreateContext(void *magick_unused(Plugin),void *UserData)
+{
+  magick_unreferenced(Plugin);
+  return((cmsContext) UserData);
+}
+
+static void cmsSetLogErrorHandlerTHR(cmsContext magick_unused(ContextID),
+  cmsLogErrorHandlerFunction Fn)
+{
+  magick_unreferenced(ContextID);
+  cmsSetLogErrorHandler(Fn);
+}
+
+static void cmsDeleteContext(cmsContext magick_unused(ContextID))
+{
+  magick_unreferenced(ContextID);
+}
+#endif
+
+static double **DestroyPixelThreadSet(double **pixels)
 {
   register ssize_t
     i;
 
-  if (pixels != (LCMSType **) NULL)
-    return((LCMSType **) NULL);
+  if (pixels == (double **) NULL)
+    return((double **) NULL);
   for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
-    if (pixels[i] != (LCMSType *) NULL)
-      pixels[i]=(LCMSType *) RelinquishMagickMemory(pixels[i]);
-  pixels=(LCMSType **) RelinquishMagickMemory(pixels);
+    if (pixels[i] != (double *) NULL)
+      pixels[i]=(double *) RelinquishMagickMemory(pixels[i]);
+  pixels=(double **) RelinquishMagickMemory(pixels);
   return(pixels);
 }
 
-static LCMSType **AcquirePixelThreadSet(const size_t columns,
+static double **AcquirePixelThreadSet(const size_t columns,
   const size_t channels)
 {
-  LCMSType
+  double
     **pixels;
 
   register ssize_t
@@ -400,15 +423,15 @@
     number_threads;
 
   number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
-  pixels=(LCMSType **) AcquireQuantumMemory(number_threads,sizeof(*pixels));
-  if (pixels == (LCMSType **) NULL)
-    return((LCMSType **) NULL);
+  pixels=(double **) AcquireQuantumMemory(number_threads,sizeof(*pixels));
+  if (pixels == (double **) NULL)
+    return((double **) NULL);
   (void) memset(pixels,0,number_threads*sizeof(*pixels));
   for (i=0; i < (ssize_t) number_threads; i++)
   {
-    pixels[i]=(LCMSType *) AcquireQuantumMemory(columns,channels*
+    pixels[i]=(double *) AcquireQuantumMemory(columns,channels*
       sizeof(**pixels));
-    if (pixels[i] == (LCMSType *) NULL)
+    if (pixels[i] == (double *) NULL)
       return(DestroyPixelThreadSet(pixels));
   }
   return(pixels);
@@ -427,11 +450,9 @@
   return(transform);
 }
 
-static cmsHTRANSFORM *AcquireTransformThreadSet(Image *image,
-  const cmsHPROFILE source_profile,const cmsUInt32Number source_type,
-  const cmsHPROFILE target_profile,const cmsUInt32Number target_type,
-  const int intent,const cmsUInt32Number flags,
-  CMSExceptionInfo *cms_exception)
+static cmsHTRANSFORM *AcquireTransformThreadSet(const LCMSInfo *source_info,
+  const LCMSInfo *target_info,const cmsUInt32Number flags,
+  cmsContext cms_context)
 {
   cmsHTRANSFORM
     *transform;
@@ -450,16 +471,15 @@
   (void) memset(transform,0,number_threads*sizeof(*transform));
   for (i=0; i < (ssize_t) number_threads; i++)
   {
-    transform[i]=cmsCreateTransformTHR((cmsContext) cms_exception,
-      source_profile,source_type,target_profile,target_type,intent,flags);
+    transform[i]=cmsCreateTransformTHR(cms_context,source_info->profile,
+      source_info->type,target_info->profile,target_info->type,
+      target_info->intent,flags);
     if (transform[i] == (cmsHTRANSFORM) NULL)
       return(DestroyTransformThreadSet(transform));
   }
   return(transform);
 }
-#endif
 
-#if defined(MAGICKCORE_LCMS_DELEGATE)
 static void CMSExceptionHandler(cmsContext context,cmsUInt32Number severity,
   const char *message)
 {
@@ -472,7 +492,7 @@
   Image
     *image;
 
-  cms_exception=(CMSExceptionInfo *) context;
+  cms_exception=(CMSExceptionInfo *) cmsGetContextUserData(context);
   if (cms_exception == (CMSExceptionInfo *) NULL)
     return;
   exception=cms_exception->exception;
@@ -489,7 +509,8 @@
     (void) LogMagickEvent(TransformEvent,GetMagickModule(),"lcms: #%u, %s",
       severity,message != (char *) NULL ? message : "no message");
   (void) ThrowMagickException(exception,GetMagickModule(),ImageWarning,
-    "UnableToTransformColorspace","`%s'",image->filename);
+    "UnableToTransformColorspace","`%s', %s (#%u)",image->filename,
+    message != (char *) NULL ? message : "no message",severity);
 }
 #endif
 
@@ -789,13 +810,19 @@
 MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
   const void *datum,const size_t length,ExceptionInfo *exception)
 {
+#define GetLCMSPixel(source_info,pixel) \
+  (source_info.scale*QuantumScale*(pixel)+source_info.translate)
 #define ProfileImageTag  "Profile/Image"
+#define SetLCMSPixel(target_info,pixel) \
+  ClampToQuantum(target_info.scale*QuantumRange*(pixel)+target_info.translate)
 #define ThrowProfileException(severity,tag,context) \
 { \
-  if (source_profile != (cmsHPROFILE) NULL) \
-    (void) cmsCloseProfile(source_profile); \
-  if (target_profile != (cmsHPROFILE) NULL) \
-    (void) cmsCloseProfile(target_profile); \
+  if (cms_context != (cmsContext) NULL) \
+    cmsDeleteContext(cms_context); \
+  if (source_info.profile != (cmsHPROFILE) NULL) \
+    (void) cmsCloseProfile(source_info.profile); \
+  if (target_info.profile != (cmsHPROFILE) NULL) \
+    (void) cmsCloseProfile(target_info.profile); \
   ThrowBinaryException(severity,tag,context); \
 }
 
@@ -857,11 +884,6 @@
           value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
           if (LocaleCompare(value,"R98.") != 0)
             (void) SetsRGBImageProfile(image,exception);
-          /* Future.
-          value=GetImageProperty(image,"exif:InteroperabilityIndex",exception);
-          if (LocaleCompare(value,"R03.") != 0)
-            (void) SetAdobeRGB1998ImageProfile(image,exception);
-          */
           icc_profile=GetImageProfile(image,"icc");
         }
       if ((icc_profile != (const StringInfo *) NULL) &&
@@ -876,26 +898,36 @@
         "'%s' (LCMS)",image->filename);
 #else
       {
-        cmsHPROFILE
-          source_profile;
+        cmsContext
+          cms_context;
 
         CMSExceptionInfo
           cms_exception;
 
+        LCMSInfo
+          source_info,
+          target_info;
+
         /*
           Transform pixel colors as defined by the color profiles.
         */
-        cmsSetLogErrorHandler(CMSExceptionHandler);
         cms_exception.image=image;
         cms_exception.exception=exception;
-        (void) cms_exception;
-        source_profile=cmsOpenProfileFromMemTHR((cmsContext) &cms_exception,
-          GetStringInfoDatum(profile),(cmsUInt32Number)
-          GetStringInfoLength(profile));
-        if (source_profile == (cmsHPROFILE) NULL)
+        cms_context=cmsCreateContext(NULL,&cms_exception);
+        if (cms_context == (cmsContext) NULL)
           ThrowBinaryException(ResourceLimitError,
             "ColorspaceColorProfileMismatch",name);
-        if ((cmsGetDeviceClass(source_profile) != cmsSigLinkClass) &&
+        cmsSetLogErrorHandlerTHR(cms_context,CMSExceptionHandler);
+        source_info.profile=cmsOpenProfileFromMemTHR(cms_context,
+          GetStringInfoDatum(profile),(cmsUInt32Number)
+          GetStringInfoLength(profile));
+        if (source_info.profile == (cmsHPROFILE) NULL)
+          {
+            cmsDeleteContext(cms_context);
+            ThrowBinaryException(ResourceLimitError,
+              "ColorspaceColorProfileMismatch",name);
+          }
+        if ((cmsGetDeviceClass(source_info.profile) != cmsSigLinkClass) &&
             (icc_profile == (StringInfo *) NULL))
           status=SetImageProfile(image,name,profile,exception);
         else
@@ -903,269 +935,191 @@
             CacheView
               *image_view;
 
-            ColorspaceType
-              source_colorspace,
-              target_colorspace;
-
             cmsColorSpaceSignature
               signature;
 
-            cmsHPROFILE
-              target_profile;
-
             cmsHTRANSFORM
               *magick_restrict transform;
 
             cmsUInt32Number
-              flags,
-              source_type,
-              target_type;
-
-            int
-              intent;
-
-            LCMSType
-              **magick_restrict source_pixels,
-              **magick_restrict target_pixels;
-
-#if defined(LCMSHDRI)
-            LCMSType
-              source_scale,
-              target_scale;
-#endif
+              flags;
 
             MagickOffsetType
               progress;
 
-            size_t
-              source_channels,
-              target_channels;
-
             ssize_t
               y;
 
-            target_profile=(cmsHPROFILE) NULL;
+            target_info.profile=(cmsHPROFILE) NULL;
             if (icc_profile != (StringInfo *) NULL)
               {
-                target_profile=source_profile;
-                source_profile=cmsOpenProfileFromMemTHR((cmsContext)
-                  &cms_exception,GetStringInfoDatum(icc_profile),
+                target_info.profile=source_info.profile;
+                source_info.profile=cmsOpenProfileFromMemTHR(cms_context,
+                  GetStringInfoDatum(icc_profile),
                   (cmsUInt32Number) GetStringInfoLength(icc_profile));
-                if (source_profile == (cmsHPROFILE) NULL)
+                if (source_info.profile == (cmsHPROFILE) NULL)
                   ThrowProfileException(ResourceLimitError,
                     "ColorspaceColorProfileMismatch",name);
               }
-#if defined(LCMSHDRI)
-            source_scale=1.0;
-#endif
-            source_colorspace=sRGBColorspace;
-            source_channels=3;
-            switch (cmsGetColorSpace(source_profile))
+            source_info.scale=1.0;
+            source_info.translate=0.0;
+            source_info.colorspace=sRGBColorspace;
+            source_info.channels=3;
+            switch (cmsGetColorSpace(source_info.profile))
             {
               case cmsSigCmykData:
               {
-                source_colorspace=CMYKColorspace;
-                source_channels=4;
-#if defined(LCMSHDRI)
-                source_type=(cmsUInt32Number) TYPE_CMYK_DBL;
-                source_scale=100.0;
-#else
-                source_type=(cmsUInt32Number) TYPE_CMYK_16;
-#endif
+                source_info.colorspace=CMYKColorspace;
+                source_info.channels=4;
+                source_info.type=(cmsUInt32Number) TYPE_CMYK_DBL;
+                source_info.scale=100.0;
                 break;
               }
               case cmsSigGrayData:
               {
-                source_colorspace=GRAYColorspace;
-                source_channels=1;
-#if defined(LCMSHDRI)
-                source_type=(cmsUInt32Number) TYPE_GRAY_DBL;
-#else
-                source_type=(cmsUInt32Number) TYPE_GRAY_16;
-#endif
+                source_info.colorspace=GRAYColorspace;
+                source_info.channels=1;
+                source_info.type=(cmsUInt32Number) TYPE_GRAY_DBL;
                 break;
               }
               case cmsSigLabData:
               {
-                source_colorspace=LabColorspace;
-#if defined(LCMSHDRI)
-                source_type=(cmsUInt32Number) TYPE_Lab_DBL;
-                source_scale=100.0;
-#else
-                source_type=(cmsUInt32Number) TYPE_Lab_16;
-#endif
+                source_info.colorspace=LabColorspace;
+                source_info.type=(cmsUInt32Number) TYPE_Lab_DBL;
+                source_info.scale=100.0;
+                source_info.translate=(-0.5);
                 break;
               }
-#if !defined(LCMSHDRI)
-              case cmsSigLuvData:
-              {
-                source_colorspace=YUVColorspace;
-                source_type=(cmsUInt32Number) TYPE_YUV_16;
-                break;
-              }
-#endif
               case cmsSigRgbData:
               {
-                source_colorspace=sRGBColorspace;
-#if defined(LCMSHDRI)
-                source_type=(cmsUInt32Number) TYPE_RGB_DBL;
-#else
-                source_type=(cmsUInt32Number) TYPE_RGB_16;
-#endif
+                source_info.colorspace=sRGBColorspace;
+                source_info.type=(cmsUInt32Number) TYPE_RGB_DBL;
                 break;
               }
               case cmsSigXYZData:
               {
-                source_colorspace=XYZColorspace;
-#if defined(LCMSHDRI)
-                source_type=(cmsUInt32Number) TYPE_XYZ_DBL;
-#else
-                source_type=(cmsUInt32Number) TYPE_XYZ_16;
-#endif
+                source_info.colorspace=XYZColorspace;
+                source_info.type=(cmsUInt32Number) TYPE_XYZ_DBL;
                 break;
               }
-#if !defined(LCMSHDRI)
-              case cmsSigYCbCrData:
-              {
-                source_colorspace=YUVColorspace;
-                source_type=(cmsUInt32Number) TYPE_YCbCr_16;
-                break;
-              }
-#endif
               default:
                 ThrowProfileException(ImageError,
                   "ColorspaceColorProfileMismatch",name);
             }
-            (void) source_colorspace;
-            signature=cmsGetPCS(source_profile);
-            if (target_profile != (cmsHPROFILE) NULL)
-              signature=cmsGetColorSpace(target_profile);
-#if defined(LCMSHDRI)
-            target_scale=1.0;
-#endif
-            target_channels=3;
+            signature=cmsGetPCS(source_info.profile);
+            if (target_info.profile != (cmsHPROFILE) NULL)
+              signature=cmsGetColorSpace(target_info.profile);
+            target_info.scale=1.0;
+            target_info.translate=0.0;
+            target_info.channels=3;
             switch (signature)
             {
               case cmsSigCmykData:
               {
-                target_colorspace=CMYKColorspace;
-                target_channels=4;
-#if defined(LCMSHDRI)
-                target_type=(cmsUInt32Number) TYPE_CMYK_DBL;
-                target_scale=0.01;
-#else
-                target_type=(cmsUInt32Number) TYPE_CMYK_16;
-#endif
+                target_info.colorspace=CMYKColorspace;
+                target_info.channels=4;
+                target_info.type=(cmsUInt32Number) TYPE_CMYK_DBL;
+                target_info.scale=0.01;
                 break;
               }
               case cmsSigGrayData:
               {
-                target_colorspace=GRAYColorspace;
-                target_channels=1;
-#if defined(LCMSHDRI)
-                target_type=(cmsUInt32Number) TYPE_GRAY_DBL;
-#else
-                target_type=(cmsUInt32Number) TYPE_GRAY_16;
-#endif
+                target_info.colorspace=GRAYColorspace;
+                target_info.channels=1;
+                target_info.type=(cmsUInt32Number) TYPE_GRAY_DBL;
                 break;
               }
               case cmsSigLabData:
               {
-                target_colorspace=LabColorspace;
-#if defined(LCMSHDRI)
-                target_type=(cmsUInt32Number) TYPE_Lab_DBL;
-                target_scale=0.01;
-#else
-                target_type=(cmsUInt32Number) TYPE_Lab_16;
-#endif
+                target_info.colorspace=LabColorspace;
+                target_info.type=(cmsUInt32Number) TYPE_Lab_DBL;
+                target_info.scale=0.01;
+                target_info.translate=0.5;
                 break;
               }
-#if !defined(LCMSHDRI)
-              case cmsSigLuvData:
-              {
-                target_colorspace=YUVColorspace;
-                target_type=(cmsUInt32Number) TYPE_YUV_16;
-                break;
-              }
-#endif
               case cmsSigRgbData:
               {
-                target_colorspace=sRGBColorspace;
-#if defined(LCMSHDRI)
-                target_type=(cmsUInt32Number) TYPE_RGB_DBL;
-#else
-                target_type=(cmsUInt32Number) TYPE_RGB_16;
-#endif
+                target_info.colorspace=sRGBColorspace;
+                target_info.type=(cmsUInt32Number) TYPE_RGB_DBL;
                 break;
               }
               case cmsSigXYZData:
               {
-                target_colorspace=XYZColorspace;
-#if defined(LCMSHDRI)
-                target_type=(cmsUInt32Number) TYPE_XYZ_DBL;
-#else
-                target_type=(cmsUInt32Number) TYPE_XYZ_16;
-#endif
+                target_info.colorspace=XYZColorspace;
+                target_info.type=(cmsUInt32Number) TYPE_XYZ_DBL;
                 break;
               }
-#if !defined(LCMSHDRI)
-              case cmsSigYCbCrData:
-              {
-                target_colorspace=YUVColorspace;
-                target_type=(cmsUInt32Number) TYPE_YCbCr_16;
-                break;
-              }
-#endif
               default:
                 ThrowProfileException(ImageError,
                   "ColorspaceColorProfileMismatch",name);
             }
             switch (image->rendering_intent)
             {
-              case AbsoluteIntent: intent=INTENT_ABSOLUTE_COLORIMETRIC; break;
-              case PerceptualIntent: intent=INTENT_PERCEPTUAL; break;
-              case RelativeIntent: intent=INTENT_RELATIVE_COLORIMETRIC; break;
-              case SaturationIntent: intent=INTENT_SATURATION; break;
-              default: intent=INTENT_PERCEPTUAL; break;
+              case AbsoluteIntent:
+              {
+                target_info.intent=INTENT_ABSOLUTE_COLORIMETRIC;
+                break;
+              }
+              case PerceptualIntent:
+              {
+                target_info.intent=INTENT_PERCEPTUAL;
+                break;
+              }
+              case RelativeIntent:
+              {
+                target_info.intent=INTENT_RELATIVE_COLORIMETRIC;
+                break;
+              }
+              case SaturationIntent:
+              {
+                target_info.intent=INTENT_SATURATION;
+                break;
+              }
+              default:
+              {
+                target_info.intent=INTENT_PERCEPTUAL;
+                break;
+              }
             }
             flags=cmsFLAGS_HIGHRESPRECALC;
 #if defined(cmsFLAGS_BLACKPOINTCOMPENSATION)
             if (image->black_point_compensation != MagickFalse)
               flags|=cmsFLAGS_BLACKPOINTCOMPENSATION;
 #endif
-            transform=AcquireTransformThreadSet(image,source_profile,
-              source_type,target_profile,target_type,intent,flags,
-	      &cms_exception);
+            transform=AcquireTransformThreadSet(&source_info,&target_info,
+              flags,cms_context);
             if (transform == (cmsHTRANSFORM *) NULL)
               ThrowProfileException(ImageError,"UnableToCreateColorTransform",
                 name);
             /*
               Transform image as dictated by the source & target image profiles.
             */
-            source_pixels=AcquirePixelThreadSet(image->columns,source_channels);
-            target_pixels=AcquirePixelThreadSet(image->columns,target_channels);
-            if ((source_pixels == (LCMSType **) NULL) ||
-                (target_pixels == (LCMSType **) NULL))
+            source_info.pixels=AcquirePixelThreadSet(image->columns,
+              source_info.channels);
+            target_info.pixels=AcquirePixelThreadSet(image->columns,
+              target_info.channels);
+            if ((source_info.pixels == (double **) NULL) ||
+                (target_info.pixels == (double **) NULL))
               {
-                target_pixels=DestroyPixelThreadSet(target_pixels);
-                source_pixels=DestroyPixelThreadSet(source_pixels);
+                target_info.pixels=DestroyPixelThreadSet(target_info.pixels);
+                source_info.pixels=DestroyPixelThreadSet(source_info.pixels);
                 transform=DestroyTransformThreadSet(transform);
                 ThrowProfileException(ResourceLimitError,
                   "MemoryAllocationFailed",image->filename);
               }
             if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
               {
-                target_pixels=DestroyPixelThreadSet(target_pixels);
-                source_pixels=DestroyPixelThreadSet(source_pixels);
+                target_info.pixels=DestroyPixelThreadSet(target_info.pixels);
+                source_info.pixels=DestroyPixelThreadSet(source_info.pixels);
                 transform=DestroyTransformThreadSet(transform);
-                if (source_profile != (cmsHPROFILE) NULL)
-                  (void) cmsCloseProfile(source_profile);
-                if (target_profile != (cmsHPROFILE) NULL)
-                  (void) cmsCloseProfile(target_profile);
+                if (source_info.profile != (cmsHPROFILE) NULL)
+                  (void) cmsCloseProfile(source_info.profile);
+                if (target_info.profile != (cmsHPROFILE) NULL)
+                  (void) cmsCloseProfile(target_info.profile);
                 return(MagickFalse);
               }
-            if (target_colorspace == CMYKColorspace)
-              (void) SetImageColorspace(image,target_colorspace,exception);
+            if (target_info.colorspace == CMYKColorspace)
+              (void) SetImageColorspace(image,target_info.colorspace,exception);
             progress=0;
             image_view=AcquireAuthenticCacheView(image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1180,7 +1134,7 @@
               MagickBooleanType
                 sync;
 
-              register LCMSType
+              register double
                 *p;
 
               register Quantum
@@ -1198,40 +1152,40 @@
                   status=MagickFalse;
                   continue;
                 }
-              p=source_pixels[id];
+              p=source_info.pixels[id];
               for (x=0; x < (ssize_t) image->columns; x++)
               {
-                *p++=LCMSScaleSource(GetPixelRed(image,q));
-                if (source_channels > 1)
+                *p++=GetLCMSPixel(source_info,GetPixelRed(image,q));
+                if (source_info.channels > 1)
                   {
-                    *p++=LCMSScaleSource(GetPixelGreen(image,q));
-                    *p++=LCMSScaleSource(GetPixelBlue(image,q));
+                    *p++=GetLCMSPixel(source_info,GetPixelGreen(image,q));
+                    *p++=GetLCMSPixel(source_info,GetPixelBlue(image,q));
                   }
-                if (source_channels > 3)
-                  *p++=LCMSScaleSource(GetPixelBlack(image,q));
+                if (source_info.channels > 3)
+                  *p++=GetLCMSPixel(source_info,GetPixelBlack(image,q));
                 q+=GetPixelChannels(image);
               }
-              cmsDoTransform(transform[id],source_pixels[id],target_pixels[id],
-                (unsigned int) image->columns);
-              p=target_pixels[id];
+              cmsDoTransform(transform[id],source_info.pixels[id],
+                target_info.pixels[id],(unsigned int) image->columns);
+              p=target_info.pixels[id];
               q-=GetPixelChannels(image)*image->columns;
               for (x=0; x < (ssize_t) image->columns; x++)
               {
-                if (target_channels == 1)
-                  SetPixelGray(image,LCMSScaleTarget(*p),q);
+                if (target_info.channels == 1)
+                  SetPixelGray(image,SetLCMSPixel(target_info,*p),q);
                 else
-                  SetPixelRed(image,LCMSScaleTarget(*p),q);
+                  SetPixelRed(image,SetLCMSPixel(target_info,*p),q);
                 p++;
-                if (target_channels > 1)
+                if (target_info.channels > 1)
                   {
-                    SetPixelGreen(image,LCMSScaleTarget(*p),q);
+                    SetPixelGreen(image,SetLCMSPixel(target_info,*p),q);
                     p++;
-                    SetPixelBlue(image,LCMSScaleTarget(*p),q);
+                    SetPixelBlue(image,SetLCMSPixel(target_info,*p),q);
                     p++;
                   }
-                if (target_channels > 3)
+                if (target_info.channels > 3)
                   {
-                    SetPixelBlack(image,LCMSScaleTarget(*p),q);
+                    SetPixelBlack(image,SetLCMSPixel(target_info,*p),q);
                     p++;
                   }
                 q+=GetPixelChannels(image);
@@ -1255,7 +1209,7 @@
                 }
             }
             image_view=DestroyCacheView(image_view);
-            (void) SetImageColorspace(image,target_colorspace,exception);
+            (void) SetImageColorspace(image,target_info.colorspace,exception);
             switch (signature)
             {
               case cmsSigRgbData:
@@ -1279,16 +1233,17 @@
               default:
                 break;
             }
-            target_pixels=DestroyPixelThreadSet(target_pixels);
-            source_pixels=DestroyPixelThreadSet(source_pixels);
+            target_info.pixels=DestroyPixelThreadSet(target_info.pixels);
+            source_info.pixels=DestroyPixelThreadSet(source_info.pixels);
             transform=DestroyTransformThreadSet(transform);
             if ((status != MagickFalse) &&
-                (cmsGetDeviceClass(source_profile) != cmsSigLinkClass))
+                (cmsGetDeviceClass(source_info.profile) != cmsSigLinkClass))
               status=SetImageProfile(image,name,profile,exception);
-            if (target_profile != (cmsHPROFILE) NULL)
-              (void) cmsCloseProfile(target_profile);
+            if (target_info.profile != (cmsHPROFILE) NULL)
+              (void) cmsCloseProfile(target_info.profile);
           }
-        (void) cmsCloseProfile(source_profile);
+        (void) cmsCloseProfile(source_info.profile);
+        cmsDeleteContext(cms_context);
       }
 #endif
     }
@@ -1705,36 +1660,36 @@
   }
 }
 
+#if defined(MAGICKCORE_XML_DELEGATE)
 static MagickBooleanType ValidateXMPProfile(const StringInfo *profile)
 {
-#if defined(MAGICKCORE_XML_DELEGATE)
-  {
-    xmlDocPtr
-      document;
-    
-    /*
-      Parse XML profile.
-    */
-    document=xmlReadMemory((const char *) GetStringInfoDatum(profile),(int)
-      GetStringInfoLength(profile),"xmp.xml",NULL,XML_PARSE_NOERROR |
-      XML_PARSE_NOWARNING);
-    if (document == (xmlDocPtr) NULL)
-      return(MagickFalse);
-    xmlFreeDoc(document);
-    return(MagickTrue);
-  }
-#else
+  xmlDocPtr
+    document;
+
+  /*
+    Parse XML profile.
+  */
+  document=xmlReadMemory((const char *) GetStringInfoDatum(profile),(int)
+    GetStringInfoLength(profile),"xmp.xml",NULL,XML_PARSE_NOERROR |
+    XML_PARSE_NOWARNING);
+  if (document == (xmlDocPtr) NULL)
+    return(MagickFalse);
+  xmlFreeDoc(document);
   return(MagickTrue);
-#endif
 }
+#else
+static MagickBooleanType ValidateXMPProfile(const StringInfo *profile)
+{
+  return(MagickFalse);
+}
+#endif
 
 static MagickBooleanType SetImageProfileInternal(Image *image,const char *name,
   const StringInfo *profile,const MagickBooleanType recursive,
   ExceptionInfo *exception)
 {
   char
-    key[MagickPathExtent],
-    property[MagickPathExtent];
+    key[MagickPathExtent];
 
   MagickBooleanType
     status;
@@ -1765,11 +1720,6 @@
         if (recursive == MagickFalse)
           WriteTo8BimProfile(image,name,profile);
     }
-  /*
-    Inject profile into image properties.
-  */
-  (void) FormatLocaleString(property,MagickPathExtent,"%s:*",name);
-  (void) GetImageProperty(image,property,exception);
   return(status);
 }
 
diff --git a/MagickCore/profile.h b/MagickCore/profile.h
index 6f62469..3bbcfb8 100644
--- a/MagickCore/profile.h
+++ b/MagickCore/profile.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 3efbb22..042056e 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -918,10 +918,10 @@
       tag;
 
     const char
-      *description;
+      description[36];
   } TagInfo;
 
-  static TagInfo
+  static const TagInfo
     EXIFTag[] =
     {
       {  0x001, "exif:InteroperabilityIndex" },
@@ -1220,7 +1220,7 @@
       { 0x1001d, "exif:GPSDateStamp" },
       { 0x1001e, "exif:GPSDifferential" },
       { 0x1001f, "exif:GPSHPositioningError" },
-      { 0x00000, (const char *) NULL }
+      { 0x00000, "" }
     };  /* http://www.cipa.jp/std/documents/e/DC-008-Translation-2016-E.pdf */
 
   const StringInfo
@@ -1444,6 +1444,8 @@
       format=(size_t) ReadPropertyUnsignedShort(endian,q+2);
       if (format >= (sizeof(tag_bytes)/sizeof(*tag_bytes)))
         break;
+      if (format == 0)
+        break;  /* corrupt EXIF */
       components=(ssize_t) ReadPropertySignedLong(endian,q+4);
       if (components < 0)
         break;  /* corrupt EXIF */
@@ -1475,6 +1477,8 @@
             buffer[MagickPathExtent],
             *value;
 
+          if ((p < exif) || (p > (exif+length-tag_bytes[format])))
+            break;
           value=(char *) NULL;
           *buffer='\0';
           switch (format)
@@ -1536,9 +1540,11 @@
               EXIFMultipleValues(8,"%f",*(double *) p1);
               break;
             }
-            default:
             case EXIF_FMT_STRING:
+            default:
             {
+              if ((p < exif) || (p > (exif+length-number_bytes)))
+                break;
               value=(char *) NULL;
               if (~((size_t) number_bytes) >= 1)
                 value=(char *) AcquireQuantumMemory((size_t) number_bytes+1UL,
@@ -1634,11 +1640,19 @@
                 directory_stack[level].entry=entry;
                 directory_stack[level].offset=tag_offset;
                 level++;
+                /*
+                  Check for duplicate tag.
+                */
+                for (i=0; i < level; i++)
+                  if (directory_stack[i].directory == (exif+tag_offset1))
+                    break;
+                if (i < level)
+                  break;  /* duplicate tag */
                 directory_stack[level].directory=exif+tag_offset1;
                 directory_stack[level].offset=tag_offset2;
                 directory_stack[level].entry=0;
                 level++;
-                if ((directory+2+(12*number_entries)) > (exif+length))
+                if ((directory+2+(12*number_entries)+4) > (exif+length))
                   break;
                 tag_offset1=(ssize_t) ReadPropertySignedLong(endian,directory+
                   2+(12*number_entries));
@@ -2057,6 +2071,22 @@
   return(path);
 }
 
+static inline void TraceBezierCurve(char *message,PointInfo *last,
+  PointInfo *point)
+{
+  /*
+    Handle special cases when Bezier curves are used to describe
+    corners and straight lines.
+  */
+  if (((last+1)->x == (last+2)->x) && ((last+1)->y == (last+2)->y) &&
+      (point->x == (point+1)->x) && (point->y == (point+1)->y))
+    (void) FormatLocaleString(message,MagickPathExtent,
+      "L %g %g\n",point[1].x,point[1].y);
+  else
+    (void) FormatLocaleString(message,MagickPathExtent,"C %g %g %g %g %g %g\n",
+      (last+2)->x,(last+2)->y,point->x,point->y,(point+1)->x,(point+1)->y);
+}
+
 static char *TraceSVGClippath(const unsigned char *blob,size_t length,
   const size_t columns,const size_t rows)
 {
@@ -2167,18 +2197,7 @@
           }
         else
           {
-            /*
-              Handle special cases when Bezier curves are used to describe
-              corners and straight lines.
-            */
-            if (((last[1].x == last[2].x) || (last[1].y == last[2].y)) &&
-                (point[0].x == point[1].x) && (point[0].y == point[1].y))
-              (void) FormatLocaleString(message,MagickPathExtent,
-                "L %g %g\n",point[1].x,point[1].y);
-            else
-              (void) FormatLocaleString(message,MagickPathExtent,
-                "C %g %g %g %g %g %g\n",last[2].x,last[2].y,point[0].x,
-                point[0].y,point[1].x,point[1].y);
+            TraceBezierCurve(message,last,point);
             for (i=0; i < 3; i++)
               last[i]=point[i];
           }
@@ -2190,19 +2209,7 @@
         */
         if (knot_count == 0)
           {
-           /*
-              Same special handling as above except we compare to the
-              first point in the path and close the path.
-            */
-            if (((last[1].x == last[2].x) || (last[1].y == last[2].y)) &&
-                (first[0].x == first[1].x) && (first[0].y == first[1].y))
-              (void) FormatLocaleString(message,MagickPathExtent,
-                "L %g %g Z\n",first[1].x,first[1].y);
-            else
-              (void) FormatLocaleString(message,MagickPathExtent,
-                "C %g %g %g %g %g %g Z\n",last[2].x,last[2].y,first[0].x,
-                first[0].y,first[1].x,first[1].y);
-            (void) ConcatenateString(&path,message);
+            TraceBezierCurve(message,last,first);
             in_subpath=MagickFalse;
           }
         break;
@@ -2229,27 +2236,43 @@
 MagickExport const char *GetImageProperty(const Image *image,
   const char *property,ExceptionInfo *exception)
 {
+  MagickBooleanType
+    read_from_properties;
+
   register const char
     *p;
 
+  size_t
+    property_length;
+
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  p=(const char *) NULL;
-  if (image->properties != (void *) NULL)
+  if ((property == (const char *) NULL) || (*property == '\0'))
+    return((const char *) NULL);
+  read_from_properties=MagickTrue;
+  property_length=strlen(property);
+  if (property_length > 2 && (*(property+(property_length-2)) == ':') &&
+      (*(property+(property_length-1)) == '*'))
+    read_from_properties=MagickFalse;
+  if (read_from_properties != MagickFalse)
     {
-      if (property == (const char *) NULL)
-        return((const char *) GetRootValueFromSplayTree((SplayTreeInfo *)
-          image->properties));
-      p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
-        image->properties,property);
-      if (p != (const char *) NULL)
+      p=(const char *) NULL;
+      if (image->properties != (void *) NULL)
+        {
+          if (property == (const char *) NULL)
+            return((const char *) GetRootValueFromSplayTree((SplayTreeInfo *)
+              image->properties));
+          p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
+            image->properties,property);
+          if (p != (const char *) NULL)
+            return(p);
+        }
+      if ((property == (const char *) NULL) ||
+          (strchr(property,':') == (char *) NULL))
         return(p);
     }
-  if ((property == (const char *) NULL) ||
-      (strchr(property,':') == (char *) NULL))
-    return(p);
   switch (*property)
   {
     case '8':
@@ -2300,7 +2323,8 @@
     default:
       break;
   }
-  if (image->properties != (void *) NULL)
+  if ((image->properties != (void *) NULL) &&
+      (read_from_properties != MagickFalse))
     {
       p=(const char *) GetValueFromSplayTree((SplayTreeInfo *)
         image->properties,property);
@@ -4510,6 +4534,17 @@
           geometry=DestroyString(geometry);
           return(MagickTrue);
         }
+      if (LocaleCompare("type",property) == 0)
+        {
+          ssize_t
+            type;
+
+          type=ParseCommandOption(MagickTypeOptions,MagickFalse,value);
+          if (type < 0)
+            return(MagickFalse);
+          image->type=(ImageType) type;
+          return(MagickTrue);
+        }
       break; /* not an attribute, add as a property */
     }
     case 'U':
diff --git a/MagickCore/property.h b/MagickCore/property.h
index 0b53ec9..eb9c60c 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index b5fb316..3d5745f 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -182,6 +182,7 @@
 #include "MagickCore/colormap.h"
 #include "MagickCore/colorspace.h"
 #include "MagickCore/colorspace-private.h"
+#include "MagickCore/compare.h"
 #include "MagickCore/enhance.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
@@ -199,6 +200,7 @@
 #include "MagickCore/quantize.h"
 #include "MagickCore/quantum.h"
 #include "MagickCore/quantum-private.h"
+#include "MagickCore/random_.h"
 #include "MagickCore/resource_.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
@@ -651,11 +653,15 @@
       /*
         Monochrome image.
       */
-      intensity=0.0;
-      if ((image->colors > 1) &&
-          (GetPixelInfoLuma(image->colormap+0) >
-           GetPixelInfoLuma(image->colormap+1)))
-        intensity=(double) QuantumRange;
+      intensity=GetPixelInfoLuma(image->colormap+0) > QuantumRange/2.0 ? 0.0 :
+        QuantumRange;
+      if (image->colors > 1)
+        {
+          intensity=0.0;
+          if (GetPixelInfoLuma(image->colormap+0) >
+              GetPixelInfoLuma(image->colormap+1))
+            intensity=(double) QuantumRange;
+        }
       image->colormap[0].red=intensity;
       image->colormap[0].green=intensity;
       image->colormap[0].blue=intensity;
@@ -1950,8 +1956,7 @@
   /*
     Distribute quantization error along a Hilbert curve.
   */
-  (void) memset(cube_info->error,0,ErrorQueueLength*
-    sizeof(*cube_info->error));
+  (void) memset(cube_info->error,0,ErrorQueueLength*sizeof(*cube_info->error));
   cube_info->x=0;
   cube_info->y=0;
   i=MagickMax((ssize_t) image->columns,(ssize_t) image->rows);
@@ -2053,8 +2058,7 @@
   /*
     Initialize color cache.
   */
-  (void) memset(cube_info->cache,(-1),sizeof(*cube_info->cache)*
-    length);
+  (void) memset(cube_info->cache,(-1),sizeof(*cube_info->cache)*length);
   /*
     Distribute weights along a curve of exponential decay.
   */
@@ -2201,10 +2205,8 @@
     mean_error,
     mean_error_per_pixel;
 
-  size_t
-    index;
-
   ssize_t
+    index,
     y;
 
   assert(image != (Image *) NULL);
@@ -2235,7 +2237,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      index=GetPixelIndex(image,p);
+      index=(ssize_t) GetPixelIndex(image,p);
       if (image->alpha_trait == BlendPixelTrait)
         {
           alpha=(double) (QuantumScale*GetPixelAlpha(image,p));
@@ -2309,6 +2311,435 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%  K m e a n s I m a g e                                                      %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  KmeansImage() applies k-means color reduction to an image. This is a
+%  colorspace clustering or segmentation technique.
+%
+%  The format of the KmeansImage method is:
+%
+%      MagickBooleanType KmeansImage(Image *image,const size_t number_colors,
+%        const size_t max_iterations,const double tolerance,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o number_colors: number of colors to use as seeds.
+%
+%    o max_iterations: maximum number of iterations while converging.
+%
+%    o tolerance: the maximum tolerance.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+typedef struct _KmeansInfo
+{
+  double
+    red,
+    green,
+    blue,
+    alpha,
+    black,
+    count,
+    distortion;
+} KmeansInfo;
+
+static KmeansInfo **DestroyKmeansThreadSet(KmeansInfo **kmeans_info)
+{
+  register ssize_t
+    i;
+
+  assert(kmeans_info != (KmeansInfo **) NULL);
+  for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
+    if (kmeans_info[i] != (KmeansInfo *) NULL)
+      kmeans_info[i]=(KmeansInfo *) RelinquishMagickMemory(kmeans_info[i]);
+  kmeans_info=(KmeansInfo **) RelinquishMagickMemory(kmeans_info);
+  return(kmeans_info);
+}
+
+static KmeansInfo **AcquireKmeansThreadSet(const size_t number_colors)
+{
+  KmeansInfo
+    **kmeans_info;
+
+  register ssize_t
+    i;
+
+  size_t
+    number_threads;
+
+  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  kmeans_info=(KmeansInfo **) AcquireQuantumMemory(number_threads,
+    sizeof(*kmeans_info));
+  if (kmeans_info == (KmeansInfo **) NULL)
+    return((KmeansInfo **) NULL);
+  (void) memset(kmeans_info,0,number_threads*sizeof(*kmeans_info));
+  for (i=0; i < (ssize_t) number_threads; i++)
+  {
+    kmeans_info[i]=(KmeansInfo *) AcquireQuantumMemory(number_colors,
+      sizeof(**kmeans_info));
+    if (kmeans_info[i] == (KmeansInfo *) NULL)
+      return(DestroyKmeansThreadSet(kmeans_info));
+  }
+  return(kmeans_info);
+}
+
+static inline double KmeansMetric(const Image *magick_restrict image,
+  const Quantum *magick_restrict p,const PixelInfo *magick_restrict q)
+{
+  double
+    gamma,
+    metric,
+    pixel;
+
+  gamma=1.0;
+  metric=0.0;
+  if ((image->alpha_trait != UndefinedPixelTrait) ||
+      (q->alpha_trait != UndefinedPixelTrait))
+    {
+      double
+        que_alpha;
+
+      que_alpha=q->alpha_trait != UndefinedPixelTrait ? q->alpha : OpaqueAlpha;
+      pixel=QuantumScale*(GetPixelAlpha(image,p)-que_alpha);
+      metric+=pixel*pixel;
+      gamma*=QuantumScale*GetPixelAlpha(image,p);
+      gamma*=QuantumScale*que_alpha;
+    }
+  if (image->colorspace == CMYKColorspace)
+    {
+      pixel=QuantumScale*(GetPixelBlack(image,p)-q->black);
+      metric+=gamma*pixel*pixel;
+      gamma*=QuantumScale*(QuantumRange-GetPixelBlack(image,p));
+      gamma*=QuantumScale*(QuantumRange-q->black);
+    }
+  metric*=3.0;
+  pixel=QuantumScale*(GetPixelRed(image,p)-q->red);
+  if ((image->colorspace == HSLColorspace) ||
+      (image->colorspace == HSBColorspace) ||
+      (image->colorspace == HWBColorspace))
+    {
+      if (fabs((double) pixel) > 0.5)
+        pixel-=0.5;
+      pixel*=2.0;
+    }
+  metric+=gamma*pixel*pixel;
+  pixel=QuantumScale*(GetPixelGreen(image,p)-q->green);
+  metric+=gamma*pixel*pixel;
+  pixel=QuantumScale*(GetPixelBlue(image,p)-q->blue);
+  metric+=gamma*pixel*pixel;
+  return(metric);
+}
+
+MagickExport MagickBooleanType KmeansImage(Image *image,
+  const size_t number_colors,const size_t max_iterations,const double tolerance,
+  ExceptionInfo *exception)
+{
+#define KmeansImageTag  "Kmeans/Image"
+#define RandomColorComponent(info)  (QuantumRange*GetPseudoRandomValue(info))
+
+  CacheView
+    *image_view;
+
+  const char
+    *colors;
+
+  double
+    previous_tolerance;
+
+  KmeansInfo
+    **kmeans_pixels;
+
+  MagickBooleanType
+    verbose,
+    status;
+
+  register ssize_t
+    n;
+
+  size_t
+    number_threads;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  status=AcquireImageColormap(image,number_colors,exception);
+  if (status == MagickFalse)
+    return(status);
+  colors=GetImageArtifact(image,"kmeans:seed-colors");
+  if (colors == (const char *) NULL)
+    {
+      CubeInfo
+        *cube_info;
+
+      QuantizeInfo
+        *quantize_info;
+
+      size_t
+        colors,
+        depth;
+
+      /*
+        Seed clusters from color quantization.
+      */
+      quantize_info=AcquireQuantizeInfo((ImageInfo *) NULL);
+      quantize_info->number_colors=number_colors;
+      quantize_info->dither_method=NoDitherMethod;
+      colors=number_colors;
+      for (depth=1; colors != 0; depth++)
+        colors>>=2;
+      cube_info=GetCubeInfo(quantize_info,depth,number_colors);
+      if (cube_info == (CubeInfo *) NULL)
+        {
+          quantize_info=DestroyQuantizeInfo(quantize_info);
+          ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+            image->filename);
+        }
+      status=ClassifyImageColors(cube_info,image,exception);
+      if (status != MagickFalse)
+        {
+          if (cube_info->colors > cube_info->maximum_colors)
+            ReduceImageColors(image,cube_info);
+          image->colors=0;
+          status=DefineImageColormap(image,cube_info,cube_info->root);
+        }
+      DestroyCubeInfo(cube_info);
+      quantize_info=DestroyQuantizeInfo(quantize_info);
+      if (status == MagickFalse)
+        return(status);
+    }
+  else
+    {
+      char
+        color[MagickPathExtent];
+
+      register const char
+        *p;
+
+      /*
+        Seed clusters from color list (e.g. red;green;blue).
+      */
+      for (n=0, p=colors; n < (ssize_t) image->colors; n++)
+      {
+        register const char
+          *q;
+
+        for (q=p; *q != '\0'; q++)
+          if (*q == ';')
+            break;
+        (void) CopyMagickString(color,p,(size_t) MagickMin(q-p+1,
+          MagickPathExtent));
+        (void) QueryColorCompliance(color,AllCompliance,image->colormap+n,
+          exception);
+        if (*q == '\0')
+          {
+            n++;
+            break;
+          }
+        p=q+1;
+      }
+      if (n < (ssize_t) image->colors)
+        {
+          RandomInfo
+            *random_info;
+
+          /*
+            Seed clusters from random values.
+          */
+          random_info=AcquireRandomInfo();
+          for ( ; n < (ssize_t) image->colors; n++)
+          {
+            (void) QueryColorCompliance("#000",AllCompliance,image->colormap+n,
+              exception);
+            image->colormap[n].red=RandomColorComponent(random_info);
+            image->colormap[n].green=RandomColorComponent(random_info);
+            image->colormap[n].blue=RandomColorComponent(random_info);
+            if (image->alpha_trait != BlendPixelTrait)
+              image->colormap[n].alpha=RandomColorComponent(random_info);
+            if (image->colorspace == CMYKColorspace)
+              image->colormap[n].black=RandomColorComponent(random_info);
+          }
+          random_info=DestroyRandomInfo(random_info);
+        }
+    }
+  /*
+    Iterative refinement.
+  */
+  kmeans_pixels=AcquireKmeansThreadSet(number_colors);
+  if (kmeans_pixels == (KmeansInfo **) NULL)
+    ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+      image->filename);
+  previous_tolerance=0.0;
+  verbose=IsStringTrue(GetImageArtifact(image,"debug"));
+  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  image_view=AcquireAuthenticCacheView(image,exception);
+  for (n=0; n < (ssize_t) max_iterations; n++)
+  {
+    double
+      distortion;
+
+    register ssize_t
+      i;
+
+    ssize_t
+      y;
+
+    for (i=0; i < (ssize_t) number_threads; i++)
+      (void) memset(kmeans_pixels[i],0,image->colors*sizeof(*kmeans_pixels[i]));
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+    #pragma omp parallel for schedule(dynamic) shared(status) \
+      magick_number_threads(image,image,image->rows,1)
+#endif
+    for (y=0; y < (ssize_t) image->rows; y++)
+    {
+      const int
+        id = GetOpenMPThreadId();
+
+      register Quantum
+        *magick_restrict q;
+
+      register ssize_t
+        x;
+
+      if (status == MagickFalse)
+        continue;
+      q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
+      if (q == (Quantum *) NULL)
+        {
+          status=MagickFalse;
+          continue;
+        }
+      for (x=0; x < (ssize_t) image->columns; x++)
+      {
+        double
+          min_distance;
+
+        register ssize_t
+          i;
+
+        ssize_t
+          j;
+
+        /*
+          Assign each pixel whose mean has the least squared color distance.
+        */
+        j=0;
+        min_distance=KmeansMetric(image,q,image->colormap+0);
+        for (i=1; i < (ssize_t) image->colors; i++)
+        {
+          double
+            distance;
+
+          if (min_distance <= MagickEpsilon)
+            break;
+          distance=KmeansMetric(image,q,image->colormap+i);
+          if (distance < min_distance)
+            {
+              min_distance=distance;
+              j=i;
+            }
+        }
+        kmeans_pixels[id][j].red+=QuantumScale*GetPixelRed(image,q);
+        kmeans_pixels[id][j].green+=QuantumScale*GetPixelGreen(image,q);
+        kmeans_pixels[id][j].blue+=QuantumScale*GetPixelBlue(image,q);
+        if (image->alpha_trait != BlendPixelTrait)
+          kmeans_pixels[id][j].alpha+=QuantumScale*GetPixelAlpha(image,q);
+        if (image->colorspace == CMYKColorspace)
+          kmeans_pixels[id][j].black+=QuantumScale*GetPixelBlack(image,q);
+        kmeans_pixels[id][j].count++;
+        kmeans_pixels[id][j].distortion+=min_distance;
+        SetPixelIndex(image,(Quantum) j,q);
+        q+=GetPixelChannels(image);
+      }
+      if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+        status=MagickFalse;
+    }
+    if (status == MagickFalse)
+      break;
+    /*
+      Reduce sums to [0] entry.
+    */
+    for (i=1; i < (ssize_t) number_threads; i++)
+    {
+      register ssize_t
+        j;
+
+      for (j=0; j < (ssize_t) image->colors; j++)
+      {
+        kmeans_pixels[0][j].red+=kmeans_pixels[i][j].red;
+        kmeans_pixels[0][j].green+=kmeans_pixels[i][j].green;
+        kmeans_pixels[0][j].blue+=kmeans_pixels[i][j].blue;
+        if (image->alpha_trait != BlendPixelTrait)
+          kmeans_pixels[0][j].alpha+=kmeans_pixels[i][j].alpha;
+        if (image->colorspace == CMYKColorspace)
+          kmeans_pixels[0][j].black+=kmeans_pixels[i][j].black;
+        kmeans_pixels[0][j].count+=kmeans_pixels[i][j].count;
+        kmeans_pixels[0][j].distortion+=kmeans_pixels[i][j].distortion;
+      }
+    }
+    /*
+      Calculate the new means (centroids) of the pixels in the new clusters.
+    */
+    distortion=0.0;
+    for (i=0; i < (ssize_t) image->colors; i++)
+    {
+      double
+        gamma;
+
+      gamma=PerceptibleReciprocal((double) kmeans_pixels[0][i].count);
+      image->colormap[i].red=gamma*QuantumRange*kmeans_pixels[0][i].red;
+      image->colormap[i].green=gamma*QuantumRange*kmeans_pixels[0][i].green;
+      image->colormap[i].blue=gamma*QuantumRange*kmeans_pixels[0][i].blue;
+      if (image->alpha_trait != BlendPixelTrait)
+        image->colormap[i].alpha=gamma*QuantumRange*kmeans_pixels[0][i].alpha;
+      if (image->colorspace == CMYKColorspace)
+        image->colormap[i].black=gamma*QuantumRange*kmeans_pixels[0][i].black;
+      distortion+=kmeans_pixels[0][i].distortion;
+    }
+    if (verbose != MagickFalse)
+      (void) FormatLocaleFile(stderr,"distortion[%.20g]: %*g %*g\n",(double) n,
+        GetMagickPrecision(),distortion,GetMagickPrecision(),
+        fabs(distortion-previous_tolerance));
+    if (fabs(distortion-previous_tolerance) <= tolerance)
+      break;
+    previous_tolerance=distortion;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+        proceed=SetImageProgress(image,KmeansImageTag,(MagickOffsetType) n,
+          max_iterations);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  image_view=DestroyCacheView(image_view);
+  kmeans_pixels=DestroyKmeansThreadSet(kmeans_pixels);
+  if (image->progress_monitor != (MagickProgressMonitor) NULL)
+    (void) SetImageProgress(image,KmeansImageTag,(MagickOffsetType)
+      max_iterations-1,max_iterations);
+  if (status == MagickFalse)
+    return(status);
+  return(SyncImage(image,exception));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %     P o s t e r i z e I m a g e                                             %
 %                                                                             %
 %                                                                             %
@@ -2351,8 +2782,8 @@
   const DitherMethod dither_method,ExceptionInfo *exception)
 {
 #define PosterizeImageTag  "Posterize/Image"
-#define PosterizePixel(pixel) (Quantum) (QuantumRange*(MagickRound( \
-  QuantumScale*pixel*(levels-1)))/MagickMax((ssize_t) levels-1,1))
+#define PosterizePixel(pixel) ClampToQuantum((MagickRealType) QuantumRange*( \
+  MagickRound(QuantumScale*pixel*(levels-1)))/MagickMax((ssize_t) levels-1,1))
 
   CacheView
     *image_view;
@@ -2513,17 +2944,20 @@
   for (i=0; i < (ssize_t) number_children; i++)
     if (node_info->child[i] != (NodeInfo *) NULL)
       PruneChild(cube_info,node_info->child[i]);
-  /*
-    Merge color statistics into parent.
-  */
-  parent=node_info->parent;
-  parent->number_unique+=node_info->number_unique;
-  parent->total_color.red+=node_info->total_color.red;
-  parent->total_color.green+=node_info->total_color.green;
-  parent->total_color.blue+=node_info->total_color.blue;
-  parent->total_color.alpha+=node_info->total_color.alpha;
-  parent->child[node_info->id]=(NodeInfo *) NULL;
-  cube_info->nodes--;
+  if (cube_info->nodes > cube_info->maximum_colors)
+    {
+      /*
+        Merge color statistics into parent.
+      */
+      parent=node_info->parent;
+      parent->number_unique+=node_info->number_unique;
+      parent->total_color.red+=node_info->total_color.red;
+      parent->total_color.green+=node_info->total_color.green;
+      parent->total_color.blue+=node_info->total_color.blue;
+      parent->total_color.alpha+=node_info->total_color.alpha;
+      parent->child[node_info->id]=(NodeInfo *) NULL;
+      cube_info->nodes--;
+    }
 }
 
 /*
@@ -2676,15 +3110,6 @@
       if (SetImageGray(image,exception) != MagickFalse)
         (void) SetGrayscaleImage(image,exception);
     }
-  if ((image->storage_class == PseudoClass) &&
-      (image->colors <= maximum_colors))
-    {
-      if ((quantize_info->colorspace != UndefinedColorspace) &&
-          (quantize_info->colorspace != CMYKColorspace))
-        (void) TransformImageColorspace(image,quantize_info->colorspace,
-          exception);
-      return(MagickTrue);
-    }
   depth=quantize_info->tree_depth;
   if (depth == 0)
     {
@@ -2715,13 +3140,10 @@
   if (status != MagickFalse)
     {
       /*
-        Reduce the number of colors in the image if it contains more than the
-        maximum, otherwise we can disable dithering to improve the performance.
+        Reduce the number of colors in the image.
       */
       if (cube_info->colors > cube_info->maximum_colors)
         ReduceImageColors(image,cube_info);
-      else
-        cube_info->quantize_info->dither_method=NoDitherMethod;
       status=AssignImageColors(image,cube_info,exception);
     }
   DestroyCubeInfo(cube_info);
@@ -3296,6 +3718,10 @@
   color_2=(PixelInfo *) y;
   intensity=GetPixelInfoIntensity((const Image *) NULL,color_1)-
     GetPixelInfoIntensity((const Image *) NULL,color_2);
+  if (intensity < (double) INT_MIN)
+    intensity=(double) INT_MIN;
+  if (intensity > (double) INT_MAX)
+    intensity=(double) INT_MAX;
   return((int) intensity);
 }
 
@@ -3318,6 +3744,9 @@
   register ssize_t
     i;
 
+  size_t
+    extent;
+
   ssize_t
     *colormap_index,
     j,
@@ -3327,19 +3756,15 @@
   assert(image->signature == MagickCoreSignature);
   if (image->type != GrayscaleType)
     (void) TransformImageColorspace(image,GRAYColorspace,exception);
-  if (image->storage_class == PseudoClass)
-    colormap_index=(ssize_t *) AcquireQuantumMemory(image->colors+1,
-      sizeof(*colormap_index));
-  else
-    colormap_index=(ssize_t *) AcquireQuantumMemory(MaxColormapSize+1,
-      sizeof(*colormap_index));
+  extent=MagickMax(image->colors+1,MagickMax(MaxColormapSize,MaxMap+1));
+  colormap_index=(ssize_t *) AcquireQuantumMemory(extent,
+    sizeof(*colormap_index));
   if (colormap_index == (ssize_t *) NULL)
     ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
       image->filename);
   if (image->storage_class != PseudoClass)
     {
-      (void) memset(colormap_index,(-1),MaxColormapSize*
-        sizeof(*colormap_index));
+      (void) memset(colormap_index,(-1),extent*sizeof(*colormap_index));
       if (AcquireImageColormap(image,MaxColormapSize,exception) == MagickFalse)
         {
           colormap_index=(ssize_t *) RelinquishMagickMemory(colormap_index);
@@ -3401,6 +3826,7 @@
       }
       image_view=DestroyCacheView(image_view);
     }
+  (void) memset(colormap_index,0,extent*sizeof(*colormap_index));
   for (i=0; i < (ssize_t) image->colors; i++)
     image->colormap[i].alpha=(double) i;
   qsort((void *) image->colormap,image->colors,sizeof(PixelInfo),
diff --git a/MagickCore/quantize.h b/MagickCore/quantize.h
index 6f3e22d..28e5340 100644
--- a/MagickCore/quantize.h
+++ b/MagickCore/quantize.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -53,9 +53,11 @@
     signature;
 } QuantizeInfo;
 
+
 extern MagickExport MagickBooleanType
   CompressImageColormap(Image *,ExceptionInfo *),
   GetImageQuantizeError(Image *,ExceptionInfo *),
+  KmeansImage(Image *,const size_t,const size_t,const double,ExceptionInfo *),
   PosterizeImage(Image *,const size_t,const DitherMethod,ExceptionInfo *),
   QuantizeImage(const QuantizeInfo *,Image *,ExceptionInfo *),
   QuantizeImages(const QuantizeInfo *,Image *,ExceptionInfo *),
diff --git a/MagickCore/quantum-export.c b/MagickCore/quantum-export.c
index bf0e52c..a9bb82b 100644
--- a/MagickCore/quantum-export.c
+++ b/MagickCore/quantum-export.c
@@ -22,7 +22,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -819,13 +819,13 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            pixel=(float) GetPixelAlpha(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelAlpha(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -1063,13 +1063,13 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            pixel=(float) GetPixelOpacity(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelOpacity(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -1693,14 +1693,14 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlack(image,p),q);
-            pixel=(float) (GetPixelAlpha(image,p));
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) (GetPixelAlpha(image,p));
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -1858,14 +1858,14 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlack(image,p),q);
-            pixel=(float) (GetPixelOpacity(image,p));
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) (GetPixelOpacity(image,p));
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -2143,10 +2143,10 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
-            pixel=(float) GetPixelLuma(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelLuma(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -2341,12 +2341,12 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
-            pixel=(float) GetPixelLuma(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
-            pixel=(float) (GetPixelAlpha(image,p));
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelLuma(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
+            float_pixel=(float) (GetPixelAlpha(image,p));
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -2809,11 +2809,11 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelIndex(image,p),q);
-            pixel=(float)  GetPixelAlpha(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float)  GetPixelAlpha(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -3552,13 +3552,13 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            pixel=(float) GetPixelAlpha(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelAlpha(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -3796,13 +3796,13 @@
           for (x=0; x < (ssize_t) number_pixels; x++)
           {
             float
-              pixel;
+              float_pixel;
 
             q=PopFloatPixel(quantum_info,(float) GetPixelRed(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelGreen(image,p),q);
             q=PopFloatPixel(quantum_info,(float) GetPixelBlue(image,p),q);
-            pixel=(float) GetPixelOpacity(image,p);
-            q=PopFloatPixel(quantum_info,pixel,q);
+            float_pixel=(float) GetPixelOpacity(image,p);
+            q=PopFloatPixel(quantum_info,float_pixel,q);
             p+=GetPixelChannels(image);
             q+=quantum_info->pad;
           }
@@ -3913,9 +3913,10 @@
       /*
         Associate alpha.
       */
-      q=GetAuthenticPixelQueue(image);
       if (image_view != (CacheView *) NULL)
         q=GetCacheViewAuthenticPixelQueue(image_view);
+      else
+        q=GetAuthenticPixelQueue(image);
       for (x=0; x < (ssize_t) image->columns; x++)
       {
         register ssize_t
@@ -3941,9 +3942,10 @@
       register Quantum
         *magick_restrict q;
 
-      q=GetAuthenticPixelQueue(image);
       if (image_view != (CacheView *) NULL)
         q=GetAuthenticPixelQueue(image);
+      else
+        q=GetAuthenticPixelQueue(image);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
         quantum=GetPixelRed(image,q);
@@ -3952,7 +3954,6 @@
         q+=GetPixelChannels(image);
       }
     }
-  x=0;
   q=pixels;
   ResetQuantumState(quantum_info);
   extent=GetQuantumExtent(image,quantum_info,quantum_type);
@@ -4074,9 +4075,10 @@
       register Quantum
         *magick_restrict q;
 
-      q=GetAuthenticPixelQueue(image);
       if (image_view != (CacheView *) NULL)
         q=GetCacheViewAuthenticPixelQueue(image_view);
+      else
+        q=GetAuthenticPixelQueue(image);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
         quantum=GetPixelRed(image,q);
diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c
index b3db3f8..1079a56 100644
--- a/MagickCore/quantum-import.c
+++ b/MagickCore/quantum-import.c
@@ -22,7 +22,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -139,20 +139,18 @@
       quantum[5]=(*pixels++);
       quantum[6]=(*pixels++);
       quantum[7]=(*pixels++);
-      p=(double *) quantum;
-      *pixel=(*p);
-      *pixel-=quantum_info->minimum;
-      *pixel*=quantum_info->scale;
-      return(pixels);
     }
-  quantum[7]=(*pixels++);
-  quantum[6]=(*pixels++);
-  quantum[5]=(*pixels++);
-  quantum[4]=(*pixels++);
-  quantum[3]=(*pixels++);
-  quantum[2]=(*pixels++);
-  quantum[1]=(*pixels++);
-  quantum[0]=(*pixels++);
+  else
+    {
+      quantum[7]=(*pixels++);
+      quantum[6]=(*pixels++);
+      quantum[5]=(*pixels++);
+      quantum[4]=(*pixels++);
+      quantum[3]=(*pixels++);
+      quantum[2]=(*pixels++);
+      quantum[1]=(*pixels++);
+      quantum[0]=(*pixels++);
+    }
   p=(double *) quantum;
   *pixel=(*p);
   *pixel-=quantum_info->minimum;
@@ -160,8 +158,9 @@
   return(pixels);
 }
 
-static inline const unsigned char *PushQuantumFloatPixel(QuantumInfo *quantum_info,
-  const unsigned char *magick_restrict pixels,float *pixel)
+static inline const unsigned char *PushQuantumFloatPixel(
+  QuantumInfo *quantum_info,const unsigned char *magick_restrict pixels,
+  float *pixel)
 {
   float
     *p;
@@ -175,20 +174,23 @@
       quantum[1]=(*pixels++);
       quantum[2]=(*pixels++);
       quantum[3]=(*pixels++);
-      p=(float *) quantum;
-      *pixel=(*p);
-      *pixel-=quantum_info->minimum;
-      *pixel*=quantum_info->scale;
-      return(pixels);
-    }
-  quantum[3]=(*pixels++);
-  quantum[2]=(*pixels++);
-  quantum[1]=(*pixels++);
-  quantum[0]=(*pixels++);
+     }
+   else
+     {
+       quantum[3]=(*pixels++);
+       quantum[2]=(*pixels++);
+       quantum[1]=(*pixels++);
+       quantum[0]=(*pixels++);
+     }
   p=(float *) quantum;
   *pixel=(*p);
   *pixel-=quantum_info->minimum;
-  *pixel*=quantum_info->scale;
+  *pixel*=(float) quantum_info->scale;
+  if (*pixel < FLT_MIN)
+    *pixel=FLT_MIN;
+  else
+    if (*pixel > FLT_MAX)
+      *pixel=FLT_MAX;
   return(pixels);
 }
 
@@ -1796,7 +1798,6 @@
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelAlpha(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(quantum_info,p,&pixel);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
           }
@@ -1977,7 +1978,6 @@
             SetPixelBlack(image,ClampToQuantum(pixel),q);
             p=PushDoublePixel(quantum_info,p,&pixel);
             SetPixelOpacity(image,ClampToQuantum(pixel),q);
-            p=PushDoublePixel(quantum_info,p,&pixel);
             p+=quantum_info->pad;
             q+=GetPixelChannels(image);
           }
diff --git a/MagickCore/quantum-private.h b/MagickCore/quantum-private.h
index b585ff8..85b9dbe 100644
--- a/MagickCore/quantum-private.h
+++ b/MagickCore/quantum-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -183,14 +183,14 @@
 }
 
 static inline unsigned char *PopCharPixel(const unsigned char pixel,
-  unsigned char *pixels)
+  unsigned char *magick_restrict pixels)
 {
   *pixels++=pixel;
   return(pixels);
 }
 
 static inline unsigned char *PopLongPixel(const EndianType endian,
-  const unsigned int pixel,unsigned char *pixels)
+  const unsigned int pixel,unsigned char *magick_restrict pixels)
 {
   register unsigned int
     quantum;
@@ -212,7 +212,7 @@
 }
 
 static inline unsigned char *PopShortPixel(const EndianType endian,
-  const unsigned short pixel,unsigned char *pixels)
+  const unsigned short pixel,unsigned char *magick_restrict pixels)
 {
   register unsigned int
     quantum;
@@ -229,15 +229,17 @@
   return(pixels);
 }
 
-static inline const unsigned char *PushCharPixel(const unsigned char *pixels,
-  unsigned char *pixel)
+static inline const unsigned char *PushCharPixel(
+  const unsigned char *magick_restrict pixels,
+  unsigned char *magick_restrict pixel)
 {
   *pixel=(*pixels++);
   return(pixels);
 }
 
 static inline const unsigned char *PushLongPixel(const EndianType endian,
-  const unsigned char *pixels,unsigned int *pixel)
+  const unsigned char *magick_restrict pixels,
+  unsigned int *magick_restrict pixel)
 {
   register unsigned int
     quantum;
@@ -260,7 +262,8 @@
 }
 
 static inline const unsigned char *PushShortPixel(const EndianType endian,
-  const unsigned char *pixels,unsigned short *pixel)
+  const unsigned char *magick_restrict pixels,
+  unsigned short *magick_restrict pixel)
 {
   register unsigned int
     quantum;
@@ -279,7 +282,8 @@
 }
 
 static inline const unsigned char *PushFloatPixel(const EndianType endian,
-  const unsigned char *pixels,MagickFloatType *pixel)
+  const unsigned char *magick_restrict pixels,
+  MagickFloatType *magick_restrict pixel)
 {
   union
   {
@@ -324,7 +328,15 @@
 static inline QuantumAny ScaleQuantumToAny(const Quantum quantum,
   const QuantumAny range)
 {
-  return((QuantumAny) (((double) range*quantum)/QuantumRange+0.5));
+#if !defined(MAGICKCORE_HDRI_SUPPORT)
+  return((QuantumAny) ((double) range*quantum/QuantumRange));
+#else
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return((QuantumAny) 0UL);
+  if (((double) range*quantum/QuantumRange) >= 18446744073709551615.0)
+    return((QuantumAny) MagickULLConstant(18446744073709551615));
+  return((QuantumAny) ((double) range*quantum/QuantumRange+0.5));
+#endif
 }
 
 #if (MAGICKCORE_QUANTUM_DEPTH == 8)
@@ -369,8 +381,8 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) (16843009UL*quantum));
 #else
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((16843009.0*quantum) >= 4294967295.0)
     return(4294967295UL);
   return((unsigned int) (16843009.0*quantum+0.5));
@@ -382,7 +394,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(72340172838076673)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((72340172838076673.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -397,8 +409,8 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum < 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   return((unsigned int) (quantum+0.5));
 #endif
 }
@@ -408,7 +420,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned short) (257UL*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((257.0*quantum) >= 65535.0)
     return(65535);
@@ -470,8 +482,8 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) (65537UL*quantum));
 #else
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((65537.0*quantum) >= 4294967295.0)
     return(4294967295U);
   return((unsigned int) (65537.0*quantum+0.5));
@@ -483,7 +495,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(281479271743489)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((281479271743489.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -498,8 +510,8 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum < 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   return((unsigned int) (quantum+0.5));
 #endif
 }
@@ -509,7 +521,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned short) quantum);
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if (quantum >= 65535.0)
     return(65535);
@@ -563,8 +575,8 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) quantum);
 #else
-  if (quantum <= 0.0)
-    return(0);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((quantum) >= 4294967295.0)
     return(4294967295);
   return((unsigned int) (quantum+0.5));
@@ -576,7 +588,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) (MagickULLConstant(4294967297)*quantum));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0UL);
   if ((4294967297.0*quantum) >= 18446744073709551615.0)
     return(MagickULLConstant(18446744073709551615));
@@ -586,14 +598,14 @@
 
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
-  if (quantum < 0.0)
-    return(0UL);
   if ((quantum/65537) >= (Quantum) MaxMap)
     return((unsigned int) MaxMap);
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned int) ((quantum+MagickULLConstant(32768))/
     MagickULLConstant(65537)));
 #else
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   return((unsigned int) (quantum/65537.0+0.5));
 #endif
 }
@@ -604,7 +616,7 @@
   return((unsigned short) ((quantum+MagickULLConstant(32768))/
     MagickULLConstant(65537)));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/65537.0) >= 65535.0)
     return(65535);
@@ -655,18 +667,18 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((MagickSizeType) quantum);
 #else
-  if (quantum <= 0.0)
-    return(0);
-  if (quantum >= 18446744073709551615)
-    return(18446744073709551615);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0UL);
+  if (quantum >= 18446744073709551615.0)
+    return(MagickULLConstant(18446744073709551615));
   return((MagickSizeType) (quantum+0.5));
 #endif
 }
 
 static inline unsigned int ScaleQuantumToMap(const Quantum quantum)
 {
-  if (quantum <= 0.0)
-    return(0UL);
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
+    return(0U);
   if ((quantum/281479271743489.0) >= MaxMap)
     return((unsigned int) MaxMap);
   return((unsigned int) (quantum/281479271743489.0+0.5));
@@ -674,7 +686,7 @@
 
 static inline unsigned short ScaleQuantumToShort(const Quantum quantum)
 {
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/281479271743489.0) >= 65535.0)
     return(65535);
diff --git a/MagickCore/quantum.c b/MagickCore/quantum.c
index 71390cc..d0d0f11 100644
--- a/MagickCore/quantum.c
+++ b/MagickCore/quantum.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -675,7 +675,7 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(quantum_info != (QuantumInfo *) NULL);
   assert(quantum_info->signature == MagickCoreSignature);
-  quantum_info->depth=depth;
+  quantum_info->depth=MagickMin(depth,64);
   if (quantum_info->format == FloatingPointQuantumFormat)
     {
       if (quantum_info->depth > 32)
diff --git a/MagickCore/quantum.h b/MagickCore/quantum.h
index ec315a9..f092d01 100644
--- a/MagickCore/quantum.h
+++ b/MagickCore/quantum.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -18,6 +18,7 @@
 #ifndef MAGICKCORE_QUANTUM_H
 #define MAGICKCORE_QUANTUM_H
 
+#include <float.h>
 #include "MagickCore/image.h"
 #include "MagickCore/semaphore.h"
 
@@ -81,16 +82,16 @@
 typedef struct _QuantumInfo
   QuantumInfo;
 
-static inline Quantum ClampToQuantum(const MagickRealType value)
+static inline Quantum ClampToQuantum(const MagickRealType quantum)
 {
 #if defined(MAGICKCORE_HDRI_SUPPORT)
-  return((Quantum) value);
+  return((Quantum) quantum);
 #else
-  if (value <= 0.0f)
+  if (quantum <= 0.0f)
     return((Quantum) 0);
-  if (value >= (MagickRealType) QuantumRange)
+  if (quantum >= (MagickRealType) QuantumRange)
     return(QuantumRange);
-  return((Quantum) (value+0.5f));
+  return((Quantum) (quantum+0.5f));
 #endif
 }
 
@@ -100,7 +101,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned char) quantum);
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if (quantum >= 255.0)
     return(255);
@@ -113,7 +114,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned char) (((quantum+128UL)-((quantum+128UL) >> 8)) >> 8));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/257.0) >= 255.0)
     return(255);
@@ -127,7 +128,7 @@
   return((unsigned char) ((quantum+MagickULLConstant(8421504))/
     MagickULLConstant(16843009)));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/16843009.0) >= 255.0)
     return(255);
@@ -140,7 +141,7 @@
 #if !defined(MAGICKCORE_HDRI_SUPPORT)
   return((unsigned char) (quantum/72340172838076673.0+0.5));
 #else
-  if (quantum <= 0.0)
+  if ((IsNaN(quantum) != MagickFalse) || (quantum <= 0.0))
     return(0);
   if ((quantum/72340172838076673.0) >= 255.0)
     return(255);
diff --git a/MagickCore/random-private.h b/MagickCore/random-private.h
index 3d306b0..3a6cd99 100644
--- a/MagickCore/random-private.h
+++ b/MagickCore/random-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/random.c b/MagickCore/random.c
index a876157..487b53b 100644
--- a/MagickCore/random.c
+++ b/MagickCore/random.c
@@ -16,7 +16,7 @@
 %                              December 2001                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -53,10 +53,10 @@
 #include "MagickCore/image-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/memory-private.h"
-#include "MagickCore/semaphore.h"
 #include "MagickCore/random_.h"
 #include "MagickCore/random-private.h"
 #include "MagickCore/resource_.h"
+#include "MagickCore/semaphore.h"
 #include "MagickCore/signature-private.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/thread_.h"
@@ -88,7 +88,7 @@
   size_t
     i;
 
-  unsigned long
+  MagickSizeType
     seed[4];
 
   double
@@ -160,7 +160,6 @@
 %      RandomInfo *AcquireRandomInfo(void)
 %
 */
-
 MagickExport RandomInfo *AcquireRandomInfo(void)
 {
   const StringInfo
@@ -183,7 +182,11 @@
   random_info->reservoir=AcquireStringInfo(GetSignatureDigestsize(
     random_info->signature_info));
   ResetStringInfo(random_info->reservoir);
-  random_info->normalize=1.0/(~0UL);
+  random_info->normalize=(double) (1.0/(MagickULLConstant(~0) >> 11));
+  random_info->seed[0]=MagickULLConstant(0x76e15d3efefdcbbf);
+  random_info->seed[1]=MagickULLConstant(0xc5004e441c522fb3);
+  random_info->seed[2]=MagickULLConstant(0x77710069854ee241);
+  random_info->seed[3]=MagickULLConstant(0x39109bb02acbe635);
   random_info->secret_key=secret_key;
   random_info->protocol_major=RandomProtocolMajorVersion;
   random_info->protocol_minor=RandomProtocolMinorVersion;
@@ -220,9 +223,9 @@
   */
   if (random_info->secret_key == ~0UL)
     {
-      key=GetRandomKey(random_info,sizeof(random_info->secret_key));
+      key=GetRandomKey(random_info,sizeof(random_info->seed));
       (void) memcpy(random_info->seed,GetStringInfoDatum(key),
-        GetStringInfoLength(key));
+        sizeof(random_info->seed));
       key=DestroyStringInfo(key);
     }
   else
@@ -238,13 +241,10 @@
       FinalizeSignature(signature_info);
       digest=GetSignatureDigest(signature_info);
       (void) memcpy(random_info->seed,GetStringInfoDatum(digest),
-        MagickMin(GetSignatureDigestsize(signature_info),
-        sizeof(*random_info->seed)));
+        MagickMin((size_t) GetSignatureDigestsize(signature_info),
+        sizeof(random_info->seed)));
       signature_info=DestroySignatureInfo(signature_info);
     }
-  random_info->seed[1]=0x50a7f451UL;
-  random_info->seed[2]=0x5365417eUL;
-  random_info->seed[3]=0xc3a4171aUL;
   return(random_info);
 }
 
@@ -381,10 +381,10 @@
   SetStringInfoDatum(chaos,(unsigned char *) &tid);
   ConcatenateStringInfo(entropy,chaos);
 #if defined(MAGICKCORE_HAVE_SYSCONF) && defined(_SC_PHYS_PAGES)
-  { 
+  {
     ssize_t
       pages;
-    
+
     pages=(ssize_t) sysconf(_SC_PHYS_PAGES);
     SetStringInfoLength(chaos,sizeof(pages));
     SetStringInfoDatum(chaos,(unsigned char *) &pages);
@@ -412,8 +412,8 @@
 
     if (gettimeofday(&timer,(struct timezone *) NULL) == 0)
       {
-        seconds=timer.tv_sec;
-        nanoseconds=1000UL*timer.tv_usec;
+        seconds=(size_t) timer.tv_sec;
+        nanoseconds=(size_t) (1000UL*timer.tv_usec);
       }
   }
 #endif
@@ -480,22 +480,22 @@
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
   {
     double
-      datum;
+      seconds;
 
     LARGE_INTEGER
-      datum1;
+      nanoseconds;
 
     /*
       Not crytographically strong but better than nothing.
     */
-    datum=NTElapsedTime()+NTUserTime();
-    SetStringInfoLength(chaos,sizeof(datum));
-    SetStringInfoDatum(chaos,(unsigned char *) &datum);
+    seconds=NTElapsedTime()+NTUserTime();
+    SetStringInfoLength(chaos,sizeof(seconds));
+    SetStringInfoDatum(chaos,(unsigned char *) &seconds);
     ConcatenateStringInfo(entropy,chaos);
-    if (QueryPerformanceCounter(&datum1) != 0)
+    if (QueryPerformanceCounter(&nanoseconds) != 0)
       {
-        SetStringInfoLength(chaos,sizeof(datum1));
-        SetStringInfoDatum(chaos,(unsigned char *) &datum1);
+        SetStringInfoLength(chaos,sizeof(nanoseconds));
+        SetStringInfoDatum(chaos,(unsigned char *) &nanoseconds);
         ConcatenateStringInfo(entropy,chaos);
       }
     /*
@@ -594,9 +594,9 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  GetPseudoRandomValue() return a non-negative double-precision floating-point
-%  value uniformly distributed over the interval [0.0, 1.0) with a 2 to the
-%  128th-1 period.
+%  GetPseudoRandomValue() is a Xoshiro generator that returns a non-negative
+%  double-precision floating-point value uniformly distributed over the
+%  interval [0.0, 1.0) with a 2 to the 256th-1 period.
 %
 %  The format of the GetPseudoRandomValue method is:
 %
@@ -607,24 +607,22 @@
 %    o random_info: the random info.
 %
 */
-MagickExport double GetPseudoRandomValue(RandomInfo *random_info)
+MagickExport double GetPseudoRandomValue(
+  RandomInfo *magick_restrict random_info)
 {
-  register unsigned long
-    *seed;
+#define RandomROTL(x,k) (((x) << (k)) | ((x) >> (64-(k))))
 
-  unsigned long
-    alpha;
+  const MagickSizeType
+    alpha = (random_info->seed[1] << 17),
+    value = (random_info->seed[0]+random_info->seed[3]);
 
-  seed=random_info->seed;
-  do
-  {
-    alpha=(unsigned long) (seed[1] ^ (seed[1] << 11));
-    seed[1]=seed[2];
-    seed[2]=seed[3];
-    seed[3]=seed[0];
-    seed[0]=(seed[0] ^ (seed[0] >> 19)) ^ (alpha ^ (alpha >> 8));
-  } while (seed[0] == ~0UL);
-  return(random_info->normalize*seed[0]);
+  random_info->seed[2]^=random_info->seed[0];
+  random_info->seed[3]^=random_info->seed[1];
+  random_info->seed[1]^=random_info->seed[2];
+  random_info->seed[0]^=random_info->seed[3];
+  random_info->seed[2]^=alpha;
+  random_info->seed[3]=RandomROTL(random_info->seed[3],45);
+  return((double) ((value >> 11)*random_info->normalize));
 }
 
 /*
@@ -680,7 +678,7 @@
 MagickPrivate unsigned long *GetRandomInfoSeed(RandomInfo *random_info)
 {
   assert(random_info != (RandomInfo *) NULL);
-  return(random_info->seed);
+  return((unsigned long *) random_info->seed);
 }
 
 /*
@@ -949,7 +947,7 @@
 %
 %  A description of each parameter follows:
 %
-%    o key: the secret seed.
+%    o key: the secret key.
 %
 */
 MagickExport void SetRandomSecretKey(const unsigned long key)
diff --git a/MagickCore/random_.h b/MagickCore/random_.h
index 731a303..d72ff6a 100644
--- a/MagickCore/random_.h
+++ b/MagickCore/random_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -35,7 +35,7 @@
 */
 extern MagickExport double
   GetRandomValue(RandomInfo *),
-  GetPseudoRandomValue(RandomInfo *);
+  GetPseudoRandomValue(RandomInfo *magick_restrict);
 
 extern MagickExport RandomInfo
   *AcquireRandomInfo(void),
diff --git a/MagickCore/registry-private.h b/MagickCore/registry-private.h
index 5caa925..af768e4 100644
--- a/MagickCore/registry-private.h
+++ b/MagickCore/registry-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/registry.c b/MagickCore/registry.c
index ddaba9e..d306f0a 100644
--- a/MagickCore/registry.c
+++ b/MagickCore/registry.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/registry.h b/MagickCore/registry.h
index 35c727f..14a1314 100644
--- a/MagickCore/registry.h
+++ b/MagickCore/registry.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resample-private.h b/MagickCore/resample-private.h
index b8e8b05..c55840b 100644
--- a/MagickCore/resample-private.h
+++ b/MagickCore/resample-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resample.c b/MagickCore/resample.c
index d554d39..ac58f6a 100644
--- a/MagickCore/resample.c
+++ b/MagickCore/resample.c
@@ -18,7 +18,7 @@
 %                                August 2007                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/resample.h b/MagickCore/resample.h
index f7b46dc..6da9008 100644
--- a/MagickCore/resample.h
+++ b/MagickCore/resample.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resize-private.h b/MagickCore/resize-private.h
index 361e09f..e299601 100644
--- a/MagickCore/resize-private.h
+++ b/MagickCore/resize-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index 2c1d4bf..a0060a3 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -156,7 +156,7 @@
     Refactored by Chantal Racette and Nicolas Robidoux to one trig call and
     five flops.
   */
-  const double cosine=cos((double) (MagickPI*x));
+  const double cosine = cos((double) (MagickPI*x));
   magick_unreferenced(resize_filter);
   return(0.34+cosine*(0.5+cosine*0.16));
 }
@@ -172,7 +172,7 @@
     taking advantage of the fact that the support of Bohman is 1.0 (so that we
     know that sin(pi x) >= 0).
   */
-  const double cosine=cos((double) (MagickPI*x));
+  const double cosine = cos((double) (MagickPI*x));
   const double sine=sqrt(1.0-cosine*cosine);
   magick_unreferenced(resize_filter);
   return((1.0-x)*cosine+(1.0/MagickPI)*sine);
@@ -201,7 +201,7 @@
     Cosine window function:
       cos((pi/2)*x).
   */
-  return((double)cos((double) (MagickPI2*x)));
+  return(cos((double) (MagickPI2*x)));
 }
 
 static double CubicBC(const double x,const ResizeFilter *resize_filter)
@@ -326,7 +326,7 @@
     Cosine window function:
       0.5+0.5*cos(pi*x).
   */
-  const double cosine=cos((double) (MagickPI*x));
+  const double cosine = cos((double) (MagickPI*x));
   magick_unreferenced(resize_filter);
   return(0.5+0.5*cosine);
 }
@@ -338,7 +338,7 @@
     Offset cosine window function:
      .54 + .46 cos(pi x).
   */
-  const double cosine=cos((double) (MagickPI*x));
+  const double cosine = cos((double) (MagickPI*x));
   magick_unreferenced(resize_filter);
   return(0.54+0.46*cosine);
 }
@@ -1124,9 +1124,9 @@
     Adjust window function scaling to match windowing support for weighting
     function.  This avoids a division on every filter call.
   */
-  resize_filter->scale/=resize_filter->window_support;
+  resize_filter->scale*=PerceptibleReciprocal(resize_filter->window_support);
   /*
-   * Set Cubic Spline B,C values, calculate Cubic coefficients.
+    Set Cubic Spline B,C values, calculate Cubic coefficients.
   */
   B=0.0;
   C=0.0;
@@ -1501,9 +1501,8 @@
     x=(-x);
   if (x < 8.0)
     return(p*J1(x));
-  q=sqrt((double) (2.0/(MagickPI*x)))*(P1(x)*(1.0/sqrt(2.0)*(sin((double) x)-
-    cos((double) x)))-8.0/x*Q1(x)*(-1.0/sqrt(2.0)*(sin((double) x)+
-    cos((double) x))));
+  q=sqrt((double) (2.0/(MagickPI*x)))*(P1(x)*(1.0/sqrt(2.0)*(sin(x)-
+    cos(x)))-8.0/x*Q1(x)*(-1.0/sqrt(2.0)*(sin(x)+cos(x))));
   if (p < 0.0)
     q=(-q);
   return(q);
@@ -2060,6 +2059,769 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
+
+static inline void CopyPixels(const Quantum *source,const ssize_t source_offset,
+  Quantum *destination,const ssize_t destination_offset,const size_t channels)
+{
+  register ssize_t
+    i;
+
+  for (i=0; i < (ssize_t) channels; i++)
+    destination[channels*destination_offset+i]=source[source_offset*channels+i];
+}
+
+static inline void MixPixels(const Quantum *source,const ssize_t *source_offset,
+  const size_t source_size,Quantum *destination,
+  const ssize_t destination_offset,const size_t channels)
+{
+  ssize_t
+    sum;
+
+  register ssize_t
+    i;
+
+  for (i=0; i < (ssize_t) channels; i++)
+  {
+    register ssize_t
+      j;
+
+    sum=0;
+    for (j=0; j < (ssize_t) source_size; j++)
+      sum+=source[source_offset[j]*channels+i];
+    destination[channels*destination_offset+i]=(Quantum) (sum/source_size);
+  }
+}
+
+static inline void Mix2Pixels(const Quantum *source,
+  const ssize_t source_offset1,const ssize_t source_offset2,
+  Quantum *destination,const ssize_t destination_offset,const size_t channels)
+{
+  const ssize_t
+    offsets[2] = { source_offset1, source_offset2 };
+
+  MixPixels(source,offsets,2,destination,destination_offset,channels);
+}
+
+static inline int PixelsEqual(const Quantum *source1,ssize_t offset1,
+  const Quantum *source2,ssize_t offset2,const size_t channels)
+{
+  register ssize_t
+    i;
+
+  offset1*=channels;
+  offset2*=channels;
+  for (i=0; i < (ssize_t) channels; i++)
+    if (source1[offset1+i] != source2[offset2+i])
+      return(0);
+  return(1);
+}
+
+static inline void Eagle2X(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+  ssize_t
+    i;
+
+  (void) source;
+  for (i=0; i < 4; i++)
+    CopyPixels(pixels,4,result,i,channels);
+  if (PixelsEqual(pixels,0,pixels,1,channels) &&
+      PixelsEqual(pixels,1,pixels,3,channels))
+    CopyPixels(pixels,0,result,0,channels);
+  if (PixelsEqual(pixels,1,pixels,2,channels) &&
+      PixelsEqual(pixels,2,pixels,5,channels))
+    CopyPixels(pixels,2,result,1,channels);
+  if (PixelsEqual(pixels,3,pixels,6,channels) &&
+      PixelsEqual(pixels,6,pixels,7,channels))
+    CopyPixels(pixels,6,result,2,channels);
+  if (PixelsEqual(pixels,5,pixels,8,channels) &&
+      PixelsEqual(pixels,8,pixels,7,channels))
+    CopyPixels(pixels,8,result,3,channels);
+}
+
+static void Hq2XHelper(const unsigned int rule,const Quantum *source,
+  Quantum *destination,const ssize_t destination_offset,const size_t channels,
+  const ssize_t e,const ssize_t a,const ssize_t b,const ssize_t d,
+  const ssize_t f,const ssize_t h)
+{
+#define caseA(N,A,B,C,D) \
+  case N: \
+  { \
+    const ssize_t \
+      offsets[4] = { A, B, C, D }; \
+ \
+    MixPixels(source,offsets,4,destination,destination_offset,channels);\
+    break; \
+  }
+#define caseB(N,A,B,C,D,E,F,G,H) \
+  case N: \
+  { \
+    const ssize_t \
+      offsets[8] = { A, B, C, D, E, F, G, H }; \
+ \
+    MixPixels(source,offsets,8,destination,destination_offset,channels);\
+    break; \
+  }
+
+  switch (rule)
+  {
+    case 0:
+    {
+      CopyPixels(source,e,destination,destination_offset,channels);
+      break;
+    }
+    caseA(1,e,e,e,a)
+    caseA(2,e,e,e,d)
+    caseA(3,e,e,e,b)
+    caseA(4,e,e,d,b)
+    caseA(5,e,e,a,b)
+    caseA(6,e,e,a,d)
+    caseB(7,e,e,e,e,e,b,b,d)
+    caseB(8,e,e,e,e,e,d,d,b)
+    caseB(9,e,e,e,e,e,e,d,b)
+    caseB(10,e,e,d,d,d,b,b,b)
+    case 11:
+    {
+      const ssize_t
+        offsets[16] = { e, e, e, e, e, e, e, e, e, e, e, e, e, e, d, b };
+
+      MixPixels(source,offsets,16,destination,destination_offset,channels);
+      break;
+    }
+    case 12:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[4] = { e, e, d, b };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      else
+        CopyPixels(source,e,destination,destination_offset,channels);
+      break;
+    }
+    case 13:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[8] = { e, e, d, d, d, b, b, b };
+
+          MixPixels(source,offsets,8,destination,destination_offset,channels);
+        }
+      else
+        CopyPixels(source,e,destination,destination_offset,channels);
+      break;
+    }
+    case 14:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[16] = { e, e, e, e, e, e, e, e, e, e, e, e, e, e, d, b };
+
+          MixPixels(source,offsets,16,destination,destination_offset,channels);
+        }
+      else
+        CopyPixels(source,e,destination,destination_offset,channels);
+      break;
+    }
+    case 15:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[4] = { e, e, d, b };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      else
+        {
+          const ssize_t
+            offsets[4] = { e, e, e, a };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      break;
+    }
+    case 16:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[8] = { e, e, e, e, e, e, d, b };
+
+          MixPixels(source,offsets,8,destination,destination_offset,channels);
+        }
+      else
+        {
+          const ssize_t
+            offsets[4] = { e, e, e, a };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      break;
+    }
+    case 17:
+    {
+      if (PixelsEqual(source,b,source,d,channels))
+        {
+          const ssize_t
+            offsets[8] = { e, e, d, d, d, b, b, b };
+
+          MixPixels(source,offsets,8,destination,destination_offset,channels);
+        }
+      else
+        {
+          const ssize_t
+            offsets[4] = { e, e, e, a };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      break;
+    }
+    case 18:
+    {
+      if (PixelsEqual(source,b,source,f,channels))
+        {
+          const ssize_t
+            offsets[8] = { e, e, e, e, e, b, b, d };
+
+          MixPixels(source,offsets,8,destination,destination_offset,channels);
+        }
+      else
+        {
+          const ssize_t
+            offsets[4] = { e, e, e, d };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      break;
+    }
+    default:
+    {
+      if (PixelsEqual(source,d,source,h,channels))
+        {
+          const ssize_t
+            offsets[8] = { e, e, e, e, e, d, d, b };
+
+          MixPixels(source,offsets,8,destination,destination_offset,channels);
+        }
+      else
+        {
+          const ssize_t
+            offsets[4] = { e, e, e, b };
+
+          MixPixels(source,offsets,4,destination,destination_offset,channels);
+        }
+      break;
+    }
+  }
+  #undef caseA
+  #undef caseB
+}
+
+static inline unsigned int Hq2XPatternToNumber(const int *pattern)
+{
+  ssize_t
+    i;
+
+  unsigned int
+    result,
+    order;
+
+  result=0;
+  order=1;
+  for (i=7; i >= 0; i--)
+  {
+    result+=order*pattern[i];
+    order*=2;
+  }
+  return(result);
+}
+
+static inline void Hq2X(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+  static const unsigned int
+    Hq2XTable[] =
+    {
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 15, 12, 5,  3, 17, 13,
+      4, 4, 6, 18, 4, 4, 6, 18, 5,  3, 12, 12, 5,  3,  1, 12,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 17, 13, 5,  3, 16, 14,
+      4, 4, 6, 18, 4, 4, 6, 18, 5,  3, 16, 12, 5,  3,  1, 14,
+      4, 4, 6,  2, 4, 4, 6,  2, 5, 19, 12, 12, 5, 19, 16, 12,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 12, 5,  3, 16, 12,
+      4, 4, 6,  2, 4, 4, 6,  2, 5, 19,  1, 12, 5, 19,  1, 14,
+      4, 4, 6,  2, 4, 4, 6, 18, 5,  3, 16, 12, 5, 19,  1, 14,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 15, 12, 5,  3, 17, 13,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 12, 5,  3, 16, 12,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 17, 13, 5,  3, 16, 14,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 13, 5,  3,  1, 14,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 12, 5,  3, 16, 13,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 12, 5,  3,  1, 12,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3, 16, 12, 5,  3,  1, 14,
+      4, 4, 6,  2, 4, 4, 6,  2, 5,  3,  1, 12, 5,  3,  1, 14
+    };
+
+  const int
+    pattern1[] =
+    {
+      !PixelsEqual(pixels,4,pixels,8,channels),
+      !PixelsEqual(pixels,4,pixels,7,channels),
+      !PixelsEqual(pixels,4,pixels,6,channels),
+      !PixelsEqual(pixels,4,pixels,5,channels),
+      !PixelsEqual(pixels,4,pixels,3,channels),
+      !PixelsEqual(pixels,4,pixels,2,channels),
+      !PixelsEqual(pixels,4,pixels,1,channels),
+      !PixelsEqual(pixels,4,pixels,0,channels)
+    };
+
+#define Rotated(p) p[2], p[4], p[7], p[1], p[6], p[0], p[3], p[5]
+  const int pattern2[] = { Rotated(pattern1) };
+  const int pattern3[] = { Rotated(pattern2) };
+  const int pattern4[] = { Rotated(pattern3) };
+#undef Rotated
+
+  Hq2XHelper(Hq2XTable[Hq2XPatternToNumber(pattern1)],pixels,result,0,
+    channels,4,0,1,3,5,7);
+  Hq2XHelper(Hq2XTable[Hq2XPatternToNumber(pattern2)],pixels,result,1,
+    channels,4,2,5,1,7,3);
+  Hq2XHelper(Hq2XTable[Hq2XPatternToNumber(pattern3)],pixels,result,3,
+    channels,4,8,7,5,3,1);
+  Hq2XHelper(Hq2XTable[Hq2XPatternToNumber(pattern4)],pixels,result,2,
+    channels,4,6,3,7,1,5);
+}
+
+static void Fish2X(const Image *source,const Quantum *pixels,Quantum *result,
+  const size_t channels)
+{
+#define Corner(A,B,C,D) \
+  { \
+    if (intensities[B] > intensities[A]) \
+      { \
+        ssize_t    \
+          offsets[3] = { B, C, D }; \
+ \
+        MixPixels(pixels,offsets,3,result,3,channels); \
+      } \
+    else \
+      { \
+        ssize_t    \
+          offsets[3] = { A, B, C }; \
+ \
+        MixPixels(pixels,offsets,3,result,3,channels); \
+      } \
+  }
+
+#define Line(A,B,C,D) \
+  { \
+    if (intensities[C] > intensities[A]) \
+      Mix2Pixels(pixels,C,D,result,3,channels); \
+    else \
+      Mix2Pixels(pixels,A,B,result,3,channels); \
+  }
+
+  MagickFloatType
+    intensities[9];
+
+  int
+    ae,
+    bd,
+    ab,
+    ad,
+    be,
+    de;
+
+  register ssize_t
+    i;
+
+  ssize_t
+    offsets[4] = { 0, 1, 3, 4 };
+
+  for (i=0; i < 9; i++)
+    intensities[i]=GetPixelIntensity(source,pixels + i*channels);
+  CopyPixels(pixels,0,result,0,channels);
+  CopyPixels(pixels,(ssize_t) (intensities[0] > intensities[1] ? 0 : 1),result,
+    1,channels);
+  CopyPixels(pixels,(ssize_t) (intensities[0] > intensities[3] ? 0 : 3),result,
+    2,channels);
+  ae=PixelsEqual(pixels,0,pixels,4,channels);
+  bd=PixelsEqual(pixels,1,pixels,3,channels);
+  ab=PixelsEqual(pixels,0,pixels,1,channels);
+  de=PixelsEqual(pixels,3,pixels,4,channels);
+  ad=PixelsEqual(pixels,0,pixels,3,channels);
+  be=PixelsEqual(pixels,1,pixels,4,channels);
+  if (ae && bd && ab)
+    {
+      CopyPixels(pixels,0,result,3,channels);
+      return;
+    }
+  if (ad && de && !ab)
+    {
+      Corner(1,0,4,3)
+      return;
+    }
+  if (be && de && !ab)
+    {
+      Corner(0,1,3,4)
+      return;
+    }
+  if (ad && ab && !be)
+    {
+      Corner(4,3,1,0)
+      return;
+    }
+  if (ab && be && !ad)
+    {
+      Corner(3,0,4,1)
+      return;
+    }
+  if (ae && (!bd || intensities[1] > intensities[0]))
+    {
+      Mix2Pixels(pixels,0,4,result,3,channels);
+      return;
+    }
+  if (bd && (!ae || intensities[0] > intensities[1]))
+    {
+      Mix2Pixels(pixels,1,3,result,3,channels);
+      return;
+    }
+  if (ab)
+    {
+      Line(0,1,3,4)
+      return;
+    }
+  if (de)
+    {
+      Line(3,4,0,1)
+      return;
+    }
+  if (ad)
+    {
+      Line(0,3,1,4)
+      return;
+    }
+  if (be)
+    {
+      Line(1,4,0,3)
+      return;
+    }
+  MixPixels(pixels,offsets,4,result,3,channels);
+#undef Corner
+#undef Line
+}
+
+static void Xbr2X(const Image *source,const Quantum *pixels,Quantum *result,
+  const size_t channels)
+{
+#define WeightVar(M,N) const int w_##M##_##N = \
+  PixelsEqual(pixels,M,pixels,N,channels) ? 0 : 1;
+
+  WeightVar(12,11)
+  WeightVar(12,7)
+  WeightVar(12,13)
+  WeightVar(12,17)
+  WeightVar(12,16)
+  WeightVar(12,8)
+  WeightVar(6,10)
+  WeightVar(6,2)
+  WeightVar(11,7)
+  WeightVar(11,17)
+  WeightVar(11,5)
+  WeightVar(7,13)
+  WeightVar(7,1)
+  WeightVar(12,6)
+  WeightVar(12,18)
+  WeightVar(8,14)
+  WeightVar(8,2)
+  WeightVar(13,17)
+  WeightVar(13,9)
+  WeightVar(7,3)
+  WeightVar(16,10)
+  WeightVar(16,22)
+  WeightVar(17,21)
+  WeightVar(11,15)
+  WeightVar(18,14)
+  WeightVar(18,22)
+  WeightVar(17,23)
+  WeightVar(17,19)
+#undef WeightVar
+
+  if (
+    w_12_16 + w_12_8 + w_6_10 + w_6_2 + (4 * w_11_7) <
+    w_11_17 + w_11_5 + w_7_13 + w_7_1 + (4 * w_12_6)
+  )
+    Mix2Pixels(pixels,(ssize_t) (w_12_11 <= w_12_7 ? 11 : 7),12,result,0,
+      channels);
+  else
+    CopyPixels(pixels,12,result,0,channels);
+  if (
+    w_12_18 + w_12_6 + w_8_14 + w_8_2 + (4 * w_7_13) <
+    w_13_17 + w_13_9 + w_11_7 + w_7_3 + (4 * w_12_8)
+  )
+    Mix2Pixels(pixels,(ssize_t) (w_12_7 <= w_12_13 ? 7 : 13),12,result,1,
+      channels);
+  else
+    CopyPixels(pixels,12,result,1,channels);
+  if (
+    w_12_6 + w_12_18 + w_16_10 + w_16_22 + (4 * w_11_17) <
+    w_11_7 + w_11_15 + w_13_17 + w_17_21 + (4 * w_12_16)
+  )
+    Mix2Pixels(pixels,(ssize_t) (w_12_11 <= w_12_17 ? 11 : 17),12,result,2,
+      channels);
+  else
+    CopyPixels(pixels,12,result,2,channels);
+  if (
+    w_12_8 + w_12_16 + w_18_14 + w_18_22 + (4 * w_13_17) <
+    w_11_17 + w_17_23 + w_17_19 + w_7_13 + (4 * w_12_18)
+  )
+    Mix2Pixels(pixels,(ssize_t) (w_12_13 <= w_12_17 ? 13 : 17),12,result,3,
+      channels);
+  else
+    CopyPixels(pixels,12,result,3,channels);
+}
+
+static void Scale2X(const Image *source,const Quantum *pixels,Quantum *result,
+  const size_t channels)
+{
+  if (PixelsEqual(pixels,1,pixels,7,channels) ||
+      PixelsEqual(pixels,3,pixels,5,channels))
+    {
+      register ssize_t
+        i;
+
+      for (i=0; i < 4; i++)
+        CopyPixels(pixels,4,result,i,channels);
+      return;
+    }
+    if (PixelsEqual(pixels,1,pixels,3,channels))
+      CopyPixels(pixels,3,result,0,channels);
+    else
+      CopyPixels(pixels,4,result,0,channels);
+    if (PixelsEqual(pixels,1,pixels,5,channels))
+      CopyPixels(pixels,5,result,1,channels);
+    else
+      CopyPixels(pixels,4,result,1,channels);
+    if (PixelsEqual(pixels,3,pixels,7,channels))
+      CopyPixels(pixels,3,result,2,channels);
+    else
+      CopyPixels(pixels,4,result,2,channels);
+    if (PixelsEqual(pixels,5,pixels,7,channels))
+      CopyPixels(pixels,5,result,3,channels);
+    else
+      CopyPixels(pixels,4,result,3,channels);
+}
+
+static void Epbx2X(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+#define HelperCond(a,b,c,d,e,f,g) ( \
+  PixelsEqual(pixels,a,pixels,b,channels) && ( \
+    PixelsEqual(pixels,c,pixels,d,channels) || \
+    PixelsEqual(pixels,c,pixels,e,channels) || \
+    PixelsEqual(pixels,a,pixels,f,channels) || \
+    PixelsEqual(pixels,b,pixels,g,channels) \
+    ) \
+  )
+
+  register ssize_t
+    i;
+
+  for (i=0; i < 4; i++)
+    CopyPixels(pixels,4,result,i,channels);
+  if (
+    !PixelsEqual(pixels,3,pixels,5,channels) &&
+    !PixelsEqual(pixels,1,pixels,7,channels) &&
+    (
+      PixelsEqual(pixels,4,pixels,3,channels) ||
+      PixelsEqual(pixels,4,pixels,7,channels) ||
+      PixelsEqual(pixels,4,pixels,5,channels) ||
+      PixelsEqual(pixels,4,pixels,1,channels) ||
+      (
+        (
+          !PixelsEqual(pixels,0,pixels,8,channels) ||
+           PixelsEqual(pixels,4,pixels,6,channels) ||
+           PixelsEqual(pixels,3,pixels,2,channels)
+        ) &&
+        (
+          !PixelsEqual(pixels,6,pixels,2,channels) ||
+           PixelsEqual(pixels,4,pixels,0,channels) ||
+           PixelsEqual(pixels,4,pixels,8,channels)
+        )
+      )
+    )
+  )
+    {
+      if (HelperCond(1,3,4,0,8,2,6))
+        Mix2Pixels(pixels,1,3,result,0,channels);
+      if (HelperCond(5,1,4,2,6,8,0))
+        Mix2Pixels(pixels,5,1,result,1,channels);
+      if (HelperCond(3,7,4,6,2,0,8))
+        Mix2Pixels(pixels,3,7,result,2,channels);
+      if (HelperCond(7,5,4,8,0,6,2))
+        Mix2Pixels(pixels,7,5,result,3,channels);
+    }
+
+#undef HelperCond
+}
+
+static inline void Eagle3X(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+  ssize_t
+    corner_tl,
+    corner_tr,
+    corner_bl,
+    corner_br;
+
+  corner_tl=PixelsEqual(pixels,0,pixels,1,channels) &&
+    PixelsEqual(pixels,0,pixels,3,channels);
+  corner_tr=PixelsEqual(pixels,1,pixels,2,channels) &&
+    PixelsEqual(pixels,2,pixels,5,channels);
+  corner_bl=PixelsEqual(pixels,3,pixels,6,channels) &&
+    PixelsEqual(pixels,6,pixels,7,channels);
+  corner_br=PixelsEqual(pixels,5,pixels,7,channels) &&
+    PixelsEqual(pixels,7,pixels,8,channels);
+  CopyPixels(pixels,(ssize_t) (corner_tl ? 0 : 4),result,0,channels);
+  if (corner_tl && corner_tr)
+    Mix2Pixels(pixels,0,2,result,1,channels);
+  else
+    CopyPixels(pixels,4,result,1,channels);
+  CopyPixels(pixels,(ssize_t) (corner_tr ? 1 : 4),result,2,channels);
+  if (corner_tl && corner_bl)
+    Mix2Pixels(pixels,0,6,result,3,channels);
+  else
+    CopyPixels(pixels,4,result,3,channels);
+  CopyPixels(pixels,4,result,4,channels);
+  if (corner_tr && corner_br)
+    Mix2Pixels(pixels,2,8,result,5,channels);
+  else
+    CopyPixels(pixels,4,result,5,channels);
+  CopyPixels(pixels,(ssize_t) (corner_bl ? 3 : 4),result,6,channels);
+  if (corner_bl && corner_br)
+    Mix2Pixels(pixels,6,8,result,7,channels);
+  else
+    CopyPixels(pixels,4,result,7,channels);
+  CopyPixels(pixels,(ssize_t) (corner_br ? 5 : 4),result,8,channels);
+}
+
+static inline void Eagle3XB(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+  ssize_t
+    corner_tl,
+    corner_tr,
+    corner_bl,
+    corner_br;
+
+  corner_tl=PixelsEqual(pixels,0,pixels,1,channels) &&
+    PixelsEqual(pixels,0,pixels,3,channels);
+  corner_tr=PixelsEqual(pixels,1,pixels,2,channels) &&
+    PixelsEqual(pixels,2,pixels,5,channels);
+  corner_bl=PixelsEqual(pixels,3,pixels,6,channels) &&
+    PixelsEqual(pixels,6,pixels,7,channels);
+  corner_br=PixelsEqual(pixels,5,pixels,7,channels) &&
+    PixelsEqual(pixels,7,pixels,8,channels);
+  CopyPixels(pixels,(ssize_t) (corner_tl ? 0 : 4),result,0,channels);
+  CopyPixels(pixels,4,result,1,channels);
+  CopyPixels(pixels,(ssize_t) (corner_tr ? 1 : 4),result,2,channels);
+  CopyPixels(pixels,4,result,3,channels);
+  CopyPixels(pixels,4,result,4,channels);
+  CopyPixels(pixels,4,result,5,channels);
+  CopyPixels(pixels,(ssize_t) (corner_bl ? 3 : 4),result,6,channels);
+  CopyPixels(pixels,4,result,7,channels);
+  CopyPixels(pixels,(ssize_t) (corner_br ? 5 : 4),result,8,channels);
+}
+
+static inline void Scale3X(const Image *source,const Quantum *pixels,
+  Quantum *result,const size_t channels)
+{
+  if (!PixelsEqual(pixels,1,pixels,7,channels) &&
+      !PixelsEqual(pixels,3,pixels,5,channels))
+    {
+      if (PixelsEqual(pixels,3,pixels,1,channels))
+        CopyPixels(pixels,3,result,0,channels);
+      else
+        CopyPixels(pixels,4,result,0,channels);
+
+      if (
+        (
+          PixelsEqual(pixels,3,pixels,1,channels) &&
+          !PixelsEqual(pixels,4,pixels,2,channels)
+        ) ||
+        (
+          PixelsEqual(pixels,5,pixels,1,channels) &&
+          !PixelsEqual(pixels,4,pixels,0,channels)
+        )
+      )
+        CopyPixels(pixels,1,result,1,channels);
+      else
+        CopyPixels(pixels,4,result,1,channels);
+      if (PixelsEqual(pixels,5,pixels,1,channels))
+        CopyPixels(pixels,5,result,2,channels);
+      else
+        CopyPixels(pixels,4,result,2,channels);
+      if (
+        (
+          PixelsEqual(pixels,3,pixels,1,channels) &&
+          !PixelsEqual(pixels,4,pixels,6,channels)
+        ) ||
+        (
+          PixelsEqual(pixels,3,pixels,7,channels) &&
+          !PixelsEqual(pixels,4,pixels,0,channels)
+        )
+      )
+        CopyPixels(pixels,3,result,3,channels);
+      else
+        CopyPixels(pixels,4,result,3,channels);
+      CopyPixels(pixels,4,result,4,channels);
+      if (
+        (
+          PixelsEqual(pixels,5,pixels,1,channels) &&
+          !PixelsEqual(pixels,4,pixels,8,channels)
+        ) ||
+        (
+          PixelsEqual(pixels,5,pixels,7,channels) &&
+          !PixelsEqual(pixels,4,pixels,2,channels)
+        )
+      )
+        CopyPixels(pixels,5,result,5,channels);
+      else
+        CopyPixels(pixels,4,result,5,channels);
+      if (PixelsEqual(pixels,3,pixels,7,channels))
+        CopyPixels(pixels,3,result,6,channels);
+      else
+        CopyPixels(pixels,4,result,6,channels);
+      if (
+        (
+          PixelsEqual(pixels,3,pixels,7,channels) &&
+          !PixelsEqual(pixels,4,pixels,8,channels)
+        ) ||
+        (
+          PixelsEqual(pixels,5,pixels,7,channels) &&
+          !PixelsEqual(pixels,4,pixels,6,channels)
+        )
+      )
+        CopyPixels(pixels,7,result,7,channels);
+      else
+        CopyPixels(pixels,4,result,7,channels);
+      if (PixelsEqual(pixels,5,pixels,7,channels))
+        CopyPixels(pixels,5,result,8,channels);
+      else
+        CopyPixels(pixels,4,result,8,channels);
+    }
+  else
+    {
+      register ssize_t
+        i;
+
+      for (i=0; i < 9; i++)
+        CopyPixels(pixels,4,result,i,channels);
+    }
+}
+
 MagickExport Image *MagnifyImage(const Image *image,ExceptionInfo *exception)
 {
 #define MagnifyImageTag  "Magnify/Image"
@@ -2068,7 +2830,11 @@
     *image_view,
     *magnify_view;
 
+  const char
+    *option;
+
   Image
+    *source_image,
     *magnify_image;
 
   MagickBooleanType
@@ -2077,9 +2843,22 @@
   MagickOffsetType
     progress;
 
+  OffsetInfo
+    offset;
+
+  RectangleInfo
+    rectangle;
+
   ssize_t
     y;
 
+  unsigned char
+    magnification,
+    width;
+
+  void
+    (*scaling_method)(const Image *,const Quantum *,Quantum *,size_t);
+
   /*
     Initialize magnified image attributes.
   */
@@ -2089,23 +2868,137 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
-  magnify_image=CloneImage(image,2*image->columns,2*image->rows,MagickTrue,
-    exception);
-  if (magnify_image == (Image *) NULL)
-    return((Image *) NULL);
+  option=GetImageOption(image->image_info,"magnify:method");
+  if (option == (char *) NULL)
+    option="scale2x";
+  scaling_method=Scale2X;
+  magnification=1;
+  width=1;
+  switch (*option)
+  {
+    case 'e':
+    {
+      if (LocaleCompare(option,"eagle2x") == 0)
+        {
+          scaling_method=Eagle2X;
+          magnification=2;
+          width=3;
+          break;
+        }
+      if (LocaleCompare(option,"eagle3x") == 0)
+        {
+          scaling_method=Eagle3X;
+          magnification=3;
+          width=3;
+          break;
+        }
+      if (LocaleCompare(option,"eagle3xb") == 0)
+        {
+          scaling_method=Eagle3XB;
+          magnification=3;
+          width=3;
+          break;
+        }
+      if (LocaleCompare(option,"epbx2x") == 0)
+        {
+          scaling_method=Epbx2X;
+          magnification=2;
+          width=3;
+          break;
+        }
+      break;
+    }
+    case 'f':
+    {
+      if (LocaleCompare(option,"fish2x") == 0)
+        {
+          scaling_method=Fish2X;
+          magnification=2;
+          width=3;
+          break;
+        }
+      break;
+    }
+    case 'h':
+    {
+      if (LocaleCompare(option,"hq2x") == 0)
+        {
+          scaling_method=Hq2X;
+          magnification=2;
+          width=3;
+          break;
+        }
+      break;
+    }
+    case 's':
+    {
+      if (LocaleCompare(option,"scale2x") == 0)
+        {
+          scaling_method=Scale2X;
+          magnification=2;
+          width=3;
+          break;
+        }
+      if (LocaleCompare(option,"scale3x") == 0)
+        {
+          scaling_method=Scale3X;
+          magnification=3;
+          width=3;
+          break;
+        }
+      break;
+    }
+    case 'x':
+    {
+      if (LocaleCompare(option,"xbr2x") == 0)
+        {
+          scaling_method=Xbr2X;
+          magnification=2;
+          width=5;
+        }
+      break;
+    }
+    default:
+      break;
+  }
   /*
-    Magnify image.
+    Make a working copy of the source image and convert it to RGB colorspace.
+  */
+  source_image=CloneImage(image,image->columns,image->rows,MagickTrue,
+    exception);
+  if (source_image == (Image *) NULL)
+    return((Image *) NULL);
+  offset.x=0;
+  offset.y=0;
+  rectangle.x=0;
+  rectangle.y=0;
+  rectangle.width=image->columns;
+  rectangle.height=image->rows;
+  (void) CopyImagePixels(source_image,image,&rectangle,&offset,exception);
+  (void) SetImageColorspace(source_image,RGBColorspace,exception);
+  magnify_image=CloneImage(source_image,magnification*source_image->columns,
+    magnification*source_image->rows,MagickTrue,exception);
+  if (magnify_image == (Image *) NULL)
+    {
+      source_image=DestroyImage(source_image);
+      return((Image *) NULL);
+    }
+  /*
+    Magnify the image.
   */
   status=MagickTrue;
   progress=0;
-  image_view=AcquireVirtualCacheView(image,exception);
+  image_view=AcquireVirtualCacheView(source_image,exception);
   magnify_view=AcquireAuthenticCacheView(magnify_image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(static) shared(progress,status) \
-    magick_number_threads(image,magnify_image,image->rows,1)
+    magick_number_threads(source_image,magnify_image,source_image->rows,1)
 #endif
-  for (y=0; y < (ssize_t) image->rows; y++)
+  for (y=0; y < (ssize_t) source_image->rows; y++)
   {
+    Quantum
+      r[128]; /* to hold result pixels */
+
     register Quantum
       *magick_restrict q;
 
@@ -2114,8 +3007,8 @@
 
     if (status == MagickFalse)
       continue;
-    q=QueueCacheViewAuthenticPixels(magnify_view,0,2*y,magnify_image->columns,2,
-      exception);
+    q=QueueCacheViewAuthenticPixels(magnify_view,0,magnification*y,
+      magnify_image->columns,magnification,exception);
     if (q == (Quantum *) NULL)
       {
         status=MagickFalse;
@@ -2124,85 +3017,31 @@
     /*
       Magnify this row of pixels.
     */
-    for (x=0; x < (ssize_t) image->columns; x++)
+    for (x=0; x < (ssize_t) source_image->columns; x++)
     {
-      MagickRealType
-        intensity[9];
-
       register const Quantum
         *magick_restrict p;
 
-      register Quantum
-        *magick_restrict r;
-
-      register ssize_t
-        i;
-
       size_t
         channels;
 
-      p=GetCacheViewVirtualPixels(image_view,x-1,y-1,3,3,exception);
-      if (p == (const Quantum *) NULL)
-        {
-          status=MagickFalse;
-          continue;
-        }
-      channels=GetPixelChannels(image);
-      for (i=0; i < 9; i++)
-        intensity[i]=GetPixelIntensity(image,p+i*channels);
-      r=q;
-      if ((fabs(intensity[1]-intensity[7]) < MagickEpsilon) ||
-          (fabs(intensity[3]-intensity[5]) < MagickEpsilon))
-        {
-          /*
-            Clone center pixel.
-          */
-          for (i=0; i < (ssize_t) channels; i++)
-            r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image);
-          for (i=0; i < (ssize_t) channels; i++)
-            r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image)*(magnify_image->columns-1);
-          for (i=0; i < (ssize_t) channels; i++)
-            r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image);
-          for (i=0; i < (ssize_t) channels; i++)
-            r[i]=p[4*channels+i];
-        }
-      else
-        {
-          /*
-            Selectively clone pixel.
-          */
-          if (fabs(intensity[1]-intensity[3]) < MagickEpsilon)
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[3*channels+i];
-          else
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image);
-          if (fabs(intensity[1]-intensity[5]) < MagickEpsilon)
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[5*channels+i];
-          else
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image)*(magnify_image->columns-1);
-          if (fabs(intensity[3]-intensity[7]) < MagickEpsilon)
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[3*channels+i];
-          else
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[4*channels+i];
-          r+=GetPixelChannels(magnify_image);
-          if (fabs(intensity[5]-intensity[7]) < MagickEpsilon)
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[5*channels+i];
-          else
-            for (i=0; i < (ssize_t) channels; i++)
-              r[i]=p[4*channels+i];
-        }
-      q+=2*GetPixelChannels(magnify_image);
+      register ssize_t
+        i;
+
+      ssize_t
+        j;
+
+      p=GetCacheViewVirtualPixels(image_view,x-width/2,y-width/2,width,width,
+        exception);
+      channels=GetPixelChannels(source_image);
+      scaling_method(source_image,p,r,channels);
+      /*
+        Copy the result pixels into the final image.
+      */
+      for (j=0; j < (ssize_t) magnification; j++)
+        for (i=0; i < (ssize_t) (channels*magnification); i++)
+          q[j*channels*magnify_image->columns+i]=r[j*magnification*channels+i];
+      q+=magnification*GetPixelChannels(magnify_image);
     }
     if (SyncCacheViewAuthenticPixels(magnify_view,exception) == MagickFalse)
       status=MagickFalse;
@@ -2222,6 +3061,7 @@
   }
   magnify_view=DestroyCacheView(magnify_view);
   image_view=DestroyCacheView(image_view);
+  source_image=DestroyImage(source_image);
   if (status == MagickFalse)
     magnify_image=DestroyImage(magnify_image);
   return(magnify_image);
@@ -3569,8 +4409,7 @@
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
             pixel[i]+=span.x*scanline[(x-1)*GetPixelChannels(image)+i];
         }
-      if ((next_column == MagickFalse) &&
-          (t < (ssize_t) scale_image->columns))
+      if ((next_column == MagickFalse) && (t < (ssize_t) scale_image->columns))
         for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
           scale_scanline[t*GetPixelChannels(image)+i]=pixel[i];
       /*
diff --git a/MagickCore/resize.h b/MagickCore/resize.h
index ef735a0..e543760 100644
--- a/MagickCore/resize.h
+++ b/MagickCore/resize.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resource-private.h b/MagickCore/resource-private.h
index 422b267..e037a62 100644
--- a/MagickCore/resource-private.h
+++ b/MagickCore/resource-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resource.c b/MagickCore/resource.c
index 1019acb..02f0cf0 100644
--- a/MagickCore/resource.c
+++ b/MagickCore/resource.c
@@ -17,7 +17,7 @@
 %                               September 2002                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -71,6 +71,8 @@
   Define declarations.
 */
 #define MagickPathTemplate "XXXXXXXXXXXX"
+#define NumberOfResourceTypes  \
+  (sizeof(resource_semaphore)/sizeof(*resource_semaphore))
 
 /*
   Typedef declarations.
@@ -138,7 +140,20 @@
   };
 
 static SemaphoreInfo
-  *resource_semaphore = (SemaphoreInfo *) NULL;
+  *resource_semaphore[] = {
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL,
+     (SemaphoreInfo *) NULL
+  };
 
 static SplayTreeInfo
   *temporary_resources = (SplayTreeInfo *) NULL;
@@ -188,76 +203,35 @@
   if (request < 0)
     return(MagickFalse);
   limit=0;
+  current=0;
   bi=MagickFalse;
   status=MagickFalse;
   switch (type)
   {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      if (resource_semaphore[type] == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&resource_semaphore[type]);
+      LockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
+  switch (type)
+  {
     case AreaResource:
     {
       bi=MagickTrue;
       resource_info.area=request;
       limit=resource_info.area_limit;
-      break;
-    }
-    case HeightResource:
-    {
-      bi=MagickTrue;
-      resource_info.height=request;
-      limit=resource_info.height_limit;
-      break;
-    }
-    case ListLengthResource:
-    {
-      resource_info.list_length=request;
-      limit=resource_info.list_length_limit;
-      break;
-    }
-    case ThreadResource:
-    {
-      limit=resource_info.thread_limit;
-      break;
-    }
-    case ThrottleResource:
-    {
-      limit=resource_info.throttle_limit;
-      break;
-    }
-    case WidthResource:
-    {
-      bi=MagickTrue;
-      resource_info.width=request;
-      limit=resource_info.width_limit;
-      break;
-    }
-    default:
-      break;
-  }
-  if (limit != 0)
-    {
       if ((limit == MagickResourceInfinity) || (size < limit))
         status=MagickTrue;
-      if (IsEventLogging() != MagickFalse)
-        {
-          char
-            resource_limit[MagickFormatExtent],
-            resource_request[MagickFormatExtent];
-
-          (void) FormatMagickSize(size,MagickFalse,(bi != MagickFalse) ?
-            "P" : (const char *) NULL,MagickFormatExtent,resource_request);
-          (void) FormatMagickSize((MagickSizeType) limit,MagickFalse,
-            (bi != MagickFalse) ? "P" : (const char *) NULL,
-            MagickFormatExtent,resource_limit);
-          (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s: %s/%s",
-            CommandOptionToMnemonic(MagickResourceOptions,(ssize_t) type),
-            resource_request,resource_limit);
-        }
-      return(status);
+      break;
     }
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&resource_semaphore);
-  LockSemaphoreInfo(resource_semaphore);
-  switch (type)
-  {
     case DiskResource:
     {
       bi=MagickTrue;
@@ -287,6 +261,23 @@
       current=resource_info.file;
       break;
     }
+    case HeightResource:
+    {
+      bi=MagickTrue;
+      resource_info.height=request;
+      limit=resource_info.height_limit;
+      if ((limit == MagickResourceInfinity) || (size < limit))
+        status=MagickTrue;
+      break;
+    }
+    case ListLengthResource:
+    {
+      resource_info.list_length=request;
+      limit=resource_info.list_length_limit;
+      if ((limit == MagickResourceInfinity) || (size < limit))
+        status=MagickTrue;
+      break;
+    }
     case MapResource:
     {
       bi=MagickTrue;
@@ -319,6 +310,22 @@
       current=resource_info.memory;
       break;
     }
+    case ThreadResource:
+    {
+      limit=resource_info.thread_limit;
+      if ((limit == MagickResourceInfinity) ||
+          (resource_info.thread < (MagickOffsetType) limit))
+        status=MagickTrue;
+      break;
+    }
+    case ThrottleResource:
+    {
+      limit=resource_info.throttle_limit;
+      if ((limit == MagickResourceInfinity) ||
+          (resource_info.throttle < (MagickOffsetType) limit))
+        status=MagickTrue;
+      break;
+    }
     case TimeResource:
     {
       limit=resource_info.time_limit;
@@ -334,13 +341,34 @@
       current=resource_info.time;
       break;
     }
+    case WidthResource:
+    {
+      bi=MagickTrue;
+      resource_info.width=request;
+      limit=resource_info.width_limit;
+      if ((limit == MagickResourceInfinity) || (size < limit))
+        status=MagickTrue;
+      break;
+    }
     default:
     {
       current=0;
       break;
     }
   }
-  UnlockSemaphoreInfo(resource_semaphore);
+  switch (type)
+  {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      UnlockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
   if (IsEventLogging() != MagickFalse)
     {
       char
@@ -550,12 +578,12 @@
   (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"...");
   if (random_info == (RandomInfo *) NULL)
     {
-      if (resource_semaphore == (SemaphoreInfo *) NULL)
-        ActivateSemaphoreInfo(&resource_semaphore);
-      LockSemaphoreInfo(resource_semaphore);
+      if (resource_semaphore[FileResource] == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&resource_semaphore[FileResource]);
+      LockSemaphoreInfo(resource_semaphore[FileResource]);
       if (random_info == (RandomInfo *) NULL)
         random_info=AcquireRandomInfo();
-      UnlockSemaphoreInfo(resource_semaphore);
+      UnlockSemaphoreInfo(resource_semaphore[FileResource]);
     }
   file=(-1);
   for (i=0; i < (ssize_t) TMP_MAX; i++)
@@ -606,13 +634,13 @@
   (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s",path);
   if (file == -1)
     return(file);
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&resource_semaphore);
-  LockSemaphoreInfo(resource_semaphore);
+  if (resource_semaphore[FileResource] == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&resource_semaphore[FileResource]);
+  LockSemaphoreInfo(resource_semaphore[FileResource]);
   if (temporary_resources == (SplayTreeInfo *) NULL)
     temporary_resources=NewSplayTree(CompareSplayTreeString,
       DestroyTemporaryResources,(void *(*)(void *)) NULL);
-  UnlockSemaphoreInfo(resource_semaphore);
+  UnlockSemaphoreInfo(resource_semaphore[FileResource]);
   (void) AddValueToSplayTree(temporary_resources,ConstantString(path),
     (const void *) NULL);
   return(file);
@@ -648,11 +676,36 @@
   resource=0;
   switch (type)
   {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      if (resource_semaphore[type] == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&resource_semaphore[type]);
+      LockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
+  switch (type)
+  {
     case AreaResource:
     {
       resource=(MagickSizeType) resource_info.area;
       break;
     }
+    case DiskResource:
+    {
+      resource=(MagickSizeType) resource_info.disk;
+      break;
+    }
+    case FileResource:
+    {
+      resource=(MagickSizeType) resource_info.file;
+      break;
+    }
     case HeightResource:
     {
       resource=(MagickSizeType) resource_info.height;
@@ -663,6 +716,21 @@
       resource=(MagickSizeType) resource_info.list_length;
       break;
     }
+    case MapResource:
+    {
+      resource=(MagickSizeType) resource_info.map;
+      break;
+    }
+    case MemoryResource:
+    {
+      resource=(MagickSizeType) resource_info.memory;
+      break;
+    }
+    case TimeResource:
+    {
+      resource=(MagickSizeType) resource_info.time;
+      break;
+    }
     case ThreadResource:
     {
       resource=(MagickSizeType) resource_info.thread;
@@ -679,43 +747,20 @@
       break;
     }
     default:
+      break;
+  }
+  switch (type)
+  {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
     {
-      if (resource_semaphore == (SemaphoreInfo *) NULL)
-        ActivateSemaphoreInfo(&resource_semaphore);
-      LockSemaphoreInfo(resource_semaphore);
-      switch (type)
-      {
-        case DiskResource:
-        {
-          resource=(MagickSizeType) resource_info.disk;
-          break;
-        }
-        case FileResource:
-        {
-          resource=(MagickSizeType) resource_info.file;
-          break;
-        }
-        case MapResource:
-        {
-          resource=(MagickSizeType) resource_info.map;
-          break;
-        }
-        case MemoryResource:
-        {
-          resource=(MagickSizeType) resource_info.memory;
-          break;
-        }
-        case TimeResource:
-        {
-          resource=(MagickSizeType) resource_info.time;
-          break;
-        }
-        default:
-          break;
-      }
-      UnlockSemaphoreInfo(resource_semaphore);
+      UnlockSemaphoreInfo(resource_semaphore[type]);
       break;
     }
+    default: ;
   }
   return(resource);
 }
@@ -746,15 +791,29 @@
 {
   MagickSizeType
     resource;
-
-  resource=0;
+  
   switch (type)
   {
     case AreaResource:
-    {
-      resource=resource_info.area_limit;
-      break;
-    }
+      return resource_info.area_limit;
+    case HeightResource:
+      return resource_info.height_limit;
+    case ListLengthResource:
+      return resource_info.list_length_limit;
+    case ThreadResource:
+      return resource_info.thread_limit;
+    case ThrottleResource:
+      return resource_info.throttle_limit;
+    case WidthResource:
+      return resource_info.width_limit;
+    default: ;
+  }
+  resource=0;
+  if (resource_semaphore[type] == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&resource_semaphore[type]);
+  LockSemaphoreInfo(resource_semaphore[type]);
+  switch (type)
+  {
     case DiskResource:
     {
       resource=resource_info.disk_limit;
@@ -765,14 +824,9 @@
       resource=resource_info.file_limit;
       break;
     }
-    case HeightResource:
+    case MapResource:
     {
-      resource=resource_info.height_limit;
-      break;
-    }
-    case ListLengthResource:
-    {
-      resource=resource_info.list_length_limit;
+      resource=resource_info.map_limit;
       break;
     }
     case MemoryResource:
@@ -780,34 +834,15 @@
       resource=resource_info.memory_limit;
       break;
     }
-    case MapResource:
-    {
-      resource=resource_info.map_limit;
-      break;
-    }
-    case ThreadResource:
-    {
-      resource=resource_info.thread_limit;
-      break;
-    }
-    case ThrottleResource:
-    {
-      resource=resource_info.throttle_limit;
-      break;
-    }
     case TimeResource:
     {
       resource=resource_info.time_limit;
       break;
     }
-    case WidthResource:
-    {
-      resource=resource_info.width_limit;
-      break;
-    }
     default:
       break;
   }
+  UnlockSemaphoreInfo(resource_semaphore[type]);
   return(resource);
 }
 
@@ -843,6 +878,7 @@
     area_limit[MagickFormatExtent],
     disk_limit[MagickFormatExtent],
     height_limit[MagickFormatExtent],
+    list_length_limit[MagickFormatExtent],
     map_limit[MagickFormatExtent],
     memory_limit[MagickFormatExtent],
     time_limit[MagickFormatExtent],
@@ -852,15 +888,19 @@
 
   if (file == (const FILE *) NULL)
     file=stdout;
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&resource_semaphore);
-  LockSemaphoreInfo(resource_semaphore);
+  if (resource_semaphore[FileResource] == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&resource_semaphore[FileResource]);
+  LockSemaphoreInfo(resource_semaphore[FileResource]);
   (void) FormatMagickSize(resource_info.width_limit,MagickFalse,"P",
     MagickFormatExtent,width_limit);
   (void) FormatMagickSize(resource_info.height_limit,MagickFalse,"P",
     MagickFormatExtent,height_limit);
   (void) FormatMagickSize(resource_info.area_limit,MagickFalse,"P",
     MagickFormatExtent,area_limit);
+  (void) CopyMagickString(list_length_limit,"unlimited",MagickFormatExtent);
+  if (resource_info.list_length_limit != MagickResourceInfinity)
+    (void) FormatMagickSize(resource_info.list_length_limit,MagickTrue,"B",
+      MagickFormatExtent,list_length_limit);
   (void) FormatMagickSize(resource_info.memory_limit,MagickTrue,"B",
     MagickFormatExtent,memory_limit);
   (void) FormatMagickSize(resource_info.map_limit,MagickTrue,"B",
@@ -876,9 +916,8 @@
   (void) FormatLocaleFile(file,"Resource limits:\n");
   (void) FormatLocaleFile(file,"  Width: %s\n",width_limit);
   (void) FormatLocaleFile(file,"  Height: %s\n",height_limit);
-  (void) FormatLocaleFile(file,"  List length: %.20g\n",(double)
-    ((MagickOffsetType) resource_info.list_length_limit));
   (void) FormatLocaleFile(file,"  Area: %s\n",area_limit);
+  (void) FormatLocaleFile(file,"  List length: %s\n",list_length_limit);
   (void) FormatLocaleFile(file,"  Memory: %s\n",memory_limit);
   (void) FormatLocaleFile(file,"  Map: %s\n",map_limit);
   (void) FormatLocaleFile(file,"  Disk: %s\n",disk_limit);
@@ -890,7 +929,7 @@
     ((MagickOffsetType) resource_info.throttle_limit));
   (void) FormatLocaleFile(file,"  Time: %s\n",time_limit);
   (void) fflush(file);
-  UnlockSemaphoreInfo(resource_semaphore);
+  UnlockSemaphoreInfo(resource_semaphore[FileResource]);
   return(MagickTrue);
 }
 
@@ -929,23 +968,24 @@
     current,
     limit;
 
-  switch (type)
-  {
-    case AreaResource:
-    case HeightResource:
-    case ListLengthResource:
-    case ThreadResource:
-    case ThrottleResource:
-    case WidthResource:
-      return;
-    default:
-      break;
-  }
   bi=MagickFalse;
   limit=0;
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&resource_semaphore);
-  LockSemaphoreInfo(resource_semaphore);
+  current=0;
+  switch (type)
+  {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      if (resource_semaphore[type] == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&resource_semaphore[type]);
+      LockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
   switch (type)
   {
     case DiskResource:
@@ -998,7 +1038,19 @@
       break;
     }
   }
-  UnlockSemaphoreInfo(resource_semaphore);
+  switch (type)
+  {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      UnlockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
   if (IsEventLogging() != MagickFalse)
     {
       char
@@ -1051,12 +1103,12 @@
   assert(path != (const char *) NULL);
   status=MagickFalse;
   (void) LogMagickEvent(ResourceEvent,GetMagickModule(),"%s",path);
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    ActivateSemaphoreInfo(&resource_semaphore);
-  LockSemaphoreInfo(resource_semaphore);
+  if (resource_semaphore[FileResource] == (SemaphoreInfo *) NULL)
+    ActivateSemaphoreInfo(&resource_semaphore[FileResource]);
+  LockSemaphoreInfo(resource_semaphore[FileResource]);
   if (temporary_resources != (SplayTreeInfo *) NULL)
     status=DeleteNodeFromSplayTree(temporary_resources,(const void *) path);
-  UnlockSemaphoreInfo(resource_semaphore);
+  UnlockSemaphoreInfo(resource_semaphore[FileResource]);
   (void) CopyMagickString(cache_path,path,MagickPathExtent);
   AppendImageFormat("cache",cache_path);
   if (access_utf8(cache_path,F_OK) == 0)
@@ -1093,6 +1145,9 @@
   MagickSizeType
     memory;
 
+  register ssize_t
+    i;
+
   ssize_t
     files,
     pages,
@@ -1101,8 +1156,9 @@
   /*
     Set Magick resource limits.
   */
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
+  for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
+    if (resource_semaphore[i] == (SemaphoreInfo *) NULL)
+      resource_semaphore[i]=AcquireSemaphoreInfo();
   (void) SetMagickResourceLimit(WidthResource,resource_info.width_limit);
   limit=GetEnvironmentValue("MAGICK_WIDTH_LIMIT");
   if (limit != (char *) NULL)
@@ -1246,15 +1302,20 @@
 */
 MagickPrivate void ResourceComponentTerminus(void)
 {
-  if (resource_semaphore == (SemaphoreInfo *) NULL)
-    resource_semaphore=AcquireSemaphoreInfo();
-  LockSemaphoreInfo(resource_semaphore);
+  register ssize_t
+    i;
+
+  for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
+    if (resource_semaphore[i] == (SemaphoreInfo *) NULL)
+      resource_semaphore[i]=AcquireSemaphoreInfo();
+  LockSemaphoreInfo(resource_semaphore[FileResource]);
   if (temporary_resources != (SplayTreeInfo *) NULL)
     temporary_resources=DestroySplayTree(temporary_resources);
   if (random_info != (RandomInfo *) NULL)
     random_info=DestroyRandomInfo(random_info);
-  UnlockSemaphoreInfo(resource_semaphore);
-  RelinquishSemaphoreInfo(&resource_semaphore);
+  UnlockSemaphoreInfo(resource_semaphore[FileResource]);
+  for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
+    RelinquishSemaphoreInfo(&resource_semaphore[i]);
 }
 
 /*
@@ -1295,6 +1356,21 @@
   value=(char *) NULL;
   switch (type)
   {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      if (resource_semaphore[type] == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&resource_semaphore[type]);
+      LockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
+  switch (type)
+  {
     case AreaResource:
     {
       value=GetPolicyValue("resource:area");
@@ -1333,6 +1409,8 @@
       else
         resource_info.height_limit=MagickMin(limit,StringToMagickSizeType(
           value,100.0));
+      resource_info.height_limit=MagickMin(resource_info.height_limit,
+        SSIZE_MAX);
       break;
     }
     case ListLengthResource:
@@ -1409,6 +1487,8 @@
       else
         resource_info.width_limit=MagickMin(limit,StringToMagickSizeType(value,
           100.0));
+      resource_info.width_limit=MagickMin(resource_info.width_limit,
+        SSIZE_MAX);
       break;
     }
     default:
@@ -1417,6 +1497,19 @@
       break;
     }
   }
+  switch (type)
+  {
+    case DiskResource:
+    case FileResource:
+    case MapResource:
+    case MemoryResource:
+    case TimeResource:
+    {
+      UnlockSemaphoreInfo(resource_semaphore[type]);
+      break;
+    }
+    default: ;
+  }
   if (value != (char *) NULL)
     value=DestroyString(value);
   return(status);
diff --git a/MagickCore/resource_.h b/MagickCore/resource_.h
index 593c8bd..80e8bc9 100644
--- a/MagickCore/resource_.h
+++ b/MagickCore/resource_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -38,7 +38,7 @@
   ListLengthResource
 } ResourceType;
 
-#define MagickResourceInfinity  MagickULLConstant(~0)
+#define MagickResourceInfinity  (MagickULLConstant(~0) >> 1)
 
 extern MagickExport int
   AcquireUniqueFileResource(char *);
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index 516f436..926a22f 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -17,7 +17,7 @@
 %                                April 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -251,6 +251,21 @@
   ExceptionInfo *exception)
 {
 #define SegmentImageTag  "Segment/Image"
+#define ThrowClassifyException(severity,tag,label) \
+{\
+  for (cluster=head; cluster != (Cluster *) NULL; cluster=next_cluster) \
+  { \
+    next_cluster=cluster->next; \
+    cluster=(Cluster *) RelinquishMagickMemory(cluster); \
+  } \
+  if (squares != (double *) NULL) \
+    { \
+      squares-=255; \
+      free_squares=squares; \
+      free_squares=(double *) RelinquishMagickMemory(free_squares); \
+    } \
+  ThrowBinaryException(severity,tag,label); \
+}
 
   CacheView
     *image_view;
@@ -293,6 +308,7 @@
   */
   cluster=(Cluster *) NULL;
   head=(Cluster *) NULL;
+  squares=(double *) NULL;
   (void) memset(&red,0,sizeof(red));
   (void) memset(&green,0,sizeof(green));
   (void) memset(&blue,0,sizeof(blue));
@@ -319,7 +335,7 @@
             head=cluster;
           }
         if (cluster == (Cluster *) NULL)
-          ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+          ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
             image->filename);
         /*
           Initialize a new class.
@@ -339,7 +355,7 @@
       */
       cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
       if (cluster == (Cluster *) NULL)
-        ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+        ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
           image->filename);
       /*
         Initialize a new class.
@@ -502,13 +518,13 @@
       (void) FormatLocaleFile(stdout,"\n");
     }
   if (number_clusters > 256)
-    ThrowBinaryException(ImageError,"TooManyClusters",image->filename);
+    ThrowClassifyException(ImageError,"TooManyClusters",image->filename);
   /*
     Speed up distance calculations.
   */
   squares=(double *) AcquireQuantumMemory(513UL,sizeof(*squares));
   if (squares == (double *) NULL)
-    ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+    ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
       image->filename);
   squares+=255;
   for (i=(-255); i <= 255; i++)
@@ -517,7 +533,7 @@
     Allocate image colormap.
   */
   if (AcquireImageColormap(image,number_clusters,exception) == MagickFalse)
-    ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+    ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
       image->filename);
   i=0;
   for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
@@ -562,7 +578,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      SetPixelIndex(image,0,q);
+      SetPixelIndex(image,(Quantum) 0,q);
       for (clust=head; clust != (Cluster *) NULL; clust=clust->next)
       {
         if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,q)) >=
@@ -1679,7 +1695,7 @@
   average_tau=0.0;
   for (i=0; i < number_nodes; i++)
     average_tau+=list[i]->tau;
-  average_tau/=(double) number_nodes;
+  average_tau*=PerceptibleReciprocal((double) number_nodes);
   /*
     Relinquish resources.
   */
diff --git a/MagickCore/segment.h b/MagickCore/segment.h
index b997b40..8aad589 100644
--- a/MagickCore/segment.h
+++ b/MagickCore/segment.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/semaphore-private.h b/MagickCore/semaphore-private.h
index 48b2bbe..e72199d 100644
--- a/MagickCore/semaphore-private.h
+++ b/MagickCore/semaphore-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -13,7 +13,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 
-  MagickCore private methods to lock and unlock semaphores.
+  MagickCore private methods.
 */
 #ifndef MAGICKCORE_SEMAPHORE_PRIVATE_H
 #define MAGICKCORE_SEMAPHORE_PRIVATE_H
@@ -28,84 +28,6 @@
 extern MagickPrivate void
   SemaphoreComponentTerminus(void);
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-static omp_lock_t
-  semaphore_mutex;
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
-static pthread_mutex_t
-  semaphore_mutex = PTHREAD_MUTEX_INITIALIZER;
-#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
-static LONG
-  semaphore_mutex = 0;
-#else
-static ssize_t
-  semaphore_mutex = 0;
-#endif
-
-static MagickBooleanType
-  active_mutex = MagickFalse;
-
-static inline void DestroyMagickMutex(void)
-{
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  if (active_mutex != MagickFalse)
-    omp_destroy_lock(&semaphore_mutex);
-#endif
-  active_mutex=MagickFalse;
-}
-
-static inline void InitializeMagickMutex(void)
-{
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  if (active_mutex == MagickFalse)
-    omp_init_lock(&semaphore_mutex);
-#endif
-  active_mutex=MagickTrue;
-}
-
-static inline void LockMagickMutex(void)
-{
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_set_lock(&semaphore_mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
-  {
-    int
-      status;
-
-    status=pthread_mutex_lock(&semaphore_mutex);
-    if (status != 0)
-      {
-        errno=status;
-        ThrowFatalException(ResourceLimitFatalError,"UnableToLockSemaphore");
-      }
-  }
-#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
-  while (InterlockedCompareExchange(&semaphore_mutex,1L,0L) != 0)
-    Sleep(10);
-#endif
-}
-
-static inline void UnlockMagickMutex(void)
-{
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-  omp_unset_lock(&semaphore_mutex);
-#elif defined(MAGICKCORE_THREAD_SUPPORT)
-  {
-    int
-      status;
-
-    status=pthread_mutex_unlock(&semaphore_mutex);
-    if (status != 0)
-      {
-        errno=status;
-        ThrowFatalException(ResourceLimitFatalError,"UnableToUnlockSemaphore");
-      }
-  }
-#elif defined(MAGICKCORE_WINDOWS_SUPPORT)
-  InterlockedExchange(&semaphore_mutex,0L);
-#endif
-}
-
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/semaphore.c b/MagickCore/semaphore.c
index 9bafa10..9742dae 100644
--- a/MagickCore/semaphore.c
+++ b/MagickCore/semaphore.c
@@ -18,7 +18,7 @@
 %                                 June 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -46,6 +46,7 @@
 #include "MagickCore/exception-private.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/memory-private.h"
+#include "MagickCore/mutex.h"
 #include "MagickCore/semaphore.h"
 #include "MagickCore/semaphore-private.h"
 #include "MagickCore/string_.h"
@@ -99,7 +100,6 @@
   assert(semaphore_info != (SemaphoreInfo **) NULL);
   if (*semaphore_info == (SemaphoreInfo *) NULL)
     {
-      InitializeMagickMutex();
       LockMagickMutex();
       if (*semaphore_info == (SemaphoreInfo *) NULL)
         *semaphore_info=AcquireSemaphoreInfo();
@@ -353,7 +353,6 @@
   assert(semaphore_info != (SemaphoreInfo **) NULL);
   assert((*semaphore_info) != (SemaphoreInfo *) NULL);
   assert((*semaphore_info)->signature == MagickCoreSignature);
-  InitializeMagickMutex();
   LockMagickMutex();
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   omp_destroy_lock((omp_lock_t *) &(*semaphore_info)->mutex);
diff --git a/MagickCore/semaphore.h b/MagickCore/semaphore.h
index 585f323..4f22c29 100644
--- a/MagickCore/semaphore.h
+++ b/MagickCore/semaphore.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/shear.c b/MagickCore/shear.c
index 43defe3..8b5ff3c 100644
--- a/MagickCore/shear.c
+++ b/MagickCore/shear.c
@@ -17,7 +17,7 @@
 %                                  July 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -730,16 +730,32 @@
   assert(image != (Image *) NULL);
   page=image->page;
   rotations%=4;
-  if (rotations == 0)
-    return(CloneImage(image,0,0,MagickTrue,exception));
-  if ((rotations == 1) || (rotations == 3))
-    rotate_image=CloneImage(image,image->rows,image->columns,MagickTrue,
-      exception);
-  else
-    rotate_image=CloneImage(image,0,0,MagickTrue,
-      exception);
+  switch (rotations)
+  {
+    case 0:
+    default:
+    {
+      rotate_image=CloneImage(image,0,0,MagickTrue,exception);
+      break;
+    }
+    case 2:
+    {
+      rotate_image=CloneImage(image,image->columns,image->rows,MagickTrue,
+        exception);
+      break;
+    }
+    case 1:
+    case 3:
+    {
+      rotate_image=CloneImage(image,image->rows,image->columns,MagickTrue,
+        exception);
+      break;
+    }
+  }
   if (rotate_image == (Image *) NULL)
     return((Image *) NULL);
+  if (rotations == 0)
+    return(rotate_image);
   /*
     Integral rotate the image.
   */
@@ -765,7 +781,7 @@
       tile_width=image->columns;
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static) shared(status) \
-        magick_number_threads(image,image,image->rows/tile_height,1)
+        magick_number_threads(image,rotate_image,image->rows/tile_height,1)
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
@@ -834,7 +850,7 @@
               {
                 PixelChannel channel = GetPixelChannelChannel(image,i);
                 PixelTrait traits = GetPixelChannelTraits(image,channel);
-                PixelTrait rotate_traits=GetPixelChannelTraits(rotate_image,
+                PixelTrait rotate_traits = GetPixelChannelTraits(rotate_image,
                   channel);
                 if ((traits == UndefinedPixelTrait) ||
                     (rotate_traits == UndefinedPixelTrait))
@@ -878,7 +894,7 @@
       */
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static) shared(status) \
-        magick_number_threads(image,image,image->rows,1)
+        magick_number_threads(image,rotate_image,image->rows,1)
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
@@ -915,7 +931,7 @@
           {
             PixelChannel channel = GetPixelChannelChannel(image,i);
             PixelTrait traits = GetPixelChannelTraits(image,channel);
-            PixelTrait rotate_traits=GetPixelChannelTraits(rotate_image,
+            PixelTrait rotate_traits = GetPixelChannelTraits(rotate_image,
               channel);
             if ((traits == UndefinedPixelTrait) ||
                 (rotate_traits == UndefinedPixelTrait))
@@ -962,7 +978,7 @@
       tile_width=image->columns;
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static) shared(status) \
-        magick_number_threads(image,image,image->rows/tile_height,1)
+        magick_number_threads(image,rotate_image,image->rows/tile_height,1)
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
@@ -1030,7 +1046,7 @@
               {
                 PixelChannel channel = GetPixelChannelChannel(image,i);
                 PixelTrait traits = GetPixelChannelTraits(image,channel);
-                PixelTrait rotate_traits=GetPixelChannelTraits(rotate_image,
+                PixelTrait rotate_traits = GetPixelChannelTraits(rotate_image,
                   channel);
                 if ((traits == UndefinedPixelTrait) ||
                     (rotate_traits == UndefinedPixelTrait))
@@ -1376,9 +1392,6 @@
 #endif
   for (x=0; x < (ssize_t) width; x++)
   {
-    ssize_t
-      step;
-
     double
       area,
       displacement;
@@ -1398,6 +1411,9 @@
     ShearDirection
       direction;
 
+    ssize_t
+      step;
+
     if (status == MagickFalse)
       continue;
     p=GetCacheViewAuthenticPixels(image_view,x_offset+x,0,1,image->rows,
diff --git a/MagickCore/shear.h b/MagickCore/shear.h
index c66311f..1f083db 100644
--- a/MagickCore/shear.h
+++ b/MagickCore/shear.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/signature-private.h b/MagickCore/signature-private.h
index df5451f..f941d47 100644
--- a/MagickCore/signature-private.h
+++ b/MagickCore/signature-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index 2315ac0..e1c337b 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -16,7 +16,7 @@
 %                              December 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -53,6 +53,7 @@
 #include "MagickCore/signature.h"
 #include "MagickCore/signature-private.h"
 #include "MagickCore/string_.h"
+#include "MagickCore/timer-private.h"
 /*
   Define declarations.
 */
@@ -138,7 +139,7 @@
   lsb_first=1;
   signature_info->lsb_first=(int) (*(char *) &lsb_first) == 1 ? MagickTrue :
     MagickFalse;
-  signature_info->timestamp=(ssize_t) time((time_t *) NULL);
+  signature_info->timestamp=(ssize_t) GetMagickTime();
   signature_info->signature=MagickCoreSignature;
   InitializeSignature(signature_info);
   return(signature_info);
@@ -475,7 +476,7 @@
   char
     *hex_signature;
 
-  double
+  float
     pixel;
 
   register const Quantum
@@ -536,9 +537,9 @@
 
         PixelChannel channel = GetPixelChannelChannel(image,i);
         PixelTrait traits = GetPixelChannelTraits(image,channel);
-        if (traits == UndefinedPixelTrait)
+        if ((traits & UpdatePixelTrait) == 0)
           continue;
-        pixel=QuantumScale*p[i];
+        pixel=(float) QuantumScale*p[i];
         if (signature_info->lsb_first == MagickFalse)
           for (j=(ssize_t) sizeof(pixel)-1; j >= 0; j--)
             *q++=(unsigned char) ((unsigned char *) &pixel)[j];
diff --git a/MagickCore/signature.h b/MagickCore/signature.h
index f3ac56d..521d4f4 100644
--- a/MagickCore/signature.h
+++ b/MagickCore/signature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/splay-tree.c b/MagickCore/splay-tree.c
index c5ebb2c..862266c 100644
--- a/MagickCore/splay-tree.c
+++ b/MagickCore/splay-tree.c
@@ -23,7 +23,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/splay-tree.h b/MagickCore/splay-tree.h
index 03f927c..9df4d04 100644
--- a/MagickCore/splay-tree.h
+++ b/MagickCore/splay-tree.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/static.c b/MagickCore/static.c
index 163be91..7f0fe25 100644
--- a/MagickCore/static.c
+++ b/MagickCore/static.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/static.h b/MagickCore/static.h
index ebd1767..7dba3f9 100644
--- a/MagickCore/static.h
+++ b/MagickCore/static.h
@@ -1,12 +1,12 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
-  
+
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
-  
+
     https://imagemagick.org/script/license.php
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -96,6 +96,7 @@
   RegisterJPEGImage(void),
   RegisterJSONImage(void),
   RegisterJP2Image(void),
+  RegisterJXLImage(void),
   RegisterLABELImage(void),
   RegisterMACImage(void),
   RegisterMAGICKImage(void),
@@ -169,6 +170,7 @@
   RegisterTIFFImage(void),
   RegisterTILEImage(void),
   RegisterTIMImage(void),
+  RegisterTIM2Image(void),
   RegisterTTFImage(void),
   RegisterTXTImage(void),
   RegisterUILImage(void),
@@ -260,6 +262,7 @@
   UnregisterJPEGImage(void),
   UnregisterJP2Image(void),
   UnregisterJSONImage(void),
+  UnregisterJXLImage(void),
   UnregisterLABELImage(void),
   UnregisterLOCALEImage(void),
   UnregisterMACImage(void),
@@ -334,6 +337,7 @@
   UnregisterTIFFImage(void),
   UnregisterTILEImage(void),
   UnregisterTIMImage(void),
+  UnregisterTIM2Image(void),
   UnregisterTTFImage(void),
   UnregisterTXTImage(void),
   UnregisterUILImage(void),
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 504999d..1ad8b2c 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -137,21 +137,30 @@
     channel[CompositePixelChannel];
 } PixelChannels;
 
-static PixelChannels **DestroyPixelThreadSet(PixelChannels **pixels)
+static PixelChannels **DestroyPixelThreadSet(const Image *images,
+  PixelChannels **pixels)
 {
   register ssize_t
     i;
 
+  size_t
+    rows;
+
   assert(pixels != (PixelChannels **) NULL);
-  for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
+  rows=MagickMax(GetImageListLength(images),
+    (size_t) GetMagickResourceLimit(ThreadResource));
+  for (i=0; i < (ssize_t) rows; i++)
     if (pixels[i] != (PixelChannels *) NULL)
       pixels[i]=(PixelChannels *) RelinquishMagickMemory(pixels[i]);
   pixels=(PixelChannels **) RelinquishMagickMemory(pixels);
   return(pixels);
 }
 
-static PixelChannels **AcquirePixelThreadSet(const Image *image)
+static PixelChannels **AcquirePixelThreadSet(const Image *images)
 {
+  const Image
+    *next;
+
   PixelChannels
     **pixels;
 
@@ -159,24 +168,27 @@
     i;
 
   size_t
-    number_threads;
+    columns,
+    rows;
 
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
-  pixels=(PixelChannels **) AcquireQuantumMemory(number_threads,
-    sizeof(*pixels));
+  rows=MagickMax(GetImageListLength(images),
+    (size_t) GetMagickResourceLimit(ThreadResource));
+  pixels=(PixelChannels **) AcquireQuantumMemory(rows,sizeof(*pixels));
   if (pixels == (PixelChannels **) NULL)
     return((PixelChannels **) NULL);
-  (void) memset(pixels,0,number_threads*sizeof(*pixels));
-  for (i=0; i < (ssize_t) number_threads; i++)
+  (void) memset(pixels,0,rows*sizeof(*pixels));
+  columns=MagickMax(GetImageListLength(images),MaxPixelChannels);
+  for (next=images; next != (Image *) NULL; next=next->next)
+    columns=MagickMax(next->columns,columns);
+  for (i=0; i < (ssize_t) rows; i++)
   {
     register ssize_t
       j;
 
-    pixels[i]=(PixelChannels *) AcquireQuantumMemory(image->columns,
-      sizeof(**pixels));
+    pixels[i]=(PixelChannels *) AcquireQuantumMemory(columns,sizeof(**pixels));
     if (pixels[i] == (PixelChannels *) NULL)
-      return(DestroyPixelThreadSet(pixels));
-    for (j=0; j < (ssize_t) image->columns; j++)
+      return(DestroyPixelThreadSet(images,pixels));
+    for (j=0; j < (ssize_t) columns; j++)
     {
       register ssize_t
         k;
@@ -229,6 +241,9 @@
   double
     result;
 
+  register ssize_t
+    i;
+
   result=0.0;
   switch (op)
   {
@@ -258,7 +273,7 @@
     }
     case AndEvaluateOperator:
     {
-      result=(double) ((size_t) pixel & (size_t) (value+0.5));
+      result=(double) ((ssize_t) pixel & (ssize_t) (value+0.5));
       break;
     }
     case CosineEvaluateOperator:
@@ -297,7 +312,9 @@
     }
     case LeftShiftEvaluateOperator:
     {
-      result=(double) ((size_t) pixel << (size_t) (value+0.5));
+      result=(double) pixel;
+      for (i=0; i < (ssize_t) value; i++)
+        result*=2.0;
       break;
     }
     case LogEvaluateOperator:
@@ -340,7 +357,7 @@
     }
     case OrEvaluateOperator:
     {
-      result=(double) ((size_t) pixel | (size_t) (value+0.5));
+      result=(double) ((ssize_t) pixel | (ssize_t) (value+0.5));
       break;
     }
     case PoissonNoiseEvaluateOperator:
@@ -351,13 +368,19 @@
     }
     case PowEvaluateOperator:
     {
-      result=(double) (QuantumRange*pow((double) (QuantumScale*pixel),(double)
-        value));
+      if (pixel < 0)
+        result=(double) -(QuantumRange*pow((double) -(QuantumScale*pixel),
+          (double) value));
+      else
+        result=(double) (QuantumRange*pow((double) (QuantumScale*pixel),
+          (double) value));
       break;
     }
     case RightShiftEvaluateOperator:
     {
-      result=(double) ((size_t) pixel >> (size_t) (value+0.5));
+      result=(double) pixel;
+      for (i=0; i < (ssize_t) value; i++)
+        result/=2.0;
       break;
     }
     case RootMeanSquareEvaluateOperator:
@@ -409,7 +432,7 @@
     }
     case XorEvaluateOperator:
     {
-      result=(double) ((size_t) pixel ^ (size_t) (value+0.5));
+      result=(double) ((ssize_t) pixel ^ (ssize_t) (value+0.5));
       break;
     }
   }
@@ -570,15 +593,15 @@
             for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
             {
               PixelChannel channel = GetPixelChannelChannel(image,i);
-              PixelTrait evaluate_traits=GetPixelChannelTraits(image,channel);
               PixelTrait traits = GetPixelChannelTraits(next,channel);
+              PixelTrait evaluate_traits = GetPixelChannelTraits(image,channel);
               if ((traits == UndefinedPixelTrait) ||
                   (evaluate_traits == UndefinedPixelTrait))
                 continue;
               if ((traits & UpdatePixelTrait) == 0)
                 continue;
               evaluate_pixel[j].channel[i]=ApplyEvaluateOperator(
-                random_info[id],GetPixelChannel(image,channel,p),op,
+                random_info[id],GetPixelChannel(next,channel,p),op,
                 evaluate_pixel[j].channel[i]);
             }
             image_view=DestroyCacheView(image_view);
@@ -675,14 +698,14 @@
             {
               PixelChannel channel = GetPixelChannelChannel(image,i);
               PixelTrait traits = GetPixelChannelTraits(next,channel);
-              PixelTrait evaluate_traits=GetPixelChannelTraits(image,channel);
+              PixelTrait evaluate_traits = GetPixelChannelTraits(image,channel);
               if ((traits == UndefinedPixelTrait) ||
                   (evaluate_traits == UndefinedPixelTrait))
                 continue;
               if ((traits & UpdatePixelTrait) == 0)
                 continue;
               evaluate_pixel[x].channel[i]=ApplyEvaluateOperator(
-                random_info[id],GetPixelChannel(image,channel,p),j == 0 ?
+                random_info[id],GetPixelChannel(next,channel,p),j == 0 ?
                 AddEvaluateOperator : op,evaluate_pixel[x].channel[i]);
             }
             p+=GetPixelChannels(next);
@@ -762,7 +785,7 @@
       }
     }
   evaluate_view=DestroyCacheView(evaluate_view);
-  evaluate_pixels=DestroyPixelThreadSet(evaluate_pixels);
+  evaluate_pixels=DestroyPixelThreadSet(images,evaluate_pixels);
   random_info=DestroyRandomInfoThreadSet(random_info);
   if (status == MagickFalse)
     image=DestroyImage(image);
@@ -2168,7 +2191,6 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-
 MagickExport Image *PolynomialImage(const Image *images,
   const size_t number_terms,const double *terms,ExceptionInfo *exception)
 {
@@ -2344,7 +2366,7 @@
       }
   }
   polynomial_view=DestroyCacheView(polynomial_view);
-  polynomial_pixels=DestroyPixelThreadSet(polynomial_pixels);
+  polynomial_pixels=DestroyPixelThreadSet(images,polynomial_pixels);
   if (status == MagickFalse)
     image=DestroyImage(image);
   return(image);
diff --git a/MagickCore/statistic.h b/MagickCore/statistic.h
index 0e537b1..25283d3 100644
--- a/MagickCore/statistic.h
+++ b/MagickCore/statistic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/stream-private.h b/MagickCore/stream-private.h
index 27b17f3..208d5d8 100644
--- a/MagickCore/stream-private.h
+++ b/MagickCore/stream-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/stream.c b/MagickCore/stream.c
index 75482dc..844885b 100644
--- a/MagickCore/stream.c
+++ b/MagickCore/stream.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/stream.h b/MagickCore/stream.h
index 3ac6ae2..2a0eed7 100644
--- a/MagickCore/stream.h
+++ b/MagickCore/stream.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/string-private.h b/MagickCore/string-private.h
index c776444..f3f65f7 100644
--- a/MagickCore/string-private.h
+++ b/MagickCore/string-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -18,6 +18,7 @@
 #ifndef MAGICKCORE_STRING_PRIVATE_H
 #define MAGICKCORE_STRING_PRIVATE_H
 
+#include <string.h>
 #include "MagickCore/locale_.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -45,6 +46,45 @@
   return(InterpretLocaleValue(string,sentinal));
 }
 
+static inline char *StringLocateSubstring(const char *haystack,
+  const char *needle)
+{
+#if defined(MAGICKCORE_HAVE_STRCASESTR)
+  return(strcasestr(haystack,needle));
+#else
+  {
+    size_t
+      length_needle,
+      length_haystack;
+
+    register ssize_t
+      i;
+
+    if (!haystack || !needle)
+      return(NULL);
+    length_needle=strlen(needle);
+    length_haystack=strlen(haystack)-length_needle+1;
+    for (i=0; i < length_haystack; i++)
+    {
+      register size_t
+        j;
+
+      for (j=0; j < length_needle; j++)
+      {
+        unsigned char c1 = haystack[i+j];
+        unsigned char c2 = needle[j];
+        if (toupper(c1) != toupper(c2))
+          goto next;
+      }
+      return((char *) haystack+i);
+      next:
+       ;
+    }
+    return((char *) NULL);
+  }
+#endif
+}
+
 static inline double StringToDoubleInterval(const char *string,
   const double interval)
 {
@@ -82,15 +122,14 @@
   return((MagickSizeType) value);
 }
 
-static inline size_t StringToSizeType(const char *string,
-  const double interval)
+static inline size_t StringToSizeType(const char *string,const double interval)
 {
   double
     value;
 
   value=SiPrefixToDoubleInterval(string,interval);
   if (value >= (double) MagickULLConstant(~0))
-    return((size_t) MagickULLConstant(~0));
+    return(~0UL);
   return((size_t) value);
 }
 
diff --git a/MagickCore/string.c b/MagickCore/string.c
index a96a35d..dac8848 100644
--- a/MagickCore/string.c
+++ b/MagickCore/string.c
@@ -17,7 +17,7 @@
 %                               August 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the license.  You may  %
@@ -411,8 +411,8 @@
 %
 %  The format of the ConcatenateMagickString method is:
 %
-%      size_t ConcatenateMagickString(char *destination,const char *source,
-%        const size_t length)
+%      size_t ConcatenateMagickString(char *magick_restrict destination,
+%        const char *magick_restrict source,const size_t length)
 %
 %  A description of each parameter follows:
 %
@@ -423,14 +423,14 @@
 %    o length: the length of the destination string.
 %
 */
-MagickExport size_t ConcatenateMagickString(char *destination,
-  const char *source,const size_t length)
+MagickExport size_t ConcatenateMagickString(char *magick_restrict destination,
+  const char *magick_restrict source,const size_t length)
 {
   register char
-    *q;
+    *magick_restrict q;
 
   register const char
-    *p;
+    *magick_restrict p;
 
   register size_t
     i;
@@ -479,8 +479,8 @@
 %
 %  The format of the ConcatenateString method is:
 %
-%      MagickBooleanType ConcatenateString(char **destination,
-%        const char *source)
+%      MagickBooleanType ConcatenateString(char **magick_restrict destination,
+%        const char *magick_restrict source)
 %
 %  A description of each parameter follows:
 %
@@ -489,8 +489,8 @@
 %    o source: A character string.
 %
 */
-MagickExport MagickBooleanType ConcatenateString(char **destination,
-  const char *source)
+MagickExport MagickBooleanType ConcatenateString(
+  char **magick_restrict destination,const char *magick_restrict source)
 {
   size_t
     destination_length,
@@ -740,8 +740,8 @@
 %
 %  The format of the CopyMagickString method is:
 %
-%      size_t CopyMagickString(const char *destination,char *source,
-%        const size_t length)
+%      size_t CopyMagickString(const char *magick_restrict destination,
+%        char *magick_restrict source,const size_t length)
 %
 %  A description of each parameter follows:
 %
@@ -752,14 +752,14 @@
 %    o length: the length of the destination string.
 %
 */
-MagickExport size_t CopyMagickString(char *destination,const char *source,
-  const size_t length)
+MagickExport size_t CopyMagickString(char *magick_restrict destination,
+  const char *magick_restrict source,const size_t length)
 {
   register char
-    *q;
+    *magick_restrict q;
 
   register const char
-    *p;
+    *magick_restrict p;
 
   register size_t
     n;
@@ -1161,86 +1161,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%  F o r m a t M a g i c k T i m e                                            %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  FormatMagickTime() returns the specified time in the Internet date/time
-%  format and the length of the timestamp.
-%
-%  The format of the FormatMagickTime method is:
-%
-%      ssize_t FormatMagickTime(const time_t time,const size_t length,
-%        char *timestamp)
-%
-%  A description of each parameter follows.
-%
-%    o time:  the time since the Epoch (00:00:00 UTC, January 1, 1970),
-%      measured in seconds.
-%
-%    o length: the maximum length of the string.
-%
-%    o timestamp:  Return the Internet date/time here.
-%
-*/
-MagickExport ssize_t FormatMagickTime(const time_t time,const size_t length,
-  char *timestamp)
-{
-  ssize_t
-    count;
-
-  struct tm
-    gm_time,
-    local_time;
-
-  time_t
-    timezone;
-
-  assert(timestamp != (char *) NULL);
-  (void) memset(&local_time,0,sizeof(local_time));
-  (void) memset(&gm_time,0,sizeof(gm_time));
-#if defined(MAGICKCORE_HAVE_LOCALTIME_R)
-  (void) localtime_r(&time,&local_time);
-#else
-  {
-    struct tm
-      *my_time;
-
-    my_time=localtime(&time);
-    if (my_time != (struct tm *) NULL)
-      (void) memcpy(&local_time,my_time,sizeof(local_time));
-  }
-#endif
-#if defined(MAGICKCORE_HAVE_GMTIME_R)
-  (void) gmtime_r(&time,&gm_time);
-#else
-  {
-    struct tm
-      *my_time;
-
-    my_time=gmtime(&time);
-    if (my_time != (struct tm *) NULL)
-      (void) memcpy(&gm_time,my_time,sizeof(gm_time));
-  }
-#endif
-  timezone=(time_t) ((local_time.tm_min-gm_time.tm_min)/60+
-    local_time.tm_hour-gm_time.tm_hour+24*((local_time.tm_year-
-    gm_time.tm_year) != 0 ? (local_time.tm_year-gm_time.tm_year) :
-    (local_time.tm_yday-gm_time.tm_yday)));
-  count=FormatLocaleString(timestamp,length,
-    "%04d-%02d-%02dT%02d:%02d:%02d%+03ld:00",local_time.tm_year+1900,
-    local_time.tm_mon+1,local_time.tm_mday,local_time.tm_hour,
-    local_time.tm_min,local_time.tm_sec,(long) timezone);
-  return(count);
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 %   G e t E n v i r o n m e n t V a l u e                                     %
 %                                                                             %
 %                                                                             %
@@ -1687,10 +1607,10 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  SanitizeString() returns an new string removes all characters except
+%  SanitizeString() returns n new string removes all characters except
 %  letters, digits and !#$%&'*+-=?^_`{|}~@.[].
 %
-%  The returned string shoud be freed using DestoryString().
+%  Free the sanitized string with DestroyString().
 %
 %  The format of the SanitizeString method is:
 %
@@ -2292,7 +2212,7 @@
 %
 %  StringToken() looks for any one of given delimiters and splits the string
 %  into two separate strings by replacing the delimiter character found with a
-%  nul character.
+%  null character.
 %
 %  The given string pointer is changed to point to the string following the
 %  delimiter character found, or NULL.  A pointer to the start of the
@@ -2378,7 +2298,7 @@
 */
 MagickExport char **StringToList(const char *text)
 {
-  return(StringToStrings(text, (size_t *) NULL));
+  return(StringToStrings(text,(size_t *) NULL));
 }
 
 /*
@@ -2392,7 +2312,7 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  StringToList() converts a text string into a list by segmenting the text
+%  StringToStrings() converts a text string into a list by segmenting the text
 %  string at each carriage return discovered.  The list is converted to HEX
 %  characters if any control characters are discovered within the text string.
 %
@@ -2486,6 +2406,9 @@
       p=text;
       for (i=0; i < (ssize_t) lines; i++)
       {
+        size_t
+          length;
+
         textlist[i]=(char *) AcquireQuantumMemory(2UL*MagickPathExtent,
           sizeof(**textlist));
         if (textlist[i] == (char *) NULL)
@@ -2493,7 +2416,8 @@
         (void) FormatLocaleString(textlist[i],MagickPathExtent,"0x%08lx: ",
           (long) (CharsPerLine*i));
         q=textlist[i]+strlen(textlist[i]);
-        for (j=1; j <= (ssize_t) MagickMin(strlen(p),CharsPerLine); j++)
+        length=strlen(p);
+        for (j=1; j <= (ssize_t) MagickMin(length,CharsPerLine); j++)
         {
           (void) FormatLocaleString(hex_string,MagickPathExtent,"%02x",*(p+j));
           (void) CopyMagickString(q,hex_string,MagickPathExtent);
@@ -2509,7 +2433,7 @@
             *q++=' ';
         }
         *q++=' ';
-        for (j=1; j <= (ssize_t) MagickMin(strlen(p),CharsPerLine); j++)
+        for (j=1; j <= (ssize_t) MagickMin(length,CharsPerLine); j++)
         {
           if (isprint((int) ((unsigned char) *p)) != 0)
             *q++=(*p);
@@ -2518,8 +2442,8 @@
           p++;
         }
         *q='\0';
-        textlist[i]=(char *) ResizeQuantumMemory(textlist[i],q-textlist[i]+1,
-          sizeof(**textlist));
+        textlist[i]=(char *) ResizeQuantumMemory(textlist[i],(size_t) (q-
+          textlist[i]+1),sizeof(**textlist));
         if (textlist[i] == (char *) NULL)
           ThrowFatalException(ResourceLimitFatalError,"UnableToConvertText");
       }
@@ -2700,7 +2624,9 @@
       (void) memmove(p+replace_extent,p+search_extent,
         strlen(p+search_extent)+1);
     (void) memcpy(p,replace,replace_extent);
-    p+=replace_extent-1;
+    p+=replace_extent;
+    if (replace_extent != 0)
+      p--;
   }
   return(status);
 }
diff --git a/MagickCore/string_.h b/MagickCore/string_.h
index 2417b73..776518e 100644
--- a/MagickCore/string_.h
+++ b/MagickCore/string_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -69,22 +69,21 @@
   CompareStringInfo(const StringInfo *,const StringInfo *);
 
 extern MagickExport MagickBooleanType
-  ConcatenateString(char **,const char *),
+  ConcatenateString(char **magick_restrict,const char *magick_restrict),
   IsStringTrue(const char *) magick_attribute((__pure__)),
   IsStringFalse(const char *) magick_attribute((__pure__)),
   SubstituteString(char **,const char *,const char *);
 
 extern MagickExport size_t
-  ConcatenateMagickString(char *,const char *,const size_t)
-    magick_attribute((__nonnull__)),
-  CopyMagickString(char *,const char *,const size_t)
-    magick_attribute((__nonnull__)),
+  ConcatenateMagickString(char *magick_restrict,const char *magick_restrict,
+    const size_t) magick_attribute((__nonnull__)),
+  CopyMagickString(char *magick_restrict,const char *magick_restrict,
+    const size_t) magick_attribute((__nonnull__)),
   GetStringInfoLength(const StringInfo *);
 
 extern MagickExport ssize_t
   FormatMagickSize(const MagickSizeType,const MagickBooleanType,const char *,
-    const size_t,char *),
-  FormatMagickTime(const time_t,const size_t,char *);
+    const size_t,char *);
 
 extern MagickExport StringInfo
   *AcquireStringInfo(const size_t),
diff --git a/MagickCore/studio.h b/MagickCore/studio.h
index 06c772f..23fc8cb 100644
--- a/MagickCore/studio.h
+++ b/MagickCore/studio.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/thread-private.h b/MagickCore/thread-private.h
index 61795f7..7317f25 100644
--- a/MagickCore/thread-private.h
+++ b/MagickCore/thread-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/thread.c b/MagickCore/thread.c
index 2e102ae..27b9df8 100644
--- a/MagickCore/thread.c
+++ b/MagickCore/thread.c
@@ -16,7 +16,7 @@
 %                               March  2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/thread_.h b/MagickCore/thread_.h
index bb37b2b..7bac0eb 100644
--- a/MagickCore/thread_.h
+++ b/MagickCore/thread_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 00b875a..5f007ec 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -17,7 +17,7 @@
 %                                 October 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -64,7 +64,6 @@
 #include "MagickCore/list.h"
 #include "MagickCore/log.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/montage.h"
@@ -116,8 +115,11 @@
 /*
   Static declarations.
 */
-static const char
-  *MinimalThresholdMap =
+#if MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
+  #include "MagickCore/threshold-map.h"
+#else
+static const char *const
+  BuiltinMap=
     "<?xml version=\"1.0\"?>"
     "<thresholds>"
     "  <threshold map=\"threshold\" alias=\"1x1\">"
@@ -134,6 +136,7 @@
     "    </levels>"
     "  </threshold>"
     "</thresholds>";
+#endif
 
 /*
   Forward declarations.
@@ -212,6 +215,8 @@
   threshold_image=CloneImage(image,0,0,MagickTrue,exception);
   if (threshold_image == (Image *) NULL)
     return((Image *) NULL);
+  if ((width == 0) || (height == 0))
+    return(threshold_image);
   status=SetImageStorageClass(threshold_image,DirectClass,exception);
   if (status == MagickFalse)
     {
@@ -366,9 +371,8 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  AutoThresholdImage() automatically selects a threshold and replaces each
-%  pixel in the image with a black pixel if the image intentsity is less than
-%  the selected threshold otherwise white.
+%  AutoThresholdImage()  automatically performs image thresholding
+%  dependent on which method you specify.
 %
 %  The format of the AutoThresholdImage method is:
 %
@@ -563,8 +567,7 @@
   return(100.0*threshold/MaxIntensity);
 }
 
-static double TriangleThreshold(const double *histogram,
-  ExceptionInfo *exception)
+static double TriangleThreshold(const double *histogram)
 {
   double
     a,
@@ -592,7 +595,6 @@
   /*
     Compute optimal threshold with triangle algorithm.
   */
-  (void) exception;
   start=0;  /* find start bin, first bin not zero count */
   for (i=0; i <= (ssize_t) MaxIntensity; i++)
     if (histogram[i] > 0.0)
@@ -740,7 +742,7 @@
     }
     case TriangleThresholdMethod:
     {
-      threshold=TriangleThreshold(histogram,exception);
+      threshold=TriangleThreshold(histogram);
       break;
     }
   }
@@ -821,7 +823,7 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
-  if (IsGrayColorspace(image->colorspace) != MagickFalse)
+  if (IsGrayColorspace(image->colorspace) == MagickFalse)
     (void) SetImageColorspace(image,sRGBColorspace,exception);
   /*
     Bilevel threshold image.
@@ -1247,10 +1249,10 @@
   ThresholdMap
     *map;
 
-  map=GetThresholdMapFile(MinimalThresholdMap,"built-in",map_id,exception);
+  map=GetThresholdMapFile(BuiltinMap,"built-in",map_id,exception);
   if (map != (ThresholdMap *) NULL)
     return(map);
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     const StringInfo
       *option;
@@ -1651,7 +1653,7 @@
 %
 %    o threshold_map: A string containing the name of the threshold dither
 %      map to use, followed by zero or more numbers representing the number
-%      of color levels tho dither between.
+%      of color levels to dither between.
 %
 %      Any level number less than 2 will be equivalent to 2, and means only
 %      binary dithering will be applied to each color channel.
@@ -1662,7 +1664,7 @@
 %      the color channels.
 %
 %      For example: "o3x3,6" will generate a 6 level posterization of the
-%      image with a ordered 3x3 diffused pixel dither being applied between
+%      image with an ordered 3x3 diffused pixel dither being applied between
 %      each level. While checker,8,8,4 will produce a 332 colormaped image
 %      with only a single checkerboard hash pattern (50% grey) between each
 %      color level, to basically double the number of color levels with
@@ -1737,14 +1739,14 @@
   p=strchr((char *) threshold_map,',');
   if ((p != (char *) NULL) && (isdigit((int) ((unsigned char) *(++p))) != 0))
     {
-      GetNextToken(p,&p,MagickPathExtent,token);
+      (void) GetNextToken(p,&p,MagickPathExtent,token);
       for (i=0; (i < MaxPixelChannels); i++)
         levels[i]=StringToDouble(token,(char **) NULL);
       for (i=0; (*p != '\0') && (i < MaxPixelChannels); i++)
       {
-        GetNextToken(p,&p,MagickPathExtent,token);
+        (void) GetNextToken(p,&p,MagickPathExtent,token);
         if (*token == ',')
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
         levels[i]=StringToDouble(token,(char **) NULL);
       }
     }
@@ -2148,13 +2150,13 @@
 %
 %    o image: the image.
 %
-%    o low_black: Define the minimum threshold value.
+%    o low_black: Define the minimum black threshold value.
 %
-%    o low_white: Define the maximum threshold value.
+%    o low_white: Define the minimum white threshold value.
 %
-%    o high_white: Define the minimum threshold value.
+%    o high_white: Define the maximum white threshold value.
 %
-%    o low_white: Define the maximum threshold value.
+%    o high_black: Define the maximum black threshold value.
 %
 %    o exception: return any errors or warnings in this structure.
 %
diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h
index 91bb1da..72bd2fc 100644
--- a/MagickCore/threshold.h
+++ b/MagickCore/threshold.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/timer-private.h b/MagickCore/timer-private.h
new file mode 100644
index 0000000..52abea6
--- /dev/null
+++ b/MagickCore/timer-private.h
@@ -0,0 +1,64 @@
+/*
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+
+    https://imagemagick.org/script/license.php
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore private timer methods.
+*/
+#ifndef MAGICKCORE_TIMER_PRIVATE_H
+#define MAGICKCORE_TIMER_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+static inline void GetMagickUTCtime(const time_t *timep,struct tm *result)
+{
+#if defined(MAGICKCORE_HAVE_GMTIME_R)
+  (void) gmtime_r(timep,result);
+#else
+  {
+    struct tm
+      *my_time;
+
+    my_time=gmtime(timep);
+    if (my_time != (struct tm *) NULL)
+      (void) memcpy(result,my_time,sizeof(*my_time));
+  }
+#endif
+}
+
+static inline void GetMagickLocaltime(const time_t *timep,struct tm *result)
+{
+#if defined(MAGICKCORE_HAVE_GMTIME_R)
+  (void) localtime_r(timep,result);
+#else
+  {
+    struct tm
+      *my_time;
+
+    my_time=localtime(timep);
+    if (my_time != (struct tm *) NULL)
+      (void) memcpy(result,my_time,sizeof(*my_time));
+  }
+#endif
+}
+
+extern MagickExport time_t
+  GetMagickTime(void);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/timer.c b/MagickCore/timer.c
index edfd68e..aadcfbb 100644
--- a/MagickCore/timer.c
+++ b/MagickCore/timer.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -43,11 +43,14 @@
 #include "MagickCore/studio.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
+#include "MagickCore/locale_.h"
 #include "MagickCore/log.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/memory-private.h"
 #include "MagickCore/nt-base-private.h"
+#include "MagickCore/string-private.h"
 #include "MagickCore/timer.h"
+#include "MagickCore/timer-private.h"
 
 /*
   Define declarations.
@@ -187,7 +190,7 @@
 */
 static double ElapsedTime(void)
 {
-#if defined(HAVE_CLOCK_GETTIME)
+#if defined(MAGICKCORE_HAVE_CLOCK_GETTIME)
 #define NANOSECONDS_PER_SECOND  1000000000.0
 #if defined(CLOCK_HIGHRES)
 #  define CLOCK_ID CLOCK_HIGHRES
@@ -225,6 +228,53 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%  F o r m a t M a g i c k T i m e                                            %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  FormatMagickTime() returns the specified time in the Internet date/time
+%  format and the length of the timestamp.
+%
+%  The format of the FormatMagickTime method is:
+%
+%      ssize_t FormatMagickTime(const time_t time,const size_t length,
+%        char *timestamp)
+%
+%  A description of each parameter follows.
+%
+%    o time:  the time since the Epoch (00:00:00 UTC, January 1, 1970),
+%      measured in seconds.
+%
+%    o length: the maximum length of the string.
+%
+%    o timestamp:  Return the Internet date/time here.
+%
+*/
+MagickExport ssize_t FormatMagickTime(const time_t time,const size_t length,
+  char *timestamp)
+{
+  ssize_t
+    count;
+
+  struct tm
+    utc_time;
+
+  assert(timestamp != (char *) NULL);
+  GetMagickUTCtime(&time,&utc_time);
+  count=FormatLocaleString(timestamp,length,
+    "%04d-%02d-%02dT%02d:%02d:%02d%+03d:00",utc_time.tm_year+1900,
+    utc_time.tm_mon+1,utc_time.tm_mday,utc_time.tm_hour,utc_time.tm_min,
+    utc_time.tm_sec,0);
+  return(count);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   G e t E l a p s e d T i m e                                               %
 %                                                                             %
 %                                                                             %
@@ -260,6 +310,41 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   G e t M a g i c k T i m e                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  GetMagickTime() returns the time as the number of seconds since the Epoch.
+%
+%  The format of the GetElapsedTime method is:
+%
+%      time_t GetElapsedTime(void)
+%
+*/
+MagickExport time_t GetMagickTime(void)
+{
+  char
+    *source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+
+  if (source_date_epoch != (char *) NULL)
+    {
+      time_t
+        epoch;
+
+      epoch=(time_t) StringToDouble(source_date_epoch,(char **) NULL);
+      if ((epoch > 0) && (epoch <= time((time_t *) NULL)))
+        return(epoch);
+    }
+  return(time((time_t *) NULL));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 +   G e t T i m e r I n f o                                                   %
 %                                                                             %
 %                                                                             %
diff --git a/MagickCore/timer.h b/MagickCore/timer.h
index f88439f..df71739 100644
--- a/MagickCore/timer.h
+++ b/MagickCore/timer.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -57,6 +57,9 @@
 extern MagickExport MagickBooleanType
   ContinueTimer(TimerInfo *);
 
+extern MagickExport ssize_t
+  FormatMagickTime(const time_t,const size_t,char *);
+
 extern MagickExport TimerInfo
   *AcquireTimerInfo(void),
   *DestroyTimerInfo(TimerInfo *);
diff --git a/MagickCore/token-private.h b/MagickCore/token-private.h
index b214bdb..bb5ec2d 100644
--- a/MagickCore/token-private.h
+++ b/MagickCore/token-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -51,16 +51,17 @@
     { 0xFE, 0xFC, 0x7ffffff, 0x4000000 },  /* 6 byte sequence */
   };
 
-static inline unsigned char *ConvertLatin1ToUTF8(const unsigned char *content)
+static inline unsigned char *ConvertLatin1ToUTF8(
+  const unsigned char *magick_restrict content)
 {
   int
     c;
 
   register const unsigned char
-    *p;
+    *magick_restrict p;
 
   register unsigned char
-    *q;
+    *magick_restrict q;
 
   size_t
     length;
@@ -92,7 +93,8 @@
   return(utf8);
 }
 
-static inline int GetNextUTFCode(const char *text,unsigned int *octets)
+static inline int GetNextUTFCode(const char *magick_restrict text,
+  unsigned int *magick_restrict octets)
 {
   int
     code;
@@ -133,7 +135,7 @@
   return(-1);
 }
 
-static inline int GetUTFCode(const char *text)
+static inline int GetUTFCode(const char *magick_restrict text)
 {
   unsigned int
     octets;
@@ -141,7 +143,7 @@
   return(GetNextUTFCode(text,&octets));
 }
 
-static inline unsigned int GetUTFOctets(const char *text)
+static inline unsigned int GetUTFOctets(const char *magick_restrict text)
 {
   unsigned int
     octets;
diff --git a/MagickCore/token.c b/MagickCore/token.c
index ca98b98..990652c 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -151,12 +151,14 @@
 %  a sequence of characters delimited by whitespace (e.g. clip-path), a
 %  sequence delimited with quotes (.e.g "Quote me"), or a sequence enclosed in
 %  parenthesis (e.g. rgb(0,0,0)).  GetNextToken() also recognizes these
-%  separator characters: ':', '=', ',', and ';'.
+%  separator characters: ':', '=', ',', and ';'.  GetNextToken() returns the
+%  length of the consumed token.
 %
 %  The format of the GetNextToken method is:
 %
-%      void GetNextToken(const char *start,const char **end,
-%        const size_t extent,char *token)
+%      size_t GetNextToken(const char *magick_restrict start,
+%        const char **magick_restrict end,const size_t extent,
+%        char *magick_restrict token)
 %
 %  A description of each parameter follows:
 %
@@ -169,17 +171,18 @@
 %    o token: copy the token to this buffer.
 %
 */
-MagickExport void GetNextToken(const char *start,const char **end,
-  const size_t extent,char *token)
+MagickExport magick_hot_spot size_t GetNextToken(
+  const char *magick_restrict start,const char **magick_restrict end,
+  const size_t extent,char *magick_restrict token)
 {
   double
     value;
 
   register char
-    *q;
+    *magick_restrict q;
 
   register const char
-    *p;
+    *magick_restrict p;
 
   register ssize_t
     i;
@@ -304,16 +307,20 @@
     }
   }
   token[i]='\0';
-  q=strrchr(token,')');
-  if ((LocaleNCompare(token,"url(#",5) == 0) && (q != (char *) NULL))
+  if (LocaleNCompare(token,"url(#",5) == 0)
     {
-      *q='\0';
-      (void) memmove(token,token+5,(size_t) (q-token-4));
+      q=strrchr(token,')');
+      if (q != (char *) NULL)
+        {
+          *q='\0';
+          (void) memmove(token,token+5,(size_t) (q-token-4));
+        }
     }
   while (isspace((int) ((unsigned char) *p)) != 0)
     p++;
   if (end != (const char **) NULL)
     *end=(const char *) p;
+  return(p-start+1);
 }
 
 /*
@@ -331,8 +338,9 @@
 %
 %  The format of the GlobExpression function is:
 %
-%      MagickBooleanType GlobExpression(const char *expression,
-%        const char *pattern,const MagickBooleanType case_insensitive)
+%      MagickBooleanType GlobExpression(const char *magick_restrict expression,
+%        const char *magick_restrict pattern,
+%        const MagickBooleanType case_insensitive)
 %
 %  A description of each parameter follows:
 %
@@ -344,15 +352,16 @@
 %      an expression.
 %
 */
-MagickExport MagickBooleanType GlobExpression(const char *expression,
-  const char *pattern,const MagickBooleanType case_insensitive)
+MagickExport MagickBooleanType GlobExpression(
+  const char *magick_restrict expression,const char *magick_restrict pattern,
+  const MagickBooleanType case_insensitive)
 {
   MagickBooleanType
     done,
     match;
 
   register const char
-    *p;
+    *magick_restrict p;
 
   /*
     Return on empty pattern or '*'.
diff --git a/MagickCore/token.h b/MagickCore/token.h
index cccc141..bd04b79 100644
--- a/MagickCore/token.h
+++ b/MagickCore/token.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -33,16 +33,17 @@
     const char *,const char *,const char *,const char,char *,int *,char *);
 
 extern MagickExport MagickBooleanType
-  GlobExpression(const char *,const char *,const MagickBooleanType)
-    magick_attribute((__pure__));
+  GlobExpression(const char *magick_restrict,const char *magick_restrict,
+    const MagickBooleanType) magick_attribute((__pure__));
+
+extern MagickExport size_t
+  GetNextToken(const char *magick_restrict,const char **magick_restrict,
+    const size_t,char *magick_restrict) magick_hot_spot;
 
 extern MagickExport TokenInfo
   *AcquireTokenInfo(void),
   *DestroyTokenInfo(TokenInfo *);
 
-extern MagickExport void
-  GetNextToken(const char *,const char **,const size_t,char *);
-
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickCore/transform-private.h b/MagickCore/transform-private.h
index 5e02549..21610f8 100644
--- a/MagickCore/transform-private.h
+++ b/MagickCore/transform-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index 315199a..14c08b3 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -594,8 +594,8 @@
       crop_image=CloneImage(image,1,1,MagickTrue,exception);
       if (crop_image == (Image *) NULL)
         return((Image *) NULL);
+      crop_image->background_color.alpha_trait=BlendPixelTrait;
       crop_image->background_color.alpha=(MagickRealType) TransparentAlpha;
-      crop_image->alpha_trait=BlendPixelTrait;
       (void) SetImageBackgroundColor(crop_image,exception);
       crop_image->page=bounding_box;
       crop_image->page.x=(-1);
@@ -765,14 +765,23 @@
 %
 */
 
-static inline double MagickRound(double x)
+static inline double ConstrainPixelOffset(double x)
+{
+  if (x < (double) -(SSIZE_MAX-512))
+    return((double) -(SSIZE_MAX-512));
+  if (x > (double) (SSIZE_MAX-512))
+    return((double) (SSIZE_MAX-512));
+  return(x);
+}
+
+static inline ssize_t PixelRoundOffset(double x)
 {
   /*
     Round the fraction to nearest integer.
   */
   if ((x-floor(x)) < (ceil(x)-x))
-    return(floor(x));
-  return(ceil(x));
+    return((ssize_t) floor(ConstrainPixelOffset(x)));
+  return((ssize_t) ceil(ConstrainPixelOffset(x)));
 }
 
 MagickExport Image *CropImageToTiles(const Image *image,
@@ -837,18 +846,18 @@
       {
         if ((flags & AspectValue) == 0)
           {
-            crop.y=(ssize_t) MagickRound((double) (offset.y-
+            crop.y=PixelRoundOffset((double) (offset.y-
               (geometry.y > 0 ? 0 : geometry.y)));
             offset.y+=delta.y;   /* increment now to find width */
-            crop.height=(size_t) MagickRound((double) (offset.y+
+            crop.height=(size_t) PixelRoundOffset((double) (offset.y+
               (geometry.y < 0 ? 0 : geometry.y)));
           }
         else
           {
-            crop.y=(ssize_t) MagickRound((double) (offset.y-
+            crop.y=PixelRoundOffset((double) (offset.y-
               (geometry.y > 0 ? geometry.y : 0)));
             offset.y+=delta.y;  /* increment now to find width */
-            crop.height=(size_t) MagickRound((double)
+            crop.height=(size_t) PixelRoundOffset((double)
               (offset.y+(geometry.y < -1 ? geometry.y : 0)));
           }
         crop.height-=crop.y;
@@ -857,18 +866,18 @@
         {
           if ((flags & AspectValue) == 0)
             {
-              crop.x=(ssize_t) MagickRound((double) (offset.x-
+              crop.x=PixelRoundOffset((double) (offset.x-
                 (geometry.x > 0 ? 0 : geometry.x)));
               offset.x+=delta.x;  /* increment now to find height */
-              crop.width=(size_t) MagickRound((double) (offset.x+
+              crop.width=(size_t) PixelRoundOffset((double) (offset.x+
                 (geometry.x < 0 ? 0 : geometry.x)));
             }
           else
             {
-              crop.x=(ssize_t) MagickRound((double) (offset.x-
+              crop.x=PixelRoundOffset((double) (offset.x-
                 (geometry.x > 0 ? geometry.x : 0)));
               offset.x+=delta.x;  /* increment now to find height */
-              crop.width=(size_t) MagickRound((double) (offset.x+
+              crop.width=(size_t) PixelRoundOffset((double) (offset.x+
                 (geometry.x < 0 ? geometry.x : 0)));
             }
           crop.width-=crop.x;
@@ -892,6 +901,8 @@
         {
           crop_image->page.width=geometry.width;
           crop_image->page.height=geometry.height;
+          crop_image->page.x-=geometry.x;
+          crop_image->page.y-=geometry.y;
         }
       return(crop_image);
     }
@@ -2406,8 +2417,8 @@
       crop_image=CloneImage(image,1,1,MagickTrue,exception);
       if (crop_image == (Image *) NULL)
         return((Image *) NULL);
+      crop_image->background_color.alpha_trait=BlendPixelTrait;
       crop_image->background_color.alpha=(MagickRealType) TransparentAlpha;
-      crop_image->alpha_trait=BlendPixelTrait;
       (void) SetImageBackgroundColor(crop_image,exception);
       crop_image->page=image->page;
       crop_image->page.x=(-1);
diff --git a/MagickCore/transform.h b/MagickCore/transform.h
index df7dc1a..9afbd46 100644
--- a/MagickCore/transform.h
+++ b/MagickCore/transform.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/type-private.h b/MagickCore/type-private.h
index b1757b7..5039b34 100644
--- a/MagickCore/type-private.h
+++ b/MagickCore/type-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/type.c b/MagickCore/type.c
index 2f78bbb..367a45e 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -109,7 +109,7 @@
   Declare type map.
 */
 static const char
-  *TypeMap = (const char *)
+  TypeMap[] =
     "<?xml version=\"1.0\"?>"
     "<typemap>"
     "  <type stealth=\"True\" name=\"fixed\" family=\"helvetica\"/>"
@@ -199,7 +199,7 @@
   cache=NewSplayTree(CompareSplayTreeString,(void *(*)(void *)) NULL,
     DestroyTypeNode);
   status=MagickTrue;
-#if !defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
+#if !MAGICKCORE_ZERO_CONFIGURATION_SUPPORT
   {
     char
       *font_path,
@@ -327,8 +327,8 @@
   typedef struct _Fontmap
   {
     const char
-      *name,
-      *substitute;
+      name[17],
+      substitute[10];
   } Fontmap;
 
   const TypeInfo
@@ -352,8 +352,7 @@
       { "news gothic", "helvetica" },
       { "system", "courier" },
       { "terminal", "courier" },
-      { "wingdings", "symbol" },
-      { NULL, NULL }
+      { "wingdings", "symbol" }
     };
 
   size_t
@@ -475,7 +474,7 @@
   /*
     Check for table-based substitution match.
   */
-  for (i=0; fontmap[i].name != (char *) NULL; i++)
+  for (i=0; i < (ssize_t) (sizeof(fontmap)/sizeof(fontmap[0])); i++)
   {
     if (family == (const char *) NULL)
       {
@@ -1109,7 +1108,7 @@
     /*
       Interpret XML.
     */
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     if (*token == '\0')
       break;
     (void) CopyMagickString(keyword,token,MagickPathExtent);
@@ -1119,7 +1118,7 @@
           Doctype element.
         */
         while ((LocaleNCompare(q,"]>",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleNCompare(keyword,"<!--",4) == 0)
@@ -1128,7 +1127,7 @@
           Comment element.
         */
         while ((LocaleNCompare(q,"->",2) != 0) && (*q != '\0'))
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
         continue;
       }
     if (LocaleCompare(keyword,"<include") == 0)
@@ -1139,10 +1138,10 @@
         while (((*token != '/') && (*(token+1) != '>')) && (*q != '\0'))
         {
           (void) CopyMagickString(keyword,token,MagickPathExtent);
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (*token != '=')
             continue;
-          GetNextToken(q,&q,extent,token);
+          (void) GetNextToken(q,&q,extent,token);
           if (LocaleCompare(keyword,"file") == 0)
             {
               if (depth > MagickMaxRecursionDepth)
@@ -1203,11 +1202,11 @@
         type_info=(TypeInfo *) NULL;
         continue;
       }
-    GetNextToken(q,(const char **) NULL,extent,token);
+    (void) GetNextToken(q,(const char **) NULL,extent,token);
     if (*token != '=')
       continue;
-    GetNextToken(q,&q,extent,token);
-    GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
+    (void) GetNextToken(q,&q,extent,token);
     switch (*keyword)
     {
       case 'E':
diff --git a/MagickCore/type.h b/MagickCore/type.h
index 9d9357b..b1ee791 100644
--- a/MagickCore/type.h
+++ b/MagickCore/type.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
index c5b54fe..33f66c0 100644
--- a/MagickCore/utility-private.h
+++ b/MagickCore/utility-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -68,7 +68,7 @@
     *wideChar;
 
   count=MultiByteToWideChar(CP_UTF8,0,utf8,-1,NULL,0);
-  if (count > MAX_PATH)
+  if ((count > MAX_PATH) && (NTLongPathsEnabled() == MagickFalse))
     {
       char
         buffer[MagickPathExtent];
@@ -86,7 +86,7 @@
       if (count != 0)
         count=GetShortPathNameW(longPath,shortPath,MAX_PATH);
       longPath=(wchar_t *) RelinquishMagickMemory(longPath);
-      if (count < 5)
+      if ((count < 5) || (count >= MAX_PATH))
         return((wchar_t *) NULL);
       wideChar=(wchar_t *) AcquireQuantumMemory(count-3,sizeof(*wideChar));
       wcscpy(wideChar,shortPath+4);
@@ -127,7 +127,7 @@
 
 static inline FILE *fopen_utf8(const char *path,const char *mode)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(fopen(path,mode));
 #else
    FILE
@@ -155,7 +155,7 @@
 
 static inline void getcwd_utf8(char *path,size_t extent)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   char
     *directory;
 
@@ -177,7 +177,7 @@
 
 static inline int open_utf8(const char *path,int flags,mode_t mode)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(open(path,flags,mode));
 #else
    int
@@ -197,7 +197,7 @@
 
 static inline FILE *popen_utf8(const char *command,const char *type)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(popen(command,type));
 #else
    FILE
@@ -225,7 +225,7 @@
 
 static inline int remove_utf8(const char *path)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(unlink(path));
 #else
    int
@@ -245,7 +245,7 @@
 
 static inline int rename_utf8(const char *source,const char *destination)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(rename(source,destination));
 #else
    int
@@ -273,7 +273,7 @@
 
 static inline int stat_utf8(const char *path,struct stat *attributes)
 {
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__CYGWIN__)
   return(stat(path,attributes));
 #else
    int
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index 539154f..d123f61 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -647,6 +647,9 @@
     {
 #if defined(MAGICKCORE_POSIX_SUPPORT) && !defined(__OS2__)
       char
+#if defined(MAGICKCORE_HAVE_GETPWNAM_R)
+        buffer[MagickPathExtent],
+#endif
         username[MagickPathExtent];
 
       register char
@@ -662,7 +665,16 @@
       p=strchr(username,'/');
       if (p != (char *) NULL)
         *p='\0';
+#if !defined(MAGICKCORE_HAVE_GETPWNAM_R)
       entry=getpwnam(username);
+#else
+      struct passwd
+        pwd;
+
+      entry=(struct passwd *) NULL;
+      if (getpwnam_r(username,&pwd,buffer,sizeof(buffer),&entry) < 0)
+        return;
+#endif
       if (entry == (struct passwd *) NULL)
         return;
       (void) CopyMagickString(expand_path,entry->pw_dir,MagickPathExtent);
@@ -813,7 +825,7 @@
       continue;
     if ((IsGlob(filename) == MagickFalse) && (*option != '@'))
       continue;
-    if (*option != '@')
+    if ((*option != '@') && (IsPathAccessible(option) == MagickFalse))
       {
         /*
           Generate file list from wildcard filename (e.g. *.jpg).
@@ -1238,23 +1250,25 @@
   if (type != SubcanonicalPath)
     {
       p=component+strlen(component)-1;
-      q=strrchr(component,'[');
-      if ((strlen(component) > 2) && (*p == ']') && (q != (char *) NULL) &&
-          ((q == component) || (*(q-1) != ']')) &&
-          (IsPathAccessible(path) == MagickFalse))
+      if ((strlen(component) > 2) && (*p == ']'))
         {
-          /*
-            Look for scene specification (e.g. img0001.pcd[4]).
-          */
-          *p='\0';
-          if ((IsSceneGeometry(q+1,MagickFalse) == MagickFalse) &&
-              (IsGeometry(q+1) == MagickFalse))
-            *p=']';
-          else
+          q=strrchr(component,'[');
+          if ((q != (char *) NULL) && ((q == component) || (*(q-1) != ']')) &&
+              (IsPathAccessible(path) == MagickFalse))
             {
-              subimage_length=(size_t) (p-q);
-              subimage_offset=(size_t) (q-component+1);
-              *q='\0';
+              /*
+                Look for scene specification (e.g. img0001.pcd[4]).
+              */
+              *p='\0';
+              if ((IsSceneGeometry(q+1,MagickFalse) == MagickFalse) &&
+                  (IsGeometry(q+1) == MagickFalse))
+                *p=']';
+              else
+                {
+                  subimage_length=(size_t) (p-q);
+                  subimage_offset=(size_t) (q-component+1);
+                  *q='\0';
+                }
             }
         }
     }
@@ -1738,7 +1752,15 @@
 #elif defined(__BEOS__)
   snooze(1000*milliseconds);
 #else
-# error "Time delay method not defined."
+  {
+    clock_t
+      time_end;
+
+    time_end=clock()+milliseconds*CLOCKS_PER_SEC/1000;
+    while (clock() < time_end)
+    {
+    }
+  }
 #endif
 }
 
diff --git a/MagickCore/utility.h b/MagickCore/utility.h
index 8503d8e..27f2c73 100644
--- a/MagickCore/utility.h
+++ b/MagickCore/utility.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/version-private.h b/MagickCore/version-private.h
index e22c9a6..1e0a96f 100644
--- a/MagickCore/version-private.h
+++ b/MagickCore/version-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/version.c b/MagickCore/version.c
index 9fa8b36..773a4fd 100644
--- a/MagickCore/version.c
+++ b/MagickCore/version.c
@@ -17,7 +17,7 @@
 %                               September 2002                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -154,6 +154,9 @@
 #if defined(MAGICKCORE_JPEG_DELEGATE)
   "jpeg "
 #endif
+#if defined(MAGICKCORE_JXL_DELEGATE)
+  "jxl "
+#endif
 #if defined(MAGICKCORE_LCMS_DELEGATE)
   "lcms "
 #endif
@@ -179,6 +182,9 @@
     defined(MAGICKCORE_WINDOWS_SUPPORT)
   "ps "
 #endif
+#if defined(MAGICKCORE_RAQM_DELEGATE)
+  "raqm "
+#endif
 #if defined(MAGICKCORE_RAW_R_DELEGATE)
   "raw "
 #endif
@@ -248,11 +254,33 @@
   "OpenCL "
 #endif
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
-  "OpenMP "
+  "OpenMP"
+#if _OPENMP == 199810
+  "(1.0) "
+#elif _OPENMP == 200203
+  "(2.0) "
+#elif _OPENMP == 200505
+  "(2.5) "
+#elif _OPENMP == 200805
+  "(3.0) "
+#elif _OPENMP == 201107
+  "(3.1) "
+#elif _OPENMP == 201307
+  "(4.0) "
+#elif _OPENMP == 201511
+  "(4.5) "
+#elif _OPENMP == 201811
+  "(5.0) "
+#else
+  " "
+#endif
 #endif
 #if defined(ZERO_CONFIGURATION_SUPPORT)
   "Zero-configuration "
 #endif
+#if (MAGICKCORE_QUANTUM_DEPTH == 64)
+  "Q64 (experimental, not for production) "
+#endif
   ;
 }
 
diff --git a/MagickCore/version.h.in b/MagickCore/version.h.in
index 5e54a08..dc45923 100644
--- a/MagickCore/version.h.in
+++ b/MagickCore/version.h.in
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
   obtain a copy of the License at
   
-    http://imagemagick.org/script/license.php
+    https://imagemagick.org/script/license.php
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,7 +26,7 @@
   Define declarations.
 */
 #define MagickPackageName "@PACKAGE_NAME@"
-#define MagickCopyright  "© 1999-2019 ImageMagick Studio LLC"
+#define MagickCopyright  "© 1999-2020 ImageMagick Studio LLC"
 #define MagickLibVersion  @PACKAGE_LIB_VERSION@
 #define MagickLibVersionText  "@MAGICK_LIB_VERSION_TEXT@"
 #define MagickLibVersionNumber  @MAGICK_LIB_VERSION_NUMBER@
diff --git a/MagickCore/vision.c b/MagickCore/vision.c
index 740e377..3d0085b 100644
--- a/MagickCore/vision.c
+++ b/MagickCore/vision.c
@@ -17,7 +17,7 @@
 %                               September 2014                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -185,8 +185,7 @@
   assert(exception->signature == MagickCoreSignature);
   if (objects != (CCObjectInfo **) NULL)
     *objects=(CCObjectInfo *) NULL;
-  component_image=CloneImage(image,0,0,MagickTrue,
-    exception);
+  component_image=CloneImage(image,0,0,MagickTrue,exception);
   if (component_image == (Image *) NULL)
     return((Image *) NULL);
   component_image->depth=MAGICKCORE_QUANTUM_DEPTH;
@@ -418,9 +417,6 @@
         MagickBooleanType
           proceed;
 
-#if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp atomic
-#endif
         progress++;
         proceed=SetImageProgress(image,ConnectedComponentsImageTag,progress,
           image->rows);
diff --git a/MagickCore/vision.h b/MagickCore/vision.h
index a36a46d..2b1faff 100644
--- a/MagickCore/vision.h
+++ b/MagickCore/vision.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
new file mode 100644
index 0000000..223110b
--- /dev/null
+++ b/MagickCore/visual-effects.c
@@ -0,0 +1,3762 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%                                 FFFFF  X   X                                %
+%                                 F       X X                                 %
+%                                 FFF      X                                  %
+%                                 F       X X                                 %
+%                                 F      X   X                                %
+%                                                                             %
+%                                                                             %
+%                   MagickCore Image Special Effects Methods                  %
+%                                                                             %
+%                               Software Design                               %
+%                                    Cristy                                   %
+%                                 October 1996                                %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  dedicated to making software imaging solutions freely available.           %
+%                                                                             %
+%  You may not use this file except in compliance with the License.  You may  %
+%  obtain a copy of the License at                                            %
+%                                                                             %
+%    https://imagemagick.org/script/license.php                               %
+%                                                                             %
+%  Unless required by applicable law or agreed to in writing, software        %
+%  distributed under the License is distributed on an "AS IS" BASIS,          %
+%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
+%  See the License for the specific language governing permissions and        %
+%  limitations under the License.                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+*/
+
+/*
+  Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/accelerate-private.h"
+#include "MagickCore/annotate.h"
+#include "MagickCore/artifact.h"
+#include "MagickCore/attribute.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/cache-view.h"
+#include "MagickCore/channel.h"
+#include "MagickCore/color.h"
+#include "MagickCore/color-private.h"
+#include "MagickCore/colorspace-private.h"
+#include "MagickCore/composite.h"
+#include "MagickCore/decorate.h"
+#include "MagickCore/distort.h"
+#include "MagickCore/draw.h"
+#include "MagickCore/effect.h"
+#include "MagickCore/enhance.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/gem.h"
+#include "MagickCore/gem-private.h"
+#include "MagickCore/geometry.h"
+#include "MagickCore/layer.h"
+#include "MagickCore/list.h"
+#include "MagickCore/log.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/memory-private.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/option.h"
+#include "MagickCore/pixel.h"
+#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/property.h"
+#include "MagickCore/quantum.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/random_.h"
+#include "MagickCore/random-private.h"
+#include "MagickCore/resample.h"
+#include "MagickCore/resample-private.h"
+#include "MagickCore/resize.h"
+#include "MagickCore/resource_.h"
+#include "MagickCore/splay-tree.h"
+#include "MagickCore/statistic.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/string-private.h"
+#include "MagickCore/thread-private.h"
+#include "MagickCore/threshold.h"
+#include "MagickCore/transform.h"
+#include "MagickCore/transform-private.h"
+#include "MagickCore/utility.h"
+#include "MagickCore/visual-effects.h"
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     A d d N o i s e I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  AddNoiseImage() adds random noise to the image.
+%
+%  The format of the AddNoiseImage method is:
+%
+%      Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
+%        const double attenuate,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o channel: the channel type.
+%
+%    o noise_type:  The type of noise: Uniform, Gaussian, Multiplicative,
+%      Impulse, Laplacian, or Poisson.
+%
+%    o attenuate:  attenuate the random distribution.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *AddNoiseImage(const Image *image,const NoiseType noise_type,
+  const double attenuate,ExceptionInfo *exception)
+{
+#define AddNoiseImageTag  "AddNoise/Image"
+
+  CacheView
+    *image_view,
+    *noise_view;
+
+  Image
+    *noise_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  RandomInfo
+    **magick_restrict random_info;
+
+  ssize_t
+    y;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  unsigned long
+    key;
+#endif
+
+  /*
+    Initialize noise image attributes.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+#if defined(MAGICKCORE_OPENCL_SUPPORT)
+  noise_image=AccelerateAddNoiseImage(image,noise_type,attenuate,exception);
+  if (noise_image != (Image *) NULL)
+    return(noise_image);
+#endif
+  noise_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (noise_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(noise_image,DirectClass,exception) == MagickFalse)
+    {
+      noise_image=DestroyImage(noise_image);
+      return((Image *) NULL);
+    }
+  /*
+    Add noise in each row.
+  */
+  status=MagickTrue;
+  progress=0;
+  random_info=AcquireRandomInfoThreadSet();
+  image_view=AcquireVirtualCacheView(image,exception);
+  noise_view=AcquireAuthenticCacheView(noise_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  key=GetRandomSecretKey(random_info[0]);
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,noise_image,image->rows,key == ~0UL)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    const int
+      id = GetOpenMPThreadId();
+
+    MagickBooleanType
+      sync;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    q=QueueCacheViewAuthenticPixels(noise_view,0,y,noise_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      register ssize_t
+        i;
+
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        PixelTrait noise_traits=GetPixelChannelTraits(noise_image,channel);
+        if ((traits == UndefinedPixelTrait) ||
+            (noise_traits == UndefinedPixelTrait))
+          continue;
+        if ((noise_traits & CopyPixelTrait) != 0)
+          {
+            SetPixelChannel(noise_image,channel,p[i],q);
+            continue;
+          }
+        SetPixelChannel(noise_image,channel,ClampToQuantum(
+          GenerateDifferentialNoise(random_info[id],p[i],noise_type,attenuate)),
+          q);
+      }
+      p+=GetPixelChannels(image);
+      q+=GetPixelChannels(noise_image);
+    }
+    sync=SyncCacheViewAuthenticPixels(noise_view,exception);
+    if (sync == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,AddNoiseImageTag,progress,image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  noise_view=DestroyCacheView(noise_view);
+  image_view=DestroyCacheView(image_view);
+  random_info=DestroyRandomInfoThreadSet(random_info);
+  if (status == MagickFalse)
+    noise_image=DestroyImage(noise_image);
+  return(noise_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     B l u e S h i f t I m a g e                                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  BlueShiftImage() mutes the colors of the image to simulate a scene at
+%  nighttime in the moonlight.
+%
+%  The format of the BlueShiftImage method is:
+%
+%      Image *BlueShiftImage(const Image *image,const double factor,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o factor: the shift factor.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *BlueShiftImage(const Image *image,const double factor,
+  ExceptionInfo *exception)
+{
+#define BlueShiftImageTag  "BlueShift/Image"
+
+  CacheView
+    *image_view,
+    *shift_view;
+
+  Image
+    *shift_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  ssize_t
+    y;
+
+  /*
+    Allocate blue shift image.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  shift_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (shift_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(shift_image,DirectClass,exception) == MagickFalse)
+    {
+      shift_image=DestroyImage(shift_image);
+      return((Image *) NULL);
+    }
+  /*
+    Blue-shift DirectClass image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireVirtualCacheView(image,exception);
+  shift_view=AcquireAuthenticCacheView(shift_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,shift_image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    MagickBooleanType
+      sync;
+
+    PixelInfo
+      pixel;
+
+    Quantum
+      quantum;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    q=QueueCacheViewAuthenticPixels(shift_view,0,y,shift_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      quantum=GetPixelRed(image,p);
+      if (GetPixelGreen(image,p) < quantum)
+        quantum=GetPixelGreen(image,p);
+      if (GetPixelBlue(image,p) < quantum)
+        quantum=GetPixelBlue(image,p);
+      pixel.red=0.5*(GetPixelRed(image,p)+factor*quantum);
+      pixel.green=0.5*(GetPixelGreen(image,p)+factor*quantum);
+      pixel.blue=0.5*(GetPixelBlue(image,p)+factor*quantum);
+      quantum=GetPixelRed(image,p);
+      if (GetPixelGreen(image,p) > quantum)
+        quantum=GetPixelGreen(image,p);
+      if (GetPixelBlue(image,p) > quantum)
+        quantum=GetPixelBlue(image,p);
+      pixel.red=0.5*(pixel.red+factor*quantum);
+      pixel.green=0.5*(pixel.green+factor*quantum);
+      pixel.blue=0.5*(pixel.blue+factor*quantum);
+      SetPixelRed(shift_image,ClampToQuantum(pixel.red),q);
+      SetPixelGreen(shift_image,ClampToQuantum(pixel.green),q);
+      SetPixelBlue(shift_image,ClampToQuantum(pixel.blue),q);
+      p+=GetPixelChannels(image);
+      q+=GetPixelChannels(shift_image);
+    }
+    sync=SyncCacheViewAuthenticPixels(shift_view,exception);
+    if (sync == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,BlueShiftImageTag,progress,image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  image_view=DestroyCacheView(image_view);
+  shift_view=DestroyCacheView(shift_view);
+  if (status == MagickFalse)
+    shift_image=DestroyImage(shift_image);
+  return(shift_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     C h a r c o a l I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  CharcoalImage() creates a new image that is a copy of an existing one with
+%  the edge highlighted.  It allocates the memory necessary for the new Image
+%  structure and returns a pointer to the new image.
+%
+%  The format of the CharcoalImage method is:
+%
+%      Image *CharcoalImage(const Image *image,const double radius,
+%        const double sigma,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o radius: the radius of the pixel neighborhood.
+%
+%    o sigma: the standard deviation of the Gaussian, in pixels.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *CharcoalImage(const Image *image,const double radius,
+  const double sigma,ExceptionInfo *exception)
+{
+  Image
+    *charcoal_image,
+    *edge_image;
+
+  MagickBooleanType
+    status;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  edge_image=EdgeImage(image,radius,exception);
+  if (edge_image == (Image *) NULL)
+    return((Image *) NULL);
+  charcoal_image=(Image *) NULL;
+  status=ClampImage(edge_image,exception);
+  if (status != MagickFalse)
+    charcoal_image=BlurImage(edge_image,radius,sigma,exception);
+  edge_image=DestroyImage(edge_image);
+  if (charcoal_image == (Image *) NULL)
+    return((Image *) NULL);
+  status=NormalizeImage(charcoal_image,exception);
+  if (status != MagickFalse)
+    status=NegateImage(charcoal_image,MagickFalse,exception);
+  if (status != MagickFalse)
+    status=GrayscaleImage(charcoal_image,image->intensity,exception);
+  if (status == MagickFalse)
+    charcoal_image=DestroyImage(charcoal_image);
+  return(charcoal_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     C o l o r i z e I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ColorizeImage() blends the fill color with each pixel in the image.
+%  A percentage blend is specified with opacity.  Control the application
+%  of different color components by specifying a different percentage for
+%  each component (e.g. 90/100/10 is 90% red, 100% green, and 10% blue).
+%
+%  The format of the ColorizeImage method is:
+%
+%      Image *ColorizeImage(const Image *image,const char *blend,
+%        const PixelInfo *colorize,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o blend:  A character string indicating the level of blending as a
+%      percentage.
+%
+%    o colorize: A color value.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *ColorizeImage(const Image *image,const char *blend,
+  const PixelInfo *colorize,ExceptionInfo *exception)
+{
+#define ColorizeImageTag  "Colorize/Image"
+#define Colorize(pixel,blend_percentage,colorize)  \
+  (((pixel)*(100.0-(blend_percentage))+(colorize)*(blend_percentage))/100.0)
+
+  CacheView
+    *image_view;
+
+  GeometryInfo
+    geometry_info;
+
+  Image
+    *colorize_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  MagickStatusType
+    flags;
+
+  PixelInfo
+    blend_percentage;
+
+  ssize_t
+    y;
+
+  /*
+    Allocate colorized image.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  colorize_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (colorize_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(colorize_image,DirectClass,exception) == MagickFalse)
+    {
+      colorize_image=DestroyImage(colorize_image);
+      return((Image *) NULL);
+    }
+  if ((IsGrayColorspace(colorize_image->colorspace) != MagickFalse) ||
+      (IsPixelInfoGray(colorize) != MagickFalse))
+    (void) SetImageColorspace(colorize_image,sRGBColorspace,exception);
+  if ((colorize_image->alpha_trait == UndefinedPixelTrait) &&
+      (colorize->alpha_trait != UndefinedPixelTrait))
+    (void) SetImageAlpha(colorize_image,OpaqueAlpha,exception);
+  if (blend == (const char *) NULL)
+    return(colorize_image);
+  GetPixelInfo(colorize_image,&blend_percentage);
+  flags=ParseGeometry(blend,&geometry_info);
+  blend_percentage.red=geometry_info.rho;
+  blend_percentage.green=geometry_info.rho;
+  blend_percentage.blue=geometry_info.rho;
+  blend_percentage.black=geometry_info.rho;
+  blend_percentage.alpha=(MagickRealType) TransparentAlpha;
+  if ((flags & SigmaValue) != 0)
+    blend_percentage.green=geometry_info.sigma;
+  if ((flags & XiValue) != 0)
+    blend_percentage.blue=geometry_info.xi;
+  if ((flags & PsiValue) != 0)
+    blend_percentage.alpha=geometry_info.psi;
+  if (blend_percentage.colorspace == CMYKColorspace)
+    {
+      if ((flags & PsiValue) != 0)
+        blend_percentage.black=geometry_info.psi;
+      if ((flags & ChiValue) != 0)
+        blend_percentage.alpha=geometry_info.chi;
+    }
+  /*
+    Colorize DirectClass image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireVirtualCacheView(colorize_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(colorize_image,colorize_image,colorize_image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) colorize_image->rows; y++)
+  {
+    MagickBooleanType
+      sync;
+
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    q=GetCacheViewAuthenticPixels(image_view,0,y,colorize_image->columns,1,
+      exception);
+    if (q == (Quantum *) NULL)
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) colorize_image->columns; x++)
+    {
+      register ssize_t
+        i;
+
+      for (i=0; i < (ssize_t) GetPixelChannels(colorize_image); i++)
+      {
+        PixelTrait traits = GetPixelChannelTraits(colorize_image,
+          (PixelChannel) i);
+        if (traits == UndefinedPixelTrait)
+          continue;
+        if ((traits & CopyPixelTrait) != 0)
+          continue;
+        SetPixelChannel(colorize_image,(PixelChannel) i,ClampToQuantum(
+          Colorize(q[i],GetPixelInfoChannel(&blend_percentage,(PixelChannel) i),
+          GetPixelInfoChannel(colorize,(PixelChannel) i))),q);
+      }
+      q+=GetPixelChannels(colorize_image);
+    }
+    sync=SyncCacheViewAuthenticPixels(image_view,exception);
+    if (sync == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,ColorizeImageTag,progress,
+          colorize_image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  image_view=DestroyCacheView(image_view);
+  if (status == MagickFalse)
+    colorize_image=DestroyImage(colorize_image);
+  return(colorize_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     C o l o r M a t r i x I m a g e                                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ColorMatrixImage() applies color transformation to an image. This method
+%  permits saturation changes, hue rotation, luminance to alpha, and various
+%  other effects.  Although variable-sized transformation matrices can be used,
+%  typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA
+%  (or RGBA with offsets).  The matrix is similar to those used by Adobe Flash
+%  except offsets are in column 6 rather than 5 (in support of CMYKA images)
+%  and offsets are normalized (divide Flash offset by 255).
+%
+%  The format of the ColorMatrixImage method is:
+%
+%      Image *ColorMatrixImage(const Image *image,
+%        const KernelInfo *color_matrix,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o color_matrix:  the color matrix.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+/* FUTURE: modify to make use of a MagickMatrix Mutliply function
+   That should be provided in "matrix.c"
+   (ASIDE: actually distorts should do this too but currently doesn't)
+*/
+
+MagickExport Image *ColorMatrixImage(const Image *image,
+  const KernelInfo *color_matrix,ExceptionInfo *exception)
+{
+#define ColorMatrixImageTag  "ColorMatrix/Image"
+
+  CacheView
+    *color_view,
+    *image_view;
+
+  double
+    ColorMatrix[6][6] =
+    {
+      { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
+      { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
+      { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
+      { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
+      { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
+      { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }
+    };
+
+  Image
+    *color_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  register ssize_t
+    i;
+
+  ssize_t
+    u,
+    v,
+    y;
+
+  /*
+    Map given color_matrix, into a 6x6 matrix   RGBKA and a constant
+  */
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  i=0;
+  for (v=0; v < (ssize_t) color_matrix->height; v++)
+    for (u=0; u < (ssize_t) color_matrix->width; u++)
+    {
+      if ((v < 6) && (u < 6))
+        ColorMatrix[v][u]=color_matrix->values[i];
+      i++;
+    }
+  /*
+    Initialize color image.
+  */
+  color_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (color_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(color_image,DirectClass,exception) == MagickFalse)
+    {
+      color_image=DestroyImage(color_image);
+      return((Image *) NULL);
+    }
+  if (image->debug != MagickFalse)
+    {
+      char
+        format[MagickPathExtent],
+        *message;
+
+      (void) LogMagickEvent(TransformEvent,GetMagickModule(),
+        "  ColorMatrix image with color matrix:");
+      message=AcquireString("");
+      for (v=0; v < 6; v++)
+      {
+        *message='\0';
+        (void) FormatLocaleString(format,MagickPathExtent,"%.20g: ",(double) v);
+        (void) ConcatenateString(&message,format);
+        for (u=0; u < 6; u++)
+        {
+          (void) FormatLocaleString(format,MagickPathExtent,"%+f ",
+            ColorMatrix[v][u]);
+          (void) ConcatenateString(&message,format);
+        }
+        (void) LogMagickEvent(TransformEvent,GetMagickModule(),"%s",message);
+      }
+      message=DestroyString(message);
+    }
+  /*
+    Apply the ColorMatrix to image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireVirtualCacheView(image,exception);
+  color_view=AcquireAuthenticCacheView(color_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,color_image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    PixelInfo
+      pixel;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    q=GetCacheViewAuthenticPixels(color_view,0,y,color_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    GetPixelInfo(image,&pixel);
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      register ssize_t
+        v;
+
+      size_t
+        height;
+
+      GetPixelInfoPixel(image,p,&pixel);
+      height=color_matrix->height > 6 ? 6UL : color_matrix->height;
+      for (v=0; v < (ssize_t) height; v++)
+      {
+        double
+          sum;
+
+        sum=ColorMatrix[v][0]*GetPixelRed(image,p)+ColorMatrix[v][1]*
+          GetPixelGreen(image,p)+ColorMatrix[v][2]*GetPixelBlue(image,p);
+        if (image->colorspace == CMYKColorspace)
+          sum+=ColorMatrix[v][3]*GetPixelBlack(image,p);
+        if (image->alpha_trait != UndefinedPixelTrait)
+          sum+=ColorMatrix[v][4]*GetPixelAlpha(image,p);
+        sum+=QuantumRange*ColorMatrix[v][5];
+        switch (v)
+        {
+          case 0: pixel.red=sum; break;
+          case 1: pixel.green=sum; break;
+          case 2: pixel.blue=sum; break;
+          case 3: pixel.black=sum; break;
+          case 4: pixel.alpha=sum; break;
+          default: break;
+        }
+      }
+      SetPixelViaPixelInfo(color_image,&pixel,q);
+      p+=GetPixelChannels(image);
+      q+=GetPixelChannels(color_image);
+    }
+    if (SyncCacheViewAuthenticPixels(color_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,ColorMatrixImageTag,progress,
+          image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  color_view=DestroyCacheView(color_view);
+  image_view=DestroyCacheView(image_view);
+  if (status == MagickFalse)
+    color_image=DestroyImage(color_image);
+  return(color_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     I m p l o d e I m a g e                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ImplodeImage() creates a new image that is a copy of an existing
+%  one with the image pixels "implode" by the specified percentage.  It
+%  allocates the memory necessary for the new Image structure and returns a
+%  pointer to the new image.
+%
+%  The format of the ImplodeImage method is:
+%
+%      Image *ImplodeImage(const Image *image,const double amount,
+%        const PixelInterpolateMethod method,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o implode_image: Method ImplodeImage returns a pointer to the image
+%      after it is implode.  A null image is returned if there is a memory
+%      shortage.
+%
+%    o image: the image.
+%
+%    o amount:  Define the extent of the implosion.
+%
+%    o method: the pixel interpolation method.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *ImplodeImage(const Image *image,const double amount,
+  const PixelInterpolateMethod method,ExceptionInfo *exception)
+{
+#define ImplodeImageTag  "Implode/Image"
+
+  CacheView
+    *canvas_view,
+    *implode_view,
+    *interpolate_view;
+
+  double
+    radius;
+
+  Image
+    *canvas_image,
+    *implode_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  PointInfo
+    center,
+    scale;
+
+  ssize_t
+    y;
+
+  /*
+    Initialize implode image attributes.
+  */
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (canvas_image == (Image *) NULL)
+    return((Image *) NULL);
+  if ((canvas_image->alpha_trait == UndefinedPixelTrait) &&
+      (canvas_image->background_color.alpha != OpaqueAlpha))
+    (void) SetImageAlphaChannel(canvas_image,OpaqueAlphaChannel,exception);
+  implode_image=CloneImage(canvas_image,0,0,MagickTrue,exception);
+  if (implode_image == (Image *) NULL)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      return((Image *) NULL);
+    }
+  if (SetImageStorageClass(implode_image,DirectClass,exception) == MagickFalse)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      implode_image=DestroyImage(implode_image);
+      return((Image *) NULL);
+    }
+  /*
+    Compute scaling factor.
+  */
+  scale.x=1.0;
+  scale.y=1.0;
+  center.x=0.5*canvas_image->columns;
+  center.y=0.5*canvas_image->rows;
+  radius=center.x;
+  if (canvas_image->columns > canvas_image->rows)
+    scale.y=(double) canvas_image->columns/(double) canvas_image->rows;
+  else
+    if (canvas_image->columns < canvas_image->rows)
+      {
+        scale.x=(double) canvas_image->rows/(double) canvas_image->columns;
+        radius=center.y;
+      }
+  /*
+    Implode image.
+  */
+  status=MagickTrue;
+  progress=0;
+  canvas_view=AcquireVirtualCacheView(canvas_image,exception);
+  interpolate_view=AcquireVirtualCacheView(canvas_image,exception);
+  implode_view=AcquireAuthenticCacheView(implode_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(canvas_image,implode_image,canvas_image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) canvas_image->rows; y++)
+  {
+    double
+      distance;
+
+    PointInfo
+      delta;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(canvas_view,0,y,canvas_image->columns,1,
+      exception);
+    q=QueueCacheViewAuthenticPixels(implode_view,0,y,implode_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    delta.y=scale.y*(double) (y-center.y);
+    for (x=0; x < (ssize_t) canvas_image->columns; x++)
+    {
+      register ssize_t
+        i;
+
+      /*
+        Determine if the pixel is within an ellipse.
+      */
+      delta.x=scale.x*(double) (x-center.x);
+      distance=delta.x*delta.x+delta.y*delta.y;
+      if (distance >= (radius*radius))
+        for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
+        {
+          PixelChannel channel = GetPixelChannelChannel(canvas_image,i);
+          PixelTrait traits = GetPixelChannelTraits(canvas_image,channel);
+          PixelTrait implode_traits = GetPixelChannelTraits(implode_image,
+            channel);
+          if ((traits == UndefinedPixelTrait) ||
+              (implode_traits == UndefinedPixelTrait))
+            continue;
+          SetPixelChannel(implode_image,channel,p[i],q);
+        }
+      else
+        {
+          double
+            factor;
+
+          /*
+            Implode the pixel.
+          */
+          factor=1.0;
+          if (distance > 0.0)
+            factor=pow(sin(MagickPI*sqrt((double) distance)/radius/2),-amount);
+          status=InterpolatePixelChannels(canvas_image,interpolate_view,
+            implode_image,method,(double) (factor*delta.x/scale.x+center.x),
+            (double) (factor*delta.y/scale.y+center.y),q,exception);
+          if (status == MagickFalse)
+            break;
+        }
+      p+=GetPixelChannels(canvas_image);
+      q+=GetPixelChannels(implode_image);
+    }
+    if (SyncCacheViewAuthenticPixels(implode_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (canvas_image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(canvas_image,ImplodeImageTag,progress,
+          canvas_image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  implode_view=DestroyCacheView(implode_view);
+  interpolate_view=DestroyCacheView(interpolate_view);
+  canvas_view=DestroyCacheView(canvas_view);
+  canvas_image=DestroyImage(canvas_image);
+  if (status == MagickFalse)
+    implode_image=DestroyImage(implode_image);
+  return(implode_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     M o r p h I m a g e s                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  The MorphImages() method requires a minimum of two images.  The first
+%  image is transformed into the second by a number of intervening images
+%  as specified by frames.
+%
+%  The format of the MorphImage method is:
+%
+%      Image *MorphImages(const Image *image,const size_t number_frames,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o number_frames:  Define the number of in-between image to generate.
+%      The more in-between frames, the smoother the morph.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *MorphImages(const Image *image,const size_t number_frames,
+  ExceptionInfo *exception)
+{
+#define MorphImageTag  "Morph/Image"
+
+  double
+    alpha,
+    beta;
+
+  Image
+    *morph_image,
+    *morph_images;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    scene;
+
+  register const Image
+    *next;
+
+  register ssize_t
+    n;
+
+  ssize_t
+    y;
+
+  /*
+    Clone first frame in sequence.
+  */
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  morph_images=CloneImage(image,0,0,MagickTrue,exception);
+  if (morph_images == (Image *) NULL)
+    return((Image *) NULL);
+  if (GetNextImageInList(image) == (Image *) NULL)
+    {
+      /*
+        Morph single image.
+      */
+      for (n=1; n < (ssize_t) number_frames; n++)
+      {
+        morph_image=CloneImage(image,0,0,MagickTrue,exception);
+        if (morph_image == (Image *) NULL)
+          {
+            morph_images=DestroyImageList(morph_images);
+            return((Image *) NULL);
+          }
+        AppendImageToList(&morph_images,morph_image);
+        if (image->progress_monitor != (MagickProgressMonitor) NULL)
+          {
+            MagickBooleanType
+              proceed;
+
+            proceed=SetImageProgress(image,MorphImageTag,(MagickOffsetType) n,
+              number_frames);
+            if (proceed == MagickFalse)
+              status=MagickFalse;
+          }
+      }
+      return(GetFirstImageInList(morph_images));
+    }
+  /*
+    Morph image sequence.
+  */
+  status=MagickTrue;
+  scene=0;
+  next=image;
+  for ( ; GetNextImageInList(next) != (Image *) NULL; next=GetNextImageInList(next))
+  {
+    for (n=0; n < (ssize_t) number_frames; n++)
+    {
+      CacheView
+        *image_view,
+        *morph_view;
+
+      beta=(double) (n+1.0)/(double) (number_frames+1.0);
+      alpha=1.0-beta;
+      morph_image=ResizeImage(next,(size_t) (alpha*next->columns+beta*
+        GetNextImageInList(next)->columns+0.5),(size_t) (alpha*next->rows+beta*
+        GetNextImageInList(next)->rows+0.5),next->filter,exception);
+      if (morph_image == (Image *) NULL)
+        {
+          morph_images=DestroyImageList(morph_images);
+          return((Image *) NULL);
+        }
+      status=SetImageStorageClass(morph_image,DirectClass,exception);
+      if (status == MagickFalse)
+        {
+          morph_image=DestroyImage(morph_image);
+          return((Image *) NULL);
+        }
+      AppendImageToList(&morph_images,morph_image);
+      morph_images=GetLastImageInList(morph_images);
+      morph_image=ResizeImage(GetNextImageInList(next),morph_images->columns,
+        morph_images->rows,GetNextImageInList(next)->filter,exception);
+      if (morph_image == (Image *) NULL)
+        {
+          morph_images=DestroyImageList(morph_images);
+          return((Image *) NULL);
+        }
+      image_view=AcquireVirtualCacheView(morph_image,exception);
+      morph_view=AcquireAuthenticCacheView(morph_images,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static) shared(status) \
+        magick_number_threads(morph_image,morph_image,morph_image->rows,1)
+#endif
+      for (y=0; y < (ssize_t) morph_images->rows; y++)
+      {
+        MagickBooleanType
+          sync;
+
+        register const Quantum
+          *magick_restrict p;
+
+        register ssize_t
+          x;
+
+        register Quantum
+          *magick_restrict q;
+
+        if (status == MagickFalse)
+          continue;
+        p=GetCacheViewVirtualPixels(image_view,0,y,morph_image->columns,1,
+          exception);
+        q=GetCacheViewAuthenticPixels(morph_view,0,y,morph_images->columns,1,
+          exception);
+        if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+          {
+            status=MagickFalse;
+            continue;
+          }
+        for (x=0; x < (ssize_t) morph_images->columns; x++)
+        {
+          register ssize_t
+            i;
+
+          for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
+          {
+            PixelChannel channel = GetPixelChannelChannel(morph_image,i);
+            PixelTrait traits = GetPixelChannelTraits(morph_image,channel);
+            PixelTrait morph_traits=GetPixelChannelTraits(morph_images,channel);
+            if ((traits == UndefinedPixelTrait) ||
+                (morph_traits == UndefinedPixelTrait))
+              continue;
+            if ((morph_traits & CopyPixelTrait) != 0)
+              {
+                SetPixelChannel(morph_image,channel,p[i],q);
+                continue;
+              }
+            SetPixelChannel(morph_image,channel,ClampToQuantum(alpha*
+              GetPixelChannel(morph_images,channel,q)+beta*p[i]),q);
+          }
+          p+=GetPixelChannels(morph_image);
+          q+=GetPixelChannels(morph_images);
+        }
+        sync=SyncCacheViewAuthenticPixels(morph_view,exception);
+        if (sync == MagickFalse)
+          status=MagickFalse;
+      }
+      morph_view=DestroyCacheView(morph_view);
+      image_view=DestroyCacheView(image_view);
+      morph_image=DestroyImage(morph_image);
+    }
+    if (n < (ssize_t) number_frames)
+      break;
+    /*
+      Clone last frame in sequence.
+    */
+    morph_image=CloneImage(GetNextImageInList(next),0,0,MagickTrue,exception);
+    if (morph_image == (Image *) NULL)
+      {
+        morph_images=DestroyImageList(morph_images);
+        return((Image *) NULL);
+      }
+    AppendImageToList(&morph_images,morph_image);
+    morph_images=GetLastImageInList(morph_images);
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+        proceed=SetImageProgress(image,MorphImageTag,scene,
+          GetImageListLength(image));
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+    scene++;
+  }
+  if (GetNextImageInList(next) != (Image *) NULL)
+    {
+      morph_images=DestroyImageList(morph_images);
+      return((Image *) NULL);
+    }
+  return(GetFirstImageInList(morph_images));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     P l a s m a I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  PlasmaImage() initializes an image with plasma fractal values.  The image
+%  must be initialized with a base color and the random number generator
+%  seeded before this method is called.
+%
+%  The format of the PlasmaImage method is:
+%
+%      MagickBooleanType PlasmaImage(Image *image,const SegmentInfo *segment,
+%        size_t attenuate,size_t depth,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o segment:   Define the region to apply plasma fractals values.
+%
+%    o attenuate: Define the plasma attenuation factor.
+%
+%    o depth: Limit the plasma recursion depth.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+static inline Quantum PlasmaPixel(RandomInfo *magick_restrict random_info,
+  const double pixel,const double noise)
+{
+  MagickRealType
+    plasma;
+
+  plasma=pixel+noise*GetPseudoRandomValue(random_info)-noise/2.0;
+  return(ClampToQuantum(plasma));
+}
+
+static MagickBooleanType PlasmaImageProxy(Image *image,CacheView *image_view,
+  CacheView *u_view,CacheView *v_view,RandomInfo *magick_restrict random_info,
+  const SegmentInfo *magick_restrict segment,size_t attenuate,size_t depth,
+  ExceptionInfo *exception)
+{
+  double
+    plasma;
+
+  MagickBooleanType
+    status;
+
+  register const Quantum
+    *magick_restrict u,
+    *magick_restrict v;
+
+  register Quantum
+    *magick_restrict q;
+
+  register ssize_t
+    i;
+
+  ssize_t
+    x,
+    x_mid,
+    y,
+    y_mid;
+
+  if ((fabs(segment->x2-segment->x1) < MagickEpsilon) &&
+      (fabs(segment->y2-segment->y1) < MagickEpsilon))
+    return(MagickTrue);
+  if (depth != 0)
+    {
+      SegmentInfo
+        local_info;
+
+      /*
+        Divide the area into quadrants and recurse.
+      */
+      depth--;
+      attenuate++;
+      x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
+      y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+      local_info=(*segment);
+      local_info.x2=(double) x_mid;
+      local_info.y2=(double) y_mid;
+      status=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
+        &local_info,attenuate,depth,exception);
+      local_info=(*segment);
+      local_info.y1=(double) y_mid;
+      local_info.x2=(double) x_mid;
+      status&=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
+        &local_info,attenuate,depth,exception);
+      local_info=(*segment);
+      local_info.x1=(double) x_mid;
+      local_info.y2=(double) y_mid;
+      status&=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
+        &local_info,attenuate,depth,exception);
+      local_info=(*segment);
+      local_info.x1=(double) x_mid;
+      local_info.y1=(double) y_mid;
+      status&=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,
+        &local_info,attenuate,depth,exception);
+      return(status);
+    }
+  x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
+  y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+  if ((fabs(segment->x1-x_mid) < MagickEpsilon) &&
+      (fabs(segment->x2-x_mid) < MagickEpsilon) &&
+      (fabs(segment->y1-y_mid) < MagickEpsilon) &&
+      (fabs(segment->y2-y_mid) < MagickEpsilon))
+    return(MagickFalse);
+  /*
+    Average pixels and apply plasma.
+  */
+  status=MagickTrue;
+  plasma=(double) QuantumRange/(2.0*attenuate);
+  if ((fabs(segment->x1-x_mid) >= MagickEpsilon) ||
+      (fabs(segment->x2-x_mid) >= MagickEpsilon))
+    {
+      /*
+        Left pixel.
+      */
+      x=(ssize_t) ceil(segment->x1-0.5);
+      u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),1,1,
+        exception);
+      v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),1,1,
+        exception);
+      q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
+      if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
+          (q == (Quantum *) NULL))
+        return(MagickTrue);
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        if (traits == UndefinedPixelTrait)
+          continue;
+        q[i]=PlasmaPixel(random_info,((double) u[i]+v[i])/2.0,plasma);
+      }
+      status=SyncCacheViewAuthenticPixels(image_view,exception);
+      if (fabs(segment->x1-segment->x2) >= MagickEpsilon)
+        {
+          /*
+            Right pixel.
+          */
+          x=(ssize_t) ceil(segment->x2-0.5);
+          u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),
+            1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),
+            1,1,exception);
+          q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
+          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
+              (q == (Quantum *) NULL))
+            return(MagickFalse);
+          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+          {
+            PixelChannel channel = GetPixelChannelChannel(image,i);
+            PixelTrait traits = GetPixelChannelTraits(image,channel);
+            if (traits == UndefinedPixelTrait)
+              continue;
+            q[i]=PlasmaPixel(random_info,((double) u[i]+v[i])/2.0,plasma);
+          }
+          status=SyncCacheViewAuthenticPixels(image_view,exception);
+        }
+    }
+  if ((fabs(segment->y1-y_mid) >= MagickEpsilon) ||
+      (fabs(segment->y2-y_mid) >= MagickEpsilon))
+    {
+      if ((fabs(segment->x1-x_mid) >= MagickEpsilon) ||
+          (fabs(segment->y2-y_mid) >= MagickEpsilon))
+        {
+          /*
+            Bottom pixel.
+          */
+          y=(ssize_t) ceil(segment->y2-0.5);
+          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
+            1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
+            1,1,exception);
+          q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
+          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
+              (q == (Quantum *) NULL))
+            return(MagickTrue);
+          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+          {
+            PixelChannel channel = GetPixelChannelChannel(image,i);
+            PixelTrait traits = GetPixelChannelTraits(image,channel);
+            if (traits == UndefinedPixelTrait)
+              continue;
+            q[i]=PlasmaPixel(random_info,((double) u[i]+v[i])/2.0,plasma);
+          }
+          status=SyncCacheViewAuthenticPixels(image_view,exception);
+        }
+      if (fabs(segment->y1-segment->y2) >= MagickEpsilon)
+        {
+          /*
+            Top pixel.
+          */
+          y=(ssize_t) ceil(segment->y1-0.5);
+          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
+            1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
+            1,1,exception);
+          q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
+          if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
+              (q == (Quantum *) NULL))
+            return(MagickTrue);
+          for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+          {
+            PixelChannel channel = GetPixelChannelChannel(image,i);
+            PixelTrait traits = GetPixelChannelTraits(image,channel);
+            if (traits == UndefinedPixelTrait)
+              continue;
+            q[i]=PlasmaPixel(random_info,((double) u[i]+v[i])/2.0,plasma);
+          }
+          status=SyncCacheViewAuthenticPixels(image_view,exception);
+        }
+    }
+  if ((fabs(segment->x1-segment->x2) >= MagickEpsilon) ||
+      (fabs(segment->y1-segment->y2) >= MagickEpsilon))
+    {
+      /*
+        Middle pixel.
+      */
+      x=(ssize_t) ceil(segment->x1-0.5);
+      y=(ssize_t) ceil(segment->y1-0.5);
+      u=GetCacheViewVirtualPixels(u_view,x,y,1,1,exception);
+      x=(ssize_t) ceil(segment->x2-0.5);
+      y=(ssize_t) ceil(segment->y2-0.5);
+      v=GetCacheViewVirtualPixels(v_view,x,y,1,1,exception);
+      q=QueueCacheViewAuthenticPixels(image_view,x_mid,y_mid,1,1,exception);
+      if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
+          (q == (Quantum *) NULL))
+        return(MagickTrue);
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        if (traits == UndefinedPixelTrait)
+          continue;
+        q[i]=PlasmaPixel(random_info,((double) u[i]+v[i])/2.0,plasma);
+      }
+      status=SyncCacheViewAuthenticPixels(image_view,exception);
+    }
+  if ((fabs(segment->x2-segment->x1) < 3.0) &&
+      (fabs(segment->y2-segment->y1) < 3.0))
+    return(status);
+  return(MagickFalse);
+}
+
+MagickExport MagickBooleanType PlasmaImage(Image *image,
+  const SegmentInfo *segment,size_t attenuate,size_t depth,
+  ExceptionInfo *exception)
+{
+  CacheView
+    *image_view,
+    *u_view,
+    *v_view;
+
+  MagickBooleanType
+    status;
+
+  RandomInfo
+    *random_info;
+
+  assert(image != (Image *) NULL);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
+  if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
+    return(MagickFalse);
+  image_view=AcquireAuthenticCacheView(image,exception);
+  u_view=AcquireVirtualCacheView(image,exception);
+  v_view=AcquireVirtualCacheView(image,exception);
+  random_info=AcquireRandomInfo();
+  status=PlasmaImageProxy(image,image_view,u_view,v_view,random_info,segment,
+    attenuate,depth,exception);
+  random_info=DestroyRandomInfo(random_info);
+  v_view=DestroyCacheView(v_view);
+  u_view=DestroyCacheView(u_view);
+  image_view=DestroyCacheView(image_view);
+  return(status);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   P o l a r o i d I m a g e                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  PolaroidImage() simulates a Polaroid picture.
+%
+%  The format of the PolaroidImage method is:
+%
+%      Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
+%        const char *caption,const double angle,
+%        const PixelInterpolateMethod method,ExceptionInfo exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o draw_info: the draw info.
+%
+%    o caption: the Polaroid caption.
+%
+%    o angle: Apply the effect along this angle.
+%
+%    o method: the pixel interpolation method.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *PolaroidImage(const Image *image,const DrawInfo *draw_info,
+  const char *caption,const double angle,const PixelInterpolateMethod method,
+  ExceptionInfo *exception)
+{
+  Image
+    *bend_image,
+    *caption_image,
+    *flop_image,
+    *picture_image,
+    *polaroid_image,
+    *rotate_image,
+    *trim_image;
+
+  size_t
+    height;
+
+  ssize_t
+    quantum;
+
+  /*
+    Simulate a Polaroid picture.
+  */
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  quantum=(ssize_t) MagickMax(MagickMax((double) image->columns,(double)
+    image->rows)/25.0,10.0);
+  height=image->rows+2*quantum;
+  caption_image=(Image *) NULL;
+  if (caption != (const char *) NULL)
+    {
+      char
+        *text;
+
+      /*
+        Generate caption image.
+      */
+      caption_image=CloneImage(image,image->columns,1,MagickTrue,exception);
+      if (caption_image == (Image *) NULL)
+        return((Image *) NULL);
+      text=InterpretImageProperties((ImageInfo *) NULL,(Image *) image,caption,
+        exception);
+      if (text != (char *) NULL)
+        {
+          char
+            geometry[MagickPathExtent];
+
+          DrawInfo
+            *annotate_info;
+
+          MagickBooleanType
+            status;
+
+          ssize_t
+            count;
+
+          TypeMetric
+            metrics;
+
+          annotate_info=CloneDrawInfo((const ImageInfo *) NULL,draw_info);
+          (void) CloneString(&annotate_info->text,text);
+          count=FormatMagickCaption(caption_image,annotate_info,MagickTrue,
+            &metrics,&text,exception);
+          status=SetImageExtent(caption_image,image->columns,(size_t)
+            ((count+1)*(metrics.ascent-metrics.descent)+0.5),exception);
+          if (status == MagickFalse)
+            caption_image=DestroyImage(caption_image);
+          else
+            {
+              caption_image->background_color=image->border_color;
+              (void) SetImageBackgroundColor(caption_image,exception);
+              (void) CloneString(&annotate_info->text,text);
+              (void) FormatLocaleString(geometry,MagickPathExtent,"+0+%.20g",
+                metrics.ascent);
+              if (annotate_info->gravity == UndefinedGravity)
+                (void) CloneString(&annotate_info->geometry,AcquireString(
+                  geometry));
+              (void) AnnotateImage(caption_image,annotate_info,exception);
+              height+=caption_image->rows;
+            }
+          annotate_info=DestroyDrawInfo(annotate_info);
+          text=DestroyString(text);
+        }
+    }
+  picture_image=CloneImage(image,image->columns+2*quantum,height,MagickTrue,
+    exception);
+  if (picture_image == (Image *) NULL)
+    {
+      if (caption_image != (Image *) NULL)
+        caption_image=DestroyImage(caption_image);
+      return((Image *) NULL);
+    }
+  picture_image->background_color=image->border_color;
+  (void) SetImageBackgroundColor(picture_image,exception);
+  (void) CompositeImage(picture_image,image,OverCompositeOp,MagickTrue,quantum,
+    quantum,exception);
+  if (caption_image != (Image *) NULL)
+    {
+      (void) CompositeImage(picture_image,caption_image,OverCompositeOp,
+        MagickTrue,quantum,(ssize_t) (image->rows+3*quantum/2),exception);
+      caption_image=DestroyImage(caption_image);
+    }
+  (void) QueryColorCompliance("none",AllCompliance,
+    &picture_image->background_color,exception);
+  (void) SetImageAlphaChannel(picture_image,OpaqueAlphaChannel,exception);
+  rotate_image=RotateImage(picture_image,90.0,exception);
+  picture_image=DestroyImage(picture_image);
+  if (rotate_image == (Image *) NULL)
+    return((Image *) NULL);
+  picture_image=rotate_image;
+  bend_image=WaveImage(picture_image,0.01*picture_image->rows,2.0*
+    picture_image->columns,method,exception);
+  picture_image=DestroyImage(picture_image);
+  if (bend_image == (Image *) NULL)
+    return((Image *) NULL);
+  picture_image=bend_image;
+  rotate_image=RotateImage(picture_image,-90.0,exception);
+  picture_image=DestroyImage(picture_image);
+  if (rotate_image == (Image *) NULL)
+    return((Image *) NULL);
+  picture_image=rotate_image;
+  picture_image->background_color=image->background_color;
+  polaroid_image=ShadowImage(picture_image,80.0,2.0,quantum/3,quantum/3,
+    exception);
+  if (polaroid_image == (Image *) NULL)
+    {
+      picture_image=DestroyImage(picture_image);
+      return(picture_image);
+    }
+  flop_image=FlopImage(polaroid_image,exception);
+  polaroid_image=DestroyImage(polaroid_image);
+  if (flop_image == (Image *) NULL)
+    {
+      picture_image=DestroyImage(picture_image);
+      return(picture_image);
+    }
+  polaroid_image=flop_image;
+  (void) CompositeImage(polaroid_image,picture_image,OverCompositeOp,
+    MagickTrue,(ssize_t) (-0.01*picture_image->columns/2.0),0L,exception);
+  picture_image=DestroyImage(picture_image);
+  (void) QueryColorCompliance("none",AllCompliance,
+    &polaroid_image->background_color,exception);
+  rotate_image=RotateImage(polaroid_image,angle,exception);
+  polaroid_image=DestroyImage(polaroid_image);
+  if (rotate_image == (Image *) NULL)
+    return((Image *) NULL);
+  polaroid_image=rotate_image;
+  trim_image=TrimImage(polaroid_image,exception);
+  polaroid_image=DestroyImage(polaroid_image);
+  if (trim_image == (Image *) NULL)
+    return((Image *) NULL);
+  polaroid_image=trim_image;
+  return(polaroid_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     S e p i a T o n e I m a g e                                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickSepiaToneImage() applies a special effect to the image, similar to the
+%  effect achieved in a photo darkroom by sepia toning.  Threshold ranges from
+%  0 to QuantumRange and is a measure of the extent of the sepia toning.  A
+%  threshold of 80% is a good starting point for a reasonable tone.
+%
+%  The format of the SepiaToneImage method is:
+%
+%      Image *SepiaToneImage(const Image *image,const double threshold,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o threshold: the tone threshold.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *SepiaToneImage(const Image *image,const double threshold,
+  ExceptionInfo *exception)
+{
+#define SepiaToneImageTag  "SepiaTone/Image"
+
+  CacheView
+    *image_view,
+    *sepia_view;
+
+  Image
+    *sepia_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  ssize_t
+    y;
+
+  /*
+    Initialize sepia-toned image attributes.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  sepia_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (sepia_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(sepia_image,DirectClass,exception) == MagickFalse)
+    {
+      sepia_image=DestroyImage(sepia_image);
+      return((Image *) NULL);
+    }
+  /*
+    Tone each row of the image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireVirtualCacheView(image,exception);
+  sepia_view=AcquireAuthenticCacheView(sepia_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,sepia_image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    q=GetCacheViewAuthenticPixels(sepia_view,0,y,sepia_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      double
+        intensity,
+        tone;
+
+      intensity=GetPixelIntensity(image,p);
+      tone=intensity > threshold ? (double) QuantumRange : intensity+
+        (double) QuantumRange-threshold;
+      SetPixelRed(sepia_image,ClampToQuantum(tone),q);
+      tone=intensity > (7.0*threshold/6.0) ? (double) QuantumRange :
+        intensity+(double) QuantumRange-7.0*threshold/6.0;
+      SetPixelGreen(sepia_image,ClampToQuantum(tone),q);
+      tone=intensity < (threshold/6.0) ? 0 : intensity-threshold/6.0;
+      SetPixelBlue(sepia_image,ClampToQuantum(tone),q);
+      tone=threshold/7.0;
+      if ((double) GetPixelGreen(image,q) < tone)
+        SetPixelGreen(sepia_image,ClampToQuantum(tone),q);
+      if ((double) GetPixelBlue(image,q) < tone)
+        SetPixelBlue(sepia_image,ClampToQuantum(tone),q);
+      SetPixelAlpha(sepia_image,GetPixelAlpha(image,p),q);
+      p+=GetPixelChannels(image);
+      q+=GetPixelChannels(sepia_image);
+    }
+    if (SyncCacheViewAuthenticPixels(sepia_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,SepiaToneImageTag,progress,image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  sepia_view=DestroyCacheView(sepia_view);
+  image_view=DestroyCacheView(image_view);
+  (void) NormalizeImage(sepia_image,exception);
+  (void) ContrastImage(sepia_image,MagickTrue,exception);
+  if (status == MagickFalse)
+    sepia_image=DestroyImage(sepia_image);
+  return(sepia_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     S h a d o w I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ShadowImage() simulates a shadow from the specified image and returns it.
+%
+%  The format of the ShadowImage method is:
+%
+%      Image *ShadowImage(const Image *image,const double alpha,
+%        const double sigma,const ssize_t x_offset,const ssize_t y_offset,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o alpha: percentage transparency.
+%
+%    o sigma: the standard deviation of the Gaussian, in pixels.
+%
+%    o x_offset: the shadow x-offset.
+%
+%    o y_offset: the shadow y-offset.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *ShadowImage(const Image *image,const double alpha,
+  const double sigma,const ssize_t x_offset,const ssize_t y_offset,
+  ExceptionInfo *exception)
+{
+#define ShadowImageTag  "Shadow/Image"
+
+  CacheView
+    *image_view;
+
+  ChannelType
+    channel_mask;
+
+  Image
+    *border_image,
+    *clone_image,
+    *shadow_image;
+
+  MagickBooleanType
+    status;
+
+  PixelInfo
+    background_color;
+
+  RectangleInfo
+    border_info;
+
+  ssize_t
+    y;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  clone_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (clone_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (IsGrayColorspace(image->colorspace) != MagickFalse)
+    (void) SetImageColorspace(clone_image,sRGBColorspace,exception);
+  (void) SetImageVirtualPixelMethod(clone_image,EdgeVirtualPixelMethod,
+    exception);
+  border_info.width=(size_t) floor(2.0*sigma+0.5);
+  border_info.height=(size_t) floor(2.0*sigma+0.5);
+  border_info.x=0;
+  border_info.y=0;
+  (void) QueryColorCompliance("none",AllCompliance,&clone_image->border_color,
+    exception);
+  clone_image->alpha_trait=BlendPixelTrait;
+  border_image=BorderImage(clone_image,&border_info,OverCompositeOp,exception);
+  clone_image=DestroyImage(clone_image);
+  if (border_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (border_image->alpha_trait == UndefinedPixelTrait)
+    (void) SetImageAlphaChannel(border_image,OpaqueAlphaChannel,exception);
+  /*
+    Shadow image.
+  */
+  status=MagickTrue;
+  background_color=border_image->background_color;
+  background_color.alpha_trait=BlendPixelTrait;
+  image_view=AcquireAuthenticCacheView(border_image,exception);
+  for (y=0; y < (ssize_t) border_image->rows; y++)
+  {
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    q=QueueCacheViewAuthenticPixels(image_view,0,y,border_image->columns,1,
+      exception);
+    if (q == (Quantum *) NULL)
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) border_image->columns; x++)
+    {
+      if (border_image->alpha_trait != UndefinedPixelTrait)
+        background_color.alpha=GetPixelAlpha(border_image,q)*alpha/100.0;
+      SetPixelViaPixelInfo(border_image,&background_color,q);
+      q+=GetPixelChannels(border_image);
+    }
+    if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+      status=MagickFalse;
+  }
+  image_view=DestroyCacheView(image_view);
+  if (status == MagickFalse)
+    {
+      border_image=DestroyImage(border_image);
+      return((Image *) NULL);
+    }
+  channel_mask=SetImageChannelMask(border_image,AlphaChannel);
+  shadow_image=BlurImage(border_image,0.0,sigma,exception);
+  border_image=DestroyImage(border_image);
+  if (shadow_image == (Image *) NULL)
+    return((Image *) NULL);
+  (void) SetPixelChannelMask(shadow_image,channel_mask);
+  if (shadow_image->page.width == 0)
+    shadow_image->page.width=shadow_image->columns;
+  if (shadow_image->page.height == 0)
+    shadow_image->page.height=shadow_image->rows;
+  shadow_image->page.width+=x_offset-(ssize_t) border_info.width;
+  shadow_image->page.height+=y_offset-(ssize_t) border_info.height;
+  shadow_image->page.x+=x_offset-(ssize_t) border_info.width;
+  shadow_image->page.y+=y_offset-(ssize_t) border_info.height;
+  return(shadow_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     S k e t c h I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  SketchImage() simulates a pencil sketch.  We convolve the image with a
+%  Gaussian operator of the given radius and standard deviation (sigma).  For
+%  reasonable results, radius should be larger than sigma.  Use a radius of 0
+%  and SketchImage() selects a suitable radius for you.  Angle gives the angle
+%  of the sketch.
+%
+%  The format of the SketchImage method is:
+%
+%    Image *SketchImage(const Image *image,const double radius,
+%      const double sigma,const double angle,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o radius: the radius of the Gaussian, in pixels, not counting the
+%      center pixel.
+%
+%    o sigma: the standard deviation of the Gaussian, in pixels.
+%
+%    o angle: apply the effect along this angle.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *SketchImage(const Image *image,const double radius,
+  const double sigma,const double angle,ExceptionInfo *exception)
+{
+  CacheView
+    *random_view;
+
+  Image
+    *blend_image,
+    *blur_image,
+    *dodge_image,
+    *random_image,
+    *sketch_image;
+
+  MagickBooleanType
+    status;
+
+  RandomInfo
+    **magick_restrict random_info;
+
+  ssize_t
+    y;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  unsigned long
+    key;
+#endif
+
+  /*
+    Sketch image.
+  */
+  random_image=CloneImage(image,image->columns << 1,image->rows << 1,
+    MagickTrue,exception);
+  if (random_image == (Image *) NULL)
+    return((Image *) NULL);
+  status=MagickTrue;
+  random_info=AcquireRandomInfoThreadSet();
+  random_view=AcquireAuthenticCacheView(random_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  key=GetRandomSecretKey(random_info[0]);
+  #pragma omp parallel for schedule(static) shared(status) \
+    magick_number_threads(random_image,random_image,random_image->rows,key == ~0UL)
+#endif
+  for (y=0; y < (ssize_t) random_image->rows; y++)
+  {
+    const int
+      id = GetOpenMPThreadId();
+
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    q=QueueCacheViewAuthenticPixels(random_view,0,y,random_image->columns,1,
+      exception);
+    if (q == (Quantum *) NULL)
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) random_image->columns; x++)
+    {
+      double
+        value;
+
+      register ssize_t
+        i;
+
+      value=GetPseudoRandomValue(random_info[id]);
+      for (i=0; i < (ssize_t) GetPixelChannels(random_image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        if (traits == UndefinedPixelTrait)
+          continue;
+        q[i]=ClampToQuantum(QuantumRange*value);
+      }
+      q+=GetPixelChannels(random_image);
+    }
+    if (SyncCacheViewAuthenticPixels(random_view,exception) == MagickFalse)
+      status=MagickFalse;
+  }
+  random_view=DestroyCacheView(random_view);
+  random_info=DestroyRandomInfoThreadSet(random_info);
+  if (status == MagickFalse)
+    {
+      random_image=DestroyImage(random_image);
+      return(random_image);
+    }
+  blur_image=MotionBlurImage(random_image,radius,sigma,angle,exception);
+  random_image=DestroyImage(random_image);
+  if (blur_image == (Image *) NULL)
+    return((Image *) NULL);
+  dodge_image=EdgeImage(blur_image,radius,exception);
+  blur_image=DestroyImage(blur_image);
+  if (dodge_image == (Image *) NULL)
+    return((Image *) NULL);
+  status=ClampImage(dodge_image,exception);
+  if (status != MagickFalse)
+    status=NormalizeImage(dodge_image,exception);
+  if (status != MagickFalse)
+    status=NegateImage(dodge_image,MagickFalse,exception);
+  if (status != MagickFalse)
+    status=TransformImage(&dodge_image,(char *) NULL,"50%",exception);
+  sketch_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (sketch_image == (Image *) NULL)
+    {
+      dodge_image=DestroyImage(dodge_image);
+      return((Image *) NULL);
+    }
+  (void) CompositeImage(sketch_image,dodge_image,ColorDodgeCompositeOp,
+    MagickTrue,0,0,exception);
+  dodge_image=DestroyImage(dodge_image);
+  blend_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (blend_image == (Image *) NULL)
+    {
+      sketch_image=DestroyImage(sketch_image);
+      return((Image *) NULL);
+    }
+  if (blend_image->alpha_trait != BlendPixelTrait)
+    (void) SetImageAlpha(blend_image,TransparentAlpha,exception);
+  (void) SetImageArtifact(blend_image,"compose:args","20x80");
+  (void) CompositeImage(sketch_image,blend_image,BlendCompositeOp,MagickTrue,
+    0,0,exception);
+  blend_image=DestroyImage(blend_image);
+  return(sketch_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     S o l a r i z e I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  SolarizeImage() applies a special effect to the image, similar to the effect
+%  achieved in a photo darkroom by selectively exposing areas of photo
+%  sensitive paper to light.  Threshold ranges from 0 to QuantumRange and is a
+%  measure of the extent of the solarization.
+%
+%  The format of the SolarizeImage method is:
+%
+%      MagickBooleanType SolarizeImage(Image *image,const double threshold,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o threshold:  Define the extent of the solarization.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport MagickBooleanType SolarizeImage(Image *image,
+  const double threshold,ExceptionInfo *exception)
+{
+#define SolarizeImageTag  "Solarize/Image"
+
+  CacheView
+    *image_view;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  ssize_t
+    y;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  if (IsGrayColorspace(image->colorspace) != MagickFalse)
+    (void) SetImageColorspace(image,sRGBColorspace,exception);
+  if (image->storage_class == PseudoClass)
+    {
+      register ssize_t
+        i;
+
+      /*
+        Solarize colormap.
+      */
+      for (i=0; i < (ssize_t) image->colors; i++)
+      {
+        if ((double) image->colormap[i].red > threshold)
+          image->colormap[i].red=QuantumRange-image->colormap[i].red;
+        if ((double) image->colormap[i].green > threshold)
+          image->colormap[i].green=QuantumRange-image->colormap[i].green;
+        if ((double) image->colormap[i].blue > threshold)
+          image->colormap[i].blue=QuantumRange-image->colormap[i].blue;
+      }
+    }
+  /*
+    Solarize image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireAuthenticCacheView(image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
+    if (q == (Quantum *) NULL)
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      register ssize_t
+        i;
+
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        if ((traits & UpdatePixelTrait) == 0)
+          continue;
+        if ((double) q[i] > threshold)
+          q[i]=QuantumRange-q[i];
+      }
+      q+=GetPixelChannels(image);
+    }
+    if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,SolarizeImageTag,progress,image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  image_view=DestroyCacheView(image_view);
+  return(status);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   S t e g a n o I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  SteganoImage() hides a digital watermark within the image.  Recover
+%  the hidden watermark later to prove that the authenticity of an image.
+%  Offset defines the start position within the image to hide the watermark.
+%
+%  The format of the SteganoImage method is:
+%
+%      Image *SteganoImage(const Image *image,Image *watermark,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o watermark: the watermark image.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *SteganoImage(const Image *image,const Image *watermark,
+  ExceptionInfo *exception)
+{
+#define GetBit(alpha,i) ((((size_t) (alpha) >> (size_t) (i)) & 0x01) != 0)
+#define SetBit(alpha,i,set) (Quantum) ((set) != 0 ? (size_t) (alpha) \
+  | (one << (size_t) (i)) : (size_t) (alpha) & ~(one << (size_t) (i)))
+#define SteganoImageTag  "Stegano/Image"
+
+  CacheView
+    *stegano_view,
+    *watermark_view;
+
+  Image
+    *stegano_image;
+
+  int
+    c;
+
+  MagickBooleanType
+    status;
+
+  PixelInfo
+    pixel;
+
+  register Quantum
+    *q;
+
+  register ssize_t
+    x;
+
+  size_t
+    depth,
+    one;
+
+  ssize_t
+    i,
+    j,
+    k,
+    y;
+
+  /*
+    Initialize steganographic image attributes.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(watermark != (const Image *) NULL);
+  assert(watermark->signature == MagickCoreSignature);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  one=1UL;
+  stegano_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (stegano_image == (Image *) NULL)
+    return((Image *) NULL);
+  stegano_image->depth=MAGICKCORE_QUANTUM_DEPTH;
+  if (SetImageStorageClass(stegano_image,DirectClass,exception) == MagickFalse)
+    {
+      stegano_image=DestroyImage(stegano_image);
+      return((Image *) NULL);
+    }
+  /*
+    Hide watermark in low-order bits of image.
+  */
+  c=0;
+  i=0;
+  j=0;
+  depth=stegano_image->depth;
+  k=stegano_image->offset;
+  status=MagickTrue;
+  watermark_view=AcquireVirtualCacheView(watermark,exception);
+  stegano_view=AcquireAuthenticCacheView(stegano_image,exception);
+  for (i=(ssize_t) depth-1; (i >= 0) && (j < (ssize_t) depth); i--)
+  {
+    for (y=0; (y < (ssize_t) watermark->rows) && (j < (ssize_t) depth); y++)
+    {
+      for (x=0; (x < (ssize_t) watermark->columns) && (j < (ssize_t) depth); x++)
+      {
+        ssize_t
+          offset;
+
+        (void) GetOneCacheViewVirtualPixelInfo(watermark_view,x,y,&pixel,
+          exception);
+        offset=k/(ssize_t) stegano_image->columns;
+        if (offset >= (ssize_t) stegano_image->rows)
+          break;
+        q=GetCacheViewAuthenticPixels(stegano_view,k % (ssize_t)
+          stegano_image->columns,k/(ssize_t) stegano_image->columns,1,1,
+          exception);
+        if (q == (Quantum *) NULL)
+          break;
+        switch (c)
+        {
+          case 0:
+          {
+            SetPixelRed(stegano_image,SetBit(GetPixelRed(stegano_image,q),j,
+              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
+            break;
+          }
+          case 1:
+          {
+            SetPixelGreen(stegano_image,SetBit(GetPixelGreen(stegano_image,q),j,
+              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
+            break;
+          }
+          case 2:
+          {
+            SetPixelBlue(stegano_image,SetBit(GetPixelBlue(stegano_image,q),j,
+              GetBit(GetPixelInfoIntensity(stegano_image,&pixel),i)),q);
+            break;
+          }
+        }
+        if (SyncCacheViewAuthenticPixels(stegano_view,exception) == MagickFalse)
+          break;
+        c++;
+        if (c == 3)
+          c=0;
+        k++;
+        if (k == (ssize_t) (stegano_image->columns*stegano_image->columns))
+          k=0;
+        if (k == stegano_image->offset)
+          j++;
+      }
+    }
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+        proceed=SetImageProgress(image,SteganoImageTag,(MagickOffsetType)
+          (depth-i),depth);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  stegano_view=DestroyCacheView(stegano_view);
+  watermark_view=DestroyCacheView(watermark_view);
+  if (status == MagickFalse)
+    stegano_image=DestroyImage(stegano_image);
+  return(stegano_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   S t e r e o A n a g l y p h I m a g e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  StereoAnaglyphImage() combines two images and produces a single image that
+%  is the composite of a left and right image of a stereo pair.  Special
+%  red-green stereo glasses are required to view this effect.
+%
+%  The format of the StereoAnaglyphImage method is:
+%
+%      Image *StereoImage(const Image *left_image,const Image *right_image,
+%        ExceptionInfo *exception)
+%      Image *StereoAnaglyphImage(const Image *left_image,
+%        const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o left_image: the left image.
+%
+%    o right_image: the right image.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+%    o x_offset: amount, in pixels, by which the left image is offset to the
+%      right of the right image.
+%
+%    o y_offset: amount, in pixels, by which the left image is offset to the
+%      bottom of the right image.
+%
+%
+*/
+MagickExport Image *StereoImage(const Image *left_image,
+  const Image *right_image,ExceptionInfo *exception)
+{
+  return(StereoAnaglyphImage(left_image,right_image,0,0,exception));
+}
+
+MagickExport Image *StereoAnaglyphImage(const Image *left_image,
+  const Image *right_image,const ssize_t x_offset,const ssize_t y_offset,
+  ExceptionInfo *exception)
+{
+#define StereoImageTag  "Stereo/Image"
+
+  const Image
+    *image;
+
+  Image
+    *stereo_image;
+
+  MagickBooleanType
+    status;
+
+  ssize_t
+    y;
+
+  assert(left_image != (const Image *) NULL);
+  assert(left_image->signature == MagickCoreSignature);
+  if (left_image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      left_image->filename);
+  assert(right_image != (const Image *) NULL);
+  assert(right_image->signature == MagickCoreSignature);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  image=left_image;
+  if ((left_image->columns != right_image->columns) ||
+      (left_image->rows != right_image->rows))
+    ThrowImageException(ImageError,"LeftAndRightImageSizesDiffer");
+  /*
+    Initialize stereo image attributes.
+  */
+  stereo_image=CloneImage(left_image,left_image->columns,left_image->rows,
+    MagickTrue,exception);
+  if (stereo_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(stereo_image,DirectClass,exception) == MagickFalse)
+    {
+      stereo_image=DestroyImage(stereo_image);
+      return((Image *) NULL);
+    }
+  (void) SetImageColorspace(stereo_image,sRGBColorspace,exception);
+  /*
+    Copy left image to red channel and right image to blue channel.
+  */
+  status=MagickTrue;
+  for (y=0; y < (ssize_t) stereo_image->rows; y++)
+  {
+    register const Quantum
+      *magick_restrict p,
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict r;
+
+    p=GetVirtualPixels(left_image,-x_offset,y-y_offset,image->columns,1,
+      exception);
+    q=GetVirtualPixels(right_image,0,y,right_image->columns,1,exception);
+    r=QueueAuthenticPixels(stereo_image,0,y,stereo_image->columns,1,exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL) ||
+        (r == (Quantum *) NULL))
+      break;
+    for (x=0; x < (ssize_t) stereo_image->columns; x++)
+    {
+      SetPixelRed(stereo_image,GetPixelRed(left_image,p),r);
+      SetPixelGreen(stereo_image,GetPixelGreen(right_image,q),r);
+      SetPixelBlue(stereo_image,GetPixelBlue(right_image,q),r);
+      if ((GetPixelAlphaTraits(stereo_image) & CopyPixelTrait) != 0)
+        SetPixelAlpha(stereo_image,(GetPixelAlpha(left_image,p)+
+          GetPixelAlpha(right_image,q))/2,r);
+      p+=GetPixelChannels(left_image);
+      q+=GetPixelChannels(right_image);
+      r+=GetPixelChannels(stereo_image);
+    }
+    if (SyncAuthenticPixels(stereo_image,exception) == MagickFalse)
+      break;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+        proceed=SetImageProgress(image,StereoImageTag,(MagickOffsetType) y,
+          stereo_image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  if (status == MagickFalse)
+    stereo_image=DestroyImage(stereo_image);
+  return(stereo_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     S w i r l I m a g e                                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  SwirlImage() swirls the pixels about the center of the image, where
+%  degrees indicates the sweep of the arc through which each pixel is moved.
+%  You get a more dramatic effect as the degrees move from 1 to 360.
+%
+%  The format of the SwirlImage method is:
+%
+%      Image *SwirlImage(const Image *image,double degrees,
+%        const PixelInterpolateMethod method,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o degrees: Define the tightness of the swirling effect.
+%
+%    o method: the pixel interpolation method.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *SwirlImage(const Image *image,double degrees,
+  const PixelInterpolateMethod method,ExceptionInfo *exception)
+{
+#define SwirlImageTag  "Swirl/Image"
+
+  CacheView
+    *canvas_view,
+    *interpolate_view,
+    *swirl_view;
+
+  double
+    radius;
+
+  Image
+    *canvas_image,
+    *swirl_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  PointInfo
+    center,
+    scale;
+
+  ssize_t
+    y;
+
+  /*
+    Initialize swirl image attributes.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (canvas_image == (Image *) NULL)
+    return((Image *) NULL);
+  swirl_image=CloneImage(canvas_image,0,0,MagickTrue,exception);
+  if (swirl_image == (Image *) NULL)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      return((Image *) NULL);
+    }
+  if (SetImageStorageClass(swirl_image,DirectClass,exception) == MagickFalse)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      swirl_image=DestroyImage(swirl_image);
+      return((Image *) NULL);
+    }
+  if (swirl_image->background_color.alpha_trait != UndefinedPixelTrait)
+    (void) SetImageAlphaChannel(swirl_image,OnAlphaChannel,exception);
+  /*
+    Compute scaling factor.
+  */
+  center.x=(double) canvas_image->columns/2.0;
+  center.y=(double) canvas_image->rows/2.0;
+  radius=MagickMax(center.x,center.y);
+  scale.x=1.0;
+  scale.y=1.0;
+  if (canvas_image->columns > canvas_image->rows)
+    scale.y=(double) canvas_image->columns/(double) canvas_image->rows;
+  else
+    if (canvas_image->columns < canvas_image->rows)
+      scale.x=(double) canvas_image->rows/(double) canvas_image->columns;
+  degrees=(double) DegreesToRadians(degrees);
+  /*
+    Swirl image.
+  */
+  status=MagickTrue;
+  progress=0;
+  canvas_view=AcquireVirtualCacheView(canvas_image,exception);
+  interpolate_view=AcquireVirtualCacheView(image,exception);
+  swirl_view=AcquireAuthenticCacheView(swirl_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(canvas_image,swirl_image,canvas_image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) canvas_image->rows; y++)
+  {
+    double
+      distance;
+
+    PointInfo
+      delta;
+
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    register Quantum
+      *magick_restrict q;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(canvas_view,0,y,canvas_image->columns,1,
+      exception);
+    q=QueueCacheViewAuthenticPixels(swirl_view,0,y,swirl_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    delta.y=scale.y*(double) (y-center.y);
+    for (x=0; x < (ssize_t) canvas_image->columns; x++)
+    {
+      /*
+        Determine if the pixel is within an ellipse.
+      */
+      delta.x=scale.x*(double) (x-center.x);
+      distance=delta.x*delta.x+delta.y*delta.y;
+      if (distance >= (radius*radius))
+        {
+          register ssize_t
+            i;
+
+          for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
+          {
+            PixelChannel channel = GetPixelChannelChannel(canvas_image,i);
+            PixelTrait traits = GetPixelChannelTraits(canvas_image,channel);
+            PixelTrait swirl_traits = GetPixelChannelTraits(swirl_image,
+              channel);
+            if ((traits == UndefinedPixelTrait) ||
+                (swirl_traits == UndefinedPixelTrait))
+              continue;
+            SetPixelChannel(swirl_image,channel,p[i],q);
+          }
+        }
+      else
+        {
+          double
+            cosine,
+            factor,
+            sine;
+
+          /*
+            Swirl the pixel.
+          */
+          factor=1.0-sqrt((double) distance)/radius;
+          sine=sin((double) (degrees*factor*factor));
+          cosine=cos((double) (degrees*factor*factor));
+          status=InterpolatePixelChannels(canvas_image,interpolate_view,
+            swirl_image,method,((cosine*delta.x-sine*delta.y)/scale.x+center.x),
+            (double) ((sine*delta.x+cosine*delta.y)/scale.y+center.y),q,
+            exception);
+          if (status == MagickFalse)
+            break;
+        }
+      p+=GetPixelChannels(canvas_image);
+      q+=GetPixelChannels(swirl_image);
+    }
+    if (SyncCacheViewAuthenticPixels(swirl_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (canvas_image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(canvas_image,SwirlImageTag,progress,
+          canvas_image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  swirl_view=DestroyCacheView(swirl_view);
+  interpolate_view=DestroyCacheView(interpolate_view);
+  canvas_view=DestroyCacheView(canvas_view);
+  canvas_image=DestroyImage(canvas_image);
+  if (status == MagickFalse)
+    swirl_image=DestroyImage(swirl_image);
+  return(swirl_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     T i n t I m a g e                                                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  TintImage() applies a color vector to each pixel in the image.  The length
+%  of the vector is 0 for black and white and at its maximum for the midtones.
+%  The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5))))
+%
+%  The format of the TintImage method is:
+%
+%      Image *TintImage(const Image *image,const char *blend,
+%        const PixelInfo *tint,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o blend: A color value used for tinting.
+%
+%    o tint: A color value used for tinting.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *TintImage(const Image *image,const char *blend,
+  const PixelInfo *tint,ExceptionInfo *exception)
+{
+#define TintImageTag  "Tint/Image"
+
+  CacheView
+    *image_view,
+    *tint_view;
+
+  double
+    intensity;
+
+  GeometryInfo
+    geometry_info;
+
+  Image
+    *tint_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  PixelInfo
+    color_vector;
+
+  MagickStatusType
+    flags;
+
+  ssize_t
+    y;
+
+  /*
+    Allocate tint image.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  tint_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (tint_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(tint_image,DirectClass,exception) == MagickFalse)
+    {
+      tint_image=DestroyImage(tint_image);
+      return((Image *) NULL);
+    }
+  if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
+      (IsPixelInfoGray(tint) == MagickFalse))
+    (void) SetImageColorspace(tint_image,sRGBColorspace,exception);
+  if (blend == (const char *) NULL)
+    return(tint_image);
+  /*
+    Determine RGB values of the color.
+  */
+  GetPixelInfo(image,&color_vector);
+  flags=ParseGeometry(blend,&geometry_info);
+  color_vector.red=geometry_info.rho;
+  color_vector.green=geometry_info.rho;
+  color_vector.blue=geometry_info.rho;
+  color_vector.alpha=(MagickRealType) OpaqueAlpha;
+  if ((flags & SigmaValue) != 0)
+    color_vector.green=geometry_info.sigma;
+  if ((flags & XiValue) != 0)
+    color_vector.blue=geometry_info.xi;
+  if ((flags & PsiValue) != 0)
+    color_vector.alpha=geometry_info.psi;
+  if (image->colorspace == CMYKColorspace)
+    {
+      color_vector.black=geometry_info.rho;
+      if ((flags & PsiValue) != 0)
+        color_vector.black=geometry_info.psi;
+      if ((flags & ChiValue) != 0)
+        color_vector.alpha=geometry_info.chi;
+    }
+  intensity=(double) GetPixelInfoIntensity((const Image *) NULL,tint);
+  color_vector.red=(double) (color_vector.red*tint->red/100.0-intensity);
+  color_vector.green=(double) (color_vector.green*tint->green/100.0-intensity);
+  color_vector.blue=(double) (color_vector.blue*tint->blue/100.0-intensity);
+  color_vector.black=(double) (color_vector.black*tint->black/100.0-intensity);
+  color_vector.alpha=(double) (color_vector.alpha*tint->alpha/100.0-intensity);
+  /*
+    Tint image.
+  */
+  status=MagickTrue;
+  progress=0;
+  image_view=AcquireVirtualCacheView(image,exception);
+  tint_view=AcquireAuthenticCacheView(tint_image,exception);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(image,tint_image,image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    register const Quantum
+      *magick_restrict p;
+
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
+    q=QueueCacheViewAuthenticPixels(tint_view,0,y,tint_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      PixelInfo
+        pixel;
+
+      double
+        weight;
+
+      GetPixelInfo(image,&pixel);
+      weight=QuantumScale*GetPixelRed(image,p)-0.5;
+      pixel.red=(MagickRealType) GetPixelRed(image,p)+color_vector.red*
+        (1.0-(4.0*(weight*weight)));
+      weight=QuantumScale*GetPixelGreen(image,p)-0.5;
+      pixel.green=(MagickRealType) GetPixelGreen(image,p)+color_vector.green*
+        (1.0-(4.0*(weight*weight)));
+      weight=QuantumScale*GetPixelBlue(image,p)-0.5;
+      pixel.blue=(MagickRealType) GetPixelBlue(image,p)+color_vector.blue*
+        (1.0-(4.0*(weight*weight)));
+      weight=QuantumScale*GetPixelBlack(image,p)-0.5;
+      pixel.black=(MagickRealType) GetPixelBlack(image,p)+color_vector.black*
+        (1.0-(4.0*(weight*weight)));
+      pixel.alpha=(MagickRealType) GetPixelAlpha(image,p);
+      SetPixelViaPixelInfo(tint_image,&pixel,q);
+      p+=GetPixelChannels(image);
+      q+=GetPixelChannels(tint_image);
+    }
+    if (SyncCacheViewAuthenticPixels(tint_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(image,TintImageTag,progress,image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  tint_view=DestroyCacheView(tint_view);
+  image_view=DestroyCacheView(image_view);
+  if (status == MagickFalse)
+    tint_image=DestroyImage(tint_image);
+  return(tint_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     V i g n e t t e I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  VignetteImage() softens the edges of the image in vignette style.
+%
+%  The format of the VignetteImage method is:
+%
+%      Image *VignetteImage(const Image *image,const double radius,
+%        const double sigma,const ssize_t x,const ssize_t y,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o radius: the radius of the pixel neighborhood.
+%
+%    o sigma: the standard deviation of the Gaussian, in pixels.
+%
+%    o x, y:  Define the x and y ellipse offset.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *VignetteImage(const Image *image,const double radius,
+  const double sigma,const ssize_t x,const ssize_t y,ExceptionInfo *exception)
+{
+  char
+    ellipse[MagickPathExtent];
+
+  DrawInfo
+    *draw_info;
+
+  Image
+    *canvas,
+    *blur_image,
+    *oval_image,
+    *vignette_image;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  canvas=CloneImage(image,0,0,MagickTrue,exception);
+  if (canvas == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(canvas,DirectClass,exception) == MagickFalse)
+    {
+      canvas=DestroyImage(canvas);
+      return((Image *) NULL);
+    }
+  canvas->alpha_trait=BlendPixelTrait;
+  oval_image=CloneImage(canvas,canvas->columns,canvas->rows,MagickTrue,
+    exception);
+  if (oval_image == (Image *) NULL)
+    {
+      canvas=DestroyImage(canvas);
+      return((Image *) NULL);
+    }
+  (void) QueryColorCompliance("#000000",AllCompliance,
+    &oval_image->background_color,exception);
+  (void) SetImageBackgroundColor(oval_image,exception);
+  draw_info=CloneDrawInfo((const ImageInfo *) NULL,(const DrawInfo *) NULL);
+  (void) QueryColorCompliance("#ffffff",AllCompliance,&draw_info->fill,
+    exception);
+  (void) QueryColorCompliance("#ffffff",AllCompliance,&draw_info->stroke,
+    exception);
+  (void) FormatLocaleString(ellipse,MagickPathExtent,"ellipse %g,%g,%g,%g,"
+    "0.0,360.0",image->columns/2.0,image->rows/2.0,image->columns/2.0-x,
+    image->rows/2.0-y);
+  draw_info->primitive=AcquireString(ellipse);
+  (void) DrawImage(oval_image,draw_info,exception);
+  draw_info=DestroyDrawInfo(draw_info);
+  blur_image=BlurImage(oval_image,radius,sigma,exception);
+  oval_image=DestroyImage(oval_image);
+  if (blur_image == (Image *) NULL)
+    {
+      canvas=DestroyImage(canvas);
+      return((Image *) NULL);
+    }
+  blur_image->alpha_trait=UndefinedPixelTrait;
+  (void) CompositeImage(canvas,blur_image,IntensityCompositeOp,MagickTrue,
+    0,0,exception);
+  blur_image=DestroyImage(blur_image);
+  vignette_image=MergeImageLayers(canvas,FlattenLayer,exception);
+  canvas=DestroyImage(canvas);
+  if (vignette_image != (Image *) NULL)
+    (void) TransformImageColorspace(vignette_image,image->colorspace,exception);
+  return(vignette_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     W a v e I m a g e                                                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  WaveImage() creates a "ripple" effect in the image by shifting the pixels
+%  vertically along a sine wave whose amplitude and wavelength is specified
+%  by the given parameters.
+%
+%  The format of the WaveImage method is:
+%
+%      Image *WaveImage(const Image *image,const double amplitude,
+%        const double wave_length,const PixelInterpolateMethod method,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o amplitude, wave_length:  Define the amplitude and wave length of the
+%      sine wave.
+%
+%    o interpolate: the pixel interpolation method.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+MagickExport Image *WaveImage(const Image *image,const double amplitude,
+  const double wave_length,const PixelInterpolateMethod method,
+  ExceptionInfo *exception)
+{
+#define WaveImageTag  "Wave/Image"
+
+  CacheView
+    *canvas_image_view,
+    *wave_view;
+
+  float
+    *sine_map;
+
+  Image
+    *canvas_image,
+    *wave_image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    progress;
+
+  register ssize_t
+    i;
+
+  ssize_t
+    y;
+
+  /*
+    Initialize wave image attributes.
+  */
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  canvas_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (canvas_image == (Image *) NULL)
+    return((Image *) NULL);
+  if ((canvas_image->alpha_trait == UndefinedPixelTrait) &&
+      (canvas_image->background_color.alpha != OpaqueAlpha))
+    (void) SetImageAlpha(canvas_image,OpaqueAlpha,exception);
+  wave_image=CloneImage(canvas_image,canvas_image->columns,(size_t)
+    (canvas_image->rows+2.0*fabs(amplitude)),MagickTrue,exception);
+  if (wave_image == (Image *) NULL)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      return((Image *) NULL);
+    }
+  if (SetImageStorageClass(wave_image,DirectClass,exception) == MagickFalse)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      wave_image=DestroyImage(wave_image);
+      return((Image *) NULL);
+    }
+  /*
+    Allocate sine map.
+  */
+  sine_map=(float *) AcquireQuantumMemory((size_t) wave_image->columns,
+    sizeof(*sine_map));
+  if (sine_map == (float *) NULL)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      wave_image=DestroyImage(wave_image);
+      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
+    }
+  for (i=0; i < (ssize_t) wave_image->columns; i++)
+    sine_map[i]=(float) fabs(amplitude)+amplitude*sin((double)
+      ((2.0*MagickPI*i)/wave_length));
+  /*
+    Wave image.
+  */
+  status=MagickTrue;
+  progress=0;
+  canvas_image_view=AcquireVirtualCacheView(canvas_image,exception);
+  wave_view=AcquireAuthenticCacheView(wave_image,exception);
+  (void) SetCacheViewVirtualPixelMethod(canvas_image_view,
+    BackgroundVirtualPixelMethod);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static) shared(progress,status) \
+    magick_number_threads(canvas_image,wave_image,wave_image->rows,1)
+#endif
+  for (y=0; y < (ssize_t) wave_image->rows; y++)
+  {
+    register const Quantum
+      *magick_restrict p;
+
+    register Quantum
+      *magick_restrict q;
+
+    register ssize_t
+      x;
+
+    if (status == MagickFalse)
+      continue;
+    p=GetCacheViewVirtualPixels(canvas_image_view,0,y,canvas_image->columns,1,
+      exception);
+    q=QueueCacheViewAuthenticPixels(wave_view,0,y,wave_image->columns,1,
+      exception);
+    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+      {
+        status=MagickFalse;
+        continue;
+      }
+    for (x=0; x < (ssize_t) wave_image->columns; x++)
+    {
+      status=InterpolatePixelChannels(canvas_image,canvas_image_view,
+        wave_image,method,(double) x,(double) (y-sine_map[x]),q,exception);
+      if (status == MagickFalse)
+        break;
+      p+=GetPixelChannels(canvas_image);
+      q+=GetPixelChannels(wave_image);
+    }
+    if (SyncCacheViewAuthenticPixels(wave_view,exception) == MagickFalse)
+      status=MagickFalse;
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+        #pragma omp atomic
+#endif
+        progress++;
+        proceed=SetImageProgress(canvas_image,WaveImageTag,progress,
+          canvas_image->rows);
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  wave_view=DestroyCacheView(wave_view);
+  canvas_image_view=DestroyCacheView(canvas_image_view);
+  canvas_image=DestroyImage(canvas_image);
+  sine_map=(float *) RelinquishMagickMemory(sine_map);
+  if (status == MagickFalse)
+    wave_image=DestroyImage(wave_image);
+  return(wave_image);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%     W a v e l e t D e n o i s e I m a g e                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  WaveletDenoiseImage() removes noise from the image using a wavelet
+%  transform.  The wavelet transform is a fast hierarchical scheme for
+%  processing an image using a set of consecutive lowpass and high_pass filters,
+%  followed by a decimation.  This results in a decomposition into different
+%  scales which can be regarded as different “frequency bands”, determined by
+%  the mother wavelet.  Adapted from dcraw.c by David Coffin.
+%
+%  The format of the WaveletDenoiseImage method is:
+%
+%      Image *WaveletDenoiseImage(const Image *image,const double threshold,
+%        const double softness,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o threshold: set the threshold for smoothing.
+%
+%    o softness: attenuate the smoothing threshold.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+static inline void HatTransform(const float *magick_restrict pixels,
+  const size_t stride,const size_t extent,const size_t scale,float *kernel)
+{
+  const float
+    *magick_restrict p,
+    *magick_restrict q,
+    *magick_restrict r;
+
+  register ssize_t
+    i;
+
+  p=pixels;
+  q=pixels+scale*stride;
+  r=pixels+scale*stride;
+  for (i=0; i < (ssize_t) scale; i++)
+  {
+    kernel[i]=0.25f*(*p+(*p)+(*q)+(*r));
+    p+=stride;
+    q-=stride;
+    r+=stride;
+  }
+  for ( ; i < (ssize_t) (extent-scale); i++)
+  {
+    kernel[i]=0.25f*(2.0f*(*p)+*(p-scale*stride)+*(p+scale*stride));
+    p+=stride;
+  }
+  q=p-scale*stride;
+  r=pixels+stride*(extent-2);
+  for ( ; i < (ssize_t) extent; i++)
+  {
+    kernel[i]=0.25f*(*p+(*p)+(*q)+(*r));
+    p+=stride;
+    q+=stride;
+    r-=stride;
+  }
+}
+
+MagickExport Image *WaveletDenoiseImage(const Image *image,
+  const double threshold,const double softness,ExceptionInfo *exception)
+{
+  CacheView
+    *image_view,
+    *noise_view;
+
+  float
+    *kernel,
+    *pixels;
+
+  Image
+    *noise_image;
+
+  MagickBooleanType
+    status;
+
+  MagickSizeType
+    number_pixels;
+
+  MemoryInfo
+    *pixels_info;
+
+  ssize_t
+    channel;
+
+  static const float
+    noise_levels[] = { 0.8002f, 0.2735f, 0.1202f, 0.0585f, 0.0291f, 0.0152f,
+      0.0080f, 0.0044f };
+
+  /*
+    Initialize noise image attributes.
+  */
+  assert(image != (const Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+#if defined(MAGICKCORE_OPENCL_SUPPORT)
+  noise_image=AccelerateWaveletDenoiseImage(image,threshold,exception);
+  if (noise_image != (Image *) NULL)
+    return(noise_image);
+#endif
+  noise_image=CloneImage(image,0,0,MagickTrue,exception);
+  if (noise_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(noise_image,DirectClass,exception) == MagickFalse)
+    {
+      noise_image=DestroyImage(noise_image);
+      return((Image *) NULL);
+    }
+  if (AcquireMagickResource(WidthResource,4*image->columns) == MagickFalse)
+    ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
+  pixels_info=AcquireVirtualMemory(3*image->columns,image->rows*
+    sizeof(*pixels));
+  kernel=(float *) AcquireQuantumMemory(MagickMax(image->rows,image->columns)+1,
+    GetOpenMPMaximumThreads()*sizeof(*kernel));
+  if ((pixels_info == (MemoryInfo *) NULL) || (kernel == (float *) NULL))
+    {
+      if (kernel != (float *) NULL)
+        kernel=(float *) RelinquishMagickMemory(kernel);
+      if (pixels_info != (MemoryInfo *) NULL)
+        pixels_info=RelinquishVirtualMemory(pixels_info);
+      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
+    }
+  pixels=(float *) GetVirtualMemoryBlob(pixels_info);
+  status=MagickTrue;
+  number_pixels=(MagickSizeType) image->columns*image->rows;
+  image_view=AcquireAuthenticCacheView(image,exception);
+  noise_view=AcquireAuthenticCacheView(noise_image,exception);
+  for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
+  {
+    register ssize_t
+      i;
+
+    size_t
+      high_pass,
+      low_pass;
+
+    ssize_t
+      level,
+      y;
+
+    PixelChannel
+      pixel_channel;
+
+    PixelTrait
+      traits;
+
+    if (status == MagickFalse)
+      continue;
+    traits=GetPixelChannelTraits(image,(PixelChannel) channel);
+    if (traits == UndefinedPixelTrait)
+      continue;
+    pixel_channel=GetPixelChannelChannel(image,channel);
+    if ((pixel_channel != RedPixelChannel) &&
+        (pixel_channel != GreenPixelChannel) &&
+        (pixel_channel != BluePixelChannel))
+      continue;
+    /*
+      Copy channel from image to wavelet pixel array.
+    */
+    i=0;
+    for (y=0; y < (ssize_t) image->rows; y++)
+    {
+      register const Quantum
+        *magick_restrict p;
+
+      ssize_t
+        x;
+
+      p=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
+      if (p == (const Quantum *) NULL)
+        {
+          status=MagickFalse;
+          break;
+        }
+      for (x=0; x < (ssize_t) image->columns; x++)
+      {
+        pixels[i++]=(float) p[channel];
+        p+=GetPixelChannels(image);
+      }
+    }
+    /*
+      Low pass filter outputs are called approximation kernel & high pass
+      filters are referred to as detail kernel. The detail kernel
+      have high values in the noisy parts of the signal.
+    */
+    high_pass=0;
+    for (level=0; level < 5; level++)
+    {
+      double
+        magnitude;
+
+      ssize_t
+        x,
+        y;
+
+      low_pass=(size_t) (number_pixels*((level & 0x01)+1));
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static,1) \
+        magick_number_threads(image,image,image->rows,1)
+#endif
+      for (y=0; y < (ssize_t) image->rows; y++)
+      {
+        const int
+          id = GetOpenMPThreadId();
+
+        register float
+          *magick_restrict p,
+          *magick_restrict q;
+
+        register ssize_t
+          x;
+
+        p=kernel+id*image->columns;
+        q=pixels+y*image->columns;
+        HatTransform(q+high_pass,1,image->columns,(size_t) (1UL << level),p);
+        q+=low_pass;
+        for (x=0; x < (ssize_t) image->columns; x++)
+          *q++=(*p++);
+      }
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+      #pragma omp parallel for schedule(static,1) \
+        magick_number_threads(image,image,image->columns,1)
+#endif
+      for (x=0; x < (ssize_t) image->columns; x++)
+      {
+        const int
+          id = GetOpenMPThreadId();
+
+        register float
+          *magick_restrict p,
+          *magick_restrict q;
+
+        register ssize_t
+          y;
+
+        p=kernel+id*image->rows;
+        q=pixels+x+low_pass;
+        HatTransform(q,image->columns,image->rows,(size_t) (1UL << level),p);
+        for (y=0; y < (ssize_t) image->rows; y++)
+        {
+          *q=(*p++);
+          q+=image->columns;
+        }
+      }
+      /*
+        To threshold, each coefficient is compared to a threshold value and
+        attenuated / shrunk by some factor.
+      */
+      magnitude=threshold*noise_levels[level];
+      for (i=0; i < (ssize_t) number_pixels; ++i)
+      {
+        pixels[high_pass+i]-=pixels[low_pass+i];
+        if (pixels[high_pass+i] < -magnitude)
+          pixels[high_pass+i]+=magnitude-softness*magnitude;
+        else
+          if (pixels[high_pass+i] > magnitude)
+            pixels[high_pass+i]-=magnitude-softness*magnitude;
+          else
+            pixels[high_pass+i]*=softness;
+        if (high_pass != 0)
+          pixels[i]+=pixels[high_pass+i];
+      }
+      high_pass=low_pass;
+    }
+    /*
+      Reconstruct image from the thresholded wavelet kernel.
+    */
+    i=0;
+    for (y=0; y < (ssize_t) image->rows; y++)
+    {
+      MagickBooleanType
+        sync;
+
+      register Quantum
+        *magick_restrict q;
+
+      register ssize_t
+        x;
+
+      ssize_t
+        offset;
+
+      q=GetCacheViewAuthenticPixels(noise_view,0,y,noise_image->columns,1,
+        exception);
+      if (q == (Quantum *) NULL)
+        {
+          status=MagickFalse;
+          break;
+        }
+      offset=GetPixelChannelOffset(noise_image,pixel_channel);
+      for (x=0; x < (ssize_t) image->columns; x++)
+      {
+        MagickRealType
+          pixel;
+
+        pixel=(MagickRealType) pixels[i]+pixels[low_pass+i];
+        q[offset]=ClampToQuantum(pixel);
+        i++;
+        q+=GetPixelChannels(noise_image);
+      }
+      sync=SyncCacheViewAuthenticPixels(noise_view,exception);
+      if (sync == MagickFalse)
+        status=MagickFalse;
+    }
+    if (image->progress_monitor != (MagickProgressMonitor) NULL)
+      {
+        MagickBooleanType
+          proceed;
+
+        proceed=SetImageProgress(image,AddNoiseImageTag,(MagickOffsetType)
+          channel,GetPixelChannels(image));
+        if (proceed == MagickFalse)
+          status=MagickFalse;
+      }
+  }
+  noise_view=DestroyCacheView(noise_view);
+  image_view=DestroyCacheView(image_view);
+  kernel=(float *) RelinquishMagickMemory(kernel);
+  pixels_info=RelinquishVirtualMemory(pixels_info);
+  if (status == MagickFalse)
+    noise_image=DestroyImage(noise_image);
+  return(noise_image);
+}
diff --git a/MagickCore/visual-effects.h b/MagickCore/visual-effects.h
new file mode 100644
index 0000000..b5d4a7b
--- /dev/null
+++ b/MagickCore/visual-effects.h
@@ -0,0 +1,76 @@
+/*
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+  
+    https://imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+  MagickCore image visual effecs methods.
+*/
+#ifndef MAGICKCORE_VISUAL_EFFECTS_H
+#define MAGICKCORE_VISUAL_EFFECTS_H
+
+#include "MagickCore/draw.h"
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+typedef enum
+{
+  UndefinedNoise,
+  UniformNoise,
+  GaussianNoise,
+  MultiplicativeGaussianNoise,
+  ImpulseNoise,
+  LaplacianNoise,
+  PoissonNoise,
+  RandomNoise
+} NoiseType;
+
+extern MagickExport Image
+  *AddNoiseImage(const Image *,const NoiseType,const double,ExceptionInfo *),
+  *BlueShiftImage(const Image *,const double,ExceptionInfo *),
+  *CharcoalImage(const Image *,const double,const double,ExceptionInfo *),
+  *ColorizeImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
+  *ColorMatrixImage(const Image *,const KernelInfo *kernel,ExceptionInfo *),
+  *ImplodeImage(const Image *,const double,const PixelInterpolateMethod,
+    ExceptionInfo *),
+  *MorphImages(const Image *,const size_t,ExceptionInfo *),
+  *PolaroidImage(const Image *,const DrawInfo *,const char *,const double,
+    const PixelInterpolateMethod,ExceptionInfo *),
+  *SepiaToneImage(const Image *,const double,ExceptionInfo *),
+  *ShadowImage(const Image *,const double,const double,const ssize_t,
+    const ssize_t,ExceptionInfo *),
+  *SketchImage(const Image *,const double,const double,const double,
+    ExceptionInfo *),
+  *SteganoImage(const Image *,const Image *,ExceptionInfo *),
+  *StereoImage(const Image *,const Image *,ExceptionInfo *),
+  *StereoAnaglyphImage(const Image *,const Image *,const ssize_t,const ssize_t,
+     ExceptionInfo *),
+  *SwirlImage(const Image *,double,const PixelInterpolateMethod,
+    ExceptionInfo *),
+  *TintImage(const Image *,const char *,const PixelInfo *,ExceptionInfo *),
+  *VignetteImage(const Image *,const double,const double,const ssize_t,
+    const ssize_t,ExceptionInfo *),
+  *WaveImage(const Image *,const double,const double,
+    const PixelInterpolateMethod,ExceptionInfo *),
+  *WaveletDenoiseImage(const Image *,const double,const double,ExceptionInfo *);
+
+extern MagickExport MagickBooleanType
+  PlasmaImage(Image *,const SegmentInfo *,size_t,size_t,ExceptionInfo *),
+  SolarizeImage(Image *,const double,ExceptionInfo *);
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
diff --git a/MagickCore/vms.c b/MagickCore/vms.c
index 8e4b417..06f65a2 100644
--- a/MagickCore/vms.c
+++ b/MagickCore/vms.c
@@ -17,7 +17,7 @@
 %                                October 1994                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/vms.h b/MagickCore/vms.h
index 35a7aad..e302378 100644
--- a/MagickCore/vms.h
+++ b/MagickCore/vms.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/widget-private.h b/MagickCore/widget-private.h
index 148863f..a2afdd6 100644
--- a/MagickCore/widget-private.h
+++ b/MagickCore/widget-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -18,6 +18,7 @@
 #ifndef MAGICKCORE_WIDGET_PRIVATE_H
 #define MAGICKCORE_WIDGET_PRIVATE_H
 
+#include "MagickCore/string_.h"
 #include "MagickCore/xwindow-private.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
@@ -26,10 +27,10 @@
 
 #if defined(MAGICKCORE_X11_DELEGATE)
 extern MagickPrivate int
-  XCommandWidget(Display *,XWindows *,const char **,XEvent *),
+  XCommandWidget(Display *,XWindows *,const char *const *,XEvent *),
   XConfirmWidget(Display *,XWindows *,const char *,const char *),
   XDialogWidget(Display *,XWindows *,const char *,const char *,char *),
-  XMenuWidget(Display *,XWindows *,const char *,const char **,char *);
+  XMenuWidget(Display *,XWindows *,const char *,const char *const *,char *);
 
 extern MagickPrivate MagickBooleanType
   XPreferencesWidget(Display *,XResourceInfo *,XWindows *);
@@ -40,7 +41,7 @@
   XFileBrowserWidget(Display *,XWindows *,const char *,char *),
   XFontBrowserWidget(Display *,XWindows *,const char *,char *),
   XInfoWidget(Display *,XWindows *,const char *),
-  XListBrowserWidget(Display *,XWindows *,XWindowInfo *,const char **,
+  XListBrowserWidget(Display *,XWindows *,XWindowInfo *,const char *const *,
     const char *,const char *,char *),
   XNoticeWidget(Display *,XWindows *,const char *,const char *),
   XProgressMonitorWidget(Display *,XWindows *,const char *,
@@ -48,6 +49,26 @@
   XTextViewWidget(Display *,const XResourceInfo *,XWindows *,
     const MagickBooleanType,const char *,const char **);
 
+static inline void XTextViewHelp(Display *display,
+  const XResourceInfo *resource_info,XWindows *windows,
+  const MagickBooleanType mono,const char *title,const char *help)
+{
+  char
+    **help_list;
+
+  ssize_t
+    i;
+
+  help_list=StringToList(help);
+  if (help_list == (char **) NULL)
+    return;
+  XTextViewWidget(display,resource_info,windows,mono,title,(const char **)
+    help_list);
+  for (i=0; help_list[i] != (char *) NULL; i++)
+    help_list[i]=DestroyString(help_list[i]);  
+  help_list=(char **) RelinquishMagickMemory(help_list);
+}
+
 #endif
 
 #if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index c492d9c..ee85c45 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -18,7 +18,7 @@
 %                              September 1993                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -49,6 +49,7 @@
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
 #include "MagickCore/string_.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/token-private.h"
 #include "MagickCore/utility.h"
@@ -1108,7 +1109,7 @@
         {
           text_info->cursor--;
           (void) memmove(text_info->cursor,text_info->cursor+1,
-            MagickPathExtent);
+            strlen(text_info->cursor+1)+1);
           text_info->highlight=MagickFalse;
           break;
         }
@@ -1369,7 +1370,8 @@
       if (event->xexpose.window == windows->command.id)
         if (event->xexpose.count == 0)
           {
-            (void) XCommandWidget(display,windows,(const char **) NULL,event);
+            (void) XCommandWidget(display,windows,(const char *const *) NULL,
+              event);
             break;
           }
       break;
@@ -2778,7 +2780,7 @@
 %  The format of the XCommandWidget method is:
 %
 %      int XCommandWidget(Display *display,XWindows *windows,
-%        const char **selections,XEvent *event)
+%        const char *const *selections,XEvent *event)
 %
 %  A description of each parameter follows:
 %
@@ -2797,7 +2799,7 @@
 %
 */
 MagickPrivate int XCommandWidget(Display *display,XWindows *windows,
-  const char **selections,XEvent *event)
+  const char *const *selections,XEvent *event)
 {
 #define tile_width 112
 #define tile_height 70
@@ -6725,7 +6727,7 @@
 %  The format of the XListBrowserWidget method is:
 %
 %      void XListBrowserWidget(Display *display,XWindows *windows,
-%        XWindowInfo *window_info,const char **list,const char *action,
+%        XWindowInfo *window_info,const char *const *list,const char *action,
 %        const char *query,char *reply)
 %
 %  A description of each parameter follows:
@@ -6746,7 +6748,7 @@
 %
 */
 MagickPrivate void XListBrowserWidget(Display *display,XWindows *windows,
-  XWindowInfo *window_info,const char **list,const char *action,
+  XWindowInfo *window_info,const char *const *list,const char *action,
   const char *query,char *reply)
 {
 #define CancelButtonText  "Cancel"
@@ -7636,7 +7638,7 @@
 %  The format of the XMenuWidget method is:
 %
 %      int XMenuWidget(Display *display,XWindows *windows,const char *title,
-%        const char **selections,char *item)
+%        const char *const *selections,char *item)
 %
 %  A description of each parameter follows:
 %
@@ -7658,7 +7660,7 @@
 %
 */
 MagickPrivate int XMenuWidget(Display *display,XWindows *windows,
-  const char *title,const char **selections,char *item)
+  const char *title,const char *const *selections,char *item)
 {
   Cursor
     cursor;
@@ -8187,11 +8189,11 @@
   /*
     Respond to X events.
   */
-  timer=time((time_t *) NULL)+Timeout;
+  timer=GetMagickTime()+Timeout;
   state=UpdateConfigurationState;
   do
   {
-    if (time((time_t *) NULL) > timer)
+    if (GetMagickTime() > timer)
       break;
     if (state & UpdateConfigurationState)
       {
@@ -8895,7 +8897,7 @@
     Update image windows if there is a pending expose event.
   */
   while (XCheckTypedWindowEvent(display,windows->command.id,Expose,&event))
-    (void) XCommandWidget(display,windows,(const char **) NULL,&event);
+    (void) XCommandWidget(display,windows,(const char *const *) NULL,&event);
   while (XCheckTypedWindowEvent(display,windows->image.id,Expose,&event))
     XRefreshWindow(display,&windows->image,&event);
   while (XCheckTypedWindowEvent(display,windows->info.id,Expose,&event))
diff --git a/MagickCore/widget.h b/MagickCore/widget.h
index 40c22d8..ea79c3e 100644
--- a/MagickCore/widget.h
+++ b/MagickCore/widget.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xml-tree-private.h b/MagickCore/xml-tree-private.h
index 5fa842d..da07f87 100644
--- a/MagickCore/xml-tree-private.h
+++ b/MagickCore/xml-tree-private.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
 
-    http://imagemagick.org/MagicksToolkit/script/license.php
+    https://imagemagick.org/script/license.php
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index 607c736..99b1e2e 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -23,7 +23,7 @@
 %                               December 2004                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1484,18 +1484,20 @@
                     offset=(ssize_t) (xml-p);
                     extent=(size_t) (offset+length+strlen(entity));
                     if (p != q)
-                      p=(char *) ResizeQuantumMemory(p,extent,sizeof(*p));
+                      {
+                        p=(char *) ResizeQuantumMemory(p,extent+1,sizeof(*p));
+                        p[extent]='\0';
+                      }
                     else
                       {
                         char
                           *extent_xml;
 
-                        extent_xml=(char *) AcquireQuantumMemory(extent,
+                        extent_xml=(char *) AcquireQuantumMemory(extent+1,
                           sizeof(*extent_xml));
                         if (extent_xml != (char *) NULL)
                           {
-                            memset(extent_xml,0,extent*
-                              sizeof(*extent_xml));
+                            memset(extent_xml,0,extent*sizeof(*extent_xml));
                             (void) CopyMagickString(extent_xml,p,extent*
                               sizeof(*extent_xml));
                           }
@@ -1729,6 +1731,8 @@
         if ((isalpha((int) ((unsigned char) *n)) == 0) && (*n != '_'))
           break;
         xml=n+strcspn(n,XMLWhitespace);
+        if (*xml == '\0')
+          break;
         *xml=';';
         v=xml+strspn(xml+1,XMLWhitespace)+1;
         q=(*v);
@@ -2019,7 +2023,7 @@
     attributes=(char **) sentinel;
     tag=p;
     c=(*p);
-    if ((isalpha((int) ((unsigned char) *p)) !=0) || (*p == '_') ||
+    if ((isalpha((int) ((unsigned char) *p)) != 0) || (*p == '_') ||
         (*p == ':') || (c < '\0'))
       {
         /*
@@ -2058,8 +2062,8 @@
                 attributes=(char **) AcquireQuantumMemory(4,
                   sizeof(*attributes));
               else
-                attributes=(char **) ResizeQuantumMemory(attributes,
-                  (size_t) (l+4),sizeof(*attributes));
+                attributes=(char **) ResizeQuantumMemory(attributes,(size_t)
+                  (l+4),sizeof(*attributes));
               if (attributes == (char **) NULL)
                 {
                   (void) ThrowMagickException(exception,GetMagickModule(),
diff --git a/MagickCore/xml-tree.h b/MagickCore/xml-tree.h
index 49568b2..9e6c93a 100644
--- a/MagickCore/xml-tree.h
+++ b/MagickCore/xml-tree.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
 
-    http://imagemagick.org/MagicksToolkit/script/license.php
+    https://imagemagick.org/script/license.php
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/MagickCore/xwindow-private.h b/MagickCore/xwindow-private.h
index 7ac5ae3..a219fc3 100644
--- a/MagickCore/xwindow-private.h
+++ b/MagickCore/xwindow-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 6da05d9..cc186d6 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -17,7 +17,7 @@
 %                                  July 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -309,6 +309,11 @@
         (void) XFreePixmap(windows->display,magick_windows[i]->shadow_stipple);
         magick_windows[i]->shadow_stipple=(Pixmap) NULL;
       }
+    if (magick_windows[i]->matte_image != (XImage *) NULL)
+      {
+        XDestroyImage(magick_windows[i]->matte_image);
+        magick_windows[i]->matte_image=(XImage *) NULL;
+      }
     if (magick_windows[i]->ximage != (XImage *) NULL)
       {
         XDestroyImage(magick_windows[i]->ximage);
@@ -5049,21 +5054,16 @@
       if ((crop_info.width != 0) && (crop_info.height != 0))
         {
           Image
-            *clone_image,
             *crop_image;
 
           /*
             Crop image as defined by the cropping rectangle.
           */
-          clone_image=CloneImage(image,0,0,MagickTrue,exception);
-          if (clone_image != (Image *) NULL)
+          crop_image=CropImage(image,&crop_info,exception);
+          if (crop_image != (Image *) NULL)
             {
-              crop_image=CropImage(clone_image,&crop_info,exception);
-              if (crop_image != (Image *) NULL)
-                {
-                  image=DestroyImage(image);
-                  image=crop_image;
-                }
+              image=DestroyImage(image);
+              image=crop_image;
             }
         }
       status=XGetWMName(display,target,&window_name);
@@ -5528,6 +5528,7 @@
       segment_info[1].shmaddr=(char *) NULL;
       ximage=XShmCreateImage(display,window->visual,(unsigned int) depth,format,
         (char *) NULL,&segment_info[1],width,height);
+      length=0;
       if (ximage == (XImage *) NULL)
         window->shared_memory=MagickFalse;
       else
@@ -5896,7 +5897,8 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   canvas=image;
   if ((window->immutable == MagickFalse) &&
-      (image->storage_class == DirectClass) && (image->alpha_trait != UndefinedPixelTrait))
+      (image->storage_class == DirectClass) &&
+      (image->alpha_trait != UndefinedPixelTrait))
     {
       char
         size[MagickPathExtent];
@@ -6706,8 +6708,8 @@
           /*
             Convert to 8 bit color-mapped X canvas.
           */
-          if (resource_info->color_recovery &&
-              resource_info->quantize_info->dither_method != NoDitherMethod)
+          if ((resource_info->color_recovery != MagickFalse) &&
+              (resource_info->quantize_info->dither_method != NoDitherMethod))
             {
               XDitherImage(canvas,ximage,exception);
               break;
@@ -6870,8 +6872,8 @@
           /*
             Convert to 8 bit continuous-tone X canvas.
           */
-          if (resource_info->color_recovery &&
-              resource_info->quantize_info->dither_method != NoDitherMethod)
+          if ((resource_info->color_recovery != MagickFalse) &&
+              (resource_info->quantize_info->dither_method != NoDitherMethod))
             {
               XDitherImage(canvas,ximage,exception);
               break;
@@ -8528,7 +8530,8 @@
       window_info->shape=MagickFalse;
 #endif
     }
-  if (window_info->shared_memory)
+  window_info->shape=MagickFalse;  /* Fedora 30 has a broken shape extention */
+  if (window_info->shared_memory != MagickFalse)
     {
 #if defined(MAGICKCORE_HAVE_SHARED_MEMORY)
       /*
@@ -9315,6 +9318,7 @@
   target_window=(Window) NULL;
   x_offset=0;
   y_offset=0;
+  (void) XGrabServer(display);
   do
   {
     if ((crop_info->width*crop_info->height) >= MinimumCropArea)
@@ -9383,6 +9387,7 @@
         break;
     }
   } while ((target_window == (Window) NULL) || (presses > 0));
+  (void) XUngrabServer(display);
   (void) XUngrabPointer(display,CurrentTime);
   (void) XFreeCursor(display,target_cursor);
   (void) XFreeGC(display,annotate_context);
@@ -9939,6 +9944,7 @@
   assert(ximage_info != (XImportInfo *) NULL);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
+  (void) ximage_info;
   (void) exception;
   return((Image *) NULL);
 }
diff --git a/MagickCore/xwindow.h b/MagickCore/xwindow.h
index df86971..7c8897c 100644
--- a/MagickCore/xwindow.h
+++ b/MagickCore/xwindow.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/Android.bp b/MagickWand/Android.bp
index 45d3533..205cf19 100644
--- a/MagickWand/Android.bp
+++ b/MagickWand/Android.bp
@@ -27,4 +27,5 @@
     ],
 
     header_libs: ["Magick_headers"],
+    visibility: ["//vendor:__subpackages__"],
 }
diff --git a/MagickWand/MagickWand-config b/MagickWand/MagickWand-config
new file mode 100755
index 0000000..bd42e88
--- /dev/null
+++ b/MagickWand/MagickWand-config
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# Configure options script for re-calling MagickWand compilation options
+# required to use the MagickWand library.
+#
+
+prefix=/usr/local
+exec_prefix=${prefix}
+
+usage="\
+Usage: MagickWand-config [--cflags] [--cppflags] [--exec-prefix] [--ldflags] [--libs] [--prefix] [--version]"
+
+if test $# -eq 0; then
+      echo "${usage}" 1>&2
+      echo "Example: gcc \`MagickWand-config --cflags --cppflags\` -o wand wand.c \`MagickWand-config --ldflags --libs\`" 1>&2
+      exit 1
+fi
+
+while test $# -gt 0; do
+  case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+  esac
+  case $1 in
+    --prefix=*)
+      prefix=$optarg
+      ;;
+    --prefix)
+      echo $prefix
+      ;;
+    --exec-prefix=*)
+      exec_prefix=$optarg
+      ;;
+    --exec-prefix)
+      echo $exec_prefix
+      ;;
+    --version)
+      echo '7.0.9 Q16 HDRI'
+      ;;
+    --cflags)
+      /usr/bin/pkg-config --cflags MagickWand
+      ;;
+    --cxxflags)
+      /usr/bin/pkg-config --cflags MagickWand
+      ;;
+    --cppflags)
+      /usr/bin/pkg-config --cflags MagickWand
+      ;;
+    --ldflags)
+      /usr/bin/pkg-config --libs MagickWand
+      ;;
+    --libs)
+      /usr/bin/pkg-config --libs MagickWand
+      ;;
+    *)
+      echo "${usage}" 1>&2
+      exit 1
+      ;;
+  esac
+  shift
+done
+
diff --git a/MagickWand/MagickWand.h b/MagickWand/MagickWand.h
index 311618f..c1516ba 100644
--- a/MagickWand/MagickWand.h
+++ b/MagickWand/MagickWand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <math.h>
 #include <sys/types.h>
 #include <time.h>
diff --git a/MagickWand/MagickWand.pc.in b/MagickWand/MagickWand.pc.in
index 4a9eed0..d50fe28 100644
--- a/MagickWand/MagickWand.pc.in
+++ b/MagickWand/MagickWand.pc.in
@@ -9,7 +9,7 @@
 Description: MagickWand - C API for ImageMagick (ABI @MAGICK_ABI_SUFFIX@)
 URL: https://github.com/ImageMagick
 Version: @PACKAGE_VERSION@
-Requires: MagickCore
+Requires: MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@
 Cflags: -I${includearchdir} -I${includedir} @MAGICK_PCFLAGS@
 Libs: -L${libdir} -l${libname}
 Libs.private: -L${libdir} -l${libname} @MAGICK_LIBS@ @MATH_LIBS@
diff --git a/MagickWand/Makefile.am b/MagickWand/Makefile.am
index acd94e5..fb75e96 100644
--- a/MagickWand/Makefile.am
+++ b/MagickWand/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -20,112 +20,112 @@
 MAGICKWAND_CPPFLAGS = $(AM_CPPFLAGS)
 
 MAGICKWAND_SOURCES = \
-	MagickWand/MagickWand.h \
-	MagickWand/animate.c \
-	MagickWand/animate.h \
-	MagickWand/compare.c \
-	MagickWand/compare.h \
-	MagickWand/composite.c \
-	MagickWand/composite.h \
-	MagickWand/conjure.c \
-	MagickWand/conjure.h \
-	MagickWand/convert.c \
-	MagickWand/convert.h \
-	MagickWand/deprecate.h \
-	MagickWand/deprecate.c \
-	MagickWand/display.c \
-	MagickWand/display.h \
-	MagickWand/drawing-wand.c \
-	MagickWand/drawing-wand.h \
-	MagickWand/identify.c \
-	MagickWand/identify.h \
-	MagickWand/import.c \
-	MagickWand/import.h \
-	MagickWand/magick-cli.c \
-	MagickWand/magick-cli.h \
-	MagickWand/magick-image.c \
-	MagickWand/magick-image.h \
-	MagickWand/magick-property.c \
-	MagickWand/magick-property.h \
-	MagickWand/magick-wand.c \
-	MagickWand/magick-wand-private.h \
-	MagickWand/method-attribute.h \
-	MagickWand/mogrify.c \
-	MagickWand/mogrify.h \
-	MagickWand/mogrify-private.h \
-	MagickWand/montage.c \
-	MagickWand/montage.h \
-	MagickWand/operation.c \
-	MagickWand/operation.h \
-	MagickWand/operation-private.h \
-	MagickWand/pixel-iterator.c \
-	MagickWand/pixel-iterator.h \
-	MagickWand/pixel-wand.c \
-	MagickWand/pixel-wand.h \
-	MagickWand/pixel-wand-private.h \
-	MagickWand/script-token.c \
-	MagickWand/script-token.h \
-	MagickWand/stream.c \
-	MagickWand/stream.h \
-	MagickWand/studio.h \
-	MagickWand/wand.c \
-	MagickWand/wand.h \
-	MagickWand/wandcli.c \
-	MagickWand/wandcli.h \
-	MagickWand/wandcli-private.h \
-	MagickWand/wand-view.c \
-	MagickWand/wand-view.h 
+  MagickWand/MagickWand.h \
+  MagickWand/animate.c \
+  MagickWand/animate.h \
+  MagickWand/compare.c \
+  MagickWand/compare.h \
+  MagickWand/composite.c \
+  MagickWand/composite.h \
+  MagickWand/conjure.c \
+  MagickWand/conjure.h \
+  MagickWand/convert.c \
+  MagickWand/convert.h \
+  MagickWand/deprecate.h \
+  MagickWand/deprecate.c \
+  MagickWand/display.c \
+  MagickWand/display.h \
+  MagickWand/drawing-wand.c \
+  MagickWand/drawing-wand.h \
+  MagickWand/identify.c \
+  MagickWand/identify.h \
+  MagickWand/import.c \
+  MagickWand/import.h \
+  MagickWand/magick-cli.c \
+  MagickWand/magick-cli.h \
+  MagickWand/magick-image.c \
+  MagickWand/magick-image.h \
+  MagickWand/magick-property.c \
+  MagickWand/magick-property.h \
+  MagickWand/magick-wand.c \
+  MagickWand/magick-wand-private.h \
+  MagickWand/method-attribute.h \
+  MagickWand/mogrify.c \
+  MagickWand/mogrify.h \
+  MagickWand/mogrify-private.h \
+  MagickWand/montage.c \
+  MagickWand/montage.h \
+  MagickWand/operation.c \
+  MagickWand/operation.h \
+  MagickWand/operation-private.h \
+  MagickWand/pixel-iterator.c \
+  MagickWand/pixel-iterator.h \
+  MagickWand/pixel-wand.c \
+  MagickWand/pixel-wand.h \
+  MagickWand/pixel-wand-private.h \
+  MagickWand/script-token.c \
+  MagickWand/script-token.h \
+  MagickWand/stream.c \
+  MagickWand/stream.h \
+  MagickWand/studio.h \
+  MagickWand/wand.c \
+  MagickWand/wand.h \
+  MagickWand/wandcli.c \
+  MagickWand/wandcli.h \
+  MagickWand/wandcli-private.h \
+  MagickWand/wand-view.c \
+  MagickWand/wand-view.h
 
 MAGICKWAND_INCLUDE_HDRS = \
-	MagickWand/MagickWand.h \
-	MagickWand/animate.h \
-	MagickWand/compare.h \
-	MagickWand/composite.h \
-	MagickWand/conjure.h \
-	MagickWand/convert.h \
-	MagickWand/deprecate.h \
-	MagickWand/display.h \
-	MagickWand/drawing-wand.h \
-	MagickWand/identify.h \
-	MagickWand/import.h \
-	MagickWand/magick-cli.h \
-	MagickWand/magick-image.h \
-	MagickWand/magick-property.h \
-	MagickWand/method-attribute.h \
-	MagickWand/mogrify.h \
-	MagickWand/montage.h \
-	MagickWand/operation.h \
-	MagickWand/pixel-iterator.h \
-	MagickWand/pixel-wand.h \
-	MagickWand/stream.h \
-	MagickWand/wandcli.h \
-	MagickWand/wand-view.h
+  MagickWand/MagickWand.h \
+  MagickWand/animate.h \
+  MagickWand/compare.h \
+  MagickWand/composite.h \
+  MagickWand/conjure.h \
+  MagickWand/convert.h \
+  MagickWand/deprecate.h \
+  MagickWand/display.h \
+  MagickWand/drawing-wand.h \
+  MagickWand/identify.h \
+  MagickWand/import.h \
+  MagickWand/magick-cli.h \
+  MagickWand/magick-image.h \
+  MagickWand/magick-property.h \
+  MagickWand/method-attribute.h \
+  MagickWand/mogrify.h \
+  MagickWand/montage.h \
+  MagickWand/operation.h \
+  MagickWand/pixel-iterator.h \
+  MagickWand/pixel-wand.h \
+  MagickWand/stream.h \
+  MagickWand/wandcli.h \
+  MagickWand/wand-view.h
 
 MAGICKWAND_NOINST_HDRS = \
-	MagickWand/mogrify-private.h \
-	MagickWand/magick-wand-private.h \
-	MagickWand/operation-private.h \
-	MagickWand/pixel-wand-private.h \
-	MagickWand/script-token.h \
-	MagickWand/studio.h \
-	MagickWand/wand.h \
-	MagickWand/wandcli-private.h
+  MagickWand/mogrify-private.h \
+  MagickWand/magick-wand-private.h \
+  MagickWand/operation-private.h \
+  MagickWand/pixel-wand-private.h \
+  MagickWand/script-token.h \
+  MagickWand/studio.h \
+  MagickWand/wand.h \
+  MagickWand/wandcli-private.h
 
 # Headers which are installed
 MagickWandinc_HEADERS = \
-	$(MAGICKWAND_INCLUDE_HDRS)
+  $(MAGICKWAND_INCLUDE_HDRS)
 
 MAGICKWAND_BIN_SCRPTS = \
-	MagickWand/MagickWand-config
+  MagickWand/MagickWand-config
 
 MAGICKWAND_PKGCONFIG = \
-	MagickWand/MagickWand.pc \
-	MagickWand/MagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
+  MagickWand/MagickWand.pc \
+  MagickWand/MagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 MAGICKWAND_MANS = \
-	MagickWand/MagickWand-config.1
+  MagickWand/MagickWand-config.1
 
-MAGICKWAND_BUILT_SRCS = 
+MAGICKWAND_BUILT_SRCS =
 
 MAGICKWAND_LIBS = MagickWand/libMagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.la
 
@@ -140,14 +140,14 @@
 
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS = -no-undefined \
   $(MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION) $(MAGICK_LT_RELEASE_OPTS) \
-	-version-info \
-	$(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
+  -version-info \
+  $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICKCORE_LIBS) $(X11_LIBS) $(GOMP_LIBS) $(MATH_LIBS)
 
 MAGICKWAND_EXTRA_DIST = \
-	MagickWand/ChangeLog \
-	MagickWand/libMagickWand.map \
-	MagickWand/MagickWand-config.1 \
-	MagickWand/MagickWand.pc.in
+  MagickWand/ChangeLog \
+  MagickWand/libMagickWand.map \
+  MagickWand/MagickWand-config.1 \
+  MagickWand/MagickWand.pc.in
 
 MAGICKWAND_CLEANFILES =
diff --git a/MagickWand/animate.c b/MagickWand/animate.c
index cde504f..3cede4f 100644
--- a/MagickWand/animate.c
+++ b/MagickWand/animate.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -92,118 +92,96 @@
 
 static MagickBooleanType AnimateUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *buttons[]=
-    {
-      "Press any button to map or unmap the Command widget",
-      (char *) NULL
-    },
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-channel mask        set the image channel mask",
-      "-colors value        preferred number of colors in the image",
-      "-crop geometry       preferred size and location of the cropped image",
-      "-extract geometry    extract area from image",
-      "-monochrome          transform image to black and white",
-      "-resample geometry   change the resolution of an image",
-      "-resize geometry     resize the image",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-strip               strip image of all profiles and comments",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-trim                trim image edges",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-backdrop            display image centered on a backdrop",
-      "-colormap type       Shared or Private",
-      "-colorspace type     alternate image colorspace",
-      "-decipher filename   convert cipher pixels to plain pixels",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-delay value         display the next image after pausing",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-display server      display image to this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-filter type         use this filter when resizing an image",
-      "-format \"string\"     output formatted image characteristics",
-      "-gamma value         level of gamma correction",
-      "-geometry geometry   preferred size and location of the Image window",
-      "-gravity type        horizontal and vertical backdrop placement",
-      "-identify            identify the format and characteristics of the image",
-      "-immutable           displayed image cannot be modified",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-limit type value    pixel cache resource limit",
-      "-loop iterations     loop images then exit",
-      "-matte               store matte channel if the image has one",
-      "-map type            display image using this Standard Colormap",
-      "-monitor             monitor progress",
-      "-pause               seconds to pause before reanimating",
-      "-page geometry       size and location of an image canvas (setting)",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-quiet               suppress all warning messages",
-      "-regard-warnings     pay attention to warning messages",
-      "-remote command      execute a command in an remote display process",
-      "-repage geometry     size and location of an image canvas (operator)",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scenes range        image scene range",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set attribute value set an image attribute",
-      "-size geometry       width and height of image",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-transparent-color color",
-      "                     transparent color",
-      "-treedepth value     color tree depth",
-      "-verbose             print detailed information about the image",
-      "-visual type         display image using this visual type",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-window id           display image to background of this window",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-coalesce            merge a sequence of images",
-      "-flatten             flatten a sequence of images",
-      (char *) NULL
-    };
+    buttons[] =
+      "  Press any button to map or unmap the Command widget",
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -channel mask        set the image channel mask\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -crop geometry       preferred size and location of the cropped image\n"
+      "  -extract geometry    extract area from image\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -resample geometry   change the resolution of an image\n"
+      "  -resize geometry     resize the image\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -trim                trim image edges",
+    settings[] =
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -backdrop            display image centered on a backdrop\n"
+      "  -colormap type       Shared or Private\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -decipher filename   convert cipher pixels to plain pixels\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -display server      display image to this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -gamma value         level of gamma correction\n"
+      "  -geometry geometry   preferred size and location of the Image window\n"
+      "  -gravity type        horizontal and vertical backdrop placement\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -immutable           displayed image cannot be modified\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -loop iterations     loop images then exit\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -map type            display image using this Standard Colormap\n"
+      "  -monitor             monitor progress\n"
+      "  -pause               seconds to pause before reanimating\n"
+      "  -page geometry       size and location of an image canvas (setting)\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -remote command      execute a command in an remote display process\n"
+      "  -repage geometry     size and location of an image canvas (operator)\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scenes range        image scene range\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set attribute value set an image attribute\n"
+      "  -size geometry       width and height of image\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -treedepth value     color tree depth\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -visual type         display image using this visual type\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -window id           display image to background of this window",
+    sequence_operators[] =
+      "  -coalesce            merge a sequence of images\n"
+      "  -flatten             flatten a sequence of images";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] file ...]\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nIn addition to those listed above, you can specify these standard X\n");
   (void) printf(
@@ -221,8 +199,7 @@
     "image type as the filename suffix (i.e. image.ps).  Specify 'file' as\n");
   (void) printf("'-' for standard input or output.\n");
   (void) printf("\nButtons: \n");
-  for (p=buttons; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(buttons);
   return(MagickFalse);
 }
 
diff --git a/MagickWand/animate.h b/MagickWand/animate.h
index 8711b42..7355fb5 100644
--- a/MagickWand/animate.h
+++ b/MagickWand/animate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/compare.c b/MagickWand/compare.c
index 9d1e591..3c59ee1 100644
--- a/MagickWand/compare.c
+++ b/MagickWand/compare.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -82,132 +82,107 @@
 
 static MagickBooleanType CompareUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *channel_operators[]=
-    {
-      "-separate            separate an image channel into a grayscale image",
-      (char *) NULL
-    },
-    *miscellaneous[]=
-    {
-      "-channel mask        set the image channel mask",
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-brightness-contrast geometry",
-      "                     improve brightness / contrast of the image",
-      "-distort method args",
-      "                     distort images according to given method and args",
-      "-level value         adjust the level of image contrast",
-      "-resize geometry     resize the image",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-sigmoidal-contrast geometry",
-      "                     increase the contrast without saturating highlights or",
-      "-trim                trim image edges",
-      "-write filename      write images to this file",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-crop geometry       cut out a rectangular region of the image",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-background color    background color",
-      "-colorspace type     alternate image colorspace",
-      "-compose operator    set image composite operator",
-      "-compress type       type of pixel compression when writing the image",
-      "-decipher filename   convert cipher pixels to plain pixels",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-dissimilarity-threshold value",
-      "                     maximum distortion for (sub)image match",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-extract geometry    extract area from image",
-      "-format \"string\"     output formatted image characteristics",
-      "-fuzz distance       colors within this distance are considered equal",
-      "-gravity type        horizontal and vertical text placement",
-      "-highlight-color color",
-      "                     empasize pixel differences with this color",
-      "-identify            identify the format and characteristics of the image",
-      "-interlace type      type of image interlacing scheme",
-      "-limit type value    pixel cache resource limit",
-      "-lowlight-color color",
-      "                     de-emphasize pixel differences with this color",
-      "-metric type         measure differences between images with this metric",
-      "-monitor             monitor progress",
-      "-negate              replace every pixel with its complementary color ",
-      "-profile filename    add, delete, or apply an image profile",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quiet               suppress all warning messages",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-read-mask filename  associate a read mask with the image",
-      "-regard-warnings     pay attention to warning messages",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set attribute value set an image attribute",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-repage geometry     size and location of an image canvas",
-      "-similarity-threshold value",
-      "                     minimum distortion for (sub)image match",
-      "-size geometry       width and height of image",
-      "-subimage-search     search for subimage",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-transparent-color color",
-      "                     transparent color",
-      "-type type           image type",
-      "-verbose             print detailed information about the image",
-      "-version             print version information",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-write-mask filename  associate a write mask with the image",
-      (char *) NULL
-    },
-    *stack_operators[]=
-    {
-      "-delete indexes      delete the image from the image sequence",
-      (char *) NULL
-    };
+    channel_operators[] =
+      "  -separate            separate an image channel into a grayscale image",
+    miscellaneous[] =
+      "  -channel mask        set the image channel mask\n"
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information",
+    operators[] =
+      "  -brightness-contrast geometry\n"
+      "                       improve brightness / contrast of the image\n"
+      "  -distort method args\n"
+      "                       distort images according to given method and args\n"
+      "  -level value         adjust the level of image contrast\n"
+      "  -resize geometry     resize the image\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -sigmoidal-contrast geometry\n"
+      "                       increase the contrast without saturating highlights or\n"
+      "  -trim                trim image edges\n"
+      "  -write filename      write images to this file",
+    sequence_operators[] =
+      "  -crop geometry       cut out a rectangular region of the image",
+    settings[] =
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -background color    background color\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -compose operator    set image composite operator\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -decipher filename   convert cipher pixels to plain pixels\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -dissimilarity-threshold value\n"
+      "                       maximum distortion for (sub)image match\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -extract geometry    extract area from image\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -fuzz distance       colors within this distance are considered equal\n"
+      "  -gravity type        horizontal and vertical text placement\n"
+      "  -highlight-color color\n"
+      "                       empasize pixel differences with this color\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -lowlight-color color\n"
+      "                       de-emphasize pixel differences with this color\n"
+      "  -metric type         measure differences between images with this metric\n"
+      "  -monitor             monitor progress\n"
+      "  -negate              replace every pixel with its complementary color \n"
+      "  -passphrase filename get the passphrase from this file\n"
+      "  -precision value     maximum number of significant digits to print\n"
+      "  -profile filename    add, delete, or apply an image profile\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -read-mask filename  associate a read mask with the image\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set attribute value set an image attribute\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -repage geometry     size and location of an image canvas\n"
+      "  -similarity-threshold value\n"
+      "                       minimum distortion for (sub)image match\n"
+      "  -size geometry       width and height of image\n"
+      "  -subimage-search     search for subimage\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -type type           image type\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -version             print version information\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -write-mask filename  associate a write mask with the image",
+    stack_operators[] =
+      "  -delete indexes      delete the image from the image sequence";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] image reconstruct difference\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Channel Operators:\n");
-  for (p=channel_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(channel_operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nImage Stack Operators:\n");
-  for (p=stack_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(stack_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
@@ -715,7 +690,7 @@
             if (i == (ssize_t) argc)
               ThrowCompareException(OptionError,"MissingArgument",option);
             gravity=ParseCommandOption(MagickGravityOptions,MagickFalse,
-              argv[i]); 
+              argv[i]);
             if (gravity < 0)
               ThrowCompareException(OptionError,"UnrecognizedGravityType",
                 argv[i]);
@@ -874,6 +849,26 @@
       }
       case 'p':
       {
+        if (LocaleCompare("passphrase",option+1) == 0)
+          {
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowCompareException(OptionError,"MissingArgument",option);
+            break;
+          }
+        if (LocaleCompare("precision",option+1) == 0)
+          {
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowCompareException(OptionError,"MissingArgument",option);
+            if (IsGeometry(argv[i]) == MagickFalse)
+              ThrowCompareInvalidArgumentException(option,argv[i]);
+            break;
+          }
         if (LocaleCompare("profile",option+1) == 0)
           {
             i++;
@@ -1247,7 +1242,8 @@
             case PeakAbsoluteErrorMetric:
             case RootMeanSquaredErrorMetric:
             {
-              (void) FormatLocaleFile(stderr,"%g (%g)",QuantumRange*distortion,
+              (void) FormatLocaleFile(stderr,"%.*g (%.*g)",GetMagickPrecision(),
+                QuantumRange*distortion,GetMagickPrecision(),
                 (double) distortion);
               break;
             }
@@ -1258,22 +1254,25 @@
             case StructuralSimilarityErrorMetric:
             case StructuralDissimilarityErrorMetric:
             {
-              (void) FormatLocaleFile(stderr,"%g",distortion);
+              (void) FormatLocaleFile(stderr,"%.*g",GetMagickPrecision(),
+                distortion);
               break;
             }
             case MeanErrorPerPixelErrorMetric:
             {
-              (void) FormatLocaleFile(stderr,"%g (%g, %g)",distortion,
-                image->error.normalized_mean_error,
-                image->error.normalized_maximum_error);
+              (void) FormatLocaleFile(stderr,"%.*g (%.*g, %.*g)",
+                GetMagickPrecision(),distortion,
+                GetMagickPrecision(),image->error.normalized_mean_error,
+                GetMagickPrecision(),image->error.normalized_maximum_error);
               break;
             }
             case UndefinedErrorMetric:
               break;
           }
           if (subimage_search != MagickFalse)
-            (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)
-              difference_image->page.x,(double) difference_image->page.y);
+            (void) FormatLocaleFile(stderr," @ %.20g,%.20g",
+              (double) difference_image->page.x,
+              (double) difference_image->page.y);
         }
       else
         {
@@ -1302,56 +1301,72 @@
                 case RGBColorspace:
                 default:
                 {
-                  (void) FormatLocaleFile(stderr,"    red: %g (%g)\n",
-                    QuantumRange*channel_distortion[RedPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    red: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[RedPixelChannel],GetMagickPrecision(),
                     channel_distortion[RedPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    green: %g (%g)\n",
-                    QuantumRange*channel_distortion[GreenPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    green: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[GreenPixelChannel],GetMagickPrecision(),
                     channel_distortion[GreenPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    blue: %g (%g)\n",
-                    QuantumRange*channel_distortion[BluePixelChannel],
+                  (void) FormatLocaleFile(stderr,"    blue: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[BluePixelChannel],GetMagickPrecision(),
                     channel_distortion[BluePixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g (%g)\n",
-                      QuantumRange*channel_distortion[AlphaPixelChannel],
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g (%.*g)\n",
+                      GetMagickPrecision(),QuantumRange*
+                      channel_distortion[AlphaPixelChannel],
+                      GetMagickPrecision(),
                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
                 case CMYKColorspace:
                 {
-                  (void) FormatLocaleFile(stderr,"    cyan: %g (%g)\n",
-                    QuantumRange*channel_distortion[CyanPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    cyan: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[CyanPixelChannel],GetMagickPrecision(),
                     channel_distortion[CyanPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    magenta: %g (%g)\n",
-                    QuantumRange*channel_distortion[MagentaPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    magenta: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[MagentaPixelChannel],
+                    GetMagickPrecision(),
                     channel_distortion[MagentaPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    yellow: %g (%g)\n",
-                    QuantumRange*channel_distortion[YellowPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    yellow: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[YellowPixelChannel],GetMagickPrecision(),
                     channel_distortion[YellowPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    black: %g (%g)\n",
-                    QuantumRange*channel_distortion[BlackPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    black: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[BlackPixelChannel],GetMagickPrecision(),
                     channel_distortion[BlackPixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g (%g)\n",
-                      QuantumRange*channel_distortion[AlphaPixelChannel],
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g (%.*g)\n",
+                      GetMagickPrecision(),QuantumRange*
+                      channel_distortion[AlphaPixelChannel],
+                      GetMagickPrecision(),
                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
                 case LinearGRAYColorspace:
                 case GRAYColorspace:
                 {
-                  (void) FormatLocaleFile(stderr,"    gray: %g (%g)\n",
-                    QuantumRange*channel_distortion[GrayPixelChannel],
+                  (void) FormatLocaleFile(stderr,"    gray: %.*g (%.*g)\n",
+                    GetMagickPrecision(),QuantumRange*
+                    channel_distortion[GrayPixelChannel],GetMagickPrecision(),
                     channel_distortion[GrayPixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g (%g)\n",
-                      QuantumRange*channel_distortion[AlphaPixelChannel],
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g (%.*g)\n",
+                      GetMagickPrecision(),QuantumRange*
+                      channel_distortion[AlphaPixelChannel],
+                      GetMagickPrecision(),
                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
               }
-              (void) FormatLocaleFile(stderr,"    all: %g (%g)\n",
-                QuantumRange*channel_distortion[MaxPixelChannels],
+              (void) FormatLocaleFile(stderr,"    all: %.*g (%.*g)\n",
+                GetMagickPrecision(),QuantumRange*
+                channel_distortion[MaxPixelChannels],GetMagickPrecision(),
                 channel_distortion[MaxPixelChannels]);
               break;
             }
@@ -1367,53 +1382,59 @@
                 case RGBColorspace:
                 default:
                 {
-                  (void) FormatLocaleFile(stderr,"    red: %g\n",
-                    channel_distortion[RedPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    green: %g\n",
-                    channel_distortion[GreenPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    blue: %g\n",
-                    channel_distortion[BluePixelChannel]);
+                  (void) FormatLocaleFile(stderr,"    red: %.*g\n",
+                    GetMagickPrecision(),channel_distortion[RedPixelChannel]);
+                  (void) FormatLocaleFile(stderr,"    green: %.*g\n",
+                    GetMagickPrecision(),channel_distortion[GreenPixelChannel]);
+                  (void) FormatLocaleFile(stderr,"    blue: %.*g\n",
+                    GetMagickPrecision(),channel_distortion[BluePixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g\n",
-                      channel_distortion[AlphaPixelChannel]);
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g\n",
+                      GetMagickPrecision(),
+                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
                 case CMYKColorspace:
                 {
-                  (void) FormatLocaleFile(stderr,"    cyan: %g\n",
-                    channel_distortion[CyanPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    magenta: %g\n",
+                  (void) FormatLocaleFile(stderr,"    cyan: %.*g\n",
+                    GetMagickPrecision(),channel_distortion[CyanPixelChannel]);
+                  (void) FormatLocaleFile(stderr,"    magenta: %.*g\n",
+                    GetMagickPrecision(),
                     channel_distortion[MagentaPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    yellow: %g\n",
+                  (void) FormatLocaleFile(stderr,"    yellow: %.*g\n",
+                    GetMagickPrecision(),
                     channel_distortion[YellowPixelChannel]);
-                  (void) FormatLocaleFile(stderr,"    black: %g\n",
+                  (void) FormatLocaleFile(stderr,"    black: %.*g\n",
+                    GetMagickPrecision(),
                     channel_distortion[BlackPixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g\n",
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g\n",
+                      GetMagickPrecision(),
                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
                 case LinearGRAYColorspace:
                 case GRAYColorspace:
                 {
-                  (void) FormatLocaleFile(stderr,"    gray: %g\n",
-                    channel_distortion[GrayPixelChannel]);
+                  (void) FormatLocaleFile(stderr,"    gray: %.*g\n",
+                    GetMagickPrecision(),channel_distortion[GrayPixelChannel]);
                   if (image->alpha_trait != UndefinedPixelTrait)
-                    (void) FormatLocaleFile(stderr,"    alpha: %g\n",
+                    (void) FormatLocaleFile(stderr,"    alpha: %.*g\n",
+                      GetMagickPrecision(),
                       channel_distortion[AlphaPixelChannel]);
                   break;
                 }
               }
-              (void) FormatLocaleFile(stderr,"    all: %g\n",
-                channel_distortion[MaxPixelChannels]);
+              (void) FormatLocaleFile(stderr,"    all: %.*g\n",
+                GetMagickPrecision(),channel_distortion[MaxPixelChannels]);
               break;
             }
             case MeanErrorPerPixelErrorMetric:
             {
-              (void) FormatLocaleFile(stderr,"    %g (%g, %g)\n",
-                channel_distortion[MaxPixelChannels],
-                image->error.normalized_mean_error,
-                image->error.normalized_maximum_error);
+              (void) FormatLocaleFile(stderr,"    %.*g (%.*g, %.*g)\n",
+                GetMagickPrecision(),channel_distortion[MaxPixelChannels],
+                GetMagickPrecision(),image->error.normalized_mean_error,
+                GetMagickPrecision(),image->error.normalized_maximum_error);
               break;
             }
             case UndefinedErrorMetric:
diff --git a/MagickWand/compare.h b/MagickWand/compare.h
index 1c7af12..ddc6e6b 100644
--- a/MagickWand/compare.h
+++ b/MagickWand/compare.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/composite.c b/MagickWand/composite.c
index 9e28c91..39dfbf7 100644
--- a/MagickWand/composite.c
+++ b/MagickWand/composite.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -110,7 +110,7 @@
 */
 
 static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image,
-  Image *composite_image,CompositeOptions *composite_options,
+  Image *composite_image,Image *mask_image,CompositeOptions *composite_options,
   ExceptionInfo *exception)
 {
   const char
@@ -230,9 +230,30 @@
               /*
                 Digitally composite image.
               */
-              status&=CompositeImage(*image,composite_image,
-                composite_options->compose,composite_options->clip_to_self,
-                geometry.x,geometry.y,exception);
+              if (mask_image == (Image *) NULL)
+                status&=CompositeImage(*image,composite_image,
+                  composite_options->compose,composite_options->clip_to_self,
+                  geometry.x,geometry.y,exception);
+              else
+                {
+                  Image
+                    *clone_image;
+
+                  clone_image=CloneImage(*image,0,0,MagickTrue,exception);
+                  if (clone_image != (Image *) NULL)
+                    {
+                      status&=CompositeImage(*image,composite_image,
+                        composite_options->compose,
+                        composite_options->clip_to_self,geometry.x,geometry.y,
+                        exception);
+                      status&=CompositeImage(*image,mask_image,
+                        CopyAlphaCompositeOp,MagickTrue,0,0,exception);
+                      status&=CompositeImage(clone_image,*image,OverCompositeOp,
+                        composite_options->clip_to_self,0,0,exception);
+                      *image=DestroyImageList(*image);
+                      *image=clone_image;
+                    }
+                }
             }
       (void) SetPixelChannelMask(composite_image,channel_mask);
     }
@@ -241,135 +262,115 @@
 
 static MagickBooleanType CompositeUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-blend geometry      blend images",
-      "-border geometry     surround image with a border of color",
-      "-bordercolor color   border color",
-      "-channel mask        set the image channel mask",
-      "-colors value        preferred number of colors in the image",
-      "-decipher filename    convert cipher pixels to plain pixels",
-      "-displace geometry   shift lookup according to a relative displacement map",
-      "-dissolve value      dissolve the two images a given percent",
-      "-distort geometry    shift lookup according to a absolute distortion map",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-extract geometry    extract area from image",
-      "-geometry geometry   location of the composite image",
-      "-identify            identify the format and characteristics of the image",
-      "-monochrome          transform image to black and white",
-      "-negate              replace every pixel with its complementary color ",
-      "-profile filename    add ICM or IPTC information profile to image",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-repage geometry     size and location of an image canvas (operator)",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-resize geometry     resize the image",
-      "-sharpen geometry    sharpen the image",
-      "-shave geometry      shave pixels from the image edges",
-      "-stegano offset      hide watermark within an image",
-      "-stereo geometry     combine two image to create a stereo anaglyph",
-      "-strip               strip image of all profiles and comments",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-transform           affine transform image",
-      "-type type           image type",
-      "-unsharp geometry    sharpen the image",
-      "-watermark geometry  percent brightness and saturation of a watermark",
-      "-write filename      write images to this file",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-affine matrix       affine transform matrix",
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-blue-primary point  chromaticity blue primary point",
-      "-colorspace type     alternate image colorspace",
-      "-comment string      annotate image with comment",
-      "-compose operator    composite operator",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-depth value         image depth",
-      "-density geometry    horizontal and vertical density of the image",
-      "-display server      get image or font from this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-encoding type       text encoding type",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-filter type         use this filter when resizing an image",
-      "-font name           render text with this font",
-      "-format \"string\"     output formatted image characteristics",
-      "-gravity type        which direction to gravitate towards",
-      "-green-primary point chromaticity green primary point",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-label string        assign a label to an image",
-      "-limit type value    pixel cache resource limit",
-      "-matte               store matte channel if the image has one",
-      "-monitor             monitor progress",
-      "-page geometry       size and location of an image canvas (setting)",
-      "-pointsize value     font point size",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quiet               suppress all warning messages",
-      "-red-primary point   chromaticity red primary point",
-      "-regard-warnings     pay attention to warning messages",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scene value         image scene number",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-size geometry       width and height of image",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-transparent-color color",
-      "                     transparent color",
-      "-treedepth value     color tree depth",
-      "-tile                repeat composite operation across and down image",
-      "-units type          the units of image resolution",
-      "-verbose             print detailed information about the image",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-white-point point   chromaticity white point",
-      (char *) NULL
-    },
-    *stack_operators[]=
-    {
-      "-swap indexes        swap two images in the image sequence",
-      (char *) NULL
-    };
-
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -blend geometry      blend images\n"
+      "  -border geometry     surround image with a border of color\n"
+      "  -bordercolor color   border color\n"
+      "  -channel mask        set the image channel mask\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -decipher filename    convert cipher pixels to plain pixels\n"
+      "  -displace geometry   shift lookup according to a relative displacement map\n"
+      "  -dissolve value      dissolve the two images a given percent\n"
+      "  -distort geometry    shift lookup according to a absolute distortion map\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -extract geometry    extract area from image\n"
+      "  -geometry geometry   location of the composite image\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -negate              replace every pixel with its complementary color \n"
+      "  -profile filename    add ICM or IPTC information profile to image\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -repage geometry     size and location of an image canvas (operator)\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -resize geometry     resize the image\n"
+      "  -sharpen geometry    sharpen the image\n"
+      "  -shave geometry      shave pixels from the image edges\n"
+      "  -stegano offset      hide watermark within an image\n"
+      "  -stereo geometry     combine two image to create a stereo anaglyph\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -transform           affine transform image\n"
+      "  -type type           image type\n"
+      "  -unsharp geometry    sharpen the image\n"
+      "  -watermark geometry  percent brightness and saturation of a watermark\n"
+      "  -write filename      write images to this file",
+    settings[] =
+      "  -affine matrix       affine transform matrix\n"
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -blue-primary point  chromaticity blue primary point\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compose operator    composite operator\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -depth value         image depth\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -display server      get image or font from this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -encoding type       text encoding type\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -font name           render text with this font\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -gravity type        which direction to gravitate towards\n"
+      "  -green-primary point chromaticity green primary point\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -monitor             monitor progress\n"
+      "  -page geometry       size and location of an image canvas (setting)\n"
+      "  -pointsize value     font point size\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -red-primary point   chromaticity red primary point\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scene value         image scene number\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -size geometry       width and height of image\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -treedepth value     color tree depth\n"
+      "  -tile                repeat composite operation across and down image\n"
+      "  -units type          the units of image resolution\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -white-point point   chromaticity white point",
+    stack_operators[] =
+      "  -swap indexes        swap two images in the image sequence";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] image [options ...] composite\n"
     "  [ [options ...] mask ] [options ...] composite\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Stack Operators:\n");
-  for (p=stack_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(stack_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
@@ -385,6 +386,7 @@
 static void GetCompositeOptions(const ImageInfo *image_info,
   CompositeOptions *composite_options)
 {
+  (void) image_info;
   (void) memset(composite_options,0,sizeof(*composite_options));
   composite_options->channel=DefaultChannels;
   composite_options->compose=OverCompositeOp;
@@ -1656,18 +1658,7 @@
         }
     }
   RemoveImageStack(mask_image);
-  if (mask_image != (Image *) NULL)
-    {
-      if ((composite_options.compose == DisplaceCompositeOp) ||
-          (composite_options.compose == DistortCompositeOp))
-        status&=CompositeImage(composite_image,mask_image,
-          CopyGreenCompositeOp,MagickTrue,0,0,exception);
-      else
-        status&=CompositeImage(composite_image,mask_image,IntensityCompositeOp,
-          MagickTrue,0,0,exception);
-      mask_image=DestroyImage(mask_image);
-    }
-  status&=CompositeImageList(image_info,&images,composite_image,
+  status&=CompositeImageList(image_info,&images,composite_image,mask_image,
     &composite_options,exception);
   composite_image=DestroyImage(composite_image);
   /*
@@ -1686,7 +1677,7 @@
       (void) ConcatenateString(&(*metadata),text);
       text=DestroyString(text);
     }
-  images=DestroyImage(images);
+  images=DestroyImageList(images);
   RelinquishCompositeOptions(&composite_options);
   DestroyComposite();
   return(status != 0 ? MagickTrue : MagickFalse);
diff --git a/MagickWand/composite.h b/MagickWand/composite.h
index b3e2fa0..1a52d5d 100644
--- a/MagickWand/composite.h
+++ b/MagickWand/composite.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/conjure.c b/MagickWand/conjure.c
index c28175a..190df19 100644
--- a/MagickWand/conjure.c
+++ b/MagickWand/conjure.c
@@ -17,7 +17,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -89,38 +89,27 @@
 
 static MagickBooleanType ConjureUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-monitor             monitor progress",
-      "-quiet               suppress all warning messages",
-      "-regard-warnings     pay attention to warning messages",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-verbose             print detailed information about the image",
-      (char *) NULL
-    };
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    settings[] =
+      "  -monitor             monitor progress\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -verbose             print detailed information about the image";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] file ...]\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf("\nIn addition, define any key value pairs required by "
     "your script.  For\nexample,\n\n");
   (void) printf("    conjure -size 100x100 -color blue -foo bar script.msl\n");
diff --git a/MagickWand/conjure.h b/MagickWand/conjure.h
index 219cce7..51e06f3 100644
--- a/MagickWand/conjure.h
+++ b/MagickWand/conjure.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index 5cd8e46..267d917 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -17,7 +17,7 @@
 %                                April 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -45,21 +45,9 @@
 #include "MagickWand/studio.h"
 #include "MagickWand/MagickWand.h"
 #include "MagickWand/mogrify-private.h"
+#include "MagickCore/exception-private.h"
 #include "MagickCore/string-private.h"
 #include "MagickCore/utility-private.h"
-/*
-  Define declarations.
-*/
-#define ThrowFileException(exception,severity,tag,context) \
-{ \
-  char \
-    *message; \
- \
-  message=GetExceptionMessage(errno); \
-  (void) ThrowMagickException(exception,GetMagickModule(),severity, \
-    tag == (const char *) NULL ? "unknown" : tag,"'%s': %s",context,message); \
-  message=DestroyString(message); \
-}
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -143,364 +131,338 @@
 static MagickBooleanType ConvertUsage(void)
 {
   static const char
-    *channel_operators[]=
-    {
-      "-channel-fx expression",
-      "                     exchange, extract, or transfer one or more image channels",
-      "-separate            separate an image channel into a grayscale image",
-      (char *) NULL
-    },
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-distribute-cache port",
-      "                     distributed pixel cache spanning one or more servers",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-adaptive-blur geometry",
-      "                     adaptively blur pixels; decrease effect near edges",
-      "-adaptive-resize geometry",
-      "                     adaptively resize image using 'mesh' interpolation",
-      "-adaptive-sharpen geometry",
-      "                     adaptively sharpen pixels; increase effect near edges",
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-annotate geometry text",
-      "                     annotate the image with text",
-      "-auto-gamma          automagically adjust gamma level of image",
-      "-auto-level          automagically adjust color levels of image",
-      "-auto-orient         automagically orient (rotate) image",
-      "-auto-threshold method",
-      "                     automatically perform image thresholding",
-      "-bench iterations    measure performance",
-      "-black-threshold value",
-      "                     force all pixels below the threshold into black",
-      "-blue-shift factor   simulate a scene at nighttime in the moonlight",
-      "-blur geometry       reduce image noise and reduce detail levels",
-      "-border geometry     surround image with a border of color",
-      "-bordercolor color   border color",
-      "-brightness-contrast geometry",
-      "                     improve brightness / contrast of the image",
-      "-canny geometry      detect edges in the image",
-      "-cdl filename        color correct with a color decision list",
-      "-channel mask        set the image channel mask",
-      "-charcoal radius     simulate a charcoal drawing",
-      "-chop geometry       remove pixels from the image interior",
-      "-clahe geometry      contrast limited adaptive histogram equalization",
-      "-clamp               keep pixel values in range (0-QuantumRange)",
-      "-colorize value      colorize the image with the fill color",
-      "-color-matrix matrix apply color correction to the image",
-      "-connected-components connectivity",
-      "                     connected-components uniquely labeled",
-      "-contrast            enhance or reduce the image contrast",
-      "-contrast-stretch geometry",
-      "                     improve contrast by 'stretching' the intensity range",
-      "-convolve coefficients",
-      "                     apply a convolution kernel to the image",
-      "-cycle amount        cycle the image colormap",
-      "-decipher filename   convert cipher pixels to plain pixels",
-      "-deskew threshold    straighten an image",
-      "-despeckle           reduce the speckles within an image",
-      "-distort method args",
-      "                     distort images according to given method ad args",
-      "-draw string         annotate the image with a graphic primitive",
-      "-edge radius         apply a filter to detect edges in the image",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-emboss radius       emboss an image",
-      "-enhance             apply a digital filter to enhance a noisy image",
-      "-equalize            perform histogram equalization to an image",
-      "-evaluate operator value",
-      "                     evaluate an arithmetic, relational, or logical expression",
-      "-extent geometry     set the image size",
-      "-extract geometry    extract area from image",
-      "-fft                 implements the discrete Fourier transform (DFT)",
-      "-flip                flip image vertically",
-      "-floodfill geometry color",
-      "                     floodfill the image with color",
-      "-flop                flop image horizontally",
-      "-frame geometry      surround image with an ornamental border",
-      "-function name parameters",
-      "                     apply function over image values",
-      "-gamma value         level of gamma correction",
-      "-gaussian-blur geometry",
-      "                     reduce image noise and reduce detail levels",
-      "-geometry geometry   preferred size or location of the image",
-      "-grayscale method    convert image to grayscale",
-      "-hough-lines geometry",
-      "                     identify lines in the image",
-      "-identify            identify the format and characteristics of the image",
-      "-ift                 implements the inverse discrete Fourier transform (DFT)",
-      "-implode amount      implode image pixels about the center",
-      "-kuwahara geometry   edge preserving noise reduction filter",
-      "-lat geometry        local adaptive thresholding",
-      "-level value         adjust the level of image contrast",
-      "-level-colors color,color",
-      "                     level image with the given colors",
-      "-linear-stretch geometry",
-      "                     improve contrast by 'stretching with saturation'",
-      "-liquid-rescale geometry",
-      "                     rescale image with seam-carving",
-      "-local-contrast geometry",
-      "                     enhance local contrast",
-      "-mean-shift geometry delineate arbitrarily shaped clusters in the image",
-      "-median geometry     apply a median filter to the image",
-      "-mode geometry       make each pixel the 'predominant color' of the",
-      "                     neighborhood",
-      "-modulate value      vary the brightness, saturation, and hue",
-      "-monochrome          transform image to black and white",
-      "-morphology method kernel",
-      "                     apply a morphology method to the image",
-      "-motion-blur geometry",
-      "                     simulate motion blur",
-      "-negate              replace every pixel with its complementary color ",
-      "-noise geometry      add or reduce noise in an image",
-      "-normalize           transform image to span the full range of colors",
-      "-opaque color        change this color to the fill color",
-      "-ordered-dither NxN",
-      "                     add a noise pattern to the image with specific",
-      "                     amplitudes",
-      "-paint radius        simulate an oil painting",
-      "-perceptible epsilon",
-      "                     pixel value less than |epsilon| become epsilon or",
-      "                     -epsilon",
-      "-polaroid angle      simulate a Polaroid picture",
-      "-posterize levels    reduce the image to a limited number of color levels",
-      "-profile filename    add, delete, or apply an image profile",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-raise value         lighten/darken image edges to create a 3-D effect",
-      "-random-threshold low,high",
-      "                     random threshold the image",
-      "-range-threshold values",
-      "                     perform either hard or soft thresholding within some range of values in an image",
-      "-region geometry     apply options to a portion of the image",
-      "-render              render vector graphics",
-      "-resample geometry   change the resolution of an image",
-      "-resize geometry     resize the image",
-      "-roll geometry       roll an image vertically or horizontally",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-rotational-blur angle",
-      "                     rotational blur the image",
-      "-sample geometry     scale image with pixel sampling",
-      "-scale geometry      scale the image",
-      "-segment values      segment an image",
-      "-selective-blur geometry",
-      "                     selectively blur pixels within a contrast threshold",
-      "-sepia-tone threshold",
-      "                     simulate a sepia-toned photo",
-      "-set property value  set an image property",
-      "-shade degrees       shade the image using a distant light source",
-      "-shadow geometry     simulate an image shadow",
-      "-sharpen geometry    sharpen the image",
-      "-shave geometry      shave pixels from the image edges",
-      "-shear geometry      slide one edge of the image along the X or Y axis",
-      "-sigmoidal-contrast geometry",
-      "                     increase the contrast without saturating highlights or",
-      "                     shadows",
-      "-sketch geometry     simulate a pencil sketch",
-      "-solarize threshold  negate all pixels above the threshold level",
-      "-sparse-color method args",
-      "                     fill in a image based on a few color points",
-      "-splice geometry     splice the background color into the image",
-      "-spread radius       displace image pixels by a random amount",
-      "-statistic type geometry",
-      "                     replace each pixel with corresponding statistic from the",
-      "                     neighborhood",
-      "-strip               strip image of all profiles and comments",
-      "-swirl degrees       swirl image pixels about the center",
-      "-threshold value     threshold the image",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-tile filename       tile image when filling a graphic primitive",
-      "-tint value          tint the image with the fill color",
-      "-transform           affine transform image",
-      "-transparent color   make this color transparent within the image",
-      "-transpose           flip image vertically and rotate 90 degrees",
-      "-transverse          flop image horizontally and rotate 270 degrees",
-      "-trim                trim image edges",
-      "-type type           image type",
-      "-unique-colors       discard all but one of any pixel color",
-      "-unsharp geometry    sharpen the image",
-      "-vignette geometry   soften the edges of the image in vignette style",
-      "-wave geometry       alter an image along a sine wave",
-      "-wavelet-denoise threshold",
-      "                     removes noise from the image using a wavelet transform",
-      "-white-threshold value",
-      "                     force all pixels above the threshold into white",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-append              append an image sequence",
-      "-clut                apply a color lookup table to the image",
-      "-coalesce            merge a sequence of images",
-      "-combine             combine a sequence of images",
-      "-compare             mathematically and visually annotate the difference between an image and its reconstruction",
-      "-complex operator    perform complex mathematics on an image sequence",
-      "-composite           composite image",
-      "-copy geometry offset",
-      "                     copy pixels from one area of an image to another",
-      "-crop geometry       cut out a rectangular region of the image",
-      "-deconstruct         break down an image sequence into constituent parts",
-      "-evaluate-sequence operator",
-      "                     evaluate an arithmetic, relational, or logical expression",
-      "-flatten             flatten a sequence of images",
-      "-fx expression       apply mathematical expression to an image channel(s)",
-      "-hald-clut           apply a Hald color lookup table to the image",
-      "-layers method       optimize, merge, or compare image layers",
-      "-morph value         morph an image sequence",
-      "-mosaic              create a mosaic from an image sequence",
-      "-poly terms          build a polynomial from the image sequence and the corresponding",
-      "                     terms (coefficients and degree pairs).",
-      "-print string        interpret string and print to console",
-      "-process arguments   process the image with a custom image filter",
-      "-smush geometry      smush an image sequence together",
-      "-write filename      write images to this file",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-adjoin              join images into a single multi-image file",
-      "-affine matrix       affine transform matrix",
-      "-alpha option        activate, deactivate, reset, or set the alpha channel",
-      "-antialias           remove pixel-aliasing",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-attenuate value     lessen (or intensify) when adding noise to an image",
-      "-background color    background color",
-      "-bias value          add bias when convolving an image",
-      "-black-point-compensation",
-      "                     use black point compensation",
-      "-blue-primary point  chromaticity blue primary point",
-      "-bordercolor color   border color",
-      "-caption string      assign a caption to an image",
-      "-clip                clip along the first path from the 8BIM profile",
-      "-clip-mask filename  associate a clip mask with the image",
-      "-clip-path id        clip along a named path from the 8BIM profile",
-      "-colors value        preferred number of colors in the image",
-      "-colorspace type     alternate image colorspace",
-      "-comment string      annotate image with comment",
-      "-compose operator    set image composite operator",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-delay value         display the next image after pausing",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-direction type      render text right-to-left or left-to-right",
-      "-display server      get image or font from this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-encoding type       text encoding type",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-family name         render text with this font family",
-      "-features distance   analyze image features (e.g. contrast, correlation)",
-      "-fill color          color to use when filling a graphic primitive",
-      "-filter type         use this filter when resizing an image",
-      "-font name           render text with this font",
-      "-format \"string\"     output formatted image characteristics",
-      "-fuzz distance       colors within this distance are considered equal",
-      "-gravity type        horizontal and vertical text placement",
-      "-green-primary point chromaticity green primary point",
-      "-intensity method    method to generate an intensity value from a pixel",
-      "-intent type         type of rendering intent when managing the image color",
-      "-interlace type      type of image interlacing scheme",
-      "-interline-spacing value",
-      "                     set the space between two text lines",
-      "-interpolate method  pixel color interpolation method",
-      "-interword-spacing value",
-      "                     set the space between two words",
-      "-kerning value       set the space between two letters",
-      "-label string        assign a label to an image",
-      "-limit type value    pixel cache resource limit",
-      "-loop iterations     add Netscape loop extension to your GIF animation",
-      "-matte               store matte channel if the image has one",
-      "-mattecolor color    frame color",
-      "-moments             report image moments",
-      "-monitor             monitor progress",
-      "-orient type         image orientation",
-      "-page geometry       size and location of an image canvas (setting)",
-      "-ping                efficiently determine image attributes",
-      "-pointsize value     font point size",
-      "-precision value     maximum number of significant digits to print",
-      "-preview type        image preview type",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quiet               suppress all warning messages",
-      "-read-mask filename  associate a read mask with the image",
-      "-red-primary point   chromaticity red primary point",
-      "-regard-warnings     pay attention to warning messages",
-      "-remap filename      transform image colors to match this set of colors",
-      "-repage geometry     size and location of an image canvas",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scene value         image scene number",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-size geometry       width and height of image",
-      "-stretch type        render text with this font stretch",
-      "-stroke color        graphic primitive stroke color",
-      "-strokewidth value   graphic primitive stroke width",
-      "-style type          render text with this font style",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-texture filename    name of texture to tile onto the image background",
-      "-tile-offset geometry",
-      "                     tile offset",
-      "-treedepth value     color tree depth",
-      "-transparent-color color",
-      "                     transparent color",
-      "-undercolor color    annotation bounding box color",
-      "-units type          the units of image resolution",
-      "-verbose             print detailed information about the image",
-      "-view                FlashPix viewing transforms",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-weight type         render text with this font weight",
-      "-white-point point   chromaticity white point",
-      "-write-mask filename associate a write mask with the image",
-      (char *) NULL
-    },
-    *stack_operators[]=
-    {
-      "-clone indexes       clone an image",
-      "-delete indexes      delete the image from the image sequence",
-      "-duplicate count,indexes",
-      "                     duplicate an image one or more times",
-      "-insert index        insert last image into the image sequence",
-      "-reverse             reverse image sequence",
-      "-swap indexes        swap two images in the image sequence",
-      (char *) NULL
-    };
-
-  const char
-    **p;
+    channel_operators[] =
+      "  -channel-fx expression\n"
+      "                       exchange, extract, or transfer one or more image channels\n"
+      "  -separate            separate an image channel into a grayscale image",
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -distribute-cache port\n"
+      "                       distributed pixel cache spanning one or more servers\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -adaptive-blur geometry\n"
+      "                       adaptively blur pixels; decrease effect near edges\n"
+      "  -adaptive-resize geometry\n"
+      "                       adaptively resize image using 'mesh' interpolation\n"
+      "  -adaptive-sharpen geometry\n"
+      "                       adaptively sharpen pixels; increase effect near edges\n"
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -annotate geometry text\n"
+      "                       annotate the image with text\n"
+      "  -auto-gamma          automagically adjust gamma level of image\n"
+      "  -auto-level          automagically adjust color levels of image\n"
+      "  -auto-orient         automagically orient (rotate) image\n"
+      "  -auto-threshold method\n"
+      "                       automatically perform image thresholding\n"
+      "  -bench iterations    measure performance\n"
+      "  -black-threshold value\n"
+      "                       force all pixels below the threshold into black\n"
+      "  -blue-shift factor   simulate a scene at nighttime in the moonlight\n"
+      "  -blur geometry       reduce image noise and reduce detail levels\n"
+      "  -border geometry     surround image with a border of color\n"
+      "  -bordercolor color   border color\n"
+      "  -brightness-contrast geometry\n"
+      "                       improve brightness / contrast of the image\n"
+      "  -canny geometry      detect edges in the image\n"
+      "  -cdl filename        color correct with a color decision list\n"
+      "  -channel mask        set the image channel mask\n"
+      "  -charcoal radius     simulate a charcoal drawing\n"
+      "  -chop geometry       remove pixels from the image interior\n"
+      "  -clahe geometry      contrast limited adaptive histogram equalization\n"
+      "  -clamp               keep pixel values in range (0-QuantumRange)\n"
+      "  -colorize value      colorize the image with the fill color\n"
+      "  -color-matrix matrix apply color correction to the image\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -connected-components connectivity\n"
+      "                       connected-components uniquely labeled\n"
+      "  -contrast            enhance or reduce the image contrast\n"
+      "  -contrast-stretch geometry\n"
+      "                       improve contrast by 'stretching' the intensity range\n"
+      "  -convolve coefficients\n"
+      "                       apply a convolution kernel to the image\n"
+      "  -cycle amount        cycle the image colormap\n"
+      "  -decipher filename   convert cipher pixels to plain pixels\n"
+      "  -deskew threshold    straighten an image\n"
+      "  -despeckle           reduce the speckles within an image\n"
+      "  -distort method args\n"
+      "                       distort images according to given method ad args\n"
+      "  -draw string         annotate the image with a graphic primitive\n"
+      "  -edge radius         apply a filter to detect edges in the image\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -emboss radius       emboss an image\n"
+      "  -enhance             apply a digital filter to enhance a noisy image\n"
+      "  -equalize            perform histogram equalization to an image\n"
+      "  -evaluate operator value\n"
+      "                       evaluate an arithmetic, relational, or logical expression\n"
+      "  -extent geometry     set the image size\n"
+      "  -extract geometry    extract area from image\n"
+      "  -fft                 implements the discrete Fourier transform (DFT)\n"
+      "  -flip                flip image vertically\n"
+      "  -floodfill geometry color\n"
+      "                       floodfill the image with color\n"
+      "  -flop                flop image horizontally\n"
+      "  -frame geometry      surround image with an ornamental border\n"
+      "  -function name parameters\n"
+      "                       apply function over image values\n"
+      "  -gamma value         level of gamma correction\n"
+      "  -gaussian-blur geometry\n"
+      "                       reduce image noise and reduce detail levels\n"
+      "  -geometry geometry   preferred size or location of the image\n"
+      "  -grayscale method    convert image to grayscale\n"
+      "  -hough-lines geometry\n"
+      "                       identify lines in the image\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -ift                 implements the inverse discrete Fourier transform (DFT)\n"
+      "  -implode amount      implode image pixels about the center\n"
+      "  -kmeans geometry     K means color reduction\n"
+      "  -kuwahara geometry   edge preserving noise reduction filter\n"
+      "  -lat geometry        local adaptive thresholding\n"
+      "  -level value         adjust the level of image contrast\n"
+      "  -level-colors color,color\n"
+      "                       level image with the given colors\n"
+      "  -linear-stretch geometry\n"
+      "                       improve contrast by 'stretching with saturation'\n"
+      "  -liquid-rescale geometry\n"
+      "                       rescale image with seam-carving\n"
+      "  -local-contrast geometry\n"
+      "                       enhance local contrast\n"
+      "  -mean-shift geometry delineate arbitrarily shaped clusters in the image\n"
+      "  -median geometry     apply a median filter to the image\n"
+      "  -mode geometry       make each pixel the 'predominant color' of the\n"
+      "                       neighborhood\n"
+      "  -modulate value      vary the brightness, saturation, and hue\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -morphology method kernel\n"
+      "                       apply a morphology method to the image\n"
+      "  -motion-blur geometry\n"
+      "                       simulate motion blur\n"
+      "  -negate              replace every pixel with its complementary color \n"
+      "  -noise geometry      add or reduce noise in an image\n"
+      "  -normalize           transform image to span the full range of colors\n"
+      "  -opaque color        change this color to the fill color\n"
+      "  -ordered-dither NxN\n"
+      "                       add a noise pattern to the image with specific\n"
+      "                       amplitudes\n"
+      "  -paint radius        simulate an oil painting\n"
+      "  -perceptible epsilon\n"
+      "                       pixel value less than |epsilon| become epsilon or\n"
+      "                       -epsilon\n"
+      "  -polaroid angle      simulate a Polaroid picture\n"
+      "  -posterize levels    reduce the image to a limited number of color levels\n"
+      "  -profile filename    add, delete, or apply an image profile\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -raise value         lighten/darken image edges to create a 3-D effect\n"
+      "  -random-threshold low,high\n"
+      "                       random threshold the image\n"
+      "  -range-threshold values\n"
+      "                       perform either hard or soft thresholding within some range of values in an image\n"
+      "  -region geometry     apply options to a portion of the image\n"
+      "  -render              render vector graphics\n"
+      "  -resample geometry   change the resolution of an image\n"
+      "  -resize geometry     resize the image\n"
+      "  -roll geometry       roll an image vertically or horizontally\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -rotational-blur angle\n"
+      "                       rotational blur the image\n"
+      "  -sample geometry     scale image with pixel sampling\n"
+      "  -scale geometry      scale the image\n"
+      "  -segment values      segment an image\n"
+      "  -selective-blur geometry\n"
+      "                       selectively blur pixels within a contrast threshold\n"
+      "  -sepia-tone threshold\n"
+      "                       simulate a sepia-toned photo\n"
+      "  -set property value  set an image property\n"
+      "  -shade degrees       shade the image using a distant light source\n"
+      "  -shadow geometry     simulate an image shadow\n"
+      "  -sharpen geometry    sharpen the image\n"
+      "  -shave geometry      shave pixels from the image edges\n"
+      "  -shear geometry      slide one edge of the image along the X or Y axis\n"
+      "  -sigmoidal-contrast geometry\n"
+      "                       increase the contrast without saturating highlights or\n"
+      "                       shadows\n"
+      "  -sketch geometry     simulate a pencil sketch\n"
+      "  -solarize threshold  negate all pixels above the threshold level\n"
+      "  -sparse-color method args\n"
+      "                       fill in a image based on a few color points\n"
+      "  -splice geometry     splice the background color into the image\n"
+      "  -spread radius       displace image pixels by a random amount\n"
+      "  -statistic type geometry\n"
+      "                       replace each pixel with corresponding statistic from the\n"
+      "                       neighborhood\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -swirl degrees       swirl image pixels about the center\n"
+      "  -threshold value     threshold the image\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -tile filename       tile image when filling a graphic primitive\n"
+      "  -tint value          tint the image with the fill color\n"
+      "  -transform           affine transform image\n"
+      "  -transparent color   make this color transparent within the image\n"
+      "  -transpose           flip image vertically and rotate 90 degrees\n"
+      "  -transverse          flop image horizontally and rotate 270 degrees\n"
+      "  -trim                trim image edges\n"
+      "  -type type           image type\n"
+      "  -unique-colors       discard all but one of any pixel color\n"
+      "  -unsharp geometry    sharpen the image\n"
+      "  -vignette geometry   soften the edges of the image in vignette style\n"
+      "  -wave geometry       alter an image along a sine wave\n"
+      "  -wavelet-denoise threshold\n"
+      "                       removes noise from the image using a wavelet transform\n"
+      "  -white-threshold value\n"
+      "                       force all pixels above the threshold into white",
+    sequence_operators[] =
+      "  -append              append an image sequence\n"
+      "  -clut                apply a color lookup table to the image\n"
+      "  -coalesce            merge a sequence of images\n"
+      "  -combine             combine a sequence of images\n"
+      "  -compare             mathematically and visually annotate the difference between an image and its reconstruction\n"
+      "  -complex operator    perform complex mathematics on an image sequence\n"
+      "  -composite           composite image\n"
+      "  -copy geometry offset\n"
+      "                       copy pixels from one area of an image to another\n"
+      "  -crop geometry       cut out a rectangular region of the image\n"
+      "  -deconstruct         break down an image sequence into constituent parts\n"
+      "  -evaluate-sequence operator\n"
+      "                       evaluate an arithmetic, relational, or logical expression\n"
+      "  -flatten             flatten a sequence of images\n"
+      "  -fx expression       apply mathematical expression to an image channel(s)\n"
+      "  -hald-clut           apply a Hald color lookup table to the image\n"
+      "  -layers method       optimize, merge, or compare image layers\n"
+      "  -morph value         morph an image sequence\n"
+      "  -mosaic              create a mosaic from an image sequence\n"
+      "  -poly terms          build a polynomial from the image sequence and the corresponding\n"
+      "                       terms (coefficients and degree pairs).\n"
+      "  -print string        interpret string and print to console\n"
+      "  -process arguments   process the image with a custom image filter\n"
+      "  -smush geometry      smush an image sequence together\n"
+      "  -write filename      write images to this file",
+    settings[] =
+      "  -adjoin              join images into a single multi-image file\n"
+      "  -affine matrix       affine transform matrix\n"
+      "  -alpha option        activate, deactivate, reset, or set the alpha channel\n"
+      "  -antialias           remove pixel-aliasing\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -attenuate value     lessen (or intensify) when adding noise to an image\n"
+      "  -background color    background color\n"
+      "  -bias value          add bias when convolving an image\n"
+      "  -black-point-compensation\n"
+      "                       use black point compensation\n"
+      "  -blue-primary point  chromaticity blue primary point\n"
+      "  -bordercolor color   border color\n"
+      "  -caption string      assign a caption to an image\n"
+      "  -clip                clip along the first path from the 8BIM profile\n"
+      "  -clip-mask filename  associate a clip mask with the image\n"
+      "  -clip-path id        clip along a named path from the 8BIM profile\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compose operator    set image composite operator\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -direction type      render text right-to-left or left-to-right\n"
+      "  -display server      get image or font from this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -encoding type       text encoding type\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -family name         render text with this font family\n"
+      "  -features distance   analyze image features (e.g. contrast, correlation)\n"
+      "  -fill color          color to use when filling a graphic primitive\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -font name           render text with this font\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -fuzz distance       colors within this distance are considered equal\n"
+      "  -gravity type        horizontal and vertical text placement\n"
+      "  -green-primary point chromaticity green primary point\n"
+      "  -intensity method    method to generate an intensity value from a pixel\n"
+      "  -intent type         type of rendering intent when managing the image color\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interline-spacing value\n"
+      "                       set the space between two text lines\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -interword-spacing value\n"
+      "                       set the space between two words\n"
+      "  -kerning value       set the space between two letters\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -loop iterations     add Netscape loop extension to your GIF animation\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -mattecolor color    frame color\n"
+      "  -moments             report image moments\n"
+      "  -monitor             monitor progress\n"
+      "  -orient type         image orientation\n"
+      "  -page geometry       size and location of an image canvas (setting)\n"
+      "  -ping                efficiently determine image attributes\n"
+      "  -pointsize value     font point size\n"
+      "  -precision value     maximum number of significant digits to print\n"
+      "  -preview type        image preview type\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -read-mask filename  associate a read mask with the image\n"
+      "  -red-primary point   chromaticity red primary point\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -remap filename      transform image colors to match this set of colors\n"
+      "  -repage geometry     size and location of an image canvas\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scene value         image scene number\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -size geometry       width and height of image\n"
+      "  -stretch type        render text with this font stretch\n"
+      "  -stroke color        graphic primitive stroke color\n"
+      "  -strokewidth value   graphic primitive stroke width\n"
+      "  -style type          render text with this font style\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -texture filename    name of texture to tile onto the image background\n"
+      "  -tile-offset geometry\n"
+      "                       tile offset\n"
+      "  -treedepth value     color tree depth\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -undercolor color    annotation bounding box color\n"
+      "  -units type          the units of image resolution\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -view                FlashPix viewing transforms\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -weight type         render text with this font weight\n"
+      "  -white-point point   chromaticity white point\n"
+      "  -write-mask filename associate a write mask with the image",
+    stack_operators[] =
+      "  -clone indexes       clone an image\n"
+      "  -delete indexes      delete the image from the image sequence\n"
+      "  -duplicate count,indexes\n"
+      "                       duplicate an image one or more times\n"
+      "  -insert index        insert last image into the image sequence\n"
+      "  -reverse             reverse image sequence\n"
+      "  -swap indexes        swap two images in the image sequence";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] "
     "file ...] [options ...] file\n",GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Channel Operators:\n");
-  for (p=channel_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(channel_operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nImage Stack Operators:\n");
-  for (p=stack_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(stack_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
@@ -1957,6 +1919,17 @@
               ThrowConvertInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("kmeans",option+1) == 0)
+          {
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowConvertException(OptionError,"MissingArgument",option);
+            if (IsGeometry(argv[i]) == MagickFalse)
+              ThrowConvertInvalidArgumentException(option,argv[i]);
+            break;
+          }
         if (LocaleCompare("kuwahara",option+1) == 0)
           {
             if (*option == '+')
@@ -2250,7 +2223,7 @@
             i++;
             if (i == (ssize_t) argc)
               ThrowConvertException(OptionError,"MissingArgument",option);
-            GetNextToken(argv[i],(const char **) NULL,MagickPathExtent,token);
+            (void) GetNextToken(argv[i],(const char **) NULL,MagickPathExtent,token);
             op=ParseCommandOption(MagickMorphologyOptions,MagickFalse,token);
             if (op < 0)
               ThrowConvertException(OptionError,"UnrecognizedMorphologyMethod",
@@ -3300,7 +3273,7 @@
     ThrowConvertException(OptionError,"NoImagesDefined",argv[argc-1]);
   if (IsCommandOption(argv[argc-1]))
     ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
-  if (LocaleCompare(" ",argv[argc-1])==0) /* common line continuation error */
+  if (LocaleCompare(" ",argv[argc-1]) == 0)  /* common line continuation error */
     ThrowConvertException(OptionError,"MissingAnImageFilename",argv[argc-1]);
   status&=WriteImages(image_info,image,argv[argc-1],exception);
   if (metadata != (char **) NULL)
diff --git a/MagickWand/convert.h b/MagickWand/convert.h
index 691a8a4..ca4ee1c 100644
--- a/MagickWand/convert.h
+++ b/MagickWand/convert.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/deprecate.c b/MagickWand/deprecate.c
index 7f215d6..600f334 100644
--- a/MagickWand/deprecate.c
+++ b/MagickWand/deprecate.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/deprecate.h b/MagickWand/deprecate.h
index 78ac170..5f287a0 100644
--- a/MagickWand/deprecate.h
+++ b/MagickWand/deprecate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/display.c b/MagickWand/display.c
index dc705ac..c9330c1 100644
--- a/MagickWand/display.c
+++ b/MagickWand/display.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -93,153 +93,131 @@
 
 static MagickBooleanType DisplayUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *buttons[]=
-    {
-      "1    press to map or unmap the Command widget",
-      "2    press and drag to magnify a region of an image",
-      "3    press to load an image from a visual image directory",
-      (char *) NULL
-    },
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-auto-orient         automagically orient image",
-      "-border geometry     surround image with a border of color",
-      "-clip                clip along the first path from the 8BIM profile",
-      "-clip-path id        clip along a named path from the 8BIM profile",
-      "-colors value        preferred number of colors in the image",
-      "-contrast            enhance or reduce the image contrast",
-      "-crop geometry       preferred size and location of the cropped image",
-      "-decipher filename   convert cipher pixels to plain pixels",
-      "-deskew threshold    straighten an image",
-      "-despeckle           reduce the speckles within an image",
-      "-edge factor         apply a filter to detect edges in the image",
-      "-enhance             apply a digital filter to enhance a noisy image",
-      "-equalize            perform histogram equalization to an image",
-      "-extract geometry    extract area from image",
-      "-flip                flip image in the vertical direction",
-      "-flop                flop image in the horizontal direction",
-      "-frame geometry      surround image with an ornamental border",
-      "-fuzz distance       colors within this distance are considered equal",
-      "-gamma value         level of gamma correction",
-      "-monochrome          transform image to black and white",
-      "-negate              replace every pixel with its complementary color",
-      "-normalize           transform image to span the full range of colors",
-      "-raise value         lighten/darken image edges to create a 3-D effect",
-      "-resample geometry   change the resolution of an image",
-      "-resize geometry     resize the image",
-      "-roll geometry       roll an image vertically or horizontally",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-sample geometry     scale image with pixel sampling",
-      "-segment value       segment an image",
-      "-sharpen geometry    sharpen the image",
-      "-strip               strip image of all profiles and comments",
-      "-threshold value     threshold the image",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-trim                trim image edges",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-antialias           remove pixel-aliasing",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-backdrop            display image centered on a backdrop",
-      "-channel type        apply option to select image channels",
-      "-colormap type       Shared or Private",
-      "-colorspace type     alternate image colorspace",
-      "-comment string      annotate image with comment",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-delay value         display the next image after pausing",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-display server      display image to this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-filter type         use this filter when resizing an image",
-      "-format string     output formatted image characteristics",
-      "-geometry geometry   preferred size and location of the Image window",
-      "-gravity type        horizontal and vertical backdrop placement",
-      "-identify            identify the format and characteristics of the image",
-      "-immutable           displayed image cannot be modified",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-label string        assign a label to an image",
-      "-limit type value    pixel cache resource limit",
-      "-loop iterations     loop images then exit",
-      "-map type            display image using this Standard Colormap",
-      "-matte               store matte channel if the image has one",
-      "-monitor             monitor progress",
-      "-nostdin             do not try to open stdin",
-      "-page geometry       size and location of an image canvas",
-      "-profile filename    add, delete, or apply an image profile",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-quiet               suppress all warning messages",
-      "-regard-warnings     pay attention to warning messages",
-      "-remote command      execute a command in an remote display process",
-      "-repage geometry     size and location of an image canvas (operator)",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scenes range        image scene range",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set property value  set an image property",
-      "-size geometry       width and height of image",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-texture filename    name of texture to tile onto the image background",
-      "-transparent-color color",
-      "                     transparent color",
-      "-treedepth value     color tree depth",
-      "-update seconds      detect when image file is modified and redisplay",
-      "-verbose             print detailed information about the image",
-      "-visual type         display image using this visual type",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-window id           display image to background of this window",
-      "-window-group id     exit program when this window id is destroyed",
-      "-write filename      write image to a file",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-coalesce            merge a sequence of images",
-      "-flatten             flatten a sequence of images",
-      (char *) NULL
-    };
+    buttons[] =
+      "  1    press to map or unmap the Command widget\n"
+      "  2    press and drag to magnify a region of an image\n"
+      "  3    press to load an image from a visual image directory",
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -auto-orient         automagically orient image\n"
+      "  -border geometry     surround image with a border of color\n"
+      "  -clip                clip along the first path from the 8BIM profile\n"
+      "  -clip-path id        clip along a named path from the 8BIM profile\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -contrast            enhance or reduce the image contrast\n"
+      "  -crop geometry       preferred size and location of the cropped image\n"
+      "  -decipher filename   convert cipher pixels to plain pixels\n"
+      "  -deskew threshold    straighten an image\n"
+      "  -despeckle           reduce the speckles within an image\n"
+      "  -edge factor         apply a filter to detect edges in the image\n"
+      "  -enhance             apply a digital filter to enhance a noisy image\n"
+      "  -equalize            perform histogram equalization to an image\n"
+      "  -extract geometry    extract area from image\n"
+      "  -flip                flip image in the vertical direction\n"
+      "  -flop                flop image in the horizontal direction\n"
+      "  -frame geometry      surround image with an ornamental border\n"
+      "  -fuzz distance       colors within this distance are considered equal\n"
+      "  -gamma value         level of gamma correction\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -negate              replace every pixel with its complementary color\n"
+      "  -normalize           transform image to span the full range of colors\n"
+      "  -raise value         lighten/darken image edges to create a 3-D effect\n"
+      "  -resample geometry   change the resolution of an image\n"
+      "  -resize geometry     resize the image\n"
+      "  -roll geometry       roll an image vertically or horizontally\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -sample geometry     scale image with pixel sampling\n"
+      "  -segment value       segment an image\n"
+      "  -sharpen geometry    sharpen the image\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -threshold value     threshold the image\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -trim                trim image edges",
+    settings[] =
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -antialias           remove pixel-aliasing\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -backdrop            display image centered on a backdrop\n"
+      "  -channel type        apply option to select image channels\n"
+      "  -colormap type       Shared or Private\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -display server      display image to this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -format string     output formatted image characteristics\n"
+      "  -geometry geometry   preferred size and location of the Image window\n"
+      "  -gravity type        horizontal and vertical backdrop placement\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -immutable           displayed image cannot be modified\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -loop iterations     loop images then exit\n"
+      "  -map type            display image using this Standard Colormap\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -monitor             monitor progress\n"
+      "  -nostdin             do not try to open stdin\n"
+      "  -page geometry       size and location of an image canvas\n"
+      "  -profile filename    add, delete, or apply an image profile\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -remote command      execute a command in an remote display process\n"
+      "  -repage geometry     size and location of an image canvas (operator)\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scenes range        image scene range\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set property value  set an image property\n"
+      "  -size geometry       width and height of image\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -texture filename    name of texture to tile onto the image background\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -treedepth value     color tree depth\n"
+      "  -update seconds      detect when image file is modified and redisplay\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -visual type         display image using this visual type\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -window id           display image to background of this window\n"
+      "  -window-group id     exit program when this window id is destroyed\n"
+      "  -write filename      write image to a file",
+    sequence_operators[] =
+      "  -coalesce            merge a sequence of images\n"
+      "  -flatten             flatten a sequence of images";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] file ...]\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nIn addition to those listed above, you can specify these standard X\n");
   (void) printf(
@@ -257,8 +235,7 @@
     "image type as the filename suffix (i.e. image.ps).  Specify 'file' as\n");
   (void) printf("'-' for standard input or output.\n");
   (void) printf("\nButtons: \n");
-  for (p=buttons; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(buttons);
   return(MagickFalse);
 }
 
diff --git a/MagickWand/display.h b/MagickWand/display.h
index 3d36ab9..41e9e57 100644
--- a/MagickWand/display.h
+++ b/MagickWand/display.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/drawing-wand.c b/MagickWand/drawing-wand.c
index b6c976d..3922ab8 100644
--- a/MagickWand/drawing-wand.c
+++ b/MagickWand/drawing-wand.c
@@ -23,7 +23,7 @@
 %                                March 2002                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -5001,7 +5001,7 @@
   (void) FormatLocaleString(pattern_spec,MagickPathExtent,"url(%s)",fill_url);
 #if DRAW_BINARY_IMPLEMENTATION
   DrawPatternPath(wand->image,CurrentContext,pattern_spec,
-    &CurrentContext->fill_pattern);
+    &CurrentContext->fill_pattern,wand->exception);
 #endif
   if (CurrentContext->fill.alpha != (Quantum) TransparentAlpha)
     CurrentContext->fill.alpha=(double) CurrentContext->alpha;
@@ -5441,7 +5441,7 @@
   (void) FormatLocaleString(pattern_spec,MagickPathExtent,"url(%s)",stroke_url);
 #if DRAW_BINARY_IMPLEMENTATION
   DrawPatternPath(wand->image,CurrentContext,pattern_spec,
-    &CurrentContext->stroke_pattern);
+    &CurrentContext->stroke_pattern,wand->exception);
 #endif
   if (CurrentContext->stroke.alpha != (Quantum) TransparentAlpha)
     CurrentContext->stroke.alpha=(double) CurrentContext->alpha;
@@ -6463,14 +6463,14 @@
                 *p;
 
               p=q;
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               for (x=0; IsPoint(token) != MagickFalse; x++)
               {
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
                 if (*token == ',')
-                  GetNextToken(p,&p,MagickPathExtent,token);
+                  (void) GetNextToken(p,&p,MagickPathExtent,token);
               }
               CurrentContext->dash_pattern=(double *) AcquireQuantumMemory(
                 (size_t) (2UL*x)+1UL,sizeof(*CurrentContext->dash_pattern));
@@ -6479,9 +6479,9 @@
                   "MemoryAllocationFailed",wand->name);
               for (j=0; j < x; j++)
               {
-                GetNextToken(q,&q,MagickPathExtent,token);
+                (void) GetNextToken(q,&q,MagickPathExtent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,MagickPathExtent,token);
+                  (void) GetNextToken(q,&q,MagickPathExtent,token);
                 CurrentContext->dash_pattern[j]=StringToDouble(token,
                   (char **) NULL);
               }
diff --git a/MagickWand/drawing-wand.h b/MagickWand/drawing-wand.h
index 90bf91a..e9f3c2d 100644
--- a/MagickWand/drawing-wand.h
+++ b/MagickWand/drawing-wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/identify.c b/MagickWand/identify.c
index 45c628f..5d24139 100644
--- a/MagickWand/identify.c
+++ b/MagickWand/identify.c
@@ -17,7 +17,7 @@
 %                            September 1994                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -92,86 +92,71 @@
 
 static MagickBooleanType IdentifyUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-channel mask        set the image channel mask",
-      "-grayscale method    convert image to grayscale",
-      "-negate              replace every pixel with its complementary color ",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-antialias           remove pixel-aliasing",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-clip                clip along the first path from the 8BIM profile",
-      "-clip-mask filename  associate a clip mask with the image",
-      "-clip-path id        clip along a named path from the 8BIM profile",
-      "-colorspace type     alternate image colorspace",
-      "-crop geometry       cut out a rectangular region of the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-extract geometry    extract area from image",
-      "-features distance   analyze image features (e.g. contrast, correlation)",
-      "-format \"string\"     output formatted image characteristics",
-      "-fuzz distance       colors within this distance are considered equal",
-      "-gamma value         of gamma correction",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-limit type value    pixel cache resource limit",
-      "-matte               store matte channel if the image has one",
-      "-moments             report image moments",
-      "-monitor             monitor progress",
-      "-ping                efficiently determine image attributes",
-      "-precision value     maximum number of significant digits to print",
-      "-quiet               suppress all warning messages",
-      "-read-mask filename  associate a read mask with the image",
-      "-regard-warnings     pay attention to warning messages",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set attribute value set an image attribute",
-      "-size geometry       width and height of image",
-      "-strip               strip image of all profiles and comments",
-      "-unique              display the number of unique colors in the image",
-      "-units type          the units of image resolution",
-      "-verbose             print detailed information about the image",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      (char *) NULL
-    };
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -channel mask        set the image channel mask\n"
+      "  -grayscale method    convert image to grayscale\n"
+      "  -negate              replace every pixel with its complementary color",
+    settings[] =
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -antialias           remove pixel-aliasing\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -clip                clip along the first path from the 8BIM profile\n"
+      "  -clip-mask filename  associate a clip mask with the image\n"
+      "  -clip-path id        clip along a named path from the 8BIM profile\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -crop geometry       cut out a rectangular region of the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -extract geometry    extract area from image\n"
+      "  -features distance   analyze image features (e.g. contrast, correlation)\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -fuzz distance       colors within this distance are considered equal\n"
+      "  -gamma value         of gamma correction\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -moments             report image moments\n"
+      "  -monitor             monitor progress\n"
+      "  -ping                efficiently determine image attributes\n"
+      "  -precision value     maximum number of significant digits to print\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -read-mask filename  associate a read mask with the image\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set attribute value set an image attribute\n"
+      "  -size geometry       width and height of image\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -unique              display the number of unique colors in the image\n"
+      "  -units type          the units of image resolution\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] "
     "file ... ]\n",GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
diff --git a/MagickWand/identify.h b/MagickWand/identify.h
index d5f068c..f458816 100644
--- a/MagickWand/identify.h
+++ b/MagickWand/identify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/import.c b/MagickWand/import.c
index 05cac00..4399cac 100644
--- a/MagickWand/import.c
+++ b/MagickWand/import.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -93,112 +93,97 @@
 
 static MagickBooleanType ImportUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-annotate geometry text",
-      "                     annotate the image with text",
-      "-colors value        preferred number of colors in the image",
-      "-crop geometry       preferred size and location of the cropped image",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-geometry geometry   preferred size or location of the image",
-      "-help                print program options",
-      "-monochrome          transform image to black and white",
-      "-negate              replace every pixel with its complementary color ",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-resize geometry     resize the image",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-strip               strip image of all profiles and comments",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-transparent color   make this color transparent within the image",
-      "-trim                trim image edges",
-      "-type type           image type",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-adjoin              join images into a single multi-image file",
-      "-border              include window border in the output image",
-      "-channel type        apply option to select image channels",
-      "-colorspace type     alternate image colorspace",
-      "-comment string      annotate image with comment",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-descend             obtain image by descending window hierarchy",
-      "-display server      X server to contact",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-delay value         display the next image after pausing",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-encoding type       text encoding type",
-      "-filter type         use this filter when resizing an image",
-      "-format \"string\"     output formatted image characteristics",
-      "-frame               include window manager frame",
-      "-gravity direction   which direction to gravitate towards",
-      "-identify            identify the format and characteristics of the image",
-      "-interlace type      None, Line, Plane, or Partition",
-      "-interpolate method  pixel color interpolation method",
-      "-label string        assign a label to an image",
-      "-limit type value    Area, Disk, Map, or Memory resource limit",
-      "-monitor             monitor progress",
-      "-page geometry       size and location of an image canvas",
-      "-pause seconds       seconds delay between snapshots",
-      "-pointsize value     font point size",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quiet               suppress all warning messages",
-      "-regard-warnings     pay attention to warning messages",
-      "-repage geometry     size and location of an image canvas",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scene value         image scene number",
-      "-screen              select image from root window",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set property value  set an image property",
-      "-silent              operate silently, i.e. don't ring any bells ",
-      "-snaps value         number of screen snapshots",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-transparent-color color",
-      "                     transparent color",
-      "-treedepth value     color tree depth",
-      "-verbose             print detailed information about the image",
-      "-virtual-pixel method",
-      "                     Constant, Edge, Mirror, or Tile",
-      "-window id           select window with this id or name",
-      "                     root selects whole screen",
-      (char *) NULL
-    };
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -annotate geometry text\n"
+      "                       annotate the image with text\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -crop geometry       preferred size and location of the cropped image\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -geometry geometry   preferred size or location of the image\n"
+      "  -help                print program options\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -negate              replace every pixel with its complementary color \n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -resize geometry     resize the image\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -transparent color   make this color transparent within the image\n"
+      "  -trim                trim image edges\n"
+      "  -type type           image type",
+    settings[] =
+      "  -adjoin              join images into a single multi-image file\n"
+      "  -border              include window border in the output image\n"
+      "  -channel type        apply option to select image channels\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -descend             obtain image by descending window hierarchy\n"
+      "  -display server      X server to contact\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -encoding type       text encoding type\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -frame               include window manager frame\n"
+      "  -gravity direction   which direction to gravitate towards\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -interlace type      None, Line, Plane, or Partition\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    Area, Disk, Map, or Memory resource limit\n"
+      "  -monitor             monitor progress\n"
+      "  -page geometry       size and location of an image canvas\n"
+      "  -pause seconds       seconds delay between snapshots\n"
+      "  -pointsize value     font point size\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -repage geometry     size and location of an image canvas\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scene value         image scene number\n"
+      "  -screen              select image from root window\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set property value  set an image property\n"
+      "  -silent              operate silently, i.e. don't ring any bells \n"
+      "  -snaps value         number of screen snapshots\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -treedepth value     color tree depth\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -virtual-pixel method\n"
+      "                       Constant, Edge, Mirror, or Tile\n"
+      "  -window id           select window with this id or name\n"
+      "                       root selects whole screen";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] [ file ]\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
   "\nBy default, 'file' is written in the MIFF image format.  To\n");
   (void) printf(
diff --git a/MagickWand/import.h b/MagickWand/import.h
index 839a84a..ac361bd 100644
--- a/MagickWand/import.h
+++ b/MagickWand/import.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/libMagickWand.map b/MagickWand/libMagickWand.map
index 749b6d4..85297c9 100644
--- a/MagickWand/libMagickWand.map
+++ b/MagickWand/libMagickWand.map
@@ -1,4 +1,4 @@
- VERS_6.0 {
+ VERS_7.0 {
      	 global:
      		 *;
      };
diff --git a/MagickWand/magick-cli.c b/MagickWand/magick-cli.c
index c29dad5..7932754 100644
--- a/MagickWand/magick-cli.c
+++ b/MagickWand/magick-cli.c
@@ -22,7 +22,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/magick-cli.h b/MagickWand/magick-cli.h
index e49348b..b391e78 100644
--- a/MagickWand/magick-cli.h
+++ b/MagickWand/magick-cli.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c
index f6cf1e2..5eac17a 100644
--- a/MagickWand/magick-image.c
+++ b/MagickWand/magick-image.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -838,6 +838,45 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k A u t o T h r e s h o l d I m a g e                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickAutoThresholdImage() automatically performs image thresholding
+%  dependent on which method you specify.
+%
+%  The format of the AutoThresholdImage method is:
+%
+%      MagickBooleanType MagickAutoThresholdImage(MagickWand *wand,
+%        const AutoThresholdMethod method)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o method: choose from KapurThresholdMethod, OTSUThresholdMethod, or
+%      TriangleThresholdMethod.
+%
+*/
+WandExport MagickBooleanType MagickAutoThresholdImage(MagickWand *wand,
+  const AutoThresholdMethod method)
+{
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  return(AutoThresholdImage(wand->images,method,wand->exception));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k B l a c k T h r e s h o l d I m a g e                         %
 %                                                                             %
 %                                                                             %
@@ -866,9 +905,6 @@
   char
     thresholds[MagickPathExtent];
 
-  MagickBooleanType
-    status;
-
   assert(wand != (MagickWand *) NULL);
   assert(wand->signature == MagickWandSignature);
   if (wand->debug != MagickFalse)
@@ -879,8 +915,7 @@
     QuantumFormat "," QuantumFormat "," QuantumFormat "," QuantumFormat,
     PixelGetRedQuantum(threshold),PixelGetGreenQuantum(threshold),
     PixelGetBlueQuantum(threshold),PixelGetAlphaQuantum(threshold));
-  status=BlackThresholdImage(wand->images,thresholds,wand->exception);
-  return(status);
+  return(BlackThresholdImage(wand->images,thresholds,wand->exception));
 }
 
 /*
@@ -1091,6 +1126,60 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k C a n n y E d g e I m a g e                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickCannyEdgeImage() uses a multi-stage algorithm to detect a wide range of
+%  edges in images.
+%
+%  The format of the MagickCannyEdgeImage method is:
+%
+%      MagickBooleanType MagickCannyEdgeImage(MagickWand *wand,
+%        const double radius,const double sigma,const double lower_percent,
+%        const double upper_percent)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o radius: the radius of the gaussian smoothing filter.
+%
+%    o sigma: the sigma of the gaussian smoothing filter.
+%
+%    o lower_percent: percentage of edge pixels in the lower threshold.
+%
+%    o upper_percent: percentage of edge pixels in the upper threshold.
+%
+*/
+WandExport MagickBooleanType MagickCannyEdgeImage(MagickWand *wand,
+  const double radius,const double sigma,const double lower_percent,
+  const double upper_percent)
+{
+  Image
+    *edge_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  edge_image=CannyEdgeImage(wand->images,radius,sigma,lower_percent,
+    upper_percent,wand->exception);
+  if (edge_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,edge_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k C h a n n e l F x I m a g e                                   %
 %                                                                             %
 %                                                                             %
@@ -1260,31 +1349,32 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  MagickCLAHEImage() selects an individual threshold for each pixel
-%  based on the range of intensity values in its local neighborhood.  This
-%  allows for thresholding of an image whose global intensity histogram
-%  doesn't contain distinctive peaks.
+%  MagickCLAHEImage() is a variant of adaptive histogram equalization in which
+%  the contrast amplification is limited, so as to reduce this problem of noise
+%  amplification.
 %
 %  The format of the CLAHEImage method is:
 %
 %      MagickBooleanType MagickCLAHEImage(MagickWand *wand,const size_t width,
-%        const size_t height,const double bias,const double sans)
+%        const size_t height,const double number_bins,const double clip_limit)
 %
 %  A description of each parameter follows:
 %
 %    o wand: the magick wand.
 %
-%    o width: the width of the local neighborhood.
+%    o width: the width of the tile divisions to use in horizontal direction.
 %
-%    o height: the height of the local neighborhood.
+%    o height: the height of the tile divisions to use in vertical direction.
 %
-%    o offset: the mean bias.
+%    o number_bins: number of bins for histogram ("dynamic range").
 %
-%    o sans: not used.
+%    o clip_limit: contrast limit for localised changes in contrast. A limit
+%      less than 1 results in standard non-contrast limited AHE.
 %
 */
 WandExport MagickBooleanType MagickCLAHEImage(MagickWand *wand,
-  const size_t width,const size_t height,const double bias,const double sans)
+  const size_t width,const size_t height,const double number_bins,
+  const double clip_limit)
 {
   MagickBooleanType
     status;
@@ -1295,7 +1385,8 @@
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=CLAHEImage(wand->images,width,height,bias,sans,wand->exception);
+  status=CLAHEImage(wand->images,width,height,(size_t) number_bins,clip_limit,
+    wand->exception);
   return(status);
 }
 
@@ -1881,6 +1972,52 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k C o m p l e x I m a g e s                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickComplexImages() performs complex mathematics on an image sequence.
+%
+%  The format of the MagickComplexImages method is:
+%
+%      MagickWand *MagickComplexImages(MagickWand *wand,
+%        const ComplexOperator op)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o op: A complex operator. Choose from AddComplexOperator,
+%      ConjugateComplexOperator,DivideComplexOperator,
+%      MagnitudePhaseComplexOperator,MultiplyComplexOperator,
+%      RealImaginaryComplexOperator, SubtractComplexOperator.
+%
+*/
+WandExport MagickWand *MagickComplexImages(MagickWand *wand,
+  const ComplexOperator op)
+{
+  Image
+    *complex_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    return((MagickWand *) NULL);
+  complex_image=ComplexImages(wand->images,op,wand->exception);
+  if (complex_image == (Image *) NULL)
+    return((MagickWand *) NULL);
+  return(CloneMagickWandFromImages(wand,complex_image));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k C o m p o s i t e I m a g e                                   %
 %                                                                             %
 %                                                                             %
@@ -2082,6 +2219,56 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k C o n n e c t e d C o m p o n e n t s I m a g e               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickConnectedComponentsImage() returns the connected-components of the
+%  image uniquely labeled.  The returned connected components image colors
+%  member defines the number of unique objects.  Choose from 4 or 8-way
+%  connectivity.
+%
+%  The format of the MagickConnectedComponentsImage method is:
+%
+%      MagickBooleanType MagickConnectedComponentsImage(MagickWand *wand,
+%        const size_t connectivity,CCObjectInfo **objects)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o connectivity: how many neighbors to visit, choose from 4 or 8.
+%
+%    o objects: return the attributes of each unique object.
+%
+*/
+WandExport MagickBooleanType MagickConnectedComponentsImage(MagickWand *wand,
+  const size_t connectivity,CCObjectInfo **objects)
+{
+  Image
+    *connected_components_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  connected_components_image=ConnectedComponentsImage(wand->images,connectivity,
+    objects,wand->exception);
+  if (connected_components_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,connected_components_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k C o n t r a s t I m a g e                                     %
 %                                                                             %
 %                                                                             %
@@ -5339,7 +5526,7 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  MagickGetImagePixelColor() returns the color of the specified pixel.
+%  MagickGetImagePixelColor() gets the color of the specified pixel.
 %
 %  The format of the MagickGetImagePixelColor method is:
 %
@@ -6063,6 +6250,63 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k H o u g h L i n e I m a g e                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  Use MagickHoughLineImage() in conjunction with any binary edge extracted
+%  image (we recommand Canny) to identify lines in the image.  The algorithm
+%  accumulates counts for every white pixel for every possible orientation (for
+%  angles from 0 to 179 in 1 degree increments) and distance from the center of
+%  the image to the corner (in 1 px increments) and stores the counts in an
+%  accumulator matrix of angle vs distance. The size of the accumulator is
+%  180x(diagonal/2). Next it searches this space for peaks in counts and
+%  converts the locations of the peaks to slope and intercept in the normal x,y
+%  input image space. Use the slope/intercepts to find the endpoints clipped to
+%  the bounds of the image. The lines are then drawn. The counts are a measure
+%  of the length of the lines.
+%
+%  The format of the MagickHoughLineImage method is:
+%
+%      MagickBooleanType MagickHoughLineImage(MagickWand *wand,
+%        const size_t width,const size_t height,const size_t threshold)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o width, height: find line pairs as local maxima in this neighborhood.
+%
+%    o threshold: the line count threshold.
+%
+*/
+WandExport MagickBooleanType MagickHoughLineImage(MagickWand *wand,
+  const size_t width,const size_t height,const size_t threshold)
+{
+  Image
+    *lines_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  lines_image=HoughLineImage(wand->images,width,height,threshold,
+    wand->exception);
+  if (lines_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,lines_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k I d e n t i f y I m a g e                                     %
 %                                                                             %
 %                                                                             %
@@ -6398,6 +6642,52 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k K u w a h a r a I m a g e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  Use MagickKuwaharaImage() is an edge preserving noise reduction filter.
+%
+%  The format of the MagickKuwaharaImage method is:
+%
+%      MagickBooleanType MagickKuwaharaImage(MagickWand *wand,
+%        const double radius,const double sigma)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o radius: the square window radius.
+%
+%    o sigma: the standard deviation of the Gaussian, in pixels.
+%
+*/
+WandExport MagickBooleanType MagickKuwaharaImage(MagickWand *wand,
+  const double radius,const double sigma)
+{
+  Image
+    *kuwahara_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  kuwahara_image=KuwaharaImage(wand->images,radius,sigma,wand->exception);
+  if (kuwahara_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,kuwahara_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k L a b e l I m a g e                                           %
 %                                                                             %
 %                                                                             %
@@ -6457,9 +6747,6 @@
 %
 %      MagickBooleanType MagickLevelImage(MagickWand *wand,
 %        const double black_point,const double gamma,const double white_point)
-%      MagickBooleanType MagickLevelImage(MagickWand *wand,
-%        const ChannelType channel,const double black_point,const double gamma,
-%        const double white_point)
 %
 %  A description of each parameter follows:
 %
@@ -6497,6 +6784,111 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k L e v e l I m a g e C o l o r s                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickLevelImageColors() maps the given color to "black" and "white" values,
+%  linearly spreading out the colors, and level values on a channel by channel
+%  bases, as per LevelImage().  The given colors allows you to specify
+%  different level ranges for each of the color channels separately.
+%
+%  The format of the MagickLevelImageColors method is:
+%
+%      MagickBooleanType MagickLevelImageColors(MagickWand *wand,
+%        const PixelWand *black_color,const PixelWand *white_color,
+%        const MagickBooleanType invert)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o black_color: the black color.
+%
+%    o white_color: the white color.
+%
+%    o invert: if true map the colors (levelize), rather than from (level)
+%
+*/
+WandExport MagickBooleanType MagickLevelImageColors(MagickWand *wand,
+  const PixelWand *black_color,const PixelWand *white_color,
+  const MagickBooleanType invert)
+{
+  MagickBooleanType
+    status;
+
+  PixelInfo
+    black,
+    white;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  PixelGetMagickColor(black_color,&black);
+  PixelGetMagickColor(white_color,&white);
+  status=LevelImageColors(wand->images,&black,&white,invert,wand->exception);
+  return(status);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   M a g i c k L e v e l i z e I m a g e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickLevelizeImage() applies the reversed MagickLevelImage(). It compresses
+%  the full range of color values, so that they lie between the given black and
+%  white points.  Gamma is applied before the values are mapped.  It can be
+%  used to de-contrast a greyscale image to the exact levels specified.
+%
+%  The format of the MagickLevelizeImage method is:
+%
+%      MagickBooleanType MagickLevelizeImage(MagickWand *wand,
+%        const double black_point, const double white_point,const double gamma)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o black_point: The level to map zero (black) to.
+%
+%    o white_point: The level to map QuantumRange (white) to.
+%
+%    o gamma: adjust gamma by this factor before mapping values.
+%
+*/
+WandExport MagickBooleanType MagickLevelizeImage(MagickWand *wand,
+  const double black_point,const double gamma,const double white_point)
+{
+  MagickBooleanType
+    status;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  status=LevelizeImage(wand->images,black_point,white_point,gamma,
+    wand->exception);
+  return(status);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k L i n e a r S t r e t c h I m a g e                           %
 %                                                                             %
 %                                                                             %
@@ -6685,6 +7077,63 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k M e a n S h i f t I m a g e                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickMeanShiftImage() elineate arbitrarily shaped clusters in the image. For
+%  each pixel, it visits all the pixels in the neighborhood specified by
+%  the window centered at the pixel and excludes those that are outside the
+%  radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those
+%  that are within the specified color distance from the current mean, and
+%  computes a new x,y centroid from those coordinates and a new mean. This new
+%  x,y centroid is used as the center for a new window. This process iterates
+%  until it converges and the final mean is replaces the (original window
+%  center) pixel value. It repeats this process for the next pixel, etc.,
+%  until it processes all pixels in the image. Results are typically better with
+%  colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.
+%
+%  The format of the MagickMeanShiftImage method is:
+%
+%      MagickBooleanType MagickMeanShiftImage(MagickWand *wand,
+%        const size_t number_terms,const double *terms)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o width, height: find pixels in this neighborhood.
+%
+%    o color_distance: the color distance.
+%
+*/
+WandExport MagickBooleanType MagickMeanShiftImage(MagickWand *wand,
+  const size_t width,const size_t height,const double color_distance)
+{
+  Image
+    *mean_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  mean_image=MeanShiftImage(wand->images,width,height,color_distance,
+    wand->exception);
+  if (mean_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,mean_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k M e r g e I m a g e L a y e r s                               %
 %                                                                             %
 %                                                                             %
@@ -7014,7 +7463,8 @@
 %  The format of the MagickMorphologyImage method is:
 %
 %      MagickBooleanType MagickMorphologyImage(MagickWand *wand,
-%        MorphologyMethod method,const ssize_t iterations,KernelInfo *kernel)
+%        const MorphologyMethod method,const ssize_t iterations,
+%        const KernelInfo *kernel)
 %
 %  A description of each parameter follows:
 %
@@ -7030,7 +7480,8 @@
 %
 */
 WandExport MagickBooleanType MagickMorphologyImage(MagickWand *wand,
-  MorphologyMethod method,const ssize_t iterations,KernelInfo *kernel)
+  const MorphologyMethod method,const ssize_t iterations,
+  const KernelInfo *kernel)
 {
   Image
     *morphology_image;
@@ -7764,6 +8215,57 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k P o l y n o m i a l I m a g e                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickPolynomialImage() returns an image where each pixel is the sum of the
+%  pixels in the image sequence after applying its corresponding terms
+%  (coefficient and degree pairs).
+%
+%  The format of the MagickPolynomialImage method is:
+%
+%      MagickBooleanType MagickPolynomialImage(MagickWand *wand,
+%        const size_t number_terms,const double *terms)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o number_terms: the number of terms in the list.  The actual list length
+%      is 2 x number_terms + 1 (the constant).
+%
+%    o terms: the list of polynomial coefficients and degree pairs and a
+%      constant.
+%
+*/
+WandExport MagickBooleanType MagickPolynomialImage(MagickWand *wand,
+  const size_t number_terms,const double *terms)
+{
+  Image
+    *polynomial_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  polynomial_image=PolynomialImage(wand->images,number_terms,terms,
+    wand->exception);
+  if (polynomial_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,polynomial_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k P o s t e r i z e I m a g e                                   %
 %                                                                             %
 %                                                                             %
@@ -8070,6 +8572,56 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k R a n g e T h r e s h o l d I m a g e                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickRangeThresholdImage() applies soft and hard thresholding.
+%
+%  The format of the RangeThresholdImage method is:
+%
+%      MagickBooleanType MagickRangeThresholdImage(MagickWand *wand,
+%        const double low_black,const double low_white,const double high_white,
+%        const double high_black)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o low_black: Define the minimum threshold value.
+%
+%    o low_white: Define the maximum threshold value.
+%
+%    o high_white: Define the minimum threshold value.
+%
+%    o low_white: Define the maximum threshold value.
+%
+*/
+WandExport MagickBooleanType MagickRangeThresholdImage(MagickWand *wand,
+  const double low_black,const double low_white,const double high_white,
+  const double high_black)
+{
+  MagickBooleanType
+    status;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  status=RangeThresholdImage(wand->images,low_black,low_white,
+    high_white,high_black,wand->exception);
+  return(status);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k R o t a t i o n a l B l u r I m a g e                         %
 %                                                                             %
 %                                                                             %
@@ -9747,8 +10299,9 @@
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  if (filename != (const char *) NULL)
-    (void) CopyMagickString(wand->images->filename,filename,MagickPathExtent);
+  if (filename == (const char *) NULL)
+    return(MagickFalse);
+  (void) CopyMagickString(wand->images->filename,filename,MagickPathExtent);
   return(MagickTrue);
 }
 
@@ -10305,6 +10858,60 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k S e t I m a g e P i x e l C o l o r                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickSetImagePixelColor() sets the color of the specified pixel.
+%
+%  The format of the MagickSetImagePixelColor method is:
+%
+%      MagickBooleanType MagickSetImagePixelColor(MagickWand *wand,
+%        const ssize_t x,const ssize_t y,const PixelWand *color)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o x,y: the pixel offset into the image.
+%
+%    o color: Return the colormap color in this wand.
+%
+*/
+WandExport MagickBooleanType MagickSetImagePixelColor(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const PixelWand *color)
+{
+  register Quantum
+    *q;
+
+  CacheView
+    *image_view;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  image_view=AcquireAuthenticCacheView(wand->images,wand->exception);
+  q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,wand->exception);
+  if (q == (Quantum *) NULL)
+    {
+      image_view=DestroyCacheView(image_view);
+      return(MagickFalse);
+    }
+  PixelGetQuantumPixel(wand->images,color,q);
+  image_view=DestroyCacheView(image_view);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k S e t I m a g e P r o g r e s s M o n i t o r                 %
 %                                                                             %
 %                                                                             %
@@ -11392,7 +11999,7 @@
 %
 %      MagickBooleanType MagickSpreadImage(MagickWand *wand,
 %        const PixelInterpolateMethod method,const double radius)
-%        
+%
 %  A description of each parameter follows:
 %
 %    o wand: the magick wand.
@@ -12336,6 +12943,58 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k W a v e l e t D e n o i s e I m a g e                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickWaveletDenoiseImage() removes noise from the image using a wavelet
+%  transform.  The wavelet transform is a fast hierarchical scheme for
+%  processing an image using a set of consecutive lowpass and high_pass filters,
+%  followed by a decimation.  This results in a decomposition into different
+%  scales which can be regarded as different “frequency bands”, determined by
+%  the mother wavelet.
+%
+%  The format of the MagickWaveletDenoiseImage method is:
+%
+%      MagickBooleanType MagickWaveletDenoiseImage(MagickWand *wand,
+%        const double threshold,const double softness)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand.
+%
+%    o threshold: set the threshold for smoothing.
+%
+%    o softness: attenuate the smoothing threshold.
+%
+*/
+WandExport MagickBooleanType MagickWaveletDenoiseImage(MagickWand *wand,
+  const double threshold,const double softness)
+{
+  Image
+    *noise_image;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (wand->debug != MagickFalse)
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if (wand->images == (Image *) NULL)
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  noise_image=WaveletDenoiseImage(wand->images,threshold,softness,
+    wand->exception);
+  if (noise_image == (Image *) NULL)
+    return(MagickFalse);
+  ReplaceImageInList(&wand->images,noise_image);
+  return(MagickTrue);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k W h i t e T h r e s h o l d I m a g e                         %
 %                                                                             %
 %                                                                             %
diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h
index d6db943..7b2024f 100644
--- a/MagickWand/magick-image.h
+++ b/MagickWand/magick-image.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -92,12 +92,15 @@
   MagickAutoGammaImage(MagickWand *),
   MagickAutoLevelImage(MagickWand *),
   MagickAutoOrientImage(MagickWand *),
+  MagickAutoThresholdImage(MagickWand *,const AutoThresholdMethod),
   MagickBlackThresholdImage(MagickWand *,const PixelWand *),
   MagickBlueShiftImage(MagickWand *,const double),
   MagickBlurImage(MagickWand *,const double,const double),
   MagickBorderImage(MagickWand *,const PixelWand *,const size_t,const size_t,
     const CompositeOperator compose),
   MagickBrightnessContrastImage(MagickWand *,const double,const double),
+  MagickCannyEdgeImage(MagickWand *,const double,const double,const double,
+    const double),
   MagickCharcoalImage(MagickWand *,const double,const double),
   MagickChopImage(MagickWand *,const size_t,const size_t,const ssize_t,
     const ssize_t),
@@ -117,6 +120,7 @@
     const CompositeOperator,const GravityType),
   MagickCompositeLayers(MagickWand *,const MagickWand *,const CompositeOperator,
     const ssize_t,const ssize_t),
+  MagickConnectedComponentsImage(MagickWand *,const size_t,CCObjectInfo **),
   MagickConstituteImage(MagickWand *,const size_t,const size_t,const char *,
     const StorageType,const void *),
   MagickContrastImage(MagickWand *,const MagickBooleanType),
@@ -178,6 +182,7 @@
   MagickHaldClutImage(MagickWand *,const MagickWand *),
   MagickHasNextImage(MagickWand *),
   MagickHasPreviousImage(MagickWand *),
+  MagickHoughLineImage(MagickWand *,const size_t,const size_t,const size_t),
   MagickImplodeImage(MagickWand *,const double,const PixelInterpolateMethod),
   MagickImportImagePixels(MagickWand *,const ssize_t,const ssize_t,const size_t,
     const size_t,const char *,const StorageType,const void *),
@@ -185,19 +190,24 @@
     const PixelInterpolateMethod),
   MagickInverseFourierTransformImage(MagickWand *,MagickWand *,
     const MagickBooleanType),
+  MagickKuwaharaImage(MagickWand *,const double,const double),
   MagickLabelImage(MagickWand *,const char *),
   MagickLevelImage(MagickWand *,const double,const double,const double),
+  MagickLevelImageColors(MagickWand *,const PixelWand *,const PixelWand *,
+    const MagickBooleanType),
+  MagickLevelizeImage(MagickWand *,const double,const double,const double),
   MagickLinearStretchImage(MagickWand *,const double,const double),
   MagickLiquidRescaleImage(MagickWand *,const size_t,const size_t,const double,
     const double),
   MagickLocalContrastImage(MagickWand *,const double,const double),
   MagickMagnifyImage(MagickWand *),
+  MagickMeanShiftImage(MagickWand *,const size_t,const size_t,const double),
   MagickMedianConvolveImage(MagickWand *,const double),
   MagickMinifyImage(MagickWand *),
   MagickModeImage(MagickWand *,const double),
   MagickModulateImage(MagickWand *,const double,const double,const double),
-  MagickMorphologyImage(MagickWand *,MorphologyMethod,const ssize_t,
-    KernelInfo *),
+  MagickMorphologyImage(MagickWand *,const MorphologyMethod,const ssize_t,
+    const KernelInfo *),
   MagickMotionBlurImage(MagickWand *,const double,const double,const double),
   MagickNegateImage(MagickWand *,const MagickBooleanType),
   MagickNewImage(MagickWand *,const size_t,const size_t,const PixelWand *),
@@ -208,6 +218,7 @@
     const double,const MagickBooleanType),
   MagickOptimizeImageTransparency(MagickWand *),
   MagickOrderedDitherImage(MagickWand *,const char *),
+  MagickPolynomialImage(MagickWand *,const size_t,const double *),
   MagickTransparentPaintImage(MagickWand *,const PixelWand *,
     const double,const double,const MagickBooleanType invert),
   MagickPingImage(MagickWand *,const char *),
@@ -221,6 +232,8 @@
     const size_t,const DitherMethod,const MagickBooleanType),
   MagickQuantizeImages(MagickWand *,const size_t,const ColorspaceType,
     const size_t,const DitherMethod,const MagickBooleanType),
+  MagickRangeThresholdImage(MagickWand *,const double,const double,
+    const double,const double),
   MagickRotationalBlurImage(MagickWand *,const double),
   MagickRaiseImage(MagickWand *,const size_t,const size_t,const ssize_t,
     const ssize_t,const MagickBooleanType),
@@ -278,6 +291,8 @@
   MagickSetImageOrientation(MagickWand *,const OrientationType),
   MagickSetImagePage(MagickWand *,const size_t,const size_t,const ssize_t,
     const ssize_t),
+  MagickSetImagePixelColor(MagickWand *,const ssize_t,const ssize_t,
+    const PixelWand *),
   MagickSetImageRedPrimary(MagickWand *,const double,const double,
     const double),
   MagickSetImageRenderingIntent(MagickWand *,const RenderingIntent),
@@ -323,6 +338,7 @@
     const ssize_t),
   MagickWaveImage(MagickWand *,const double,const double,
     const PixelInterpolateMethod),
+  MagickWaveletDenoiseImage(MagickWand *,const double,const double),
   MagickWhiteThresholdImage(MagickWand *,const PixelWand *),
   MagickWriteImage(MagickWand *,const char *),
   MagickWriteImageFile(MagickWand *,FILE *),
@@ -341,6 +357,7 @@
   *MagickCompareImages(MagickWand *,const MagickWand *,const MetricType,
     double *),
   *MagickCompareImagesLayers(MagickWand *,const LayerMethod),
+  *MagickComplexImages(MagickWand *,const ComplexOperator),
   *MagickDeconstructImages(MagickWand *),
   *MagickEvaluateImages(MagickWand *,const MagickEvaluateOperator),
   *MagickFxImage(MagickWand *,const char *),
diff --git a/MagickWand/magick-property.c b/MagickWand/magick-property.c
index 20973d4..f589fa1 100644
--- a/MagickWand/magick-property.c
+++ b/MagickWand/magick-property.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -2858,6 +2858,34 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k S e t S e e d                                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickSetSeed() sets the pseudo-random number generator seed.  Use it to
+%  generate a pedictable sequence of random numbers.
+%
+%  The format of the MagickSetSeed method is:
+%
+%      void MagickSetSeed(const unsigned long seed)
+%
+%  A description of each parameter follows:
+%
+%    o seed: the seed.
+%
+*/
+WandExport void MagickSetSeed(const unsigned long seed)
+{
+  SetRandomSecretKey(seed);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k S e t S e c u r i t y P o l i c y                             %
 %                                                                             %
 %                                                                             %
@@ -3018,7 +3046,6 @@
   assert(wand->signature == MagickWandSignature);
   if (wand->debug != MagickFalse)
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
-
   wand->image_info->type=image_type;
   return(MagickTrue);
 }
diff --git a/MagickWand/magick-property.h b/MagickWand/magick-property.h
index fb8b0cf..4c285c3 100644
--- a/MagickWand/magick-property.h
+++ b/MagickWand/magick-property.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -136,6 +136,9 @@
   *MagickGetImageProfile(MagickWand *,const char *,size_t *),
   *MagickRemoveImageProfile(MagickWand *,const char *,size_t *);
 
+extern WandExport void
+  MagickSetSeed(const unsigned long);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
diff --git a/MagickWand/magick-wand-private.h b/MagickWand/magick-wand-private.h
index 549f465..f0b1bd4 100644
--- a/MagickWand/magick-wand-private.h
+++ b/MagickWand/magick-wand-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-wand.c b/MagickWand/magick-wand.c
index 85970e6..edbe32e 100644
--- a/MagickWand/magick-wand.c
+++ b/MagickWand/magick-wand.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/method-attribute.h b/MagickWand/method-attribute.h
index 850d63a..5198d02 100644
--- a/MagickWand/method-attribute.h
+++ b/MagickWand/method-attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/mogrify-private.h b/MagickWand/mogrify-private.h
index 84a43b3..e62044a 100644
--- a/MagickWand/mogrify-private.h
+++ b/MagickWand/mogrify-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 9eba2f0..dca9156 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -17,7 +17,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -48,13 +48,14 @@
 #include "MagickWand/MagickWand.h"
 #include "MagickWand/magick-wand-private.h"
 #include "MagickWand/mogrify-private.h"
+#include "MagickCore/blob-private.h"
 #include "MagickCore/composite-private.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/utility-private.h"
-#include "MagickCore/blob-private.h"
 #if defined(MAGICKCORE_HAVE_UTIME_H)
 #include <utime.h>
 #endif
@@ -293,7 +294,7 @@
       e=((1.0/(1.0/((serial/(serial+parallel))+(1.0-(serial/(serial+parallel)))/
         (double) n)))-(1.0/(double) n))/(1.0-1.0/(double) n);
     (void) FormatLocaleFile(stderr,
-      "Performance[%.20g]: %.20gi %0.3fips %0.6fe %0.6fu %lu:%02lu.%03lu\n",
+      "  Performance[%.20g]: %.20gi %0.3fips %0.6fe %0.6fu %lu:%02lu.%03lu\n",
       (double) n,(double) iterations,(double) iterations/parallel,e,user_time,
       (unsigned long) (parallel/60.0),(unsigned long) floor(fmod(parallel,
       60.0)),(unsigned long) (1000.0*(parallel-floor(parallel))+0.5));
@@ -512,9 +513,9 @@
   x=0;
   while( *p != '\0' )
   {
-    GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == ',' ) continue;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    (void) GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == ',') continue;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       if ( color_from_image ) {
         (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
@@ -550,7 +551,7 @@
     sizeof(*sparse_arguments));
   if (sparse_arguments == (double *) NULL) {
     (void) ThrowMagickException(exception,GetMagickModule(),ResourceLimitError,
-      "MemoryAllocationFailed","%s","SparseColorOption");
+      "  MemoryAllocationFailed\n""%s","SparseColorOption");
     return( (Image *) NULL);
   }
   (void) memset(sparse_arguments,0,number_arguments*
@@ -559,9 +560,9 @@
   x=0;
   while( *p != '\0' && x < number_arguments ) {
     /* X coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of X-coord");
@@ -570,9 +571,9 @@
     }
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* Y coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of Y-coord");
@@ -590,9 +591,9 @@
 #endif
     {
       /* color name or function given in string argument */
-      token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-      if ( token[0] == '\0' ) break;
-      if ( isalpha((int) token[0]) || token[0] == '#' ) {
+      *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+      if (*token == '\0') break;
+      if ( isalpha((int) ((unsigned char) *token)) || (*token == '#')) {
         /* Color string given */
         (void) QueryColorCompliance(token,AllCompliance,&color,exception);
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
@@ -613,52 +614,52 @@
         /* NB: token contains the first floating point value to use! */
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
             (image->colorspace == CMYKColorspace))
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
         if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) &&
             (image->alpha_trait != UndefinedPixelTrait))
           {
-          while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-          if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+          while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+          if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || (*token == '#'))
             break;
           sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-          token[0] = ','; /* used this token - get another */
+          *token = ','; /* used this token - get another */
         }
       }
     }
   }
   if ( number_arguments != x && !error ) {
     (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
-      "InvalidArgument","'%s': %s","sparse-color","Argument Parsing Error");
+      "  InvalidArgument","'%s': %s","sparse-color","Argument Parsing Error");
     sparse_arguments=(double *) RelinquishMagickMemory(sparse_arguments);
     return( (Image *) NULL);
   }
@@ -1410,9 +1411,9 @@
             p=(char *) args;
             for (x=0; *p != '\0'; x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
             }
             number_arguments=(size_t) x;
             arguments=(double *) AcquireQuantumMemory(number_arguments,
@@ -1425,9 +1426,9 @@
             p=(char *) args;
             for (x=0; (x < (ssize_t) number_arguments) && (*p != '\0'); x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               arguments[x]=StringToDouble(token,(char **) NULL);
             }
             args=DestroyString(args);
@@ -1713,9 +1714,9 @@
             p=(char *) arguments;
             for (x=0; *p != '\0'; x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
             }
             number_parameters=(size_t) x;
             parameters=(double *) AcquireQuantumMemory(number_parameters,
@@ -1728,9 +1729,9 @@
             p=(char *) arguments;
             for (x=0; (x < (ssize_t) number_parameters) && (*p != '\0'); x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               parameters[x]=StringToDouble(token,(char **) NULL);
             }
             arguments=DestroyString(arguments);
@@ -1919,6 +1920,21 @@
             draw_info->kerning=geometry_info.rho;
             break;
           }
+        if (LocaleCompare("kmeans",option+1) == 0)
+          {
+            /*
+              K-means clustering
+            */
+            (void) SyncImageSettings(mogrify_info,*image,exception);
+            flags=ParseGeometry(argv[i+1],&geometry_info);
+            if ((flags & SigmaValue) == 0)
+              geometry_info.sigma=100.0;
+            if ((flags & XiValue) == 0)
+              geometry_info.xi=0.01;
+            (void) KmeansImage(*image,(size_t) geometry_info.rho,
+              (size_t) geometry_info.sigma,geometry_info.xi,exception);
+            break;
+          }
         if (LocaleCompare("kuwahara",option+1) == 0)
           {
             /*
@@ -1997,24 +2013,24 @@
               white_point;
 
             p=(const char *) argv[i+1];
-            GetNextToken(p,&p,MagickPathExtent,token);  /* get black point color */
-            if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
-              (void) QueryColorCompliance(token,AllCompliance,
-                &black_point,exception);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);  /* get black point color */
+            if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
+              (void) QueryColorCompliance(token,AllCompliance,&black_point,
+                exception);
             else
-              (void) QueryColorCompliance("#000000",AllCompliance,
-                &black_point,exception);
-            if (isalpha((int) token[0]) || (token[0] == '#'))
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) QueryColorCompliance("#000000",AllCompliance,&black_point,
+                exception);
+            if (isalpha((int) ((unsigned char) *token)) || (*token == '#'))
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             if (*token == '\0')
               white_point=black_point; /* set everything to that color */
             else
               {
-                if ((isalpha((int) *token) == 0) && ((*token == '#') == 0))
-                  GetNextToken(p,&p,MagickPathExtent,token); /* Get white point color. */
-                if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
-                  (void) QueryColorCompliance(token,AllCompliance,
-                    &white_point,exception);
+                if ((isalpha((int) ((unsigned char) *token)) == 0) && ((*token == '#') == 0))
+                  (void) GetNextToken(p,&p,MagickPathExtent,token); /* Get white point color. */
+                if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
+                  (void) QueryColorCompliance(token,AllCompliance,&white_point,
+                    exception);
                 else
                   (void) QueryColorCompliance("#ffffff",AllCompliance,
                     &white_point,exception);
@@ -2240,13 +2256,13 @@
             */
             (void) SyncImageSettings(mogrify_info,*image,exception);
             p=argv[i+1];
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             method=(MorphologyMethod) ParseCommandOption(
               MagickMorphologyOptions,MagickFalse,token);
             iterations=1L;
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
             if ((*p == ':') || (*p == ','))
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
             if ((*p != '\0'))
               iterations=(ssize_t) StringToLong(p);
             kernel=AcquireKernelInfo(argv[i+2],exception);
@@ -3436,365 +3452,339 @@
 static MagickBooleanType MogrifyUsage(void)
 {
   static const char
-    *channel_operators[]=
-    {
-      "-channel-fx expression",
-      "                     exchange, extract, or transfer one or more image channels",
-      "-separate            separate an image channel into a grayscale image",
-      (char *) NULL
-    },
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-distribute-cache port",
-      "                     distributed pixel cache spanning one or more servers",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-adaptive-blur geometry",
-      "                     adaptively blur pixels; decrease effect near edges",
-      "-adaptive-resize geometry",
-      "                     adaptively resize image using 'mesh' interpolation",
-      "-adaptive-sharpen geometry",
-      "                     adaptively sharpen pixels; increase effect near edges",
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-annotate geometry text",
-      "                     annotate the image with text",
-      "-auto-gamma          automagically adjust gamma level of image",
-      "-auto-level          automagically adjust color levels of image",
-      "-auto-orient         automagically orient (rotate) image",
-      "-auto-threshold method",
-      "                     automatically perform image thresholding",
-      "-bench iterations    measure performance",
-      "-black-threshold value",
-      "                     force all pixels below the threshold into black",
-      "-blue-shift          simulate a scene at nighttime in the moonlight",
-      "-blur geometry       reduce image noise and reduce detail levels",
-      "-border geometry     surround image with a border of color",
-      "-bordercolor color   border color",
-      "-brightness-contrast geometry",
-      "                     improve brightness / contrast of the image",
-      "-canny geometry      detect edges in the image",
-      "-cdl filename        color correct with a color decision list",
-      "-channel mask        set the image channel mask",
-      "-charcoal geometry   simulate a charcoal drawing",
-      "-chop geometry       remove pixels from the image interior",
-      "-clahe geometry      contrast limited adaptive histogram equalization",
-      "-clamp               keep pixel values in range (0-QuantumRange)",
-      "-clip                clip along the first path from the 8BIM profile",
-      "-clip-mask filename  associate a clip mask with the image",
-      "-clip-path id        clip along a named path from the 8BIM profile",
-      "-colorize value      colorize the image with the fill color",
-      "-color-matrix matrix apply color correction to the image",
-      "-connected-components connectivity",
-      "                     connected-components uniquely labeled",
-      "-contrast            enhance or reduce the image contrast",
-      "-contrast-stretch geometry",
-      "                     improve contrast by 'stretching' the intensity range",
-      "-convolve coefficients",
-      "                     apply a convolution kernel to the image",
-      "-cycle amount        cycle the image colormap",
-      "-decipher filename   convert cipher pixels to plain pixels",
-      "-deskew threshold    straighten an image",
-      "-despeckle           reduce the speckles within an image",
-      "-distort method args",
-      "                     distort images according to given method ad args",
-      "-draw string         annotate the image with a graphic primitive",
-      "-edge radius         apply a filter to detect edges in the image",
-      "-encipher filename   convert plain pixels to cipher pixels",
-      "-emboss radius       emboss an image",
-      "-enhance             apply a digital filter to enhance a noisy image",
-      "-equalize            perform histogram equalization to an image",
-      "-evaluate operator value",
-      "                     evaluate an arithmetic, relational, or logical expression",
-      "-extent geometry     set the image size",
-      "-extract geometry    extract area from image",
-      "-fft                 implements the discrete Fourier transform (DFT)",
-      "-flip                flip image vertically",
-      "-floodfill geometry color",
-      "                     floodfill the image with color",
-      "-flop                flop image horizontally",
-      "-frame geometry      surround image with an ornamental border",
-      "-function name parameters",
-      "                     apply function over image values",
-      "-gamma value         level of gamma correction",
-      "-gaussian-blur geometry",
-      "                     reduce image noise and reduce detail levels",
-      "-geometry geometry   preferred size or location of the image",
-      "-grayscale method    convert image to grayscale",
-      "-hough-lines geometry",
-      "                     identify lines in the image",
-      "-identify            identify the format and characteristics of the image",
-      "-ift                 implements the inverse discrete Fourier transform (DFT)",
-      "-implode amount      implode image pixels about the center",
-      "-interpolative-resize geometry",
-      "                     resize image using interpolation",
-      "-kuwahara geometry   edge preserving noise reduction filter",
-      "-lat geometry        local adaptive thresholding",
-      "-level value         adjust the level of image contrast",
-      "-level-colors color,color",
-      "                     level image with the given colors",
-      "-linear-stretch geometry",
-      "                     improve contrast by 'stretching with saturation'",
-      "-liquid-rescale geometry",
-      "                     rescale image with seam-carving",
-      "-local-contrast geometry",
-      "                     enhance local contrast",
-      "-magnify             double the size of the image with pixel art scaling",
-      "-mean-shift geometry delineate arbitrarily shaped clusters in the image",
-      "-median geometry     apply a median filter to the image",
-      "-mode geometry       make each pixel the 'predominant color' of the",
-      "                     neighborhood",
-      "-modulate value      vary the brightness, saturation, and hue",
-      "-monochrome          transform image to black and white",
-      "-morphology method kernel",
-      "                     apply a morphology method to the image",
-      "-motion-blur geometry",
-      "                     simulate motion blur",
-      "-negate              replace every pixel with its complementary color ",
-      "-noise geometry      add or reduce noise in an image",
-      "-normalize           transform image to span the full range of colors",
-      "-opaque color        change this color to the fill color",
-      "-ordered-dither NxN",
-      "                     add a noise pattern to the image with specific",
-      "                     amplitudes",
-      "-paint radius        simulate an oil painting",
-      "-perceptible epsilon",
-      "                     pixel value less than |epsilon| become epsilon or",
-      "                     -epsilon",
-      "-polaroid angle      simulate a Polaroid picture",
-      "-posterize levels    reduce the image to a limited number of color levels",
-      "-profile filename    add, delete, or apply an image profile",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-raise value         lighten/darken image edges to create a 3-D effect",
-      "-random-threshold low,high",
-      "                     random threshold the image",
-      "-range-threshold values",
-      "                     perform either hard or soft thresholding within some range of values in an image",
-      "-region geometry     apply options to a portion of the image",
-      "-render              render vector graphics",
-      "-repage geometry     size and location of an image canvas",
-      "-resample geometry   change the resolution of an image",
-      "-resize geometry     resize the image",
-      "-roll geometry       roll an image vertically or horizontally",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-rotational-blur angle",
-      "                     rotational blur the image",
-      "-sample geometry     scale image with pixel sampling",
-      "-scale geometry      scale the image",
-      "-segment values      segment an image",
-      "-selective-blur geometry",
-      "                     selectively blur pixels within a contrast threshold",
-      "-sepia-tone threshold",
-      "                     simulate a sepia-toned photo",
-      "-set property value  set an image property",
-      "-shade degrees       shade the image using a distant light source",
-      "-shadow geometry     simulate an image shadow",
-      "-sharpen geometry    sharpen the image",
-      "-shave geometry      shave pixels from the image edges",
-      "-shear geometry      slide one edge of the image along the X or Y axis",
-      "-sigmoidal-contrast geometry",
-      "                     increase the contrast without saturating highlights or",
-      "                     shadows",
-      "-sketch geometry     simulate a pencil sketch",
-      "-solarize threshold  negate all pixels above the threshold level",
-      "-sparse-color method args",
-      "                     fill in a image based on a few color points",
-      "-splice geometry     splice the background color into the image",
-      "-spread radius       displace image pixels by a random amount",
-      "-statistic type radius",
-      "                     replace each pixel with corresponding statistic from the neighborhood",
-      "-strip               strip image of all profiles and comments",
-      "-swirl degrees       swirl image pixels about the center",
-      "-threshold value     threshold the image",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-tile filename       tile image when filling a graphic primitive",
-      "-tint value          tint the image with the fill color",
-      "-transform           affine transform image",
-      "-transparent color   make this color transparent within the image",
-      "-transpose           flip image vertically and rotate 90 degrees",
-      "-transverse          flop image horizontally and rotate 270 degrees",
-      "-trim                trim image edges",
-      "-type type           image type",
-      "-unique-colors       discard all but one of any pixel color",
-      "-unsharp geometry    sharpen the image",
-      "-vignette geometry   soften the edges of the image in vignette style",
-      "-wave geometry       alter an image along a sine wave",
-      "-wavelet-denoise threshold",
-      "                     removes noise from the image using a wavelet transform",
-      "-white-threshold value",
-      "                     force all pixels above the threshold into white",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-affinity filename   transform image colors to match this set of colors",
-      "-append              append an image sequence",
-      "-clut                apply a color lookup table to the image",
-      "-coalesce            merge a sequence of images",
-      "-combine             combine a sequence of images",
-      "-compare             mathematically and visually annotate the difference between an image and its reconstruction",
-      "-complex operator    perform complex mathematics on an image sequence",
-      "-composite           composite image",
-      "-copy geometry offset",
-      "                     copy pixels from one area of an image to another",
-      "-crop geometry       cut out a rectangular region of the image",
-      "-deconstruct         break down an image sequence into constituent parts",
-      "-evaluate-sequence operator",
-      "                     evaluate an arithmetic, relational, or logical expression",
-      "-flatten             flatten a sequence of images",
-      "-fx expression       apply mathematical expression to an image channel(s)",
-      "-hald-clut           apply a Hald color lookup table to the image",
-      "-layers method       optimize, merge, or compare image layers",
-      "-morph value         morph an image sequence",
-      "-mosaic              create a mosaic from an image sequence",
-      "-poly terms          build a polynomial from the image sequence and the corresponding",
-      "                     terms (coefficients and degree pairs).",
-      "-print string        interpret string and print to console",
-      "-process arguments   process the image with a custom image filter",
-      "-smush geometry      smush an image sequence together",
-      "-write filename      write images to this file",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-adjoin              join images into a single multi-image file",
-      "-affine matrix       affine transform matrix",
-      "-alpha option        activate, deactivate, reset, or set the alpha channel",
-      "-antialias           remove pixel-aliasing",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-attenuate value     lessen (or intensify) when adding noise to an image",
-      "-background color    background color",
-      "-bias value          add bias when convolving an image",
-      "-black-point-compensation",
-      "                     use black point compensation",
-      "-blue-primary point  chromaticity blue primary point",
-      "-bordercolor color   border color",
-      "-caption string      assign a caption to an image",
-      "-colors value        preferred number of colors in the image",
-      "-colorspace type     alternate image colorspace",
-      "-comment string      annotate image with comment",
-      "-compose operator    set image composite operator",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option=value",
-      "                     define one or more image format options",
-      "-delay value         display the next image after pausing",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-direction type      render text right-to-left or left-to-right",
-      "-display server      get image or font from this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-encoding type       text encoding type",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-family name         render text with this font family",
-      "-features distance   analyze image features (e.g. contrast, correlation)",
-      "-fill color          color to use when filling a graphic primitive",
-      "-filter type         use this filter when resizing an image",
-      "-font name           render text with this font",
-      "-format \"string\"   output formatted image characteristics",
-      "-fuzz distance       colors within this distance are considered equal",
-      "-gravity type        horizontal and vertical text placement",
-      "-green-primary point chromaticity green primary point",
-      "-intensity method    method to generate an intensity value from a pixel",
-      "-intent type         type of rendering intent when managing the image color",
-      "-interlace type      type of image interlacing scheme",
-      "-interline-spacing value",
-      "                     set the space between two text lines",
-      "-interpolate method  pixel color interpolation method",
-      "-interword-spacing value",
-      "                     set the space between two words",
-      "-kerning value       set the space between two letters",
-      "-label string        assign a label to an image",
-      "-limit type value    pixel cache resource limit",
-      "-loop iterations     add Netscape loop extension to your GIF animation",
-      "-matte               store matte channel if the image has one",
-      "-mattecolor color    frame color",
-      "-monitor             monitor progress",
-      "-orient type         image orientation",
-      "-page geometry       size and location of an image canvas (setting)",
-      "-path path           write images to this path on disk",
-      "-ping                efficiently determine image attributes",
-      "-pointsize value     font point size",
-      "-precision value     maximum number of significant digits to print",
-      "-preview type        image preview type",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quiet               suppress all warning messages",
-      "-read-mask filename  associate a read mask with the image",
-      "-red-primary point   chromaticity red primary point",
-      "-regard-warnings     pay attention to warning messages",
-      "-remap filename      transform image colors to match this set of colors",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scene value         image scene number",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-size geometry       width and height of image",
-      "-stretch type        render text with this font stretch",
-      "-stroke color        graphic primitive stroke color",
-      "-strokewidth value   graphic primitive stroke width",
-      "-style type          render text with this font style",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-texture filename    name of texture to tile onto the image background",
-      "-tile-offset geometry",
-      "                     tile offset",
-      "-treedepth value     color tree depth",
-      "-transparent-color color",
-      "                     transparent color",
-      "-undercolor color    annotation bounding box color",
-      "-units type          the units of image resolution",
-      "-verbose             print detailed information about the image",
-      "-view                FlashPix viewing transforms",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-weight type         render text with this font weight",
-      "-white-point point   chromaticity white point",
-      "-write-mask filename associate a write mask with the image",
-      (char *) NULL
-    },
-    *stack_operators[]=
-    {
-      "-delete indexes      delete the image from the image sequence",
-      "-duplicate count,indexes",
-      "                     duplicate an image one or more times",
-      "-insert index        insert last image into the image sequence",
-      "-reverse             reverse image sequence",
-      "-swap indexes        swap two images in the image sequence",
-      (char *) NULL
-    };
-
-  const char
-    **p;
+    channel_operators[] =
+      "  -channel-fx expression\n"
+      "                       exchange, extract, or transfer one or more image channels\n"
+      "  -separate            separate an image channel into a grayscale image",
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -distribute-cache port\n"
+      "                       distributed pixel cache spanning one or more servers\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -adaptive-blur geometry\n"
+      "                       adaptively blur pixels; decrease effect near edges\n"
+      "  -adaptive-resize geometry\n"
+      "                       adaptively resize image using 'mesh' interpolation\n"
+      "  -adaptive-sharpen geometry\n"
+      "                       adaptively sharpen pixels; increase effect near edges\n"
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -annotate geometry text\n"
+      "                       annotate the image with text\n"
+      "  -auto-gamma          automagically adjust gamma level of image\n"
+      "  -auto-level          automagically adjust color levels of image\n"
+      "  -auto-orient         automagically orient (rotate) image\n"
+      "  -auto-threshold method\n"
+      "                       automatically perform image thresholding\n"
+      "  -bench iterations    measure performance\n"
+      "  -black-threshold value\n"
+      "                       force all pixels below the threshold into black\n"
+      "  -blue-shift          simulate a scene at nighttime in the moonlight\n"
+      "  -blur geometry       reduce image noise and reduce detail levels\n"
+      "  -border geometry     surround image with a border of color\n"
+      "  -bordercolor color   border color\n"
+      "  -brightness-contrast geometry\n"
+      "                       improve brightness / contrast of the image\n"
+      "  -canny geometry      detect edges in the image\n"
+      "  -cdl filename        color correct with a color decision list\n"
+      "  -channel mask        set the image channel mask\n"
+      "  -charcoal geometry   simulate a charcoal drawing\n"
+      "  -chop geometry       remove pixels from the image interior\n"
+      "  -clahe geometry      contrast limited adaptive histogram equalization\n"
+      "  -clamp               keep pixel values in range (0-QuantumRange)\n"
+      "  -clip                clip along the first path from the 8BIM profile\n"
+      "  -clip-mask filename  associate a clip mask with the image\n"
+      "  -clip-path id        clip along a named path from the 8BIM profile\n"
+      "  -colorize value      colorize the image with the fill color\n"
+      "  -color-matrix matrix apply color correction to the image\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -connected-components connectivity\n"
+      "                       connected-components uniquely labeled\n"
+      "  -contrast            enhance or reduce the image contrast\n"
+      "  -contrast-stretch geometry\n"
+      "                       improve contrast by 'stretching' the intensity range\n"
+      "  -convolve coefficients\n"
+      "                       apply a convolution kernel to the image\n"
+      "  -cycle amount        cycle the image colormap\n"
+      "  -decipher filename   convert cipher pixels to plain pixels\n"
+      "  -deskew threshold    straighten an image\n"
+      "  -despeckle           reduce the speckles within an image\n"
+      "  -distort method args\n"
+      "                       distort images according to given method ad args\n"
+      "  -draw string         annotate the image with a graphic primitive\n"
+      "  -edge radius         apply a filter to detect edges in the image\n"
+      "  -encipher filename   convert plain pixels to cipher pixels\n"
+      "  -emboss radius       emboss an image\n"
+      "  -enhance             apply a digital filter to enhance a noisy image\n"
+      "  -equalize            perform histogram equalization to an image\n"
+      "  -evaluate operator value\n"
+      "                       evaluate an arithmetic, relational, or logical expression\n"
+      "  -extent geometry     set the image size\n"
+      "  -extract geometry    extract area from image\n"
+      "  -fft                 implements the discrete Fourier transform (DFT)\n"
+      "  -flip                flip image vertically\n"
+      "  -floodfill geometry color\n"
+      "                       floodfill the image with color\n"
+      "  -flop                flop image horizontally\n"
+      "  -frame geometry      surround image with an ornamental border\n"
+      "  -function name parameters\n"
+      "                       apply function over image values\n"
+      "  -gamma value         level of gamma correction\n"
+      "  -gaussian-blur geometry\n"
+      "                       reduce image noise and reduce detail levels\n"
+      "  -geometry geometry   preferred size or location of the image\n"
+      "  -grayscale method    convert image to grayscale\n"
+      "  -hough-lines geometry\n"
+      "                       identify lines in the image\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -ift                 implements the inverse discrete Fourier transform (DFT)\n"
+      "  -implode amount      implode image pixels about the center\n"
+      "  -interpolative-resize geometry\n"
+      "                       resize image using interpolation\n"
+      "  -kmeans geometry     K means color reduction\n"
+      "  -kuwahara geometry   edge preserving noise reduction filter\n"
+      "  -lat geometry        local adaptive thresholding\n"
+      "  -level value         adjust the level of image contrast\n"
+      "  -level-colors color,color\n"
+      "                       level image with the given colors\n"
+      "  -linear-stretch geometry\n"
+      "                       improve contrast by 'stretching with saturation'\n"
+      "  -liquid-rescale geometry\n"
+      "                       rescale image with seam-carving\n"
+      "  -local-contrast geometry\n"
+      "                       enhance local contrast\n"
+      "  -magnify             double the size of the image with pixel art scaling\n"
+      "  -mean-shift geometry delineate arbitrarily shaped clusters in the image\n"
+      "  -median geometry     apply a median filter to the image\n"
+      "  -mode geometry       make each pixel the 'predominant color' of the\n"
+      "                       neighborhood\n"
+      "  -modulate value      vary the brightness, saturation, and hue\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -morphology method kernel\n"
+      "                       apply a morphology method to the image\n"
+      "  -motion-blur geometry\n"
+      "                       simulate motion blur\n"
+      "  -negate              replace every pixel with its complementary color \n"
+      "  -noise geometry      add or reduce noise in an image\n"
+      "  -normalize           transform image to span the full range of colors\n"
+      "  -opaque color        change this color to the fill color\n"
+      "  -ordered-dither NxN\n"
+      "                       add a noise pattern to the image with specific\n"
+      "                       amplitudes\n"
+      "  -paint radius        simulate an oil painting\n"
+      "  -perceptible epsilon\n"
+      "                       pixel value less than |epsilon| become epsilon or\n"
+      "                       -epsilon\n"
+      "  -polaroid angle      simulate a Polaroid picture\n"
+      "  -posterize levels    reduce the image to a limited number of color levels\n"
+      "  -profile filename    add, delete, or apply an image profile\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -raise value         lighten/darken image edges to create a 3-D effect\n"
+      "  -random-threshold low,high\n"
+      "                       random threshold the image\n"
+      "  -range-threshold values\n"
+      "                       perform either hard or soft thresholding within some range of values in an image\n"
+      "  -region geometry     apply options to a portion of the image\n"
+      "  -render              render vector graphics\n"
+      "  -repage geometry     size and location of an image canvas\n"
+      "  -resample geometry   change the resolution of an image\n"
+      "  -resize geometry     resize the image\n"
+      "  -roll geometry       roll an image vertically or horizontally\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -rotational-blur angle\n"
+      "                       rotational blur the image\n"
+      "  -sample geometry     scale image with pixel sampling\n"
+      "  -scale geometry      scale the image\n"
+      "  -segment values      segment an image\n"
+      "  -selective-blur geometry\n"
+      "                       selectively blur pixels within a contrast threshold\n"
+      "  -sepia-tone threshold\n"
+      "                       simulate a sepia-toned photo\n"
+      "  -set property value  set an image property\n"
+      "  -shade degrees       shade the image using a distant light source\n"
+      "  -shadow geometry     simulate an image shadow\n"
+      "  -sharpen geometry    sharpen the image\n"
+      "  -shave geometry      shave pixels from the image edges\n"
+      "  -shear geometry      slide one edge of the image along the X or Y axis\n"
+      "  -sigmoidal-contrast geometry\n"
+      "                       increase the contrast without saturating highlights or\n"
+      "                       shadows\n"
+      "  -sketch geometry     simulate a pencil sketch\n"
+      "  -solarize threshold  negate all pixels above the threshold level\n"
+      "  -sparse-color method args\n"
+      "                       fill in a image based on a few color points\n"
+      "  -splice geometry     splice the background color into the image\n"
+      "  -spread radius       displace image pixels by a random amount\n"
+      "  -statistic type radius\n"
+      "                       replace each pixel with corresponding statistic from the neighborhood\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -swirl degrees       swirl image pixels about the center\n"
+      "  -threshold value     threshold the image\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -tile filename       tile image when filling a graphic primitive\n"
+      "  -tint value          tint the image with the fill color\n"
+      "  -transform           affine transform image\n"
+      "  -transparent color   make this color transparent within the image\n"
+      "  -transpose           flip image vertically and rotate 90 degrees\n"
+      "  -transverse          flop image horizontally and rotate 270 degrees\n"
+      "  -trim                trim image edges\n"
+      "  -type type           image type\n"
+      "  -unique-colors       discard all but one of any pixel color\n"
+      "  -unsharp geometry    sharpen the image\n"
+      "  -vignette geometry   soften the edges of the image in vignette style\n"
+      "  -wave geometry       alter an image along a sine wave\n"
+      "  -wavelet-denoise threshold\n"
+      "                       removes noise from the image using a wavelet transform\n"
+      "  -white-threshold value\n"
+      "                       force all pixels above the threshold into white",
+    sequence_operators[] =
+      "  -affinity filename   transform image colors to match this set of colors\n"
+      "  -append              append an image sequence\n"
+      "  -clut                apply a color lookup table to the image\n"
+      "  -coalesce            merge a sequence of images\n"
+      "  -combine             combine a sequence of images\n"
+      "  -compare             mathematically and visually annotate the difference between an image and its reconstruction\n"
+      "  -complex operator    perform complex mathematics on an image sequence\n"
+      "  -composite           composite image\n"
+      "  -copy geometry offset\n"
+      "                       copy pixels from one area of an image to another\n"
+      "  -crop geometry       cut out a rectangular region of the image\n"
+      "  -deconstruct         break down an image sequence into constituent parts\n"
+      "  -evaluate-sequence operator\n"
+      "                       evaluate an arithmetic, relational, or logical expression\n"
+      "  -flatten             flatten a sequence of images\n"
+      "  -fx expression       apply mathematical expression to an image channel(s)\n"
+      "  -hald-clut           apply a Hald color lookup table to the image\n"
+      "  -layers method       optimize, merge, or compare image layers\n"
+      "  -morph value         morph an image sequence\n"
+      "  -mosaic              create a mosaic from an image sequence\n"
+      "  -poly terms          build a polynomial from the image sequence and the corresponding\n"
+      "                       terms (coefficients and degree pairs).\n"
+      "  -print string        interpret string and print to console\n"
+      "  -process arguments   process the image with a custom image filter\n"
+      "  -smush geometry      smush an image sequence together\n"
+      "  -write filename      write images to this file",
+    settings[] =
+      "  -adjoin              join images into a single multi-image file\n"
+      "  -affine matrix       affine transform matrix\n"
+      "  -alpha option        activate, deactivate, reset, or set the alpha channel\n"
+      "  -antialias           remove pixel-aliasing\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -attenuate value     lessen (or intensify) when adding noise to an image\n"
+      "  -background color    background color\n"
+      "  -bias value          add bias when convolving an image\n"
+      "  -black-point-compensation\n"
+      "                       use black point compensation\n"
+      "  -blue-primary point  chromaticity blue primary point\n"
+      "  -bordercolor color   border color\n"
+      "  -caption string      assign a caption to an image\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compose operator    set image composite operator\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option=value\n"
+      "                       define one or more image format options\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -direction type      render text right-to-left or left-to-right\n"
+      "  -display server      get image or font from this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -encoding type       text encoding type\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -family name         render text with this font family\n"
+      "  -features distance   analyze image features (e.g. contrast, correlation)\n"
+      "  -fill color          color to use when filling a graphic primitive\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -font name           render text with this font\n"
+      "  -format \"string\"   output formatted image characteristics\n"
+      "  -fuzz distance       colors within this distance are considered equal\n"
+      "  -gravity type        horizontal and vertical text placement\n"
+      "  -green-primary point chromaticity green primary point\n"
+      "  -intensity method    method to generate an intensity value from a pixel\n"
+      "  -intent type         type of rendering intent when managing the image color\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interline-spacing value\n"
+      "                       set the space between two text lines\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -interword-spacing value\n"
+      "                       set the space between two words\n"
+      "  -kerning value       set the space between two letters\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -loop iterations     add Netscape loop extension to your GIF animation\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -mattecolor color    frame color\n"
+      "  -monitor             monitor progress\n"
+      "  -orient type         image orientation\n"
+      "  -page geometry       size and location of an image canvas (setting)\n"
+      "  -path path           write images to this path on disk\n"
+      "  -ping                efficiently determine image attributes\n"
+      "  -pointsize value     font point size\n"
+      "  -precision value     maximum number of significant digits to print\n"
+      "  -preview type        image preview type\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -read-mask filename  associate a read mask with the image\n"
+      "  -red-primary point   chromaticity red primary point\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -remap filename      transform image colors to match this set of colors\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scene value         image scene number\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -size geometry       width and height of image\n"
+      "  -stretch type        render text with this font stretch\n"
+      "  -stroke color        graphic primitive stroke color\n"
+      "  -strokewidth value   graphic primitive stroke width\n"
+      "  -style type          render text with this font style\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -texture filename    name of texture to tile onto the image background\n"
+      "  -tile-offset geometry\n"
+      "                       tile offset\n"
+      "  -treedepth value     color tree depth\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -undercolor color    annotation bounding box color\n"
+      "  -units type          the units of image resolution\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -view                FlashPix viewing transforms\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -weight type         render text with this font weight\n"
+      "  -white-point point   chromaticity white point\n"
+      "  -write-mask filename associate a write mask with the image",
+    stack_operators[] =
+      "  -delete indexes      delete the image from the image sequence\n"
+      "  -duplicate count,indexes\n"
+      "                       duplicate an image one or more times\n"
+      "  -insert index        insert last image into the image sequence\n"
+      "  -reverse             reverse image sequence\n"
+      "  -swap indexes        swap two images in the image sequence";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] file ...]\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Channel Operators:\n");
-  for (p=channel_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(channel_operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nImage Stack Operators:\n");
-  for (p=stack_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(stack_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
@@ -5259,6 +5249,15 @@
               ThrowMogrifyInvalidArgumentException(option,argv[i]);
             break;
           }
+        if (LocaleCompare("kmeans",option+1) == 0)
+          {
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowMogrifyException(OptionError,"MissingArgument",option);
+            if (IsGeometry(argv[i]) == MagickFalse)
+              ThrowMogrifyInvalidArgumentException(option,argv[i]);
+            break;
+          }
         if (LocaleCompare("kuwahara",option+1) == 0)
           {
             i++;
@@ -5290,6 +5289,7 @@
               ThrowMogrifyException(OptionError,"MissingArgument",option);
             if (IsGeometry(argv[i]) == MagickFalse)
               ThrowMogrifyInvalidArgumentException(option,argv[i]);
+            break;
           }
         if (LocaleCompare("layers",option+1) == 0)
           {
@@ -5404,6 +5404,8 @@
       }
       case 'm':
       {
+        if (LocaleCompare("magnify",option+1) == 0)
+          break;
         if (LocaleCompare("map",option+1) == 0)
           {
             global_colormap=(*option == '+') ? MagickTrue : MagickFalse;
@@ -5527,7 +5529,7 @@
             i++;
             if (i == (ssize_t) argc)
               ThrowMogrifyException(OptionError,"MissingArgument",option);
-            GetNextToken(argv[i],(const char **) NULL,MagickPathExtent,token);
+            (void) GetNextToken(argv[i],(const char **) NULL,MagickPathExtent,token);
             op=ParseCommandOption(MagickMorphologyOptions,MagickFalse,token);
             if (op < 0)
               ThrowMogrifyException(OptionError,"UnrecognizedMorphologyMethod",
@@ -7848,6 +7850,9 @@
             clut_image=RemoveFirstImageFromList(images);
             if (clut_image == (Image *) NULL)
               {
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  OptionError,"ImageSequenceRequired","`%s'",option);
+                image=DestroyImage(image);
                 status=MagickFalse;
                 break;
               }
@@ -7920,6 +7925,9 @@
             reconstruct_image=RemoveFirstImageFromList(images);
             if (reconstruct_image == (Image *) NULL)
               {
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  OptionError,"ImageSequenceRequired","`%s'",option);
+                image=DestroyImage(image);
                 status=MagickFalse;
                 break;
               }
@@ -7932,8 +7940,10 @@
               &distortion,exception);
             if (difference_image == (Image *) NULL)
               break;
+            reconstruct_image=DestroyImage(reconstruct_image);
+            image=DestroyImage(image);
             if (*images != (Image *) NULL)
-              *images=DestroyImage(*images);
+              *images=DestroyImageList(*images);
             *images=difference_image;
             break;
           }
@@ -7998,7 +8008,13 @@
             new_images=RemoveFirstImageFromList(images);
             source_image=RemoveFirstImageFromList(images);
             if (source_image == (Image *) NULL)
-              break; /* FUTURE - produce Exception, rather than silent fail */
+              {
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  OptionError,"ImageSequenceRequired","`%s'",option);
+                new_images=DestroyImage(new_images);
+                status=MagickFalse;
+                break;
+              }
 
             /* FUTURE: this should not be here! - should be part of -geometry */
             if (source_image->geometry != (char *) NULL)
@@ -8055,7 +8071,7 @@
                       CopyAlphaCompositeOp,MagickTrue,0,0,exception);
                     status&=CompositeImage(clone_image,new_images,
                       OverCompositeOp,clip_to_self,0,0,exception);
-                    new_images=DestroyImage(new_images);
+                    new_images=DestroyImageList(new_images);
                     new_images=clone_image;
                   }
                 mask_image=DestroyImage(mask_image);
@@ -8063,7 +8079,6 @@
             source_image=DestroyImage(source_image);
             *images=DestroyImageList(*images);
             *images=new_images;
-
             break;
           }
         if (LocaleCompare("copy",option+1) == 0)
@@ -8203,7 +8218,7 @@
               MagickTrue : MagickFalse,exception);
             if (fourier_image == (Image *) NULL)
               break;
-            *images=DestroyImage(*images);
+            *images=DestroyImageList(*images);
             *images=fourier_image;
             break;
           }
@@ -8251,6 +8266,9 @@
             hald_image=RemoveFirstImageFromList(images);
             if (hald_image == (Image *) NULL)
               {
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  OptionError,"ImageSequenceRequired","`%s'",option);
+                image=DestroyImage(image);
                 status=MagickFalse;
                 break;
               }
@@ -8280,15 +8298,20 @@
             phase_image=RemoveFirstImageFromList(images);
             if (phase_image == (Image *) NULL)
               {
+                (void) ThrowMagickException(exception,GetMagickModule(),
+                  OptionError,"ImageSequenceRequired","`%s'",option);
+                magnitude_image=DestroyImage(magnitude_image);
                 status=MagickFalse;
                 break;
               }
             fourier_image=InverseFourierTransformImage(magnitude_image,
               phase_image,*option == '-' ? MagickTrue : MagickFalse,exception);
+            magnitude_image=DestroyImage(magnitude_image);
+            phase_image=DestroyImage(phase_image);
             if (fourier_image == (Image *) NULL)
               break;
             if (*images != (Image *) NULL)
-              *images=DestroyImage(*images);
+              *images=DestroyImageList(*images);
             *images=fourier_image;
             break;
           }
@@ -8320,6 +8343,7 @@
                    q=GetImageFromList(*images,index-1);
                    if (q == (Image *) NULL)
                      {
+                       p=DestroyImage(p);
                        (void) ThrowMagickException(exception,GetMagickModule(),
                          OptionError,"NoSuchImage","`%s'",argv[i+1]);
                        status=MagickFalse;
@@ -8628,9 +8652,9 @@
             p=(char *) args;
             for (x=0; *p != '\0'; x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
             }
             number_arguments=(size_t) x;
             arguments=(double *) AcquireQuantumMemory(number_arguments,
@@ -8643,9 +8667,9 @@
             p=(char *) args;
             for (x=0; (x < (ssize_t) number_arguments) && (*p != '\0'); x++)
             {
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               arguments[x]=StringToDouble(token,(char **) NULL);
             }
             args=DestroyString(args);
diff --git a/MagickWand/mogrify.h b/MagickWand/mogrify.h
index 0f27bde..f11e2bc 100644
--- a/MagickWand/mogrify.h
+++ b/MagickWand/mogrify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index 7224c59..49999e22 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -83,165 +83,144 @@
 
 static MagickBooleanType MontageUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *operators[]=
-    {
-      "-adaptive-sharpen geometry",
-      "                     adaptively sharpen pixels; increase effect near edges",
-      "-annotate geometry text",
-      "                     annotate the image with text",
-      "-auto-orient         automagically orient image",
-      "-blur geometry      reduce image noise and reduce detail levels",
-      "-border geometry     surround image with a border of color",
-      "-channel mask        set the image channel mask",
-      "-crop geometry       preferred size and location of the cropped image",
-      "-extent geometry     set the image size",
-      "-flatten             flatten a sequence of images",
-      "-flip                flip image in the vertical direction",
-      "-flop                flop image in the horizontal direction",
-      "-frame geometry      surround image with an ornamental border",
-      "-monochrome          transform image to black and white",
-      "-polaroid angle      simulate a Polaroid picture",
-      "-repage geometry     size and location of an image canvas (operator)",
-      "-resize geometry     resize the image",
-      "-rotate degrees      apply Paeth rotation to the image",
-      "-scale geometry      scale the image",
-      "-strip               strip image of all profiles and comments",
-      "-transform           affine transform image",
-      "-transpose           flip image vertically and rotate 90 degrees",
-      "-transparent color   make this color transparent within the image",
-      "-type type           image type",
-      "-unsharp geometry    sharpen the image",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-adjoin              join images into a single multi-image file",
-      "-affine matrix       affine transform matrix",
-      "-alpha option        on, activate, off, deactivate, set, opaque, copy",
-      "                     transparent, extract, background, or shape",
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-blue-primary point  chromaticity blue primary point",
-      "-bordercolor color   border color",
-      "-caption string      assign a caption to an image",
-      "-colors value        preferred number of colors in the image",
-      "-colorspace type     alternate image colorsapce",
-      "-comment string      annotate image with comment",
-      "-compose operator    composite operator",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-display server      query font from this X server",
-      "-dispose method      layer disposal method",
-      "-dither method       apply error diffusion to image",
-      "-draw string         annotate the image with a graphic primitive",
-      "-encoding type       text encoding type",
-      "-endian type         endianness (MSB or LSB) of the image",
-      "-extract geometry    extract area from image",
-      "-fill color          color to use when filling a graphic primitive",
-      "-filter type         use this filter when resizing an image",
-      "-font name           render text with this font",
-      "-format \"string\"     output formatted image characteristics",
-      "-gamma value         level of gamma correction",
-      "-geometry geometry   preferred tile and border sizes",
-      "-gravity direction   which direction to gravitate towards",
-      "-green-primary point chromaticity green primary point",
-      "-identify            identify the format and characteristics of the image",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-kerning value       set the space between two letters",
-      "-label string        assign a label to an image",
-      "-limit type value    pixel cache resource limit",
-      "-matte               store matte channel if the image has one",
-      "-mattecolor color    frame color",
-      "-mode type           framing style",
-      "-monitor             monitor progress",
-      "-page geometry       size and location of an image canvas (setting)",
-      "-pointsize value     font point size",
-      "-profile filename    add, delete, or apply an image profile",
-      "-quality value       JPEG/MIFF/PNG compression level",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-quiet               suppress all warning messages",
-      "-red-primary point   chromaticity red primary point",
-      "-regard-warnings     pay attention to warning messages",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-scenes range        image scene range",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set attribute value set an image attribute",
-      "-shadow              add a shadow beneath a tile to simulate depth",
-      "-size geometry       width and height of image",
-      "-stroke color        color to use when stroking a graphic primitive",
-      "-support factor      resize support: > 1.0 is blurry, < 1.0 is sharp",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-texture filename    name of texture to tile onto the image background",
-      "-thumbnail geometry  create a thumbnail of the image",
-      "-tile geometry       number of tiles per row and column",
-      "-title string        decorate the montage image with a title",
-      "-transparent-color color",
-      "                     transparent color",
-      "-treedepth value     color tree depth",
-      "-trim                trim image edges",
-      "-units type          the units of image resolution",
-      "-verbose             print detailed information about the image",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      "-white-point point   chromaticity white point",
-      (char *) NULL
-    },
-    *sequence_operators[]=
-    {
-      "-coalesce            merge a sequence of images",
-      "-composite           composite image",
-      (char *) NULL
-    },
-    *stack_operators[]=
-    {
-      "-clone indexes       clone an image",
-      "-delete indexes      delete the image from the image sequence",
-      "-duplicate count,indexes",
-      "                     duplicate an image one or more times",
-      "-insert index        insert last image into the image sequence",
-      "-reverse             reverse image sequence",
-      "-swap indexes        swap two images in the image sequence",
-      (char *) NULL
-    };
+    miscellaneous[] =
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    operators[] =
+      "  -adaptive-sharpen geometry\n"
+      "                       adaptively sharpen pixels; increase effect near edges\n"
+      "  -annotate geometry text\n"
+      "                       annotate the image with text\n"
+      "  -auto-orient         automagically orient image\n"
+      "  -blur geometry      reduce image noise and reduce detail levels\n"
+      "  -border geometry     surround image with a border of color\n"
+      "  -channel mask        set the image channel mask\n"
+      "  -crop geometry       preferred size and location of the cropped image\n"
+      "  -extent geometry     set the image size\n"
+      "  -flatten             flatten a sequence of images\n"
+      "  -flip                flip image in the vertical direction\n"
+      "  -flop                flop image in the horizontal direction\n"
+      "  -frame geometry      surround image with an ornamental border\n"
+      "  -layers method       optimize, merge, or compare image layers\n"
+      "  -monochrome          transform image to black and white\n"
+      "  -polaroid angle      simulate a Polaroid picture\n"
+      "  -repage geometry     size and location of an image canvas (operator)\n"
+      "  -resize geometry     resize the image\n"
+      "  -rotate degrees      apply Paeth rotation to the image\n"
+      "  -scale geometry      scale the image\n"
+      "  -strip               strip image of all profiles and comments\n"
+      "  -transform           affine transform image\n"
+      "  -transpose           flip image vertically and rotate 90 degrees\n"
+      "  -transparent color   make this color transparent within the image\n"
+      "  -type type           image type\n"
+      "  -unsharp geometry    sharpen the image",
+    settings[] =
+      "  -adjoin              join images into a single multi-image file\n"
+      "  -affine matrix       affine transform matrix\n"
+      "  -alpha option        on, activate, off, deactivate, set, opaque, copy\n"
+      "                       transparent, extract, background, or shape\n"
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -blue-primary point  chromaticity blue primary point\n"
+      "  -bordercolor color   border color\n"
+      "  -caption string      assign a caption to an image\n"
+      "  -colors value        preferred number of colors in the image\n"
+      "  -colorspace type     alternate image colorsapce\n"
+      "  -comment string      annotate image with comment\n"
+      "  -compose operator    composite operator\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -delay value         display the next image after pausing\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -display server      query font from this X server\n"
+      "  -dispose method      layer disposal method\n"
+      "  -dither method       apply error diffusion to image\n"
+      "  -draw string         annotate the image with a graphic primitive\n"
+      "  -encoding type       text encoding type\n"
+      "  -endian type         endianness (MSB or LSB) of the image\n"
+      "  -extract geometry    extract area from image\n"
+      "  -fill color          color to use when filling a graphic primitive\n"
+      "  -filter type         use this filter when resizing an image\n"
+      "  -font name           render text with this font\n"
+      "  -format \"string\"     output formatted image characteristics\n"
+      "  -gamma value         level of gamma correction\n"
+      "  -geometry geometry   preferred tile and border sizes\n"
+      "  -gravity direction   which direction to gravitate towards\n"
+      "  -green-primary point chromaticity green primary point\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -kerning value       set the space between two letters\n"
+      "  -label string        assign a label to an image\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -matte               store matte channel if the image has one\n"
+      "  -mattecolor color    frame color\n"
+      "  -mode type           framing style\n"
+      "  -monitor             monitor progress\n"
+      "  -page geometry       size and location of an image canvas (setting)\n"
+      "  -pointsize value     font point size\n"
+      "  -profile filename    add, delete, or apply an image profile\n"
+      "  -quality value       JPEG/MIFF/PNG compression level\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -red-primary point   chromaticity red primary point\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -scenes range        image scene range\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set attribute value set an image attribute\n"
+      "  -shadow              add a shadow beneath a tile to simulate depth\n"
+      "  -size geometry       width and height of image\n"
+      "  -stroke color        color to use when stroking a graphic primitive\n"
+      "  -support factor      resize support: > 1.0 is blurry, < 1.0 is sharp\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -texture filename    name of texture to tile onto the image background\n"
+      "  -thumbnail geometry  create a thumbnail of the image\n"
+      "  -tile geometry       number of tiles per row and column\n"
+      "  -title string        decorate the montage image with a title\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -treedepth value     color tree depth\n"
+      "  -trim                trim image edges\n"
+      "  -units type          the units of image resolution\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method\n"
+      "  -white-point point   chromaticity white point",
+    sequence_operators[] =
+      "  -coalesce            merge a sequence of images\n"
+      "  -composite           composite image",
+    stack_operators[] =
+      "  -clone indexes       clone an image\n"
+      "  -delete indexes      delete the image from the image sequence\n"
+      "  -duplicate count,indexes\n"
+      "                       duplicate an image one or more times\n"
+      "  -insert index        insert last image into the image sequence\n"
+      "  -reverse             reverse image sequence\n"
+      "  -swap indexes        swap two images in the image sequence";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] file [ [options ...] file ...] file\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nImage Operators:\n");
-  for (p=operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(operators);
   (void) printf("\nImage Sequence Operators:\n");
-  for (p=sequence_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(sequence_operators);
   (void) printf("\nImage Stack Operators:\n");
-  for (p=stack_operators; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(stack_operators);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nIn addition to those listed above, you can specify these standard X\n");
   (void) printf(
@@ -624,7 +603,7 @@
             Image
               *clone_images,
               *clone_list;
-            
+
             clone_list=CloneImageList(image,exception);
             if (k != 0)
               clone_list=CloneImageList(image_stack[k-1].image,exception);
@@ -634,7 +613,7 @@
             if (*option == '+')
               clone_images=CloneImages(clone_list,"-1",exception);
             else
-              { 
+              {
                 i++;
                 if (i == (ssize_t) argc)
                   ThrowMontageException(OptionError,"MissingArgument",option);
@@ -773,6 +752,17 @@
               }
             break;
           }
+        if (LocaleCompare("delay",option+1) == 0)
+          {
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowMontageException(OptionError,"MissingArgument",option);
+            if (IsGeometry(argv[i]) == MagickFalse)
+              ThrowMontageInvalidArgumentException(option,argv[i]);
+            break;
+          }
         if (LocaleCompare("delete",option+1) == 0)
           {
             if (*option == '+')
@@ -1138,6 +1128,22 @@
               ThrowMontageException(OptionError,"MissingArgument",option);
             break;
           }
+        if (LocaleCompare("layers",option+1) == 0)
+          {
+            ssize_t
+              type;
+
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowMontageException(OptionError,"MissingArgument",option);
+            type=ParseCommandOption(MagickLayerOptions,MagickFalse,argv[i]);
+            if (type < 0)
+              ThrowMontageException(OptionError,"UnrecognizedLayerMethod",
+                argv[i]);
+            break;
+          }
         if (LocaleCompare("limit",option+1) == 0)
           {
             char
diff --git a/MagickWand/montage.h b/MagickWand/montage.h
index 8ade657..b159151 100644
--- a/MagickWand/montage.h
+++ b/MagickWand/montage.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/operation-private.h b/MagickWand/operation-private.h
index 3c1a90d..30d9371 100644
--- a/MagickWand/operation-private.h
+++ b/MagickWand/operation-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index c93c123..6125de6 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -17,7 +17,7 @@
 %                               September 2011                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -61,6 +61,7 @@
 #include "MagickCore/pixel-private.h"
 #include "MagickCore/string-private.h"
 #include "MagickCore/thread-private.h"
+#include "MagickCore/timer-private.h"
 
 /*
   Constant declaration.
@@ -234,9 +235,9 @@
   x=0;
   while( *p != '\0' )
   {
-    GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == ',' ) continue;
-    if ( isalpha((int) token[0]) || token[0] == '#' )
+    (void) GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == ',') continue;
+    if ( isalpha((int) ((unsigned char) *token)) || *token == '#' )
       x += number_colors;  /* color argument found */
     else
       x++;   /* floating point argument */
@@ -266,9 +267,9 @@
   x=0;
   while( *p != '\0' && x < number_arguments ) {
     /* X coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || *token == '#' ) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of X-coord");
@@ -277,9 +278,9 @@
     }
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* Y coordinate */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || *token == '#' ) {
       (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError, "InvalidArgument", "'%s': %s", "sparse-color",
             "Color found, instead of Y-coord");
@@ -288,9 +289,9 @@
     }
     sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
     /* color name or function given in string argument */
-    token[0]=','; while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-    if ( token[0] == '\0' ) break;
-    if ( isalpha((int) token[0]) || token[0] == '#' ) {
+    *token=','; while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+    if (*token == '\0') break;
+    if ( isalpha((int) ((unsigned char) *token)) || *token == '#' ) {
       /* Color string given */
       (void) QueryColorCompliance(token,AllCompliance,&color,
                 exception);
@@ -312,45 +313,45 @@
       /* NB: token contains the first floating point value to use! */
       if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
         {
-        while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-        if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+        while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-        token[0] = ','; /* used this token - get another */
+        *token=','; /* used this token - get another */
       }
       if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
         {
-        while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-        if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+        while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-        token[0] = ','; /* used this token - get another */
+        *token=','; /* used this token - get another */
       }
       if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
         {
-        while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-        if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+        while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-        token[0] = ','; /* used this token - get another */
+        *token = ','; /* used this token - get another */
       }
       if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
           (image->colorspace == CMYKColorspace))
         {
-        while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-        if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+        while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-        token[0] = ','; /* used this token - get another */
+        *token=','; /* used this token - get another */
       }
       if (((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) &&
           image->alpha_trait != UndefinedPixelTrait)
         {
-        while ( token[0] == ',' ) GetNextToken(p,&p,MagickPathExtent,token);
-        if ( token[0] == '\0' || isalpha((int)token[0]) || token[0] == '#' )
+        while (*token == ',') GetNextToken(p,&p,MagickPathExtent,token);
+        if ((*token == '\0') || isalpha((int) ((unsigned char) *token)) || *token == '#' )
           break;
         sparse_arguments[x++]=StringToDouble(token,(char **) NULL);
-        token[0] = ','; /* used this token - get another */
+        *token = ','; /* used this token - get another */
       }
     }
   }
@@ -1334,7 +1335,7 @@
             CLIWandExceptArgBreak(OptionError,"InvalidArgument",option,arg1);
           SetRandomSecretKey(
                IfSetOption ? (unsigned long) StringToUnsignedLong(arg1)
-                           : (unsigned long) time((time_t *) NULL) );
+                           : (unsigned long) time((time_t *) NULL));
           break;
         }
       if (LocaleCompare("size",option+1) == 0)
@@ -2540,6 +2541,22 @@
     }
     case 'k':
     {
+      if (LocaleCompare("kmeans",option+1) == 0)
+        {
+          /*
+            K-means clustering.
+          */
+          flags=ParseGeometry(arg1,&geometry_info);
+          if ((flags & (RhoValue|SigmaValue)) == 0)
+            CLIWandExceptArgBreak(OptionError,"InvalidArgument",option,arg1);
+          if ((flags & SigmaValue) == 0)
+            geometry_info.sigma=100.0;
+          if ((flags & XiValue) == 0)
+            geometry_info.xi=0.01;
+          (void) KmeansImage(_image,(size_t) geometry_info.rho,(size_t)
+           geometry_info.sigma,geometry_info.xi,_exception);
+          break;
+        }
       if (LocaleCompare("kuwahara",option+1) == 0)
         {
           /*
@@ -2618,22 +2635,22 @@
             white_point;
 
           p=(const char *) arg1;
-          GetNextToken(p,&p,MagickPathExtent,token);  /* get black point color */
-          if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
+          (void) GetNextToken(p,&p,MagickPathExtent,token);  /* get black point color */
+          if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
             (void) QueryColorCompliance(token,AllCompliance,
                       &black_point,_exception);
           else
             (void) QueryColorCompliance("#000000",AllCompliance,
                       &black_point,_exception);
-          if (isalpha((int) token[0]) || (token[0] == '#'))
-            GetNextToken(p,&p,MagickPathExtent,token);
+          if (isalpha((int) ((unsigned char) *token)) || (*token == '#'))
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           if (*token == '\0')
             white_point=black_point; /* set everything to that color */
           else
             {
-              if ((isalpha((int) *token) == 0) && ((*token == '#') == 0))
-                GetNextToken(p,&p,MagickPathExtent,token); /* Get white point color. */
-              if ((isalpha((int) *token) != 0) || ((*token == '#') != 0))
+              if ((isalpha((int) ((unsigned char) *token)) == 0) && ((*token == '#') == 0))
+                (void) GetNextToken(p,&p,MagickPathExtent,token); /* Get white point color. */
+              if ((isalpha((int) ((unsigned char) *token)) != 0) || ((*token == '#') != 0))
                 (void) QueryColorCompliance(token,AllCompliance,
                            &white_point,_exception);
               else
@@ -2806,15 +2823,15 @@
             iterations;
 
           p=arg1;
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           parse=ParseCommandOption(MagickMorphologyOptions,MagickFalse,token);
           if ( parse < 0 )
             CLIWandExceptArgBreak(OptionError,"UnrecognizedFunction",option,
               arg1);
           iterations=1L;
-          GetNextToken(p,&p,MagickPathExtent,token);
+          (void) GetNextToken(p,&p,MagickPathExtent,token);
           if ((*p == ':') || (*p == ','))
-            GetNextToken(p,&p,MagickPathExtent,token);
+            (void) GetNextToken(p,&p,MagickPathExtent,token);
           if ((*p != '\0'))
             iterations=(ssize_t) StringToLong(p);
           kernel=AcquireKernelInfo(arg2,exception);
@@ -3820,10 +3837,16 @@
              _images.
           */
           new_images=RemoveFirstImageFromList(&_images);
-          clut_image=RemoveLastImageFromList(&_images);
+          clut_image=RemoveFirstImageFromList(&_images);
           /* FUTURE - produce Exception, rather than silent fail */
           if (clut_image == (Image *) NULL)
-            break;
+            {
+              (void) ThrowMagickException(_exception,GetMagickModule(),
+                OptionError,"ImageSequenceRequired","`%s'",option);
+              new_images=DestroyImage(new_images);
+              status=MagickFalse;
+              break;
+            }
           (void) ClutImage(new_images,clut_image,new_images->interpolate,
             _exception);
           clut_image=DestroyImage(clut_image);
@@ -3867,7 +3890,13 @@
           reconstruct_image=RemoveFirstImageFromList(&_images);
           /* FUTURE - produce Exception, rather than silent fail */
           if (reconstruct_image == (Image *) NULL)
-            break;
+            {
+              (void) ThrowMagickException(_exception,GetMagickModule(),
+                OptionError,"ImageSequenceRequired","`%s'",option);
+              image=DestroyImage(image);
+              status=MagickFalse;
+              break;
+            }
           metric=UndefinedErrorMetric;
           option=GetImageOption(_image_info,"metric");
           if (option != (const char *) NULL)
@@ -3927,7 +3956,13 @@
           new_images=RemoveFirstImageFromList(&_images);
           source_image=RemoveFirstImageFromList(&_images);
           if (source_image == (Image *) NULL)
-            break; /* FUTURE - produce Exception, rather than silent fail */
+            {
+              (void) ThrowMagickException(_exception,GetMagickModule(),
+                OptionError,"ImageSequenceRequired","`%s'",option);
+              new_images=DestroyImage(new_images);
+              status=MagickFalse;
+              break;
+            }
 
           /* FUTURE - this should not be here! - should be part of -geometry */
           if (source_image->geometry != (char *) NULL)
@@ -3984,7 +4019,7 @@
                     CopyAlphaCompositeOp,MagickTrue,0,0,_exception);
                   status&=CompositeImage(clone_image,new_images,OverCompositeOp,
                     clip_to_self,0,0,_exception);
-                  new_images=DestroyImage(new_images);
+                  new_images=DestroyImageList(new_images);
                   new_images=clone_image;
                 }
               mask_image=DestroyImage(mask_image);
@@ -4117,7 +4152,13 @@
           new_images=RemoveFirstImageFromList(&_images);
           hald_image=RemoveLastImageFromList(&_images);
           if (hald_image == (Image *) NULL)
-            break;
+            {
+              (void) ThrowMagickException(_exception,GetMagickModule(),
+                OptionError,"ImageSequenceRequired","`%s'",option);
+              new_images=DestroyImage(new_images);
+              status=MagickFalse;
+              break;
+            }
           (void) HaldClutImage(new_images,hald_image,_exception);
           hald_image=DestroyImage(hald_image);
           break;
@@ -4132,15 +4173,20 @@
             *magnitude_image,
             *phase_image;
 
-           magnitude_image=RemoveFirstImageFromList(&_images);
-           phase_image=RemoveFirstImageFromList(&_images);
-          /* FUTURE - produce Exception, rather than silent fail */
-           if (phase_image == (Image *) NULL)
-             break;
-           new_images=InverseFourierTransformImage(magnitude_image,phase_image,
-             IsNormalOp,_exception);
-           magnitude_image=DestroyImage(magnitude_image);
-           phase_image=DestroyImage(phase_image);
+          magnitude_image=RemoveFirstImageFromList(&_images);
+          phase_image=RemoveFirstImageFromList(&_images);
+          if (phase_image == (Image *) NULL)
+            {
+              (void) ThrowMagickException(_exception,GetMagickModule(),
+                OptionError,"ImageSequenceRequired","`%s'",option);
+              magnitude_image=DestroyImage(magnitude_image);
+              status=MagickFalse;
+              break;
+            }
+          new_images=InverseFourierTransformImage(magnitude_image,phase_image,
+            IsNormalOp,_exception);
+          magnitude_image=DestroyImage(magnitude_image);
+          phase_image=DestroyImage(phase_image);
           break;
         }
       if (LocaleCompare("insert",option+1) == 0)
@@ -4167,7 +4213,10 @@
             {
                index_image=GetImageFromList(_images,index-1);
                if (index_image == (Image *) NULL)
-                 CLIWandExceptArgBreak(OptionError,"NoSuchImage",option,arg1);
+                 {
+                   insert_image=DestroyImage(insert_image);
+                   CLIWandExceptArgBreak(OptionError,"NoSuchImage",option,arg1);
+                 }
               InsertImageInList(&index_image,insert_image);
             }
           _images=GetFirstImageInList(index_image);
diff --git a/MagickWand/operation.h b/MagickWand/operation.h
index 19e6606..367a06b 100644
--- a/MagickWand/operation.h
+++ b/MagickWand/operation.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-iterator.c b/MagickWand/pixel-iterator.c
index 32e9496..97b8ad8 100644
--- a/MagickWand/pixel-iterator.c
+++ b/MagickWand/pixel-iterator.c
@@ -23,7 +23,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -918,12 +918,12 @@
   MagickBooleanType
     status;
 
+  register Quantum
+    *magick_restrict pixels;
+
   register ssize_t
     x;
 
-  register Quantum
-    *_magickcore_restrict pixels;
-
   assert(iterator != (const PixelIterator *) NULL);
   assert(iterator->signature == MagickWandSignature);
   if (iterator->debug != MagickFalse)
diff --git a/MagickWand/pixel-iterator.h b/MagickWand/pixel-iterator.h
index e8497bf..b53e7d8 100644
--- a/MagickWand/pixel-iterator.h
+++ b/MagickWand/pixel-iterator.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-wand-private.h b/MagickWand/pixel-wand-private.h
index 1687d8b..828d351 100644
--- a/MagickWand/pixel-wand-private.h
+++ b/MagickWand/pixel-wand-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-wand.c b/MagickWand/pixel-wand.c
index fdf4329..0d08952 100644
--- a/MagickWand/pixel-wand.c
+++ b/MagickWand/pixel-wand.c
@@ -23,7 +23,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/pixel-wand.h b/MagickWand/pixel-wand.h
index 46f86be..6c75bef 100644
--- a/MagickWand/pixel-wand.h
+++ b/MagickWand/pixel-wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/script-token.c b/MagickWand/script-token.c
index b1724cc..84c6208 100644
--- a/MagickWand/script-token.c
+++ b/MagickWand/script-token.c
@@ -15,7 +15,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/script-token.h b/MagickWand/script-token.h
index 0d334a2..dd52eec 100644
--- a/MagickWand/script-token.h
+++ b/MagickWand/script-token.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/stream.c b/MagickWand/stream.c
index 96d4853..b1aa980 100644
--- a/MagickWand/stream.c
+++ b/MagickWand/stream.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -86,66 +86,55 @@
 
 static MagickBooleanType StreamUsage(void)
 {
-  const char
-    **p;
-
   static const char
-    *miscellaneous[]=
-    {
-      "-channel mask        set the image channel mask",
-      "-debug events        display copious debugging information",
-      "-help                print program options",
-      "-list type           print a list of supported option arguments",
-      "-log format          format of debugging information",
-      "-version             print version information",
-      (char *) NULL
-    },
-    *settings[]=
-    {
-      "-authenticate password",
-      "                     decipher image with this password",
-      "-colorspace type     alternate image colorspace",
-      "-compress type       type of pixel compression when writing the image",
-      "-define format:option",
-      "                     define one or more image format options",
-      "-density geometry    horizontal and vertical density of the image",
-      "-depth value         image depth",
-      "-extract geometry    extract area from image",
-      "-identify            identify the format and characteristics of the image",
-      "-interlace type      type of image interlacing scheme",
-      "-interpolate method  pixel color interpolation method",
-      "-limit type value    pixel cache resource limit",
-      "-map components      one or more pixel components",
-      "-monitor             monitor progress",
-      "-quantize colorspace reduce colors in this colorspace",
-      "-quiet               suppress all warning messages",
-      "-regard-warnings     pay attention to warning messages",
-      "-respect-parentheses settings remain in effect until parenthesis boundary",
-      "-sampling-factor geometry",
-      "                     horizontal and vertical sampling factor",
-      "-seed value          seed a new sequence of pseudo-random numbers",
-      "-set attribute value set an image attribute",
-      "-size geometry       width and height of image",
-      "-storage-type type   pixel storage type",
-      "-synchronize         synchronize image to storage device",
-      "-taint               declare the image as modified",
-      "-transparent-color color",
-      "                     transparent color",
-      "-verbose             print detailed information about the image",
-      "-virtual-pixel method",
-      "                     virtual pixel access method",
-      (char *) NULL
-    };
+    miscellaneous[] =
+      "  -channel mask        set the image channel mask\n"
+      "  -debug events        display copious debugging information\n"
+      "  -help                print program options\n"
+      "  -list type           print a list of supported option arguments\n"
+      "  -log format          format of debugging information\n"
+      "  -version             print version information",
+    settings[] =
+      "  -authenticate password\n"
+      "                       decipher image with this password\n"
+      "  -colorspace type     alternate image colorspace\n"
+      "  -compress type       type of pixel compression when writing the image\n"
+      "  -define format:option\n"
+      "                       define one or more image format options\n"
+      "  -density geometry    horizontal and vertical density of the image\n"
+      "  -depth value         image depth\n"
+      "  -extract geometry    extract area from image\n"
+      "  -identify            identify the format and characteristics of the image\n"
+      "  -interlace type      type of image interlacing scheme\n"
+      "  -interpolate method  pixel color interpolation method\n"
+      "  -limit type value    pixel cache resource limit\n"
+      "  -map components      one or more pixel components\n"
+      "  -monitor             monitor progress\n"
+      "  -quantize colorspace reduce colors in this colorspace\n"
+      "  -quiet               suppress all warning messages\n"
+      "  -regard-warnings     pay attention to warning messages\n"
+      "  -respect-parentheses settings remain in effect until parenthesis boundary\n"
+      "  -sampling-factor geometry\n"
+      "                       horizontal and vertical sampling factor\n"
+      "  -seed value          seed a new sequence of pseudo-random numbers\n"
+      "  -set attribute value set an image attribute\n"
+      "  -size geometry       width and height of image\n"
+      "  -storage-type type   pixel storage type\n"
+      "  -synchronize         synchronize image to storage device\n"
+      "  -taint               declare the image as modified\n"
+      "  -transparent-color color\n"
+      "                       transparent color\n"
+      "  -verbose             print detailed information about the image\n"
+      "  -virtual-pixel method\n"
+      "                       virtual pixel access method";
 
   ListMagickVersion(stdout);
   (void) printf("Usage: %s [options ...] input-image raw-image\n",
     GetClientName());
   (void) printf("\nImage Settings:\n");
-  for (p=settings; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(settings);
   (void) printf("\nMiscellaneous Options:\n");
-  for (p=miscellaneous; *p != (char *) NULL; p++)
-    (void) printf("  %s\n",*p);
+  (void) puts(miscellaneous);
   (void) printf(
     "\nBy default, the image format of 'file' is determined by its magic\n");
   (void) printf(
diff --git a/MagickWand/stream.h b/MagickWand/stream.h
index 09f280b..87add7f 100644
--- a/MagickWand/stream.h
+++ b/MagickWand/stream.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/studio.h b/MagickWand/studio.h
index 4df26bb..57e8ab4 100644
--- a/MagickWand/studio.h
+++ b/MagickWand/studio.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -51,12 +51,6 @@
 #  define STDC
 #endif
 
-#if defined(__cplusplus) || defined(c_plusplus)
-# define storage_class  c_class
-#else
-# define storage_class  class
-#endif
-
 #include <stdarg.h>
 #include <stdio.h>
 #if defined(MAGICKCORE_HAVE_SYS_STAT_H)
diff --git a/MagickWand/tests/script-token-test.c b/MagickWand/tests/script-token-test.c
index 19d396b..b693e89 100644
--- a/MagickWand/tests/script-token-test.c
+++ b/MagickWand/tests/script-token-test.c
@@ -21,7 +21,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wand-view.c b/MagickWand/wand-view.c
index 7088621..ee23eac 100644
--- a/MagickWand/wand-view.c
+++ b/MagickWand/wand-view.c
@@ -22,7 +22,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wand-view.h b/MagickWand/wand-view.h
index 08eb19c..5c95d8f 100644
--- a/MagickWand/wand-view.h
+++ b/MagickWand/wand-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wand.c b/MagickWand/wand.c
index 1dff766..2905102 100644
--- a/MagickWand/wand.c
+++ b/MagickWand/wand.c
@@ -17,7 +17,7 @@
 %                                 May  2004                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wand.h b/MagickWand/wand.h
index 6a0b5e4..99d6ff7 100644
--- a/MagickWand/wand.h
+++ b/MagickWand/wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wandcli-private.h b/MagickWand/wandcli-private.h
index bdc799f..b848138 100644
--- a/MagickWand/wandcli-private.h
+++ b/MagickWand/wandcli-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wandcli.c b/MagickWand/wandcli.c
index 042a939..f9b52ca 100644
--- a/MagickWand/wandcli.c
+++ b/MagickWand/wandcli.c
@@ -15,7 +15,7 @@
 %                              Anthony Thyssen                                %
 %                                 April 2011                                  %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -271,7 +271,7 @@
 %
 */
 WandExport MagickBooleanType CLILogEvent(MagickCLI *cli_wand,
-     const LogEventType type,const char *module,const char *function,
+     const LogEventType type,const char *magick_module,const char *function,
      const size_t line,const char *format,...)
 {
   char
@@ -297,7 +297,8 @@
   (void) ConcatenateMagickString(new_format,format,MagickPathExtent);
 
   va_start(operands,format);
-  status=LogMagickEventList(type,module,function,line,new_format,operands);
+  status=LogMagickEventList(type,magick_module,function,line,new_format,
+    operands);
   va_end(operands);
 
   return(status);
@@ -318,7 +319,7 @@
 % it the location of the option that caused the exception to occur.
 */
 WandExport MagickBooleanType CLIThrowException(MagickCLI *cli_wand,
-  const char *module,const char *function,const size_t line,
+  const char *magick_module,const char *function,const size_t line,
   const ExceptionType severity,const char *tag,const char *format,...)
 {
   char
@@ -346,8 +347,8 @@
     cli_wand->location,cli_wand->filename,cli_wand->line,cli_wand->column);
 
   va_start(operands,format);
-  status=ThrowMagickExceptionList(cli_wand->wand.exception,module,function,
-    line,severity,tag,new_format,operands);
+  status=ThrowMagickExceptionList(cli_wand->wand.exception,magick_module,
+    function,line,severity,tag,new_format,operands);
   va_end(operands);
   return(status);
 }
diff --git a/MagickWand/wandcli.h b/MagickWand/wandcli.h
index 6b289dc..9f8ef3b 100644
--- a/MagickWand/wandcli.h
+++ b/MagickWand/wandcli.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/Makefile.am b/Makefile.am
index 0916a5d..0a79c7d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -36,27 +36,27 @@
 
 ## Make sure these will be cleaned even when they're not built by default.
 CLEANFILES = \
-	$(MAGICKWAND_CLEANFILES) \
-	$(MAGICKPP_CLEANFILES) \
-	$(UTILITIES_CLEANFILES) \
-	$(TESTS_CLEANFILES)
+  $(MAGICKWAND_CLEANFILES) \
+  $(MAGICKPP_CLEANFILES) \
+  $(UTILITIES_CLEANFILES) \
+  $(TESTS_CLEANFILES)
 
 bin_PROGRAMS = \
-	$(UTILITIES_PGMS)
+  $(UTILITIES_PGMS)
 
 # Binary scripts
 bin_SCRIPTS = \
-	$(MAGICKCORE_BIN_SCRPTS) \
-	$(MAGICKWAND_BIN_SCRPTS) \
-	$(MAGICKPP_SCRPTS)
+  $(MAGICKCORE_BIN_SCRPTS) \
+  $(MAGICKWAND_BIN_SCRPTS) \
+  $(MAGICKPP_SCRPTS)
 
 include_HEADERS =
 
 # Headers which are not installed but which are distributed
 noinst_HEADERS = \
-	$(MAGICKCORE_NOINST_HDRS) \
-	$(MAGICKWAND_NOINST_HDRS) \
-	$(CODERS_NOINST_HDRS)
+  $(MAGICKCORE_NOINST_HDRS) \
+  $(MAGICKWAND_NOINST_HDRS) \
+  $(CODERS_NOINST_HDRS)
 
 if WIN32_NATIVE_BUILD
 SRCDIR='$(shell @WinPathScript@ $(srcdir)/)'
@@ -74,55 +74,54 @@
 TEST_EXTENSIONS = .sh .tap
 
 TAP_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
-	$(top_srcdir)/config/tap-driver.sh
+  $(top_srcdir)/config/tap-driver.sh
 
 # Environment parameters to be used during tests
 TESTS_ENVIRONMENT = \
-	MAKE="$(MAKE)" \
-	MAKEFLAGS="$(MAKEFLAGS)" \
-	MEMCHECK="$(MEMCHECK)"
+  MAKE="$(MAKE)" \
+  MAKEFLAGS="$(MAKEFLAGS)" \
+  MEMCHECK="$(MEMCHECK)"
 
 # Tests to run
 TESTS = \
-	$(TESTS_TESTS) \
-	$(MAGICKPP_TESTS) \
-	$(MAGICKWAND_TESTS) \
-	$(UTILITIES_TESTS)
+  $(TESTS_TESTS) \
+  $(MAGICKPP_TESTS) \
+  $(MAGICKWAND_TESTS) \
+  $(UTILITIES_TESTS)
 
 # Tests which are expected to fail
 XFAIL_TESTS = \
-	$(TESTS_XFAIL_TESTS) \
-	$(UTILITIES_XFAIL_TESTS)
+  $(TESTS_XFAIL_TESTS) \
+  $(UTILITIES_XFAIL_TESTS)
 
 TOP_EXTRA_DIST = \
   AUTHORS.txt \
-	ChangeLog \
-	LICENSE \
-	QuickStart.txt \
-	NOTICE \
-	Install-mac.txt \
-	Install-unix.txt \
-	Install-vms.txt \
-	Install-windows.txt \
-	magick.sh.in \
-	Magickshr.opt \
-	NEWS.txt \
-	Platforms.txt \
-	README.txt \
-	index.html \
-	gitversion.sh \
-	version.sh \
-	winpath.sh
+  ChangeLog \
+  LICENSE \
+  QuickStart.txt \
+  NOTICE \
+  Install-mac.txt \
+  Install-unix.txt \
+  Install-vms.txt \
+  Install-windows.txt \
+  magick.sh.in \
+  Magickshr.opt \
+  NEWS.txt \
+  Platforms.txt \
+  README.txt \
+  index.html \
+  version.sh \
+  winpath.sh
 
 # Additional files to distribute
 EXTRA_DIST = \
-	$(TOP_EXTRA_DIST) \
-	$(CONFIG_EXTRA_DIST) \
-	$(MAGICKCORE_EXTRA_DIST) \
-	$(MAGICKWAND_EXTRA_DIST) \
-	$(MAGICKPP_EXTRA_DIST) \
-	$(UTILITIES_EXTRA_DIST) \
-	$(TESTS_EXTRA_DIST)
+  $(TOP_EXTRA_DIST) \
+  $(CONFIG_EXTRA_DIST) \
+  $(MAGICKCORE_EXTRA_DIST) \
+  $(MAGICKWAND_EXTRA_DIST) \
+  $(MAGICKPP_EXTRA_DIST) \
+  $(UTILITIES_EXTRA_DIST) \
+  $(TESTS_EXTRA_DIST)
 
 lib_LTLIBRARIES = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(MAGICKPP_LIBS)
 AM_LDFLAGS =
@@ -132,9 +131,9 @@
 MOSTLYCLEANFILES =
 
 check_PROGRAMS = \
-	$(TESTS_CHECK_PGRMS) \
-	$(MAGICKPP_CHECK_PGRMS) \
-	$(MAGICKWAND_CHECK_PGRMS)
+  $(TESTS_CHECK_PGRMS) \
+  $(MAGICKPP_CHECK_PGRMS) \
+  $(MAGICKWAND_CHECK_PGRMS)
 
 include m4/Makefile.am
 include config/Makefile.am
@@ -152,9 +151,9 @@
 
 # Files to install in Pkgconfig directory
 pkgconfig_DATA = \
-	$(MAGICKCORE_PKGCONFIG) \
-	$(MAGICKWAND_PKGCONFIG) \
-	$(MAGICKPP_PKGCONFIG)
+  $(MAGICKCORE_PKGCONFIG) \
+  $(MAGICKWAND_PKGCONFIG) \
+  $(MAGICKPP_PKGCONFIG)
 
 # create a copy for pc file (ideally the non abi should be symlinked)
 %-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc: %.pc
@@ -166,20 +165,20 @@
 # Manual pages to install
 if INSTALL_DOC#
 man_MANS = \
-	$(MAGICKCORE_MANS) \
-	$(MAGICKWAND_MANS) \
-	$(MAGICKPP_MANS) \
-	$(UTILITIES_MANS)
+  $(MAGICKCORE_MANS) \
+  $(MAGICKWAND_MANS) \
+  $(MAGICKPP_MANS) \
+  $(UTILITIES_MANS)
 
 doc_DATA = \
-	LICENSE \
-	ChangeLog \
-	NEWS.txt
+  LICENSE \
+  ChangeLog \
+  NEWS.txt
 endif
 
 if MAINTAINER_MODE
 MAINTAINER_TARGETS = \
-	magick-version \
+  magick-version \
   ImageMagick.spec \
   $(PERLMAGICK_MAINTAINER_TARGETS)
 endif
@@ -255,9 +254,9 @@
 	@for dir in $(DOCDIRS) ; do \
 	  $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
 	  if test -d $(builddir)/$$dir ; then \
-  		docsrcdir=$(builddir)/$$dir; \
+	    docsrcdir=$(builddir)/$$dir; \
 	  else \
-  		docsrcdir=$(srcdir)/$$dir; \
+	    docsrcdir=$(srcdir)/$$dir; \
 	  fi; \
 	  for file in $$docsrcdir/*.* ; do \
 	    echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
@@ -280,14 +279,14 @@
 	fi
 	@if test -n "$(VPATH)" ; then \
 	  cmp MagickCore/version.h $(srcdir)/MagickCore/version.h > /dev/null ; \
-          if test $$? -eq 1 ; then \
+	        if test $$? -eq 1 ; then \
 	    echo "Updating $(srcdir)/MagickCore/version.h ..."; \
 	    cp MagickCore/version.h $(srcdir)/MagickCore/version.h ; \
 	  fi ; \
 	fi ; \
 	touch magick-version
 
-${srcdir}/configure: ${srcdir}/version.sh ${srcdir}/gitversion.sh
+${srcdir}/configure: ${srcdir}/version.sh
 
 # Automagically reconfigure libtool
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
@@ -298,7 +297,7 @@
 html-local:
 # copy static file
 	for dir in $(DOCDIRSMANUAL) ; do \
-		$(MKDIR_P) $(top_builddir)/$$dir ;\
+		$(mkinstalldirs) $(top_builddir)/$$dir ;\
 		for file in $$dir/*.* ; do \
 			if ! test -f $(top_builddir)/$$file; then \
 				cp -p -f $(top_srcdir)/$$file $(top_builddir)/$$dir ; \
@@ -310,7 +309,7 @@
 	    rm -rf $$dir || true; \
 	done;
 # make doxygen doc
-	$(MKDIR_P) $(top_builddir)/www/api
+	$(mkinstalldirs) $(top_builddir)/www/api
 	cd config && doxygen MagickCore.dox
 	cd config && doxygen MagickWand.dox
 	cd config && doxygen Magick++.dox
@@ -333,7 +332,7 @@
 	  chmod -R u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM) ; \
 	  rm -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM) ; \
 	fi
-  git clone git@git.imagemagick.org:repos/ImageMagick.git $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
+	git clone git@git.imagemagick.org:repos/ImageMagick.git $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
 if ZIP_DELEGATE
 	rm -f $(DIST_WINDOWS_SRC_ZIP)
 	$(ZIP) -r -9 -q  $(DIST_WINDOWS_SRC_ZIP) $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
@@ -363,18 +362,18 @@
 RPMARCH=$(MAGICK_TARGET_CPU)
 
 DIST_ARCHIVE_RPM= \
-	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-perl-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm
+  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-perl-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm
 
 .PHONY: rpm
-rpm:	dist
+rpm: dist
 	rm -rf $(RPMDIR)
-	$(MKDIR_P) $(RPMDIR)
-	$(MKDIR_P) $(RPMDIR)/BUILD
-	$(MKDIR_P) $(RPMDIR)/RPMS
+	$(mkinstalldirs) $(RPMDIR)
+	$(mkinstalldirs) $(RPMDIR)/BUILD
+	$(mkinstalldirs) $(RPMDIR)/RPMS
 	$(RPM) --define="_sourcedir `pwd`" --define="_rpmdir `pwd`/$(RPMDIR)/RPMS" --define="_builddir `pwd`/$(RPMDIR)/BUILD" --nodeps -bb ImageMagick.spec
 	@echo ==============================================================
 	@echo $(DIST_ARCHIVE_RPM) is ready for distribution.
diff --git a/Makefile.in b/Makefile.in
index 41ad92a..d665609 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -33,7 +33,7 @@
 #  Top-Level Makefile for building ImageMagick.
 #
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -49,7 +49,7 @@
 #
 #  Makefile for building ImageMagick m4 macros.
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -65,7 +65,7 @@
 #
 #  Makefile for Magick ImageMagick configuration files.
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -81,7 +81,7 @@
 #
 #  Makefile for building ImageMagick Coder library.
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -96,9 +96,9 @@
 #  limitations under the License.
 #
 #  Makefile for building the MagickCore API.
-# 
+#
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -123,7 +123,7 @@
 
 # AM_CPPFLAGS += -I$(top_srcdir)/Magick++/lib
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -139,7 +139,7 @@
 #
 #  Makefile for building ImageMagick filter modules.
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -155,7 +155,7 @@
 #
 #  Makefile for building ImageMagick utilities.
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -256,6 +256,8 @@
 TESTS = $(TESTS_TESTS) $(am__EXEEXT_5)
 XFAIL_TESTS = $(am__EXEEXT_6) $(am__EXEEXT_6)
 check_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_4)
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@am__append_1 = MagickCore/threshold-map.h
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@am__append_2 = MagickCore/threshold-map.h
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_func_fseeko.m4 \
@@ -473,31 +475,33 @@
 	MagickCore/monitor-private.h MagickCore/montage.c \
 	MagickCore/montage.h MagickCore/morphology.c \
 	MagickCore/morphology.h MagickCore/morphology-private.h \
-	MagickCore/nt-base.h MagickCore/nt-base-private.h \
-	MagickCore/nt-feature.h MagickCore/opencl.c \
-	MagickCore/opencl.h MagickCore/opencl-private.h \
-	MagickCore/option.c MagickCore/option.h \
-	MagickCore/option-private.h MagickCore/paint.c \
-	MagickCore/paint.h MagickCore/pixel.c MagickCore/pixel.h \
-	MagickCore/pixel-accessor.h MagickCore/pixel-private.h \
-	MagickCore/policy.c MagickCore/policy.h MagickCore/prepress.c \
-	MagickCore/prepress.h MagickCore/property.c \
-	MagickCore/property.h MagickCore/profile.c \
-	MagickCore/profile.h MagickCore/profile-private.h \
-	MagickCore/quantize.c MagickCore/quantize.h \
-	MagickCore/quantum.c MagickCore/quantum.h \
-	MagickCore/quantum-export.c MagickCore/quantum-import.c \
-	MagickCore/quantum-private.h MagickCore/random.c \
-	MagickCore/random_.h MagickCore/random-private.h \
-	MagickCore/registry.c MagickCore/registry.h \
-	MagickCore/resample.c MagickCore/resample.h \
-	MagickCore/resample-private.h MagickCore/resize.c \
-	MagickCore/resize.h MagickCore/resize-private.h \
-	MagickCore/resource.c MagickCore/resource_.h \
-	MagickCore/resource-private.h MagickCore/segment.c \
-	MagickCore/segment.h MagickCore/semaphore.c \
-	MagickCore/semaphore.h MagickCore/semaphore-private.h \
-	MagickCore/shear.c MagickCore/shear.h MagickCore/signature.c \
+	MagickCore/mutex.h MagickCore/nt-base.h \
+	MagickCore/nt-base-private.h MagickCore/nt-feature.h \
+	MagickCore/opencl.c MagickCore/opencl.h \
+	MagickCore/opencl-private.h MagickCore/option.c \
+	MagickCore/option.h MagickCore/option-private.h \
+	MagickCore/paint.c MagickCore/paint.h MagickCore/pixel.c \
+	MagickCore/pixel.h MagickCore/pixel-accessor.h \
+	MagickCore/pixel-private.h MagickCore/policy.c \
+	MagickCore/policy.h MagickCore/policy-private.h \
+	MagickCore/prepress.c MagickCore/prepress.h \
+	MagickCore/property.c MagickCore/property.h \
+	MagickCore/profile.c MagickCore/profile.h \
+	MagickCore/profile-private.h MagickCore/quantize.c \
+	MagickCore/quantize.h MagickCore/quantum.c \
+	MagickCore/quantum.h MagickCore/quantum-export.c \
+	MagickCore/quantum-import.c MagickCore/quantum-private.h \
+	MagickCore/random.c MagickCore/random_.h \
+	MagickCore/random-private.h MagickCore/registry.c \
+	MagickCore/registry.h MagickCore/resample.c \
+	MagickCore/resample.h MagickCore/resample-private.h \
+	MagickCore/resize.c MagickCore/resize.h \
+	MagickCore/resize-private.h MagickCore/resource.c \
+	MagickCore/resource_.h MagickCore/resource-private.h \
+	MagickCore/segment.c MagickCore/segment.h \
+	MagickCore/semaphore.c MagickCore/semaphore.h \
+	MagickCore/semaphore-private.h MagickCore/shear.c \
+	MagickCore/shear.h MagickCore/signature.c \
 	MagickCore/signature.h MagickCore/signature-private.h \
 	MagickCore/splay-tree.c MagickCore/splay-tree.h \
 	MagickCore/static.c MagickCore/static.h MagickCore/statistic.c \
@@ -506,51 +510,89 @@
 	MagickCore/string_.h MagickCore/string-private.h \
 	MagickCore/studio.h MagickCore/thread.c MagickCore/thread_.h \
 	MagickCore/thread-private.h MagickCore/timer.c \
-	MagickCore/timer.h MagickCore/token.c MagickCore/token.h \
+	MagickCore/timer.h MagickCore/timer-private.h \
+	MagickCore/token.c MagickCore/token.h \
 	MagickCore/token-private.h MagickCore/transform.c \
 	MagickCore/transform.h MagickCore/threshold.c \
 	MagickCore/threshold.h MagickCore/type.c MagickCore/type.h \
 	MagickCore/utility.c MagickCore/utility.h \
 	MagickCore/utility-private.h MagickCore/version.c \
 	MagickCore/version.h MagickCore/version-private.h \
+	MagickCore/visual-effects.c MagickCore/visual-effects.h \
 	MagickCore/vision.c MagickCore/vision.h MagickCore/widget.c \
 	MagickCore/widget.h MagickCore/widget-private.h \
 	MagickCore/xml-tree.c MagickCore/xml-tree.h \
 	MagickCore/xml-tree-private.h MagickCore/xwindow.c \
 	MagickCore/xwindow.h MagickCore/nt-feature.c \
-	MagickCore/nt-base.c coders/aai.c coders/art.c coders/avs.c \
-	coders/bgr.c coders/bmp.c coders/braille.c coders/cals.c \
-	coders/caption.c coders/cin.c coders/cip.c coders/clip.c \
-	coders/cmyk.c coders/cube.c coders/cut.c coders/dcm.c \
-	coders/dds.c coders/debug.c coders/dib.c coders/dng.c \
-	coders/dot.c coders/dpx.c coders/fax.c coders/fits.c \
-	coders/gif.c coders/gradient.c coders/gray.c coders/hald.c \
-	coders/hdr.c coders/histogram.c coders/hrz.c coders/html.c \
-	coders/icon.c coders/info.c coders/inline.c coders/ipl.c \
-	coders/jnx.c coders/json.c coders/label.c coders/mac.c \
-	coders/magick.c coders/map.c coders/mask.c coders/mat.c \
-	coders/matte.c coders/meta.c coders/miff.c coders/mono.c \
-	coders/mpc.c coders/mpeg.c coders/mpr.c coders/msl.c \
-	coders/mtv.c coders/mvg.c coders/null.c coders/otb.c \
-	coders/palm.c coders/pango.c coders/pattern.c coders/pcd.c \
-	coders/pcl.c coders/pcx.c coders/pdb.c coders/pdf.c \
-	coders/pes.c coders/pgx.c coders/pict.c coders/pix.c \
-	coders/plasma.c coders/pnm.c coders/ps.c coders/ps2.c \
-	coders/ps3.c coders/psd.c coders/psd-private.h coders/pwp.c \
-	coders/raw.c coders/rgb.c coders/rgf.c coders/rla.c \
-	coders/rle.c coders/scr.c coders/screenshot.c coders/sct.c \
-	coders/sfw.c coders/sgi.c coders/sixel.c coders/stegano.c \
-	coders/sun.c coders/svg.c coders/tga.c coders/thumbnail.c \
-	coders/tile.c coders/tim.c coders/ttf.c coders/txt.c \
-	coders/uil.c coders/url.c coders/uyvy.c coders/vicar.c \
-	coders/vid.c coders/viff.c coders/vips.c coders/wbmp.c \
-	coders/wpg.c coders/xbm.c coders/xc.c coders/xcf.c \
-	coders/xpm.c coders/xps.c coders/xtrn.c coders/ycbcr.c \
-	coders/yuv.c coders/dps.c coders/djvu.c coders/exr.c \
-	coders/flif.c coders/fpx.c coders/clipboard.c coders/emf.c \
-	coders/heic.c coders/jbig.c coders/jpeg.c coders/jp2.c \
-	coders/png.c coders/ept.c coders/tiff.c coders/webp.c \
-	coders/wmf.c coders/x.c coders/xwd.c filters/analyze.c
+	MagickCore/nt-base.c coders/aai.c coders/aai.h coders/art.c \
+	coders/art.h coders/avs.c coders/avs.h coders/bgr.c \
+	coders/bgr.h coders/bmp.c coders/bmp.h coders/braille.c \
+	coders/braille.h coders/bytebuffer-private.h coders/cals.c \
+	coders/cals.h coders/caption.c coders/caption.h coders/cin.c \
+	coders/cin.h coders/cip.c coders/cip.h coders/clipboard.h \
+	coders/clip.c coders/clip.h coders/cmyk.c coders/cmyk.h \
+	coders/coders.h coders/coders-list.h coders/coders-private.h \
+	coders/cube.c coders/cube.h coders/cut.c coders/cut.h \
+	coders/dcm.c coders/dcm.h coders/dds.c coders/dds.h \
+	coders/debug.c coders/debug.h coders/dib.c coders/dib.h \
+	coders/djvu.h coders/dng.c coders/dng.h coders/dot.c \
+	coders/dot.h coders/dps.h coders/dpx.c coders/dpx.h \
+	coders/emf.h coders/ept.h coders/exr.h coders/fax.c \
+	coders/fax.h coders/fits.c coders/fits.h coders/flif.h \
+	coders/fpx.h coders/ghostscript-private.h coders/gif.c \
+	coders/gif.h coders/gradient.c coders/gradient.h coders/gray.c \
+	coders/gray.h coders/hald.c coders/hald.h coders/hdr.c \
+	coders/hdr.h coders/heic.h coders/histogram.c \
+	coders/histogram.h coders/hrz.c coders/hrz.h coders/html.c \
+	coders/html.h coders/icon.c coders/icon.h coders/info.c \
+	coders/info.h coders/inline.c coders/inline.h coders/ipl.c \
+	coders/ipl.h coders/jbig.h coders/jnx.c coders/jnx.h \
+	coders/jp2.h coders/jpeg.h coders/json.c coders/json.h \
+	coders/jxl.h coders/label.c coders/label.h coders/mac.c \
+	coders/mac.h coders/magick.c coders/magick.h coders/map.c \
+	coders/map.h coders/mask.c coders/mask.h coders/mat.c \
+	coders/mat.h coders/matte.c coders/matte.h coders/meta.c \
+	coders/meta.h coders/miff.c coders/miff.h coders/mono.c \
+	coders/mono.h coders/mpc.c coders/mpc.h coders/mpeg.c \
+	coders/mpeg.h coders/mpr.c coders/mpr.h coders/msl.c \
+	coders/msl.h coders/mtv.c coders/mtv.h coders/mvg.c \
+	coders/mvg.h coders/null.c coders/null.h coders/otb.c \
+	coders/otb.h coders/palm.c coders/palm.h coders/pango.c \
+	coders/pango.h coders/pattern.c coders/pattern.h coders/pcd.c \
+	coders/pcd.h coders/pcl.c coders/pcl.h coders/pcx.c \
+	coders/pcx.h coders/pdb.c coders/pdb.h coders/pdf.c \
+	coders/pdf.h coders/pes.c coders/pes.h coders/pgx.c \
+	coders/pgx.h coders/pict.c coders/pict.h coders/pix.c \
+	coders/pix.h coders/plasma.c coders/plasma.h coders/png.h \
+	coders/pnm.c coders/pnm.h coders/ps2.c coders/ps2.h \
+	coders/ps3.c coders/ps3.h coders/ps.c coders/psd.c \
+	coders/psd.h coders/psd-private.h coders/ps.h coders/pwp.c \
+	coders/pwp.h coders/raw.c coders/raw.h coders/rgb.c \
+	coders/rgb.h coders/rgf.c coders/rgf.h coders/rla.c \
+	coders/rla.h coders/rle.c coders/rle.h coders/scr.c \
+	coders/screenshot.c coders/screenshot.h coders/scr.h \
+	coders/sct.c coders/sct.h coders/sfw.c coders/sfw.h \
+	coders/sgi.c coders/sgi.h coders/sixel.c coders/sixel.h \
+	coders/stegano.c coders/stegano.h coders/sun.c coders/sun.h \
+	coders/svg.c coders/svg.h coders/tga.c coders/tga.h \
+	coders/thumbnail.c coders/thumbnail.h coders/tiff.h \
+	coders/tile.c coders/tile.h coders/tim2.c coders/tim2.h \
+	coders/tim.c coders/tim.h coders/ttf.c coders/ttf.h \
+	coders/txt.c coders/txt.h coders/uil.c coders/uil.h \
+	coders/url.c coders/url.h coders/uyvy.c coders/uyvy.h \
+	coders/vicar.c coders/vicar.h coders/vid.c coders/vid.h \
+	coders/viff.c coders/viff.h coders/vips.c coders/vips.h \
+	coders/wbmp.c coders/wbmp.h coders/webp.h coders/wmf.h \
+	coders/wpg.c coders/wpg.h coders/xbm.c coders/xbm.h \
+	coders/xc.c coders/xcf.c coders/xcf.h coders/xc.h coders/x.h \
+	coders/xpm.c coders/xpm.h coders/xps.c coders/xps.h \
+	coders/xtrn.c coders/xtrn.h coders/xwd.h coders/ycbcr.c \
+	coders/ycbcr.h coders/yuv.c coders/yuv.h coders/dps.c \
+	coders/djvu.c coders/exr.c coders/flif.c coders/fpx.c \
+	coders/clipboard.c coders/emf.c coders/heic.c coders/jbig.c \
+	coders/jpeg.c coders/jp2.c coders/jxl.c coders/png.c \
+	coders/ept.c coders/tiff.c coders/webp.c coders/wmf.c \
+	coders/x.c coders/xwd.c filters/analyze.c
 am__objects_1 = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-accelerate.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-annotate.lo \
@@ -638,6 +680,7 @@
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-type.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-utility.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.lo \
+	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-widget.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xml-tree.lo \
@@ -656,14 +699,15 @@
 @JBIG_DELEGATE_TRUE@am__objects_10 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jbig.lo
 @JPEG_DELEGATE_TRUE@am__objects_11 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jpeg.lo
 @LIBOPENJP2_DELEGATE_TRUE@am__objects_12 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.lo
-@PNG_DELEGATE_TRUE@am__objects_13 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo
-@TIFF_DELEGATE_TRUE@am__objects_14 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ept.lo \
+@JXL_DELEGATE_TRUE@am__objects_13 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo
+@PNG_DELEGATE_TRUE@am__objects_14 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo
+@TIFF_DELEGATE_TRUE@am__objects_15 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ept.lo \
 @TIFF_DELEGATE_TRUE@	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tiff.lo
-@WEBP_DELEGATE_TRUE@am__objects_15 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-webp.lo
-@WMF_DELEGATE_TRUE@am__objects_16 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-wmf.lo
-@X11_DELEGATE_TRUE@am__objects_17 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-x.lo \
+@WEBP_DELEGATE_TRUE@am__objects_16 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-webp.lo
+@WMF_DELEGATE_TRUE@am__objects_17 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-wmf.lo
+@X11_DELEGATE_TRUE@am__objects_18 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-x.lo \
 @X11_DELEGATE_TRUE@	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.lo
-am__objects_18 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-aai.lo \
+am__objects_19 = coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-aai.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-art.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-avs.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-bgr.lo \
@@ -732,9 +776,9 @@
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pix.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-plasma.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pnm.lo \
-	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps3.lo \
+	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pwp.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-raw.lo \
@@ -754,6 +798,7 @@
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tga.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-thumbnail.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.lo \
+	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-txt.lo \
@@ -778,14 +823,19 @@
 	$(am__objects_6) $(am__objects_7) $(am__objects_8) \
 	$(am__objects_9) $(am__objects_10) $(am__objects_11) \
 	$(am__objects_12) $(am__objects_13) $(am__objects_14) \
-	$(am__objects_15) $(am__objects_16) $(am__objects_17)
-am__objects_19 = filters/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.lo
+	$(am__objects_15) $(am__objects_16) $(am__objects_17) \
+	$(am__objects_18)
+am__objects_20 = filters/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.lo
 @WITH_MODULES_FALSE@am_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS =  \
 @WITH_MODULES_FALSE@	$(am__objects_1) $(am__objects_2) \
-@WITH_MODULES_FALSE@	$(am__objects_18) $(am__objects_19)
+@WITH_MODULES_FALSE@	$(am__objects_19) $(am__objects_20)
 @WITH_MODULES_TRUE@am_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS =  \
 @WITH_MODULES_TRUE@	$(am__objects_1) $(am__objects_2)
-MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS = $(am_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS)
+am__objects_21 =
+nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS =  \
+	$(am__objects_21)
+MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS = $(am_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS) \
+	$(nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS)
 MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LINK =  \
 	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -794,7 +844,7 @@
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_DEPENDENCIES =  \
 	$(MAGICKCORE_LIBS) $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
-am__objects_20 = MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
+am__objects_22 = MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
 	MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-compare.lo \
 	MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-composite.lo \
 	MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-conjure.lo \
@@ -819,7 +869,7 @@
 	MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-wandcli.lo \
 	MagickWand/libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-wand-view.lo
 am_MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS =  \
-	$(am__objects_20)
+	$(am__objects_22)
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS = $(am_MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_OBJECTS)
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LINK =  \
 	$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -1218,6 +1268,14 @@
 	$(AM_CFLAGS) $(CFLAGS) $(coders_json_la_LDFLAGS) $(LDFLAGS) -o \
 	$@
 @WITH_MODULES_TRUE@am_coders_json_la_rpath = -rpath $(codersdir)
+coders_jxl_la_DEPENDENCIES = $(MAGICKCORE_LIBS) $(am__DEPENDENCIES_1)
+am_coders_jxl_la_OBJECTS = coders/jxl_la-jxl.lo
+coders_jxl_la_OBJECTS = $(am_coders_jxl_la_OBJECTS)
+coders_jxl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(coders_jxl_la_LDFLAGS) $(LDFLAGS) -o $@
+@JXL_DELEGATE_TRUE@@WITH_MODULES_TRUE@am_coders_jxl_la_rpath = -rpath \
+@JXL_DELEGATE_TRUE@@WITH_MODULES_TRUE@	$(codersdir)
 coders_label_la_DEPENDENCIES = $(MAGICKCORE_LIBS) \
 	$(am__DEPENDENCIES_1)
 am_coders_label_la_OBJECTS = coders/label_la-label.lo
@@ -1660,6 +1718,14 @@
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(coders_tim_la_LDFLAGS) $(LDFLAGS) -o $@
 @WITH_MODULES_TRUE@am_coders_tim_la_rpath = -rpath $(codersdir)
+coders_tim2_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
+am_coders_tim2_la_OBJECTS = coders/tim2_la-tim2.lo
+coders_tim2_la_OBJECTS = $(am_coders_tim2_la_OBJECTS)
+coders_tim2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(coders_tim2_la_LDFLAGS) $(LDFLAGS) -o \
+	$@
+@WITH_MODULES_TRUE@am_coders_tim2_la_rpath = -rpath $(codersdir)
 coders_ttf_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
 am_coders_ttf_la_OBJECTS = coders/ttf_la-ttf.lo
 coders_ttf_la_OBJECTS = $(am_coders_ttf_la_OBJECTS)
@@ -2128,6 +2194,7 @@
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-utility.Plo \
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.Plo \
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Plo \
+	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Plo \
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-widget.Plo \
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xml-tree.Plo \
 	MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwindow.Plo \
@@ -2204,6 +2271,7 @@
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jpeg.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-json.Plo \
+	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-label.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mac.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-magick.Plo \
@@ -2261,6 +2329,7 @@
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tiff.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Plo \
+	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-txt.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-uil.Plo \
@@ -2333,6 +2402,7 @@
 	coders/$(DEPDIR)/jp2_la-jp2.Plo \
 	coders/$(DEPDIR)/jpeg_la-jpeg.Plo \
 	coders/$(DEPDIR)/json_la-json.Plo \
+	coders/$(DEPDIR)/jxl_la-jxl.Plo \
 	coders/$(DEPDIR)/label_la-label.Plo \
 	coders/$(DEPDIR)/mac_la-mac.Plo \
 	coders/$(DEPDIR)/magick_la-magick.Plo \
@@ -2388,6 +2458,7 @@
 	coders/$(DEPDIR)/tiff_la-psd.Plo \
 	coders/$(DEPDIR)/tiff_la-tiff.Plo \
 	coders/$(DEPDIR)/tile_la-tile.Plo \
+	coders/$(DEPDIR)/tim2_la-tim2.Plo \
 	coders/$(DEPDIR)/tim_la-tim.Plo \
 	coders/$(DEPDIR)/ttf_la-ttf.Plo \
 	coders/$(DEPDIR)/txt_la-txt.Plo \
@@ -2455,6 +2526,7 @@
 am__v_CXXLD_1 = 
 SOURCES = $(Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES) \
 	$(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES) \
+	$(nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES) \
 	$(MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES) \
 	$(coders_aai_la_SOURCES) $(coders_art_la_SOURCES) \
 	$(coders_avs_la_SOURCES) $(coders_bgr_la_SOURCES) \
@@ -2480,35 +2552,36 @@
 	$(coders_inline_la_SOURCES) $(coders_ipl_la_SOURCES) \
 	$(coders_jbig_la_SOURCES) $(coders_jnx_la_SOURCES) \
 	$(coders_jp2_la_SOURCES) $(coders_jpeg_la_SOURCES) \
-	$(coders_json_la_SOURCES) $(coders_label_la_SOURCES) \
-	$(coders_mac_la_SOURCES) $(coders_magick_la_SOURCES) \
-	$(coders_map_la_SOURCES) $(coders_mask_la_SOURCES) \
-	$(coders_mat_la_SOURCES) $(coders_matte_la_SOURCES) \
-	$(coders_meta_la_SOURCES) $(coders_miff_la_SOURCES) \
-	$(coders_mono_la_SOURCES) $(coders_mpc_la_SOURCES) \
-	$(coders_mpeg_la_SOURCES) $(coders_mpr_la_SOURCES) \
-	$(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \
-	$(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \
-	$(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \
-	$(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \
-	$(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \
-	$(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \
-	$(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \
-	$(coders_pgx_la_SOURCES) $(coders_pict_la_SOURCES) \
-	$(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \
-	$(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \
-	$(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \
-	$(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \
-	$(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \
-	$(coders_rgb_la_SOURCES) $(coders_rgf_la_SOURCES) \
-	$(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \
-	$(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \
-	$(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \
-	$(coders_sixel_la_SOURCES) $(coders_stegano_la_SOURCES) \
-	$(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \
-	$(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \
-	$(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \
-	$(coders_tim_la_SOURCES) $(coders_ttf_la_SOURCES) \
+	$(coders_json_la_SOURCES) $(coders_jxl_la_SOURCES) \
+	$(coders_label_la_SOURCES) $(coders_mac_la_SOURCES) \
+	$(coders_magick_la_SOURCES) $(coders_map_la_SOURCES) \
+	$(coders_mask_la_SOURCES) $(coders_mat_la_SOURCES) \
+	$(coders_matte_la_SOURCES) $(coders_meta_la_SOURCES) \
+	$(coders_miff_la_SOURCES) $(coders_mono_la_SOURCES) \
+	$(coders_mpc_la_SOURCES) $(coders_mpeg_la_SOURCES) \
+	$(coders_mpr_la_SOURCES) $(coders_msl_la_SOURCES) \
+	$(coders_mtv_la_SOURCES) $(coders_mvg_la_SOURCES) \
+	$(coders_null_la_SOURCES) $(coders_otb_la_SOURCES) \
+	$(coders_palm_la_SOURCES) $(coders_pango_la_SOURCES) \
+	$(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \
+	$(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \
+	$(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \
+	$(coders_pes_la_SOURCES) $(coders_pgx_la_SOURCES) \
+	$(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \
+	$(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \
+	$(coders_pnm_la_SOURCES) $(coders_ps_la_SOURCES) \
+	$(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \
+	$(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \
+	$(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \
+	$(coders_rgf_la_SOURCES) $(coders_rla_la_SOURCES) \
+	$(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \
+	$(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \
+	$(coders_sgi_la_SOURCES) $(coders_sixel_la_SOURCES) \
+	$(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \
+	$(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \
+	$(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \
+	$(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \
+	$(coders_tim2_la_SOURCES) $(coders_ttf_la_SOURCES) \
 	$(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \
 	$(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \
 	$(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \
@@ -2568,35 +2641,36 @@
 	$(coders_inline_la_SOURCES) $(coders_ipl_la_SOURCES) \
 	$(coders_jbig_la_SOURCES) $(coders_jnx_la_SOURCES) \
 	$(coders_jp2_la_SOURCES) $(coders_jpeg_la_SOURCES) \
-	$(coders_json_la_SOURCES) $(coders_label_la_SOURCES) \
-	$(coders_mac_la_SOURCES) $(coders_magick_la_SOURCES) \
-	$(coders_map_la_SOURCES) $(coders_mask_la_SOURCES) \
-	$(coders_mat_la_SOURCES) $(coders_matte_la_SOURCES) \
-	$(coders_meta_la_SOURCES) $(coders_miff_la_SOURCES) \
-	$(coders_mono_la_SOURCES) $(coders_mpc_la_SOURCES) \
-	$(coders_mpeg_la_SOURCES) $(coders_mpr_la_SOURCES) \
-	$(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \
-	$(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \
-	$(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \
-	$(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \
-	$(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \
-	$(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \
-	$(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \
-	$(coders_pgx_la_SOURCES) $(coders_pict_la_SOURCES) \
-	$(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \
-	$(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \
-	$(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \
-	$(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \
-	$(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \
-	$(coders_rgb_la_SOURCES) $(coders_rgf_la_SOURCES) \
-	$(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \
-	$(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \
-	$(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \
-	$(coders_sixel_la_SOURCES) $(coders_stegano_la_SOURCES) \
-	$(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \
-	$(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \
-	$(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \
-	$(coders_tim_la_SOURCES) $(coders_ttf_la_SOURCES) \
+	$(coders_json_la_SOURCES) $(coders_jxl_la_SOURCES) \
+	$(coders_label_la_SOURCES) $(coders_mac_la_SOURCES) \
+	$(coders_magick_la_SOURCES) $(coders_map_la_SOURCES) \
+	$(coders_mask_la_SOURCES) $(coders_mat_la_SOURCES) \
+	$(coders_matte_la_SOURCES) $(coders_meta_la_SOURCES) \
+	$(coders_miff_la_SOURCES) $(coders_mono_la_SOURCES) \
+	$(coders_mpc_la_SOURCES) $(coders_mpeg_la_SOURCES) \
+	$(coders_mpr_la_SOURCES) $(coders_msl_la_SOURCES) \
+	$(coders_mtv_la_SOURCES) $(coders_mvg_la_SOURCES) \
+	$(coders_null_la_SOURCES) $(coders_otb_la_SOURCES) \
+	$(coders_palm_la_SOURCES) $(coders_pango_la_SOURCES) \
+	$(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \
+	$(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \
+	$(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \
+	$(coders_pes_la_SOURCES) $(coders_pgx_la_SOURCES) \
+	$(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \
+	$(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \
+	$(coders_pnm_la_SOURCES) $(coders_ps_la_SOURCES) \
+	$(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \
+	$(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \
+	$(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \
+	$(coders_rgf_la_SOURCES) $(coders_rla_la_SOURCES) \
+	$(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \
+	$(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \
+	$(coders_sgi_la_SOURCES) $(coders_sixel_la_SOURCES) \
+	$(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \
+	$(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \
+	$(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \
+	$(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \
+	$(coders_tim2_la_SOURCES) $(coders_ttf_la_SOURCES) \
 	$(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \
 	$(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \
 	$(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \
@@ -3041,15 +3115,10 @@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INT16_T = @INT16_T@
-INT32_F = @INT32_F@
-INT32_T = @INT32_T@
-INT64_F = @INT64_F@
-INT64_T = @INT64_T@
-INT8_T = @INT8_T@
 JBIG_LIBS = @JBIG_LIBS@
 JEMALLOC_LIBS = @JEMALLOC_LIBS@
 JPEG_LIBS = @JPEG_LIBS@
+JXL_LIBS = @JXL_LIBS@
 JXRDecodeDelegate = @JXRDecodeDelegate@
 JXREncodeDelegate = @JXREncodeDelegate@
 LCMS2_CFLAGS = @LCMS2_CFLAGS@
@@ -3092,6 +3161,7 @@
 LZMA_CFLAGS = @LZMA_CFLAGS@
 LZMA_LIBS = @LZMA_LIBS@
 LaunchDelegate = @LaunchDelegate@
+MAGICKCORE_FREETYPE_DELEGATE = @MAGICKCORE_FREETYPE_DELEGATE@
 MAGICKCORE_PATH = @MAGICKCORE_PATH@
 MAGICKPP_LIBRARY_AGE = @MAGICKPP_LIBRARY_AGE@
 MAGICKPP_LIBRARY_CURRENT = @MAGICKPP_LIBRARY_CURRENT@
@@ -3231,18 +3301,10 @@
 SYSCONF_DIR = @SYSCONF_DIR@
 ShowImageDelegate = @ShowImageDelegate@
 TAR = @TAR@
+TCMALLOC_LIBS = @TCMALLOC_LIBS@
 THREAD_LIBS = @THREAD_LIBS@
 TIFF_LIBS = @TIFF_LIBS@
-UINT16_T = @UINT16_T@
-UINT32_F = @UINT32_F@
-UINT32_T = @UINT32_T@
-UINT64_F = @UINT64_F@
-UINT64_T = @UINT64_T@
-UINT8_T = @UINT8_T@
-UINTMAX_F = @UINTMAX_F@
-UINTMAX_T = @UINTMAX_T@
-UINTPTR_F = @UINTPTR_F@
-UINTPTR_T = @UINTPTR_T@
+TraceEncodeDelegate = @TraceEncodeDelegate@
 UMEM_LIBS = @UMEM_LIBS@
 UniconvertorDelegate = @UniconvertorDelegate@
 VERSION = @VERSION@
@@ -3361,26 +3423,22 @@
 # compiler, headers, and libraries are used as for a normal build.
 DISTCHECK_CONFIGURE_FLAGS = $(DISTCHECK_CONFIG_FLAGS)
 DISTCLEANFILES = _configs.sed MagickCore/magick-baseconfig.h
-CLEANFILES = \
-	$(MAGICKWAND_CLEANFILES) \
-	$(MAGICKPP_CLEANFILES) \
-	$(UTILITIES_CLEANFILES) \
-	$(TESTS_CLEANFILES)
-
+CLEANFILES = $(MAGICKWAND_CLEANFILES) $(MAGICKPP_CLEANFILES) \
+	$(UTILITIES_CLEANFILES) $(TESTS_CLEANFILES) $(am__append_2)
 
 # Binary scripts
 bin_SCRIPTS = \
-	$(MAGICKCORE_BIN_SCRPTS) \
-	$(MAGICKWAND_BIN_SCRPTS) \
-	$(MAGICKPP_SCRPTS)
+  $(MAGICKCORE_BIN_SCRPTS) \
+  $(MAGICKWAND_BIN_SCRPTS) \
+  $(MAGICKPP_SCRPTS)
 
 include_HEADERS = 
 
 # Headers which are not installed but which are distributed
 noinst_HEADERS = \
-	$(MAGICKCORE_NOINST_HDRS) \
-	$(MAGICKWAND_NOINST_HDRS) \
-	$(CODERS_NOINST_HDRS)
+  $(MAGICKCORE_NOINST_HDRS) \
+  $(MAGICKWAND_NOINST_HDRS) \
+  $(CODERS_NOINST_HDRS)
 
 @WIN32_NATIVE_BUILD_FALSE@SRCDIR = "$(srcdir)/"
 @WIN32_NATIVE_BUILD_TRUE@SRCDIR = '$(shell @WinPathScript@ $(srcdir)/)'
@@ -3393,45 +3451,44 @@
 # Test extensions
 TEST_EXTENSIONS = .sh .tap
 TAP_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
-	$(top_srcdir)/config/tap-driver.sh
+  $(top_srcdir)/config/tap-driver.sh
 
 
 # Environment parameters to be used during tests
 TESTS_ENVIRONMENT = \
-	MAKE="$(MAKE)" \
-	MAKEFLAGS="$(MAKEFLAGS)" \
-	MEMCHECK="$(MEMCHECK)"
+  MAKE="$(MAKE)" \
+  MAKEFLAGS="$(MAKEFLAGS)" \
+  MEMCHECK="$(MEMCHECK)"
 
 TOP_EXTRA_DIST = \
   AUTHORS.txt \
-	ChangeLog \
-	LICENSE \
-	QuickStart.txt \
-	NOTICE \
-	Install-mac.txt \
-	Install-unix.txt \
-	Install-vms.txt \
-	Install-windows.txt \
-	magick.sh.in \
-	Magickshr.opt \
-	NEWS.txt \
-	Platforms.txt \
-	README.txt \
-	index.html \
-	gitversion.sh \
-	version.sh \
-	winpath.sh
+  ChangeLog \
+  LICENSE \
+  QuickStart.txt \
+  NOTICE \
+  Install-mac.txt \
+  Install-unix.txt \
+  Install-vms.txt \
+  Install-windows.txt \
+  magick.sh.in \
+  Magickshr.opt \
+  NEWS.txt \
+  Platforms.txt \
+  README.txt \
+  index.html \
+  version.sh \
+  winpath.sh
 
 
 # Additional files to distribute
 EXTRA_DIST = \
-	$(TOP_EXTRA_DIST) \
-	$(CONFIG_EXTRA_DIST) \
-	$(MAGICKCORE_EXTRA_DIST) \
-	$(MAGICKWAND_EXTRA_DIST) \
-	$(MAGICKPP_EXTRA_DIST) \
-	$(UTILITIES_EXTRA_DIST) \
-	$(TESTS_EXTRA_DIST)
+  $(TOP_EXTRA_DIST) \
+  $(CONFIG_EXTRA_DIST) \
+  $(MAGICKCORE_EXTRA_DIST) \
+  $(MAGICKWAND_EXTRA_DIST) \
+  $(MAGICKPP_EXTRA_DIST) \
+  $(UTILITIES_EXTRA_DIST) \
+  $(TESTS_EXTRA_DIST)
 
 lib_LTLIBRARIES = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(MAGICKPP_LIBS)
 AM_LDFLAGS = 
@@ -3440,90 +3497,91 @@
 BUILT_SOURCES = 
 MOSTLYCLEANFILES = 
 M4_EXTRA_DIST = \
-	ac_func_fseeko.m4  \
-	ax_append_flag.m4  \
-	ax_c___attribute__.m4  \
-	ax_cflags_warn_all.m4  \
-	ax_compare_version.m4  \
-	ax_cxx_bool.m4  \
-	ax_cxx_namespaces.m4  \
-	ax_cxx_namespace_std.m4  \
-	ax_lang_compiler_ms.m4  \
-	ax_opencl.m4  \
-	ax_prefix_config_h.m4  \
-	ax_prog_perl_version.m4  \
-	ax_pthread.m4  \
-	ax_require_defined.m4  \
-	cxx_have_lstring.m4  \
-	cxx_have_std_libs.m4  \
-	framework.m4  \
-	libtool.m4  \
-	lt~obsolete.m4  \
-	ltoptions.m4  \
-	ltsugar.m4  \
-	ltversion.m4  \
-	magick_check_pthread_lib.m4  \
-	pkg.m4  
+  ac_func_fseeko.m4  \
+  ax_append_flag.m4  \
+  ax_c___attribute__.m4  \
+  ax_cflags_warn_all.m4  \
+  ax_compare_version.m4  \
+  ax_cxx_bool.m4  \
+  ax_cxx_namespaces.m4  \
+  ax_cxx_namespace_std.m4  \
+  ax_lang_compiler_ms.m4  \
+  ax_opencl.m4  \
+  ax_prefix_config_h.m4  \
+  ax_prog_perl_version.m4  \
+  ax_pthread.m4  \
+  ax_require_defined.m4  \
+  cxx_have_lstring.m4  \
+  cxx_have_std_libs.m4  \
+  framework.m4  \
+  libtool.m4  \
+  lt~obsolete.m4  \
+  ltoptions.m4  \
+  ltsugar.m4  \
+  ltversion.m4  \
+  magick_check_pthread_lib.m4  \
+  pkg.m4
 
 
 # Where architecture-independent configuration files get installed
 # (share/ImageMagick-version)
 configsharedir = $(SHARE_PATH)
 configshare_DATA = \
-	config/english.xml \
-	config/francais.xml \
-	config/locale.xml
+  config/english.xml \
+  config/francais.xml \
+  config/locale.xml
 
 
 # Where architecture-dependent configuration files get installed
 # (share/arch/ImageMagick-version)
 configsharearchdir = $(SHAREARCH_PATH)
 configsharearch_DATA = \
-	config/configure.xml
+  config/configure.xml
 
 
 # Where architecture-dependent configuration files get installed
 # (share/ImageMagick-version)
 configlibdir = $(CONFIGURE_PATH)
 configlib_DATA = \
-	config/colors.xml \
-	config/delegates.xml \
-	config/log.xml \
-	config/mime.xml \
-	config/policy.xml \
-	config/quantization-table.xml \
-	config/thresholds.xml \
-	config/type.xml \
-	config/type-apple.xml \
-	config/type-dejavu.xml \
-	config/type-ghostscript.xml \
-	config/type-urw-base35.xml \
-	config/type-windows.xml
+  config/colors.xml \
+  config/delegates.xml \
+  config/log.xml \
+  config/mime.xml \
+  config/policy.xml \
+  config/quantization-table.xml \
+  config/thresholds.xml \
+  config/type.xml \
+  config/type-apple.xml \
+  config/type-dejavu.xml \
+  config/type-ghostscript.xml \
+  config/type-urw-base35.xml \
+  config/type-windows.xml
 
 CONFIG_EXTRA_DIST = \
-	config/cmyk.icm \
-	config/colors.xml \
-	config/config.h.in \
-	config/delegates.xml.in \
-	config/english.xml \
-	config/francais.xml \
-	config/ImageMagick.rc \
-	config/ImageMagick.rdf.in \
-	config/lndir.sh \
-	config/locale.md \
-	config/locale.xml \
-	config/log.xml \
-	config/mime.xml \
-	config/policy.xml \
-	config/quantization-table.xml \
-	config/sRGB.icm \
-	config/thresholds.xml \
-	config/type-apple.xml.in \
-	config/type-dejavu.xml.in \
-	config/type-ghostscript.xml.in \
-	config/type-urw-base35.xml.in \
-	config/type-windows.xml.in \
-	config/type.xml.in
+  config/cmyk.icm \
+  config/colors.xml \
+  config/config.h.in \
+  config/delegates.xml.in \
+  config/english.xml \
+  config/francais.xml \
+  config/ImageMagick.rc \
+  config/ImageMagick.rdf.in \
+  config/install-sh \
+  config/lndir.sh \
+  config/locale.md \
+  config/locale.xml \
+  config/log.xml \
+  config/mime.xml \
+  config/policy.xml \
+  config/quantization-table.xml \
+  config/sRGB.icm \
+  config/thresholds.xml \
+  config/type-apple.xml.in \
+  config/type-dejavu.xml.in \
+  config/type-ghostscript.xml.in \
+  config/type-urw-base35.xml.in \
+  config/type-windows.xml.in \
+  config/type.xml.in
 
 
 # Where coder modules get installed
@@ -3544,6 +3602,8 @@
 @JBIG_DELEGATE_TRUE@MAGICKCORE_JBIG_SRCS = coders/jbig.c
 @JPEG_DELEGATE_TRUE@MAGICKCORE_JPEG_MODULES = coders/jpeg.la
 @JPEG_DELEGATE_TRUE@MAGICKCORE_JPEG_SRCS = coders/jpeg.c
+@JXL_DELEGATE_TRUE@MAGICKCORE_JXL_MODULES = coders/jxl.la
+@JXL_DELEGATE_TRUE@MAGICKCORE_JXL_SRCS = coders/jxl.c
 @LIBOPENJP2_DELEGATE_TRUE@MAGICKCORE_JP2_MODULES = coders/jp2.la
 @LIBOPENJP2_DELEGATE_TRUE@MAGICKCORE_JP2_SRCS = coders/jp2.c
 @PNG_DELEGATE_TRUE@MAGICKCORE_PNG_MODULES = coders/png.la
@@ -3564,117 +3624,255 @@
 
 MAGICKCORE_CODER_SRCS = \
 	coders/aai.c \
+	coders/aai.h \
 	coders/art.c \
+	coders/art.h \
 	coders/avs.c \
+	coders/avs.h \
 	coders/bgr.c \
+	coders/bgr.h \
 	coders/bmp.c \
+	coders/bmp.h \
 	coders/braille.c \
+	coders/braille.h \
+	coders/bytebuffer-private.h \
 	coders/cals.c \
+	coders/cals.h \
 	coders/caption.c \
+	coders/caption.h \
 	coders/cin.c \
+	coders/cin.h \
 	coders/cip.c \
+	coders/cip.h \
+	coders/clipboard.h \
 	coders/clip.c \
+	coders/clip.h \
 	coders/cmyk.c \
+	coders/cmyk.h \
+	coders/coders.h \
+	coders/coders-list.h \
+	coders/coders-private.h \
 	coders/cube.c \
+	coders/cube.h \
 	coders/cut.c \
+	coders/cut.h \
 	coders/dcm.c \
+	coders/dcm.h \
 	coders/dds.c \
+	coders/dds.h \
 	coders/debug.c \
+	coders/debug.h \
 	coders/dib.c \
+	coders/dib.h \
+	coders/djvu.h \
 	coders/dng.c \
+	coders/dng.h \
 	coders/dot.c \
+	coders/dot.h \
+	coders/dps.h \
 	coders/dpx.c \
+	coders/dpx.h \
+	coders/emf.h \
+	coders/ept.h \
+	coders/exr.h \
 	coders/fax.c \
+	coders/fax.h \
 	coders/fits.c \
+	coders/fits.h \
+	coders/flif.h \
+	coders/fpx.h \
+	coders/ghostscript-private.h \
 	coders/gif.c \
+	coders/gif.h \
 	coders/gradient.c \
+	coders/gradient.h \
 	coders/gray.c \
+	coders/gray.h \
 	coders/hald.c \
+	coders/hald.h \
 	coders/hdr.c \
+	coders/hdr.h \
+	coders/heic.h \
 	coders/histogram.c \
+	coders/histogram.h \
 	coders/hrz.c \
+	coders/hrz.h \
 	coders/html.c \
+	coders/html.h \
 	coders/icon.c \
+	coders/icon.h \
 	coders/info.c \
+	coders/info.h \
 	coders/inline.c \
+	coders/inline.h \
 	coders/ipl.c \
+	coders/ipl.h \
+	coders/jbig.h \
 	coders/jnx.c \
+	coders/jnx.h \
+	coders/jp2.h \
+	coders/jpeg.h \
 	coders/json.c \
+	coders/json.h \
+	coders/jxl.h \
 	coders/label.c \
+	coders/label.h \
 	coders/mac.c \
+	coders/mac.h \
 	coders/magick.c \
+	coders/magick.h \
 	coders/map.c \
+	coders/map.h \
 	coders/mask.c \
+	coders/mask.h \
 	coders/mat.c \
+	coders/mat.h \
 	coders/matte.c \
+	coders/matte.h \
 	coders/meta.c \
+	coders/meta.h \
 	coders/miff.c \
+	coders/miff.h \
 	coders/mono.c \
+	coders/mono.h \
 	coders/mpc.c \
+	coders/mpc.h \
 	coders/mpeg.c \
+	coders/mpeg.h \
 	coders/mpr.c \
+	coders/mpr.h \
 	coders/msl.c \
+	coders/msl.h \
 	coders/mtv.c \
+	coders/mtv.h \
 	coders/mvg.c \
+	coders/mvg.h \
 	coders/null.c \
+	coders/null.h \
 	coders/otb.c \
+	coders/otb.h \
 	coders/palm.c \
+	coders/palm.h \
 	coders/pango.c \
+	coders/pango.h \
 	coders/pattern.c \
+	coders/pattern.h \
 	coders/pcd.c \
+	coders/pcd.h \
 	coders/pcl.c \
+	coders/pcl.h \
 	coders/pcx.c \
+	coders/pcx.h \
 	coders/pdb.c \
+	coders/pdb.h \
 	coders/pdf.c \
+	coders/pdf.h \
 	coders/pes.c \
+	coders/pes.h \
 	coders/pgx.c \
+	coders/pgx.h \
 	coders/pict.c \
+	coders/pict.h \
 	coders/pix.c \
+	coders/pix.h \
 	coders/plasma.c \
+	coders/plasma.h \
+	coders/png.h \
 	coders/pnm.c \
-	coders/ps.c \
+	coders/pnm.h \
 	coders/ps2.c \
+	coders/ps2.h \
 	coders/ps3.c \
+	coders/ps3.h \
+	coders/ps.c \
 	coders/psd.c \
+	coders/psd.h \
 	coders/psd-private.h \
+	coders/psd-private.h \
+	coders/ps.h \
 	coders/pwp.c \
+	coders/pwp.h \
 	coders/raw.c \
+	coders/raw.h \
 	coders/rgb.c \
+	coders/rgb.h \
 	coders/rgf.c \
+	coders/rgf.h \
 	coders/rla.c \
+	coders/rla.h \
 	coders/rle.c \
+	coders/rle.h \
 	coders/scr.c \
 	coders/screenshot.c \
+	coders/screenshot.h \
+	coders/scr.h \
 	coders/sct.c \
+	coders/sct.h \
 	coders/sfw.c \
+	coders/sfw.h \
 	coders/sgi.c \
+	coders/sgi.h \
 	coders/sixel.c \
+	coders/sixel.h \
 	coders/stegano.c \
+	coders/stegano.h \
 	coders/sun.c \
+	coders/sun.h \
 	coders/svg.c \
+	coders/svg.h \
 	coders/tga.c \
+	coders/tga.h \
 	coders/thumbnail.c \
+	coders/thumbnail.h \
+	coders/tiff.h \
 	coders/tile.c \
+	coders/tile.h \
+	coders/tim2.c \
+	coders/tim2.h \
 	coders/tim.c \
+	coders/tim.h \
 	coders/ttf.c \
+	coders/ttf.h \
 	coders/txt.c \
+	coders/txt.h \
 	coders/uil.c \
+	coders/uil.h \
 	coders/url.c \
+	coders/url.h \
 	coders/uyvy.c \
+	coders/uyvy.h \
 	coders/vicar.c \
+	coders/vicar.h \
 	coders/vid.c \
+	coders/vid.h \
 	coders/viff.c \
+	coders/viff.h \
 	coders/vips.c \
+	coders/vips.h \
 	coders/wbmp.c \
+	coders/wbmp.h \
+	coders/webp.h \
+	coders/wmf.h \
 	coders/wpg.c \
+	coders/wpg.h \
 	coders/xbm.c \
+	coders/xbm.h \
 	coders/xc.c \
 	coders/xcf.c \
+	coders/xcf.h \
+	coders/xc.h \
+	coders/x.h \
 	coders/xpm.c \
+	coders/xpm.h \
 	coders/xps.c \
+	coders/xps.h \
 	coders/xtrn.c \
+	coders/xtrn.h \
+	coders/xwd.h \
 	coders/ycbcr.c \
+	coders/ycbcr.h \
 	coders/yuv.c \
+	coders/yuv.h \
 	$(MAGICKCORE_DPS_SRCS) \
 	$(MAGICKCORE_DJVU_SRCS) \
 	$(MAGICKCORE_EXR_SRCS) \
@@ -3685,6 +3883,7 @@
 	$(MAGICKCORE_JBIG_SRCS) \
 	$(MAGICKCORE_JPEG_SRCS) \
 	$(MAGICKCORE_JP2_SRCS) \
+	$(MAGICKCORE_JXL_SRCS) \
 	$(MAGICKCORE_PNG_SRCS) \
 	$(MAGICKCORE_TIFF_SRCS) \
 	$(MAGICKCORE_WEBP_SRCS) \
@@ -3698,6 +3897,7 @@
 	coders/bgr.h \
 	coders/bmp.h \
 	coders/braille.h \
+	coders/bytebuffer-private.h \
 	coders/cals.h \
 	coders/caption.h \
 	coders/cin.h \
@@ -3726,6 +3926,7 @@
 	coders/fits.h \
 	coders/flif.h \
 	coders/fpx.h \
+	coders/ghostscript-private.h \
 	coders/gif.h \
 	coders/gradient.h \
 	coders/gray.h \
@@ -3744,6 +3945,7 @@
 	coders/jp2.h \
 	coders/jpeg.h \
 	coders/json.h \
+	coders/jxl.h \
 	coders/label.h \
 	coders/mac.h \
 	coders/magick.h \
@@ -3802,6 +4004,7 @@
 	coders/tiff.h \
 	coders/tile.h \
 	coders/tim.h \
+	coders/tim2.h \
 	coders/ttf.h \
 	coders/txt.h \
 	coders/uil.h \
@@ -3824,7 +4027,7 @@
 	coders/xtrn.h \
 	coders/xwd.h \
 	coders/ycbcr.h \
-	coders/yuv.h 
+	coders/yuv.h
 
 @WITH_MODULES_FALSE@coders_LTLIBRARIES = 
 @WITH_MODULES_TRUE@coders_LTLIBRARIES = \
@@ -3919,6 +4122,7 @@
 @WITH_MODULES_TRUE@	coders/thumbnail.la \
 @WITH_MODULES_TRUE@	coders/tile.la \
 @WITH_MODULES_TRUE@	coders/tim.la \
+@WITH_MODULES_TRUE@	coders/tim2.la \
 @WITH_MODULES_TRUE@	coders/ttf.la \
 @WITH_MODULES_TRUE@	coders/txt.la \
 @WITH_MODULES_TRUE@	coders/uil.la \
@@ -3948,6 +4152,7 @@
 @WITH_MODULES_TRUE@	$(MAGICKCORE_JBIG_MODULES) \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_JPEG_MODULES) \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_JP2_MODULES) \
+@WITH_MODULES_TRUE@	$(MAGICKCORE_JXL_MODULES) \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_PNG_MODULES) \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_TIFF_MODULES) \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_WEBP_MODULES) \
@@ -4249,6 +4454,12 @@
 coders_json_la_LDFLAGS = $(MODULECOMMONFLAGS)
 coders_json_la_LIBADD = $(MAGICKCORE_LIBS)
 
+# JXL coder module
+coders_jxl_la_SOURCES = coders/jxl.c
+coders_jxl_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_jxl_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_jxl_la_LIBADD = $(MAGICKCORE_LIBS) $(JXL_LIBS)
+
 # LABEL coder module
 coders_label_la_SOURCES = coders/label.c
 coders_label_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
@@ -4585,6 +4796,12 @@
 coders_tim_la_LDFLAGS = $(MODULECOMMONFLAGS)
 coders_tim_la_LIBADD = $(MAGICKCORE_LIBS)
 
+# TIM2 coder module
+coders_tim2_la_SOURCES = coders/tim2.c
+coders_tim2_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_tim2_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_tim2_la_LIBADD = $(MAGICKCORE_LIBS)
+
 # TTF coder module
 coders_ttf_la_SOURCES = coders/ttf.c
 coders_ttf_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
@@ -4727,19 +4944,19 @@
 
 # Headers which are installed
 MagickCoreinc_HEADERS = \
-	$(MAGICKCORE_INCLUDE_HDRS)
+  $(MAGICKCORE_INCLUDE_HDRS)
 
 MagickCoreincarch_HEADERS = \
-	$(MAGICKCORE_INCLUDEARCH_HDRS)
+  $(MAGICKCORE_INCLUDEARCH_HDRS)
 
 MAGICKCORE_BIN_SCRPTS = \
   MagickCore/MagickCore-config
 
 MAGICKCORE_PKGCONFIG = \
   MagickCore/ImageMagick.pc \
-	MagickCore/MagickCore.pc \
-	MagickCore/ImageMagick-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc \
-	MagickCore/MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc 
+  MagickCore/MagickCore.pc \
+  MagickCore/ImageMagick-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc \
+  MagickCore/MagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 MAGICKCORE_MANS = \
   MagickCore/MagickCore-config.1
@@ -4749,6 +4966,8 @@
 @WITH_MODULES_TRUE@MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = $(MAGICKCORE_BASE_SRCS) $(MAGICKCORE_PLATFORM_SRCS)
 @WITH_MODULES_FALSE@MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICK_DEP_LIBS)
 @WITH_MODULES_TRUE@MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICK_DEP_LIBS)
+nodist_MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES =  \
+	$(am__append_1)
 MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
 @HAVE_LD_VERSION_SCRIPT_FALSE@MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -export-symbols-regex ".*"
 @HAVE_LD_VERSION_SCRIPT_TRUE@MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -Wl,--version-script=$(top_srcdir)/MagickCore/libMagickCore.map
@@ -4761,236 +4980,241 @@
 
 # Library base sources
 MAGICKCORE_BASE_SRCS = \
-	MagickCore/MagickCore.h \
-	MagickCore/accelerate.c \
-	MagickCore/accelerate-private.h \
-	MagickCore/accelerate-kernels-private.h \
-	MagickCore/animate.c \
-	MagickCore/animate.h \
-	MagickCore/animate-private.h \
-	MagickCore/annotate.c \
-	MagickCore/annotate.h \
-	MagickCore/artifact.c \
-	MagickCore/artifact.h \
-	MagickCore/attribute.c \
-	MagickCore/attribute.h \
-	MagickCore/blob.c \
-	MagickCore/blob.h \
-	MagickCore/blob-private.h \
-	MagickCore/cache.c \
-	MagickCore/cache.h \
-	MagickCore/cache-private.h \
-	MagickCore/cache-view.c \
-	MagickCore/cache-view.h \
-	MagickCore/channel.c \
-	MagickCore/channel.h \
-	MagickCore/cipher.c \
-	MagickCore/cipher.h \
-	MagickCore/client.c \
-	MagickCore/client.h \
-	MagickCore/coder.c \
-	MagickCore/coder.h \
-	MagickCore/color.c \
-	MagickCore/color.h \
-	MagickCore/color-private.h \
-	MagickCore/colormap.c \
-	MagickCore/colormap.h \
-	MagickCore/colormap-private.h \
-	MagickCore/colorspace.c \
-	MagickCore/colorspace.h \
-	MagickCore/colorspace-private.h \
-	MagickCore/compare.c \
-	MagickCore/compare.h \
-	MagickCore/composite.c \
-	MagickCore/composite.h \
-	MagickCore/composite-private.h \
-	MagickCore/compress.c \
-	MagickCore/compress.h \
-	MagickCore/configure.c \
-	MagickCore/configure.h \
-	MagickCore/constitute.c \
-	MagickCore/constitute.h \
-	MagickCore/decorate.c \
-	MagickCore/decorate.h \
-	MagickCore/delegate.c \
-	MagickCore/delegate.h \
-	MagickCore/delegate-private.h \
-	MagickCore/deprecate.c \
-	MagickCore/deprecate.h \
-	MagickCore/display.c \
-	MagickCore/display.h \
-	MagickCore/display-private.h \
-	MagickCore/distort.c \
-	MagickCore/distort.h \
-	MagickCore/distribute-cache.c \
-	MagickCore/distribute-cache.h \
-	MagickCore/distribute-cache-private.h \
-	MagickCore/draw.c \
-	MagickCore/draw.h \
-	MagickCore/draw-private.h \
-	MagickCore/effect.c \
-	MagickCore/effect.h \
-	MagickCore/enhance.c \
-	MagickCore/enhance.h \
-	MagickCore/exception.c \
-	MagickCore/exception.h \
-	MagickCore/exception-private.h \
-	MagickCore/feature.c \
-	MagickCore/feature.h \
-	MagickCore/fourier.c \
-	MagickCore/fourier.h \
-	MagickCore/fx.c \
-	MagickCore/fx.h \
-	MagickCore/fx-private.h \
-	MagickCore/gem.c \
-	MagickCore/gem.h \
-	MagickCore/gem-private.h \
-	MagickCore/geometry.c \
-	MagickCore/geometry.h \
-	MagickCore/histogram.c \
-	MagickCore/histogram.h \
-	MagickCore/identify.c \
-	MagickCore/identify.h \
-	MagickCore/image.c \
-	MagickCore/image.h \
-	MagickCore/image-private.h \
-	MagickCore/image-view.c \
-	MagickCore/image-view.h \
-	MagickCore/layer.c \
-	MagickCore/layer.h \
-	MagickCore/linked-list.c \
-	MagickCore/linked-list.h \
-	MagickCore/list.c \
-	MagickCore/list.h \
-	MagickCore/locale.c \
-	MagickCore/locale_.h \
-	MagickCore/log.c \
-	MagickCore/log.h \
-	MagickCore/magic.c \
-	MagickCore/magic.h \
-	MagickCore/magick.c \
-	MagickCore/magick-baseconfig.h \
-	MagickCore/magick-config.h \
-	MagickCore/magick-type.h \
-	MagickCore/magick.h \
-	MagickCore/matrix.c \
-	MagickCore/matrix.h \
-	MagickCore/matrix-private.h \
-	MagickCore/memory.c \
-	MagickCore/memory_.h \
-	MagickCore/memory-private.h \
-	MagickCore/method-attribute.h \
-	MagickCore/methods.h \
-	MagickCore/mime.c \
-	MagickCore/mime.h \
-	MagickCore/module.c \
-	MagickCore/module.h \
-	MagickCore/monitor.c \
-	MagickCore/monitor.h \
-	MagickCore/monitor-private.h \
-	MagickCore/montage.c \
-	MagickCore/montage.h \
-	MagickCore/morphology.c \
-	MagickCore/morphology.h \
-	MagickCore/morphology-private.h \
-	MagickCore/nt-base.h \
+  MagickCore/MagickCore.h \
+  MagickCore/accelerate.c \
+  MagickCore/accelerate-private.h \
+  MagickCore/accelerate-kernels-private.h \
+  MagickCore/animate.c \
+  MagickCore/animate.h \
+  MagickCore/animate-private.h \
+  MagickCore/annotate.c \
+  MagickCore/annotate.h \
+  MagickCore/artifact.c \
+  MagickCore/artifact.h \
+  MagickCore/attribute.c \
+  MagickCore/attribute.h \
+  MagickCore/blob.c \
+  MagickCore/blob.h \
+  MagickCore/blob-private.h \
+  MagickCore/cache.c \
+  MagickCore/cache.h \
+  MagickCore/cache-private.h \
+  MagickCore/cache-view.c \
+  MagickCore/cache-view.h \
+  MagickCore/channel.c \
+  MagickCore/channel.h \
+  MagickCore/cipher.c \
+  MagickCore/cipher.h \
+  MagickCore/client.c \
+  MagickCore/client.h \
+  MagickCore/coder.c \
+  MagickCore/coder.h \
+  MagickCore/color.c \
+  MagickCore/color.h \
+  MagickCore/color-private.h \
+  MagickCore/colormap.c \
+  MagickCore/colormap.h \
+  MagickCore/colormap-private.h \
+  MagickCore/colorspace.c \
+  MagickCore/colorspace.h \
+  MagickCore/colorspace-private.h \
+  MagickCore/compare.c \
+  MagickCore/compare.h \
+  MagickCore/composite.c \
+  MagickCore/composite.h \
+  MagickCore/composite-private.h \
+  MagickCore/compress.c \
+  MagickCore/compress.h \
+  MagickCore/configure.c \
+  MagickCore/configure.h \
+  MagickCore/constitute.c \
+  MagickCore/constitute.h \
+  MagickCore/decorate.c \
+  MagickCore/decorate.h \
+  MagickCore/delegate.c \
+  MagickCore/delegate.h \
+  MagickCore/delegate-private.h \
+  MagickCore/deprecate.c \
+  MagickCore/deprecate.h \
+  MagickCore/display.c \
+  MagickCore/display.h \
+  MagickCore/display-private.h \
+  MagickCore/distort.c \
+  MagickCore/distort.h \
+  MagickCore/distribute-cache.c \
+  MagickCore/distribute-cache.h \
+  MagickCore/distribute-cache-private.h \
+  MagickCore/draw.c \
+  MagickCore/draw.h \
+  MagickCore/draw-private.h \
+  MagickCore/effect.c \
+  MagickCore/effect.h \
+  MagickCore/enhance.c \
+  MagickCore/enhance.h \
+  MagickCore/exception.c \
+  MagickCore/exception.h \
+  MagickCore/exception-private.h \
+  MagickCore/feature.c \
+  MagickCore/feature.h \
+  MagickCore/fourier.c \
+  MagickCore/fourier.h \
+  MagickCore/fx.c \
+  MagickCore/fx.h \
+  MagickCore/fx-private.h \
+  MagickCore/gem.c \
+  MagickCore/gem.h \
+  MagickCore/gem-private.h \
+  MagickCore/geometry.c \
+  MagickCore/geometry.h \
+  MagickCore/histogram.c \
+  MagickCore/histogram.h \
+  MagickCore/identify.c \
+  MagickCore/identify.h \
+  MagickCore/image.c \
+  MagickCore/image.h \
+  MagickCore/image-private.h \
+  MagickCore/image-view.c \
+  MagickCore/image-view.h \
+  MagickCore/layer.c \
+  MagickCore/layer.h \
+  MagickCore/linked-list.c \
+  MagickCore/linked-list.h \
+  MagickCore/list.c \
+  MagickCore/list.h \
+  MagickCore/locale.c \
+  MagickCore/locale_.h \
+  MagickCore/log.c \
+  MagickCore/log.h \
+  MagickCore/magic.c \
+  MagickCore/magic.h \
+  MagickCore/magick.c \
+  MagickCore/magick-baseconfig.h \
+  MagickCore/magick-config.h \
+  MagickCore/magick-type.h \
+  MagickCore/magick.h \
+  MagickCore/matrix.c \
+  MagickCore/matrix.h \
+  MagickCore/matrix-private.h \
+  MagickCore/memory.c \
+  MagickCore/memory_.h \
+  MagickCore/memory-private.h \
+  MagickCore/method-attribute.h \
+  MagickCore/methods.h \
+  MagickCore/mime.c \
+  MagickCore/mime.h \
+  MagickCore/module.c \
+  MagickCore/module.h \
+  MagickCore/monitor.c \
+  MagickCore/monitor.h \
+  MagickCore/monitor-private.h \
+  MagickCore/montage.c \
+  MagickCore/montage.h \
+  MagickCore/morphology.c \
+  MagickCore/morphology.h \
+  MagickCore/morphology-private.h \
+  MagickCore/mutex.h \
+  MagickCore/nt-base.h \
   MagickCore/nt-base-private.h \
-	MagickCore/nt-feature.h \
-	MagickCore/opencl.c \
-	MagickCore/opencl.h \
-	MagickCore/opencl-private.h \
-	MagickCore/option.c \
-	MagickCore/option.h \
-	MagickCore/option-private.h \
-	MagickCore/paint.c \
-	MagickCore/paint.h \
-	MagickCore/pixel.c \
-	MagickCore/pixel.h \
-	MagickCore/pixel-accessor.h \
-	MagickCore/pixel-private.h \
-	MagickCore/policy.c \
-	MagickCore/policy.h \
-	MagickCore/prepress.c \
-	MagickCore/prepress.h \
-	MagickCore/property.c \
-	MagickCore/property.h \
-	MagickCore/profile.c \
-	MagickCore/profile.h \
-	MagickCore/profile-private.h \
-	MagickCore/quantize.c \
-	MagickCore/quantize.h \
-	MagickCore/quantum.c \
-	MagickCore/quantum.h \
-	MagickCore/quantum-export.c \
-	MagickCore/quantum-import.c \
-	MagickCore/quantum-private.h \
-	MagickCore/random.c \
-	MagickCore/random_.h \
-	MagickCore/random-private.h \
-	MagickCore/registry.c \
-	MagickCore/registry.h \
-	MagickCore/resample.c \
-	MagickCore/resample.h \
-	MagickCore/resample-private.h \
-	MagickCore/resize.c \
-	MagickCore/resize.h \
-	MagickCore/resize-private.h \
-	MagickCore/resource.c \
-	MagickCore/resource_.h \
-	MagickCore/resource-private.h \
-	MagickCore/segment.c \
-	MagickCore/segment.h \
-	MagickCore/semaphore.c \
-	MagickCore/semaphore.h \
-	MagickCore/semaphore-private.h \
-	MagickCore/shear.c \
-	MagickCore/shear.h \
-	MagickCore/signature.c \
-	MagickCore/signature.h \
-	MagickCore/signature-private.h \
-	MagickCore/splay-tree.c \
-	MagickCore/splay-tree.h \
-	MagickCore/static.c \
-	MagickCore/static.h \
-	MagickCore/statistic.c \
-	MagickCore/statistic.h \
-	MagickCore/stream.c \
-	MagickCore/stream.h \
-	MagickCore/stream-private.h \
-	MagickCore/string.c \
-	MagickCore/string_.h \
-	MagickCore/string-private.h \
-	MagickCore/studio.h \
-	MagickCore/thread.c \
-	MagickCore/thread_.h \
-	MagickCore/thread-private.h \
-	MagickCore/timer.c \
-	MagickCore/timer.h \
-	MagickCore/token.c \
-	MagickCore/token.h \
-	MagickCore/token-private.h \
-	MagickCore/transform.c \
-	MagickCore/transform.h \
-	MagickCore/threshold.c \
-	MagickCore/threshold.h \
-	MagickCore/type.c \
-	MagickCore/type.h \
-	MagickCore/utility.c \
-	MagickCore/utility.h \
-	MagickCore/utility-private.h \
-	MagickCore/version.c \
-	MagickCore/version.h \
-	MagickCore/version-private.h \
-	MagickCore/vision.c \
-	MagickCore/vision.h \
-	MagickCore/widget.c \
-	MagickCore/widget.h \
-	MagickCore/widget-private.h \
-	MagickCore/xml-tree.c \
-	MagickCore/xml-tree.h \
-	MagickCore/xml-tree-private.h \
-	MagickCore/xwindow.c \
-	MagickCore/xwindow.h 
+  MagickCore/nt-feature.h \
+  MagickCore/opencl.c \
+  MagickCore/opencl.h \
+  MagickCore/opencl-private.h \
+  MagickCore/option.c \
+  MagickCore/option.h \
+  MagickCore/option-private.h \
+  MagickCore/paint.c \
+  MagickCore/paint.h \
+  MagickCore/pixel.c \
+  MagickCore/pixel.h \
+  MagickCore/pixel-accessor.h \
+  MagickCore/pixel-private.h \
+  MagickCore/policy.c \
+  MagickCore/policy.h \
+  MagickCore/policy-private.h \
+  MagickCore/prepress.c \
+  MagickCore/prepress.h \
+  MagickCore/property.c \
+  MagickCore/property.h \
+  MagickCore/profile.c \
+  MagickCore/profile.h \
+  MagickCore/profile-private.h \
+  MagickCore/quantize.c \
+  MagickCore/quantize.h \
+  MagickCore/quantum.c \
+  MagickCore/quantum.h \
+  MagickCore/quantum-export.c \
+  MagickCore/quantum-import.c \
+  MagickCore/quantum-private.h \
+  MagickCore/random.c \
+  MagickCore/random_.h \
+  MagickCore/random-private.h \
+  MagickCore/registry.c \
+  MagickCore/registry.h \
+  MagickCore/resample.c \
+  MagickCore/resample.h \
+  MagickCore/resample-private.h \
+  MagickCore/resize.c \
+  MagickCore/resize.h \
+  MagickCore/resize-private.h \
+  MagickCore/resource.c \
+  MagickCore/resource_.h \
+  MagickCore/resource-private.h \
+  MagickCore/segment.c \
+  MagickCore/segment.h \
+  MagickCore/semaphore.c \
+  MagickCore/semaphore.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/shear.c \
+  MagickCore/shear.h \
+  MagickCore/signature.c \
+  MagickCore/signature.h \
+  MagickCore/signature-private.h \
+  MagickCore/splay-tree.c \
+  MagickCore/splay-tree.h \
+  MagickCore/static.c \
+  MagickCore/static.h \
+  MagickCore/statistic.c \
+  MagickCore/statistic.h \
+  MagickCore/stream.c \
+  MagickCore/stream.h \
+  MagickCore/stream-private.h \
+  MagickCore/string.c \
+  MagickCore/string_.h \
+  MagickCore/string-private.h \
+  MagickCore/studio.h \
+  MagickCore/thread.c \
+  MagickCore/thread_.h \
+  MagickCore/thread-private.h \
+  MagickCore/timer.c \
+  MagickCore/timer.h \
+  MagickCore/timer-private.h \
+  MagickCore/token.c \
+  MagickCore/token.h \
+  MagickCore/token-private.h \
+  MagickCore/transform.c \
+  MagickCore/transform.h \
+  MagickCore/threshold.c \
+  MagickCore/threshold.h \
+  MagickCore/type.c \
+  MagickCore/type.h \
+  MagickCore/utility.c \
+  MagickCore/utility.h \
+  MagickCore/utility-private.h \
+  MagickCore/version.c \
+  MagickCore/version.h \
+  MagickCore/version-private.h \
+  MagickCore/visual-effects.c \
+  MagickCore/visual-effects.h \
+  MagickCore/vision.c \
+  MagickCore/vision.h \
+  MagickCore/widget.c \
+  MagickCore/widget.h \
+  MagickCore/widget-private.h \
+  MagickCore/xml-tree.c \
+  MagickCore/xml-tree.h \
+  MagickCore/xml-tree-private.h \
+  MagickCore/xwindow.c \
+  MagickCore/xwindow.h
 
 @CYGWIN_BUILD_FALSE@@WIN32_NATIVE_BUILD_FALSE@MAGICKCORE_PLATFORM_SRCS = 
 @CYGWIN_BUILD_TRUE@@WIN32_NATIVE_BUILD_FALSE@MAGICKCORE_PLATFORM_SRCS = \
@@ -5005,290 +5229,293 @@
 @WIN32_NATIVE_BUILD_TRUE@  MagickCore/nt-feature.h
 
 MAGICKCORE_INCLUDE_HDRS = \
-	MagickCore/MagickCore.h \
-	MagickCore/animate.h \
-	MagickCore/annotate.h \
-	MagickCore/artifact.h \
-	MagickCore/attribute.h \
-	MagickCore/blob.h \
-	MagickCore/cache.h \
-	MagickCore/cache-view.h \
-	MagickCore/channel.h \
-	MagickCore/cipher.h \
-	MagickCore/client.h \
-	MagickCore/coder.h \
-	MagickCore/color.h \
-	MagickCore/colormap.h \
-	MagickCore/colorspace.h \
-	MagickCore/compare.h \
-	MagickCore/composite.h \
-	MagickCore/compress.h \
-	MagickCore/configure.h \
-	MagickCore/constitute.h \
-	MagickCore/decorate.h \
-	MagickCore/delegate.h \
-	MagickCore/deprecate.h \
-	MagickCore/display.h \
-	MagickCore/distort.h \
-	MagickCore/distribute-cache.h \
-	MagickCore/draw.h \
-	MagickCore/effect.h \
-	MagickCore/enhance.h \
-	MagickCore/exception.h \
-	MagickCore/feature.h \
-	MagickCore/fourier.h \
-	MagickCore/fx.h \
-	MagickCore/gem.h \
-	MagickCore/geometry.h \
-	MagickCore/histogram.h \
-	MagickCore/identify.h \
-	MagickCore/image.h \
-	MagickCore/image-view.h \
-	MagickCore/layer.h \
-	MagickCore/linked-list.h \
-	MagickCore/list.h \
-	MagickCore/locale_.h \
-	MagickCore/log.h \
-	MagickCore/magic.h \
-	MagickCore/magick.h \
-	MagickCore/magick-config.h \
-	MagickCore/magick-type.h \
-	MagickCore/matrix.h \
-	MagickCore/memory_.h \
-	MagickCore/method-attribute.h \
-	MagickCore/methods.h \
-	MagickCore/mime.h \
-	MagickCore/module.h \
-	MagickCore/monitor.h \
-	MagickCore/montage.h \
-	MagickCore/morphology.h \
-	MagickCore/nt-base.h \
-	MagickCore/opencl.h \
-	MagickCore/option.h \
-	MagickCore/paint.h \
-	MagickCore/pixel.h \
-	MagickCore/pixel-accessor.h \
-	MagickCore/policy.h \
-	MagickCore/prepress.h \
-	MagickCore/profile.h \
-	MagickCore/property.h \
-	MagickCore/quantize.h \
-	MagickCore/quantum.h \
-	MagickCore/random_.h \
-	MagickCore/registry.h \
-	MagickCore/resample.h \
-	MagickCore/resize.h \
-	MagickCore/resource_.h \
-	MagickCore/segment.h \
-	MagickCore/semaphore.h \
-	MagickCore/shear.h \
-	MagickCore/signature.h \
-	MagickCore/splay-tree.h \
-	MagickCore/static.h \
-	MagickCore/statistic.h \
-	MagickCore/stream.h \
-	MagickCore/string_.h \
-	MagickCore/studio.h \
-	MagickCore/timer.h \
-	MagickCore/token.h \
-	MagickCore/transform.h \
-	MagickCore/threshold.h \
-	MagickCore/type.h \
-	MagickCore/utility.h \
-	MagickCore/version.h \
-	MagickCore/vision.h \
-	MagickCore/widget.h \
-	MagickCore/xml-tree.h \
-	MagickCore/xwindow.h
+  MagickCore/MagickCore.h \
+  MagickCore/animate.h \
+  MagickCore/annotate.h \
+  MagickCore/artifact.h \
+  MagickCore/attribute.h \
+  MagickCore/blob.h \
+  MagickCore/cache.h \
+  MagickCore/cache-view.h \
+  MagickCore/channel.h \
+  MagickCore/cipher.h \
+  MagickCore/client.h \
+  MagickCore/coder.h \
+  MagickCore/color.h \
+  MagickCore/colormap.h \
+  MagickCore/colorspace.h \
+  MagickCore/compare.h \
+  MagickCore/composite.h \
+  MagickCore/compress.h \
+  MagickCore/configure.h \
+  MagickCore/constitute.h \
+  MagickCore/decorate.h \
+  MagickCore/delegate.h \
+  MagickCore/deprecate.h \
+  MagickCore/display.h \
+  MagickCore/distort.h \
+  MagickCore/distribute-cache.h \
+  MagickCore/draw.h \
+  MagickCore/effect.h \
+  MagickCore/enhance.h \
+  MagickCore/exception.h \
+  MagickCore/feature.h \
+  MagickCore/fourier.h \
+  MagickCore/fx.h \
+  MagickCore/gem.h \
+  MagickCore/geometry.h \
+  MagickCore/histogram.h \
+  MagickCore/identify.h \
+  MagickCore/image.h \
+  MagickCore/image-view.h \
+  MagickCore/layer.h \
+  MagickCore/linked-list.h \
+  MagickCore/list.h \
+  MagickCore/locale_.h \
+  MagickCore/log.h \
+  MagickCore/magic.h \
+  MagickCore/magick.h \
+  MagickCore/magick-config.h \
+  MagickCore/magick-type.h \
+  MagickCore/matrix.h \
+  MagickCore/memory_.h \
+  MagickCore/method-attribute.h \
+  MagickCore/methods.h \
+  MagickCore/mime.h \
+  MagickCore/module.h \
+  MagickCore/monitor.h \
+  MagickCore/montage.h \
+  MagickCore/morphology.h \
+  MagickCore/nt-base.h \
+  MagickCore/opencl.h \
+  MagickCore/option.h \
+  MagickCore/paint.h \
+  MagickCore/pixel.h \
+  MagickCore/pixel-accessor.h \
+  MagickCore/policy.h \
+  MagickCore/prepress.h \
+  MagickCore/profile.h \
+  MagickCore/property.h \
+  MagickCore/quantize.h \
+  MagickCore/quantum.h \
+  MagickCore/random_.h \
+  MagickCore/registry.h \
+  MagickCore/resample.h \
+  MagickCore/resize.h \
+  MagickCore/resource_.h \
+  MagickCore/segment.h \
+  MagickCore/semaphore.h \
+  MagickCore/shear.h \
+  MagickCore/signature.h \
+  MagickCore/splay-tree.h \
+  MagickCore/static.h \
+  MagickCore/statistic.h \
+  MagickCore/stream.h \
+  MagickCore/string_.h \
+  MagickCore/studio.h \
+  MagickCore/timer.h \
+  MagickCore/token.h \
+  MagickCore/transform.h \
+  MagickCore/threshold.h \
+  MagickCore/type.h \
+  MagickCore/utility.h \
+  MagickCore/version.h \
+  MagickCore/vision.h \
+  MagickCore/visual-effects.h \
+  MagickCore/widget.h \
+  MagickCore/xml-tree.h \
+  MagickCore/xwindow.h
 
 MAGICKCORE_NOINST_HDRS = \
-	MagickCore/accelerate-private.h \
-	MagickCore/accelerate-kernels-private.h \
-	MagickCore/animate-private.h \
-	MagickCore/annotate-private.h \
-	MagickCore/blob-private.h \
- 	MagickCore/cache-private.h \
-	MagickCore/cache-private.h \
- 	MagickCore/coder-private.h \
-	MagickCore/colormap-private.h \
- 	MagickCore/color-private.h \
-	MagickCore/color-private.h \
-	MagickCore/colorspace-private.h \
-	MagickCore/composite-private.h \
- 	MagickCore/configure-private.h \
- 	MagickCore/constitute-private.h \
- 	MagickCore/delegate-private.h \
-	MagickCore/delegate-private.h \
-	MagickCore/display-private.h \
-	MagickCore/distribute-cache-private.h \
-	MagickCore/draw-private.h \
-	MagickCore/exception-private.h \
-	MagickCore/fx-private.h \
-	MagickCore/gem-private.h \
-	MagickCore/image-private.h \
- 	MagickCore/locale-private.h \
- 	MagickCore/log-private.h \
- 	MagickCore/magick-private.h \
- 	MagickCore/magic-private.h \
-	MagickCore/matrix-private.h \
-	MagickCore/memory-private.h \
- 	MagickCore/methods-private.h \
- 	MagickCore/mime-private.h \
-	MagickCore/mime-private.h \
- 	MagickCore/module-private.h \
-	MagickCore/monitor-private.h \
-	MagickCore/morphology-private.h \
-	MagickCore/nt-base.h \
-	MagickCore/nt-feature.h \
-	MagickCore/opencl-private.h \
-	MagickCore/option-private.h \
- 	MagickCore/pixel-private.h \
- 	MagickCore/policy-private.h \
- 	MagickCore/profile-private.h \
-	MagickCore/quantum-private.h \
- 	MagickCore/random_-private.h \
-	MagickCore/random-private.h \
- 	MagickCore/registry-private.h \
-	MagickCore/resample-private.h \
-	MagickCore/resize-private.h \
- 	MagickCore/resource-private.h \
-	MagickCore/resource-private.h \
- 	MagickCore/semaphore-private.h \
-	MagickCore/semaphore-private.h \
-	MagickCore/signature-private.h \
-	MagickCore/stream-private.h \
-	MagickCore/string-private.h \
-	MagickCore/thread_.h \
-	MagickCore/thread-private.h \
-	MagickCore/token-private.h \
-	MagickCore/transform-private.h \
- 	MagickCore/type-private.h \
-	MagickCore/utility-private.h \
-	MagickCore/version-private.h \
- 	MagickCore/widget-private.h \
-	MagickCore/xml-tree-private.h \
-	MagickCore/xwindow-private.h
+  MagickCore/accelerate-private.h \
+  MagickCore/accelerate-kernels-private.h \
+  MagickCore/animate-private.h \
+  MagickCore/annotate-private.h \
+  MagickCore/blob-private.h \
+  MagickCore/cache-private.h \
+  MagickCore/cache-private.h \
+  MagickCore/coder-private.h \
+  MagickCore/colormap-private.h \
+  MagickCore/color-private.h \
+  MagickCore/color-private.h \
+  MagickCore/colorspace-private.h \
+  MagickCore/composite-private.h \
+  MagickCore/configure-private.h \
+  MagickCore/constitute-private.h \
+  MagickCore/delegate-private.h \
+  MagickCore/delegate-private.h \
+  MagickCore/display-private.h \
+  MagickCore/distribute-cache-private.h \
+  MagickCore/draw-private.h \
+  MagickCore/exception-private.h \
+  MagickCore/fx-private.h \
+  MagickCore/gem-private.h \
+  MagickCore/image-private.h \
+  MagickCore/locale-private.h \
+  MagickCore/log-private.h \
+  MagickCore/magick-private.h \
+  MagickCore/magic-private.h \
+  MagickCore/matrix-private.h \
+  MagickCore/memory-private.h \
+  MagickCore/methods-private.h \
+  MagickCore/mime-private.h \
+  MagickCore/mime-private.h \
+  MagickCore/module-private.h \
+  MagickCore/monitor-private.h \
+  MagickCore/morphology-private.h \
+  MagickCore/mutex.h \
+  MagickCore/nt-base.h \
+  MagickCore/nt-feature.h \
+  MagickCore/opencl-private.h \
+  MagickCore/option-private.h \
+  MagickCore/pixel-private.h \
+  MagickCore/policy-private.h \
+  MagickCore/profile-private.h \
+  MagickCore/quantum-private.h \
+  MagickCore/random-private.h \
+  MagickCore/registry-private.h \
+  MagickCore/resample-private.h \
+  MagickCore/resize-private.h \
+  MagickCore/resource-private.h \
+  MagickCore/resource-private.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/semaphore-private.h \
+  MagickCore/signature-private.h \
+  MagickCore/stream-private.h \
+  MagickCore/string-private.h \
+  MagickCore/thread_.h \
+  MagickCore/thread-private.h \
+  MagickCore/timer-private.h \
+  MagickCore/token-private.h \
+  MagickCore/transform-private.h \
+  MagickCore/type-private.h \
+  MagickCore/utility-private.h \
+  MagickCore/version-private.h \
+  MagickCore/widget-private.h \
+  MagickCore/xml-tree-private.h \
+  MagickCore/xwindow-private.h
 
 MAGICKCORE_INCLUDEARCH_HDRS = \
-	MagickCore/magick-baseconfig.h
+  MagickCore/magick-baseconfig.h
 
 MAGICKCORE_EXTRA_DIST = \
-	MagickCore/MagickCore-config.in \
-	$(MAGICKCORE_MANS) \
-	MagickCore/ImageMagick.pc.in \
-	MagickCore/MagickCore.pc.in \
-	MagickCore/libMagickCore.map \
-	MagickCore/nt-base.c \
-	MagickCore/nt-feature.c
+  MagickCore/MagickCore-config.in \
+  $(MAGICKCORE_MANS) \
+  MagickCore/ImageMagick.pc.in \
+  MagickCore/MagickCore.pc.in \
+  MagickCore/libMagickCore.map \
+  MagickCore/nt-base.c \
+  MagickCore/nt-feature.c
 
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@libMagickCore_threshold_target = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-threshold.lo
 MagickWandincdir = $(INCLUDE_PATH)/MagickWand
 MAGICKWAND_CPPFLAGS = $(AM_CPPFLAGS)
 MAGICKWAND_SOURCES = \
-	MagickWand/MagickWand.h \
-	MagickWand/animate.c \
-	MagickWand/animate.h \
-	MagickWand/compare.c \
-	MagickWand/compare.h \
-	MagickWand/composite.c \
-	MagickWand/composite.h \
-	MagickWand/conjure.c \
-	MagickWand/conjure.h \
-	MagickWand/convert.c \
-	MagickWand/convert.h \
-	MagickWand/deprecate.h \
-	MagickWand/deprecate.c \
-	MagickWand/display.c \
-	MagickWand/display.h \
-	MagickWand/drawing-wand.c \
-	MagickWand/drawing-wand.h \
-	MagickWand/identify.c \
-	MagickWand/identify.h \
-	MagickWand/import.c \
-	MagickWand/import.h \
-	MagickWand/magick-cli.c \
-	MagickWand/magick-cli.h \
-	MagickWand/magick-image.c \
-	MagickWand/magick-image.h \
-	MagickWand/magick-property.c \
-	MagickWand/magick-property.h \
-	MagickWand/magick-wand.c \
-	MagickWand/magick-wand-private.h \
-	MagickWand/method-attribute.h \
-	MagickWand/mogrify.c \
-	MagickWand/mogrify.h \
-	MagickWand/mogrify-private.h \
-	MagickWand/montage.c \
-	MagickWand/montage.h \
-	MagickWand/operation.c \
-	MagickWand/operation.h \
-	MagickWand/operation-private.h \
-	MagickWand/pixel-iterator.c \
-	MagickWand/pixel-iterator.h \
-	MagickWand/pixel-wand.c \
-	MagickWand/pixel-wand.h \
-	MagickWand/pixel-wand-private.h \
-	MagickWand/script-token.c \
-	MagickWand/script-token.h \
-	MagickWand/stream.c \
-	MagickWand/stream.h \
-	MagickWand/studio.h \
-	MagickWand/wand.c \
-	MagickWand/wand.h \
-	MagickWand/wandcli.c \
-	MagickWand/wandcli.h \
-	MagickWand/wandcli-private.h \
-	MagickWand/wand-view.c \
-	MagickWand/wand-view.h 
+  MagickWand/MagickWand.h \
+  MagickWand/animate.c \
+  MagickWand/animate.h \
+  MagickWand/compare.c \
+  MagickWand/compare.h \
+  MagickWand/composite.c \
+  MagickWand/composite.h \
+  MagickWand/conjure.c \
+  MagickWand/conjure.h \
+  MagickWand/convert.c \
+  MagickWand/convert.h \
+  MagickWand/deprecate.h \
+  MagickWand/deprecate.c \
+  MagickWand/display.c \
+  MagickWand/display.h \
+  MagickWand/drawing-wand.c \
+  MagickWand/drawing-wand.h \
+  MagickWand/identify.c \
+  MagickWand/identify.h \
+  MagickWand/import.c \
+  MagickWand/import.h \
+  MagickWand/magick-cli.c \
+  MagickWand/magick-cli.h \
+  MagickWand/magick-image.c \
+  MagickWand/magick-image.h \
+  MagickWand/magick-property.c \
+  MagickWand/magick-property.h \
+  MagickWand/magick-wand.c \
+  MagickWand/magick-wand-private.h \
+  MagickWand/method-attribute.h \
+  MagickWand/mogrify.c \
+  MagickWand/mogrify.h \
+  MagickWand/mogrify-private.h \
+  MagickWand/montage.c \
+  MagickWand/montage.h \
+  MagickWand/operation.c \
+  MagickWand/operation.h \
+  MagickWand/operation-private.h \
+  MagickWand/pixel-iterator.c \
+  MagickWand/pixel-iterator.h \
+  MagickWand/pixel-wand.c \
+  MagickWand/pixel-wand.h \
+  MagickWand/pixel-wand-private.h \
+  MagickWand/script-token.c \
+  MagickWand/script-token.h \
+  MagickWand/stream.c \
+  MagickWand/stream.h \
+  MagickWand/studio.h \
+  MagickWand/wand.c \
+  MagickWand/wand.h \
+  MagickWand/wandcli.c \
+  MagickWand/wandcli.h \
+  MagickWand/wandcli-private.h \
+  MagickWand/wand-view.c \
+  MagickWand/wand-view.h
 
 MAGICKWAND_INCLUDE_HDRS = \
-	MagickWand/MagickWand.h \
-	MagickWand/animate.h \
-	MagickWand/compare.h \
-	MagickWand/composite.h \
-	MagickWand/conjure.h \
-	MagickWand/convert.h \
-	MagickWand/deprecate.h \
-	MagickWand/display.h \
-	MagickWand/drawing-wand.h \
-	MagickWand/identify.h \
-	MagickWand/import.h \
-	MagickWand/magick-cli.h \
-	MagickWand/magick-image.h \
-	MagickWand/magick-property.h \
-	MagickWand/method-attribute.h \
-	MagickWand/mogrify.h \
-	MagickWand/montage.h \
-	MagickWand/operation.h \
-	MagickWand/pixel-iterator.h \
-	MagickWand/pixel-wand.h \
-	MagickWand/stream.h \
-	MagickWand/wandcli.h \
-	MagickWand/wand-view.h
+  MagickWand/MagickWand.h \
+  MagickWand/animate.h \
+  MagickWand/compare.h \
+  MagickWand/composite.h \
+  MagickWand/conjure.h \
+  MagickWand/convert.h \
+  MagickWand/deprecate.h \
+  MagickWand/display.h \
+  MagickWand/drawing-wand.h \
+  MagickWand/identify.h \
+  MagickWand/import.h \
+  MagickWand/magick-cli.h \
+  MagickWand/magick-image.h \
+  MagickWand/magick-property.h \
+  MagickWand/method-attribute.h \
+  MagickWand/mogrify.h \
+  MagickWand/montage.h \
+  MagickWand/operation.h \
+  MagickWand/pixel-iterator.h \
+  MagickWand/pixel-wand.h \
+  MagickWand/stream.h \
+  MagickWand/wandcli.h \
+  MagickWand/wand-view.h
 
 MAGICKWAND_NOINST_HDRS = \
-	MagickWand/mogrify-private.h \
-	MagickWand/magick-wand-private.h \
-	MagickWand/operation-private.h \
-	MagickWand/pixel-wand-private.h \
-	MagickWand/script-token.h \
-	MagickWand/studio.h \
-	MagickWand/wand.h \
-	MagickWand/wandcli-private.h
+  MagickWand/mogrify-private.h \
+  MagickWand/magick-wand-private.h \
+  MagickWand/operation-private.h \
+  MagickWand/pixel-wand-private.h \
+  MagickWand/script-token.h \
+  MagickWand/studio.h \
+  MagickWand/wand.h \
+  MagickWand/wandcli-private.h
 
 
 # Headers which are installed
 MagickWandinc_HEADERS = \
-	$(MAGICKWAND_INCLUDE_HDRS)
+  $(MAGICKWAND_INCLUDE_HDRS)
 
 MAGICKWAND_BIN_SCRPTS = \
-	MagickWand/MagickWand-config
+  MagickWand/MagickWand-config
 
 MAGICKWAND_PKGCONFIG = \
-	MagickWand/MagickWand.pc \
-	MagickWand/MagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
+  MagickWand/MagickWand.pc \
+  MagickWand/MagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 MAGICKWAND_MANS = \
-	MagickWand/MagickWand-config.1
+  MagickWand/MagickWand-config.1
 
 MAGICKWAND_BUILT_SRCS = 
 MAGICKWAND_LIBS = MagickWand/libMagickWand-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.la
@@ -5298,15 +5525,15 @@
 @HAVE_LD_VERSION_SCRIPT_TRUE@MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -Wl,--version-script=$(top_srcdir)/MagickWand/libMagickWand.map
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS = -no-undefined \
   $(MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION) $(MAGICK_LT_RELEASE_OPTS) \
-	-version-info \
-	$(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
+  -version-info \
+  $(MAGICK_LIBRARY_CURRENT):$(MAGICK_LIBRARY_REVISION):$(MAGICK_LIBRARY_AGE)
 
 MagickWand_libMagickWand_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICKCORE_LIBS) $(X11_LIBS) $(GOMP_LIBS) $(MATH_LIBS)
 MAGICKWAND_EXTRA_DIST = \
-	MagickWand/ChangeLog \
-	MagickWand/libMagickWand.map \
-	MagickWand/MagickWand-config.1 \
-	MagickWand/MagickWand.pc.in
+  MagickWand/ChangeLog \
+  MagickWand/libMagickWand.map \
+  MagickWand/MagickWand-config.1 \
+  MagickWand/MagickWand.pc.in
 
 MAGICKWAND_CLEANFILES = 
 MAGICKPP_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/Magick++/lib
@@ -5329,89 +5556,89 @@
 @WITH_MAGICK_PLUS_PLUS_FALSE@MAGICKPP_INCHEADERS = 
 @WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_INCHEADERS = $(MAGICKPP_INCHEADERS_OPT)
 MAGICKPP_SCRPTS_OPT = \
-	Magick++/bin/Magick++-config
+  Magick++/bin/Magick++-config
 
 MAGICKPP_MANS_OPT = \
-	Magick++/bin/Magick++-config.1
+  Magick++/bin/Magick++-config.1
 
 MAGICKPP_PKGCONFIG_OPT = \
-	Magick++/lib/Magick++.pc \
-	Magick++/lib/Magick++-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
+  Magick++/lib/Magick++.pc \
+  Magick++/lib/Magick++-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@.pc
 
 MAGICKPP_TEST_SCRPTS_OPT = \
-	Magick++/tests/tests.tap \
-	Magick++/demo/demos.tap
+  Magick++/tests/tests.tap \
+  Magick++/demo/demos.tap
 
 MAGICKPP_EXTRA_DIST = \
-	Magick++/AUTHORS \
-	Magick++/ChangeLog \
-	Magick++/INSTALL \
-	Magick++/LICENSE \
-	Magick++/NEWS \
-	Magick++/README \
-	Magick++/bin/Magick++-config.1 \
-	Magick++/bin/Magick++-config.in \
-	Magick++/lib/libMagick++.map \
-	Magick++/lib/Magick++.pc.in \
-	Magick++/demo/model.miff \
-	Magick++/demo/smile.miff \
-	Magick++/demo/smile_anim.miff \
-	Magick++/demo/tile.miff \
-	$(MAGICKPP_TEST_SCRPTS_OPT) \
-	Magick++/tests/test_image.miff \
-	Magick++/tests/test_image_anim.miff
+  Magick++/AUTHORS \
+  Magick++/ChangeLog \
+  Magick++/INSTALL \
+  Magick++/LICENSE \
+  Magick++/NEWS \
+  Magick++/README \
+  Magick++/bin/Magick++-config.1 \
+  Magick++/bin/Magick++-config.in \
+  Magick++/lib/libMagick++.map \
+  Magick++/lib/Magick++.pc.in \
+  Magick++/demo/model.miff \
+  Magick++/demo/smile.miff \
+  Magick++/demo/smile_anim.miff \
+  Magick++/demo/tile.miff \
+  $(MAGICKPP_TEST_SCRPTS_OPT) \
+  Magick++/tests/test_image.miff \
+  Magick++/tests/test_image_anim.miff
 
 MAGICKPP_CLEANFILES = \
-	Magick++/demo/*_out* \
-	Magick++/demo/ir.out \
-	Magick++/tests/colorHistogram.txt \
-	Magick++/tests/testmagick_anim_out.miff \
-	Magick++/tests/ir.out
+  Magick++/demo/*_out* \
+  Magick++/demo/ir.out \
+  Magick++/tests/colorHistogram.txt \
+  Magick++/tests/testmagick_anim_out.miff \
+  Magick++/tests/ir.out
 
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_SOURCES = \
-	Magick++/lib/Blob.cpp \
-	Magick++/lib/BlobRef.cpp \
-	Magick++/lib/CoderInfo.cpp \
-	Magick++/lib/Color.cpp \
-	Magick++/lib/Drawable.cpp \
-	Magick++/lib/Exception.cpp \
-	Magick++/lib/Functions.cpp \
-	Magick++/lib/Geometry.cpp \
-	Magick++/lib/Image.cpp \
-	Magick++/lib/ImageRef.cpp \
-	Magick++/lib/Montage.cpp \
-	Magick++/lib/Options.cpp \
-	Magick++/lib/Pixels.cpp \
-	Magick++/lib/ResourceLimits.cpp \
-	Magick++/lib/SecurityPolicy.cpp \
-	Magick++/lib/Statistic.cpp \
-	Magick++/lib/STL.cpp \
-	Magick++/lib/Thread.cpp \
-	Magick++/lib/TypeMetric.cpp \
-	Magick++/lib/Magick++.h \
-	Magick++/lib/Magick++/Blob.h \
-	Magick++/lib/Magick++/BlobRef.h \
-	Magick++/lib/Magick++/CoderInfo.h \
-	Magick++/lib/Magick++/Color.h \
-	Magick++/lib/Magick++/Drawable.h \
-	Magick++/lib/Magick++/Exception.h \
-	Magick++/lib/Magick++/Functions.h \
-	Magick++/lib/Magick++/Geometry.h \
-	Magick++/lib/Magick++/Image.h \
-	Magick++/lib/Magick++/ImageRef.h \
-	Magick++/lib/Magick++/Include.h \
-	Magick++/lib/Magick++/Montage.h \
-	Magick++/lib/Magick++/Options.h \
-	Magick++/lib/Magick++/Pixels.h \
-	Magick++/lib/Magick++/ResourceLimits.h \
-	Magick++/lib/Magick++/SecurityPolicy.h \
-	Magick++/lib/Magick++/Statistic.h \
-	Magick++/lib/Magick++/STL.h \
-	Magick++/lib/Magick++/Thread.h \
-	Magick++/lib/Magick++/TypeMetric.h
+  Magick++/lib/Blob.cpp \
+  Magick++/lib/BlobRef.cpp \
+  Magick++/lib/CoderInfo.cpp \
+  Magick++/lib/Color.cpp \
+  Magick++/lib/Drawable.cpp \
+  Magick++/lib/Exception.cpp \
+  Magick++/lib/Functions.cpp \
+  Magick++/lib/Geometry.cpp \
+  Magick++/lib/Image.cpp \
+  Magick++/lib/ImageRef.cpp \
+  Magick++/lib/Montage.cpp \
+  Magick++/lib/Options.cpp \
+  Magick++/lib/Pixels.cpp \
+  Magick++/lib/ResourceLimits.cpp \
+  Magick++/lib/SecurityPolicy.cpp \
+  Magick++/lib/Statistic.cpp \
+  Magick++/lib/STL.cpp \
+  Magick++/lib/Thread.cpp \
+  Magick++/lib/TypeMetric.cpp \
+  Magick++/lib/Magick++.h \
+  Magick++/lib/Magick++/Blob.h \
+  Magick++/lib/Magick++/BlobRef.h \
+  Magick++/lib/Magick++/CoderInfo.h \
+  Magick++/lib/Magick++/Color.h \
+  Magick++/lib/Magick++/Drawable.h \
+  Magick++/lib/Magick++/Exception.h \
+  Magick++/lib/Magick++/Functions.h \
+  Magick++/lib/Magick++/Geometry.h \
+  Magick++/lib/Magick++/Image.h \
+  Magick++/lib/Magick++/ImageRef.h \
+  Magick++/lib/Magick++/Include.h \
+  Magick++/lib/Magick++/Montage.h \
+  Magick++/lib/Magick++/Options.h \
+  Magick++/lib/Magick++/Pixels.h \
+  Magick++/lib/Magick++/ResourceLimits.h \
+  Magick++/lib/Magick++/SecurityPolicy.h \
+  Magick++/lib/Magick++/Statistic.h \
+  Magick++/lib/Magick++/STL.h \
+  Magick++/lib/Magick++/Thread.h \
+  Magick++/lib/Magick++/TypeMetric.h
 
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS = \
-	$(MAGICKPP_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
+  $(MAGICKPP_CPPFLAGS) $(LIBRARY_EXTRA_CPPFLAGS)
 
 magickpptopincdir = $(INCLUDE_PATH)
 magickpptopinc_HEADERS = $(MAGICKPP_TOP_INCHEADERS)
@@ -5421,22 +5648,22 @@
 magickppincdir = $(INCLUDE_PATH)/Magick++
 magickppinc_HEADERS = $(MAGICKPP_INCHEADERS)
 MAGICKPP_INCHEADERS_OPT = \
-	Magick++/lib/Magick++/Blob.h \
-	Magick++/lib/Magick++/CoderInfo.h \
-	Magick++/lib/Magick++/Color.h \
-	Magick++/lib/Magick++/Drawable.h \
-	Magick++/lib/Magick++/Exception.h \
-	Magick++/lib/Magick++/Functions.h \
-	Magick++/lib/Magick++/Geometry.h \
-	Magick++/lib/Magick++/Image.h \
-	Magick++/lib/Magick++/Include.h \
-	Magick++/lib/Magick++/Montage.h \
-	Magick++/lib/Magick++/Pixels.h \
-	Magick++/lib/Magick++/ResourceLimits.h \
-	Magick++/lib/Magick++/SecurityPolicy.h \
-	Magick++/lib/Magick++/Statistic.h \
-	Magick++/lib/Magick++/STL.h \
-	Magick++/lib/Magick++/TypeMetric.h
+  Magick++/lib/Magick++/Blob.h \
+  Magick++/lib/Magick++/CoderInfo.h \
+  Magick++/lib/Magick++/Color.h \
+  Magick++/lib/Magick++/Drawable.h \
+  Magick++/lib/Magick++/Exception.h \
+  Magick++/lib/Magick++/Functions.h \
+  Magick++/lib/Magick++/Geometry.h \
+  Magick++/lib/Magick++/Image.h \
+  Magick++/lib/Magick++/Include.h \
+  Magick++/lib/Magick++/Montage.h \
+  Magick++/lib/Magick++/Pixels.h \
+  Magick++/lib/Magick++/ResourceLimits.h \
+  Magick++/lib/Magick++/SecurityPolicy.h \
+  Magick++/lib/Magick++/Statistic.h \
+  Magick++/lib/Magick++/STL.h \
+  Magick++/lib/Magick++/TypeMetric.h
 
 @HAVE_LD_VERSION_SCRIPT_FALSE@Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -export-symbols-regex ".*"
 @HAVE_LD_VERSION_SCRIPT_TRUE@Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LDFLAGS_VERSION = -Wl,--version-script=$(top_srcdir)/Magick++/lib/libMagick++.map
@@ -5447,28 +5674,28 @@
 
 Magick___lib_libMagick___@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_LIBADD = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS)
 MAGICKPP_CHECK_PGRMS_OPT = \
-	Magick++/demo/analyze \
-	Magick++/demo/button \
-	Magick++/demo/demo \
-	Magick++/demo/detrans \
-	Magick++/demo/flip \
-	Magick++/demo/gravity \
-	Magick++/demo/piddle \
-	Magick++/demo/shapes \
-	Magick++/demo/zoom \
-	Magick++/tests/appendImages \
-	Magick++/tests/attributes \
-	Magick++/tests/averageImages \
-	Magick++/tests/coalesceImages \
-	Magick++/tests/coderInfo \
-	Magick++/tests/color \
-	Magick++/tests/colorHistogram \
-	Magick++/tests/exceptions \
-	Magick++/tests/geometry \
-	Magick++/tests/montageImages \
-	Magick++/tests/morphImages \
-	Magick++/tests/readWriteBlob \
-	Magick++/tests/readWriteImages
+  Magick++/demo/analyze \
+  Magick++/demo/button \
+  Magick++/demo/demo \
+  Magick++/demo/detrans \
+  Magick++/demo/flip \
+  Magick++/demo/gravity \
+  Magick++/demo/piddle \
+  Magick++/demo/shapes \
+  Magick++/demo/zoom \
+  Magick++/tests/appendImages \
+  Magick++/tests/attributes \
+  Magick++/tests/averageImages \
+  Magick++/tests/coalesceImages \
+  Magick++/tests/coderInfo \
+  Magick++/tests/color \
+  Magick++/tests/colorHistogram \
+  Magick++/tests/exceptions \
+  Magick++/tests/geometry \
+  Magick++/tests/montageImages \
+  Magick++/tests/morphImages \
+  Magick++/tests/readWriteBlob \
+  Magick++/tests/readWriteImages
 
 Magick___demo_analyze_SOURCES = Magick++/demo/analyze.cpp
 Magick___demo_analyze_LDADD = $(MAGICKPP_LDADD)
@@ -5542,11 +5769,11 @@
 filtersdir = $(FILTER_PATH)
 MAGICK_FILTER_CPPFLAGS = $(AM_CPPFLAGS)
 MAGICKCORE_FILTER_SRCS = \
-	filters/analyze.c
+  filters/analyze.c
 
 @WITH_MODULES_FALSE@filters_LTLIBRARIES = 
 @WITH_MODULES_TRUE@filters_LTLIBRARIES = \
-@WITH_MODULES_TRUE@	filters/analyze.la
+@WITH_MODULES_TRUE@  filters/analyze.la
 
 filters_CPPFLAGS = $(MAGICK_FILTER_CPPFLAGS)
 
@@ -5557,7 +5784,7 @@
 filters_analyze_la_LIBADD = $(MAGICKCORE_LIBS) $(MATH_LIBS)
 @WITH_UTILITIES_FALSE@UTILITIES_PGMS = 
 @WITH_UTILITIES_TRUE@UTILITIES_PGMS = \
-@WITH_UTILITIES_TRUE@	utilities/magick
+@WITH_UTILITIES_TRUE@  utilities/magick
 
 @WITH_UTILITIES_TRUE@UTILITIES_XFAIL_TESTS = \
 @WITH_UTILITIES_TRUE@  $(UTILITIES_TTF_XFAIL_TESTS) \
@@ -5568,42 +5795,42 @@
 @WITH_UTILITIES_TRUE@utilities_magick_SOURCES = utilities/magick.c
 @WITH_UTILITIES_FALSE@UTILITIES_MANS = 
 @WITH_UTILITIES_TRUE@UTILITIES_MANS = \
-@WITH_UTILITIES_TRUE@	utilities/ImageMagick.1 \
-@WITH_UTILITIES_TRUE@	utilities/animate.1 \
-@WITH_UTILITIES_TRUE@	utilities/compare.1 \
-@WITH_UTILITIES_TRUE@	utilities/composite.1 \
-@WITH_UTILITIES_TRUE@	utilities/conjure.1 \
-@WITH_UTILITIES_TRUE@	utilities/convert.1 \
-@WITH_UTILITIES_TRUE@	utilities/display.1 \
-@WITH_UTILITIES_TRUE@	utilities/identify.1 \
-@WITH_UTILITIES_TRUE@	utilities/import.1 \
-@WITH_UTILITIES_TRUE@	utilities/magick.1 \
-@WITH_UTILITIES_TRUE@	utilities/magick-script.1 \
-@WITH_UTILITIES_TRUE@	utilities/mogrify.1 \
-@WITH_UTILITIES_TRUE@	utilities/montage.1 \
-@WITH_UTILITIES_TRUE@	utilities/stream.1
+@WITH_UTILITIES_TRUE@  utilities/ImageMagick.1 \
+@WITH_UTILITIES_TRUE@  utilities/animate.1 \
+@WITH_UTILITIES_TRUE@  utilities/compare.1 \
+@WITH_UTILITIES_TRUE@  utilities/composite.1 \
+@WITH_UTILITIES_TRUE@  utilities/conjure.1 \
+@WITH_UTILITIES_TRUE@  utilities/convert.1 \
+@WITH_UTILITIES_TRUE@  utilities/display.1 \
+@WITH_UTILITIES_TRUE@  utilities/identify.1 \
+@WITH_UTILITIES_TRUE@  utilities/import.1 \
+@WITH_UTILITIES_TRUE@  utilities/magick.1 \
+@WITH_UTILITIES_TRUE@  utilities/magick-script.1 \
+@WITH_UTILITIES_TRUE@  utilities/mogrify.1 \
+@WITH_UTILITIES_TRUE@  utilities/montage.1 \
+@WITH_UTILITIES_TRUE@  utilities/stream.1
 
 @WITH_UTILITIES_FALSE@UTILITIES_CONFIGURE = 
 @WITH_UTILITIES_TRUE@UTILITIES_CONFIGURE = \
-@WITH_UTILITIES_TRUE@	utilities/ImageMagick.1.in \
-@WITH_UTILITIES_TRUE@	utilities/animate.1.in \
-@WITH_UTILITIES_TRUE@	utilities/compare.1.in \
-@WITH_UTILITIES_TRUE@	utilities/composite.1.in \
-@WITH_UTILITIES_TRUE@	utilities/conjure.1.in \
-@WITH_UTILITIES_TRUE@	utilities/convert.1.in \
-@WITH_UTILITIES_TRUE@	utilities/display.1.in \
-@WITH_UTILITIES_TRUE@	utilities/identify.1.in \
-@WITH_UTILITIES_TRUE@	utilities/import.1.in \
-@WITH_UTILITIES_TRUE@	utilities/magick.1.in \
-@WITH_UTILITIES_TRUE@	utilities/magick-script.1.in \
-@WITH_UTILITIES_TRUE@	utilities/mogrify.1.in \
-@WITH_UTILITIES_TRUE@	utilities/montage.1.in \
-@WITH_UTILITIES_TRUE@	utilities/stream.1.in
+@WITH_UTILITIES_TRUE@  utilities/ImageMagick.1.in \
+@WITH_UTILITIES_TRUE@  utilities/animate.1.in \
+@WITH_UTILITIES_TRUE@  utilities/compare.1.in \
+@WITH_UTILITIES_TRUE@  utilities/composite.1.in \
+@WITH_UTILITIES_TRUE@  utilities/conjure.1.in \
+@WITH_UTILITIES_TRUE@  utilities/convert.1.in \
+@WITH_UTILITIES_TRUE@  utilities/display.1.in \
+@WITH_UTILITIES_TRUE@  utilities/identify.1.in \
+@WITH_UTILITIES_TRUE@  utilities/import.1.in \
+@WITH_UTILITIES_TRUE@  utilities/magick.1.in \
+@WITH_UTILITIES_TRUE@  utilities/magick-script.1.in \
+@WITH_UTILITIES_TRUE@  utilities/mogrify.1.in \
+@WITH_UTILITIES_TRUE@  utilities/montage.1.in \
+@WITH_UTILITIES_TRUE@  utilities/stream.1.in
 
 @WITH_UTILITIES_FALSE@UTILITIES_EXTRA_DIST = 
 @WITH_UTILITIES_TRUE@UTILITIES_EXTRA_DIST = \
-@WITH_UTILITIES_TRUE@	$(UTILITIES_MANS) \
-@WITH_UTILITIES_TRUE@	$(UTILITIES_TESTS)
+@WITH_UTILITIES_TRUE@  $(UTILITIES_MANS) \
+@WITH_UTILITIES_TRUE@  $(UTILITIES_TESTS)
 
 @WITH_UTILITIES_FALSE@UTILITIES_CLEANFILES = 
 @WITH_UTILITIES_TRUE@UTILITIES_CLEANFILES = 
@@ -5614,7 +5841,7 @@
 UTILITIES_INSTALL_EXEC_LOCAL_TARGETS = install-exec-local-utilities
 UTILITIES_UNINSTALL_LOCAL_TARGETS = uninstall-local-utilities
 
-# Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 # dedicated to making software imaging solutions freely available.
 #
 # You may not use this file except in compliance with the License.
@@ -5631,9 +5858,9 @@
 #  Makefile for the ImageMagick validation suite.
 TESTS_CPPFLAGS = $(AM_CPPFLAGS)
 TESTS_CHECK_PGRMS = \
-	tests/validate \
-	tests/drawtest \
-	tests/wandtest
+  tests/validate \
+  tests/drawtest \
+  tests/wandtest
 
 tests_validate_SOURCES = tests/validate.c tests/validate.h
 tests_validate_CPPFLAGS = $(TESTS_CPPFLAGS)
@@ -5649,34 +5876,34 @@
 tests_wandtest_LDADD = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS)
 TESTS_XFAIL_TESTS = 
 TESTS_TESTS = \
-	tests/cli-colorspace.tap \
-	tests/cli-pipe.tap \
-	tests/validate-colorspace.tap \
-	tests/validate-compare.tap \
-	tests/validate-composite.tap \
-	tests/validate-convert.tap \
-	tests/validate-formats-disk.tap \
-	tests/validate-formats-map.tap \
-	tests/validate-formats-memory.tap \
-	tests/validate-identify.tap \
-	tests/validate-import.tap \
-	tests/validate-montage.tap \
-	tests/validate-stream.tap \
-	tests/drawtest.tap \
-	tests/wandtest.tap
+  tests/cli-colorspace.tap \
+  tests/cli-pipe.tap \
+  tests/validate-colorspace.tap \
+  tests/validate-compare.tap \
+  tests/validate-composite.tap \
+  tests/validate-convert.tap \
+  tests/validate-formats-disk.tap \
+  tests/validate-formats-map.tap \
+  tests/validate-formats-memory.tap \
+  tests/validate-identify.tap \
+  tests/validate-import.tap \
+  tests/validate-montage.tap \
+  tests/validate-stream.tap \
+  tests/drawtest.tap \
+  tests/wandtest.tap
 
 TESTS_EXTRA_DIST = \
-	tests/common.shi \
+  tests/common.shi \
   tests/rose.pnm \
   tests/input_256c.miff \
   tests/input_bilevel.miff \
   tests/input_gray.miff \
   tests/input_truecolor.miff \
   tests/sequence.miff \
-	$(TESTS_TESTS)
+  $(TESTS_TESTS)
 
 TESTS_CLEANFILES = \
-	tests/*_out.*
+  tests/*_out.*
 
 @WITH_PERL_TRUE@PERLMAGICK = PerlMagick
 @WITH_PERL_TRUE@PERLMAKEMAKER = $(PERLMAGICK)/Makefile.PL
@@ -5695,25 +5922,25 @@
 
 # Files to install in Pkgconfig directory
 pkgconfig_DATA = \
-	$(MAGICKCORE_PKGCONFIG) \
-	$(MAGICKWAND_PKGCONFIG) \
-	$(MAGICKPP_PKGCONFIG)
+  $(MAGICKCORE_PKGCONFIG) \
+  $(MAGICKWAND_PKGCONFIG) \
+  $(MAGICKPP_PKGCONFIG)
 
 
 # Manual pages to install
 @INSTALL_DOC_TRUE@man_MANS = \
-@INSTALL_DOC_TRUE@	$(MAGICKCORE_MANS) \
-@INSTALL_DOC_TRUE@	$(MAGICKWAND_MANS) \
-@INSTALL_DOC_TRUE@	$(MAGICKPP_MANS) \
-@INSTALL_DOC_TRUE@	$(UTILITIES_MANS)
+@INSTALL_DOC_TRUE@  $(MAGICKCORE_MANS) \
+@INSTALL_DOC_TRUE@  $(MAGICKWAND_MANS) \
+@INSTALL_DOC_TRUE@  $(MAGICKPP_MANS) \
+@INSTALL_DOC_TRUE@  $(UTILITIES_MANS)
 
 @INSTALL_DOC_TRUE@doc_DATA = \
-@INSTALL_DOC_TRUE@	LICENSE \
-@INSTALL_DOC_TRUE@	ChangeLog \
-@INSTALL_DOC_TRUE@	NEWS.txt
+@INSTALL_DOC_TRUE@  LICENSE \
+@INSTALL_DOC_TRUE@  ChangeLog \
+@INSTALL_DOC_TRUE@  NEWS.txt
 
 @MAINTAINER_MODE_TRUE@MAINTAINER_TARGETS = \
-@MAINTAINER_MODE_TRUE@	magick-version \
+@MAINTAINER_MODE_TRUE@  magick-version \
 @MAINTAINER_MODE_TRUE@  ImageMagick.spec \
 @MAINTAINER_MODE_TRUE@  $(PERLMAGICK_MAINTAINER_TARGETS)
 
@@ -5751,11 +5978,11 @@
 @RPM_DELEGATE_TRUE@RPMARCH = $(MAGICK_TARGET_CPU)
 @RPM_DELEGATE_FALSE@DIST_ARCHIVE_RPM = 
 @RPM_DELEGATE_TRUE@DIST_ARCHIVE_RPM = \
-@RPM_DELEGATE_TRUE@	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-@RPM_DELEGATE_TRUE@	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-@RPM_DELEGATE_TRUE@	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-@RPM_DELEGATE_TRUE@	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
-@RPM_DELEGATE_TRUE@	$(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-perl-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm
+@RPM_DELEGATE_TRUE@  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+@RPM_DELEGATE_TRUE@  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+@RPM_DELEGATE_TRUE@  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-c++-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+@RPM_DELEGATE_TRUE@  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-devel-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm \
+@RPM_DELEGATE_TRUE@  $(RPMDIR)/$(RPMARCH)/$(PACKAGE_NAME)-perl-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)-$(PACKAGE_RELEASE).$(RPMARCH).rpm
 
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -6408,6 +6635,9 @@
 MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.lo:  \
 	MagickCore/$(am__dirstamp) \
 	MagickCore/$(DEPDIR)/$(am__dirstamp)
+MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo:  \
+	MagickCore/$(am__dirstamp) \
+	MagickCore/$(DEPDIR)/$(am__dirstamp)
 MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.lo:  \
 	MagickCore/$(am__dirstamp) \
 	MagickCore/$(DEPDIR)/$(am__dirstamp)
@@ -6570,12 +6800,12 @@
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pnm.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
-coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo:  \
-	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps3.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo:  \
+	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pwp.lo:  \
@@ -6614,6 +6844,8 @@
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo:  \
+	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.lo:  \
@@ -6676,6 +6908,8 @@
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo:  \
+	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ept.lo:  \
@@ -7027,6 +7261,11 @@
 
 coders/json.la: $(coders_json_la_OBJECTS) $(coders_json_la_DEPENDENCIES) $(EXTRA_coders_json_la_DEPENDENCIES) coders/$(am__dirstamp)
 	$(AM_V_CCLD)$(coders_json_la_LINK) $(am_coders_json_la_rpath) $(coders_json_la_OBJECTS) $(coders_json_la_LIBADD) $(LIBS)
+coders/jxl_la-jxl.lo: coders/$(am__dirstamp) \
+	coders/$(DEPDIR)/$(am__dirstamp)
+
+coders/jxl.la: $(coders_jxl_la_OBJECTS) $(coders_jxl_la_DEPENDENCIES) $(EXTRA_coders_jxl_la_DEPENDENCIES) coders/$(am__dirstamp)
+	$(AM_V_CCLD)$(coders_jxl_la_LINK) $(am_coders_jxl_la_rpath) $(coders_jxl_la_OBJECTS) $(coders_jxl_la_LIBADD) $(LIBS)
 coders/label_la-label.lo: coders/$(am__dirstamp) \
 	coders/$(DEPDIR)/$(am__dirstamp)
 
@@ -7309,6 +7548,11 @@
 
 coders/tim.la: $(coders_tim_la_OBJECTS) $(coders_tim_la_DEPENDENCIES) $(EXTRA_coders_tim_la_DEPENDENCIES) coders/$(am__dirstamp)
 	$(AM_V_CCLD)$(coders_tim_la_LINK) $(am_coders_tim_la_rpath) $(coders_tim_la_OBJECTS) $(coders_tim_la_LIBADD) $(LIBS)
+coders/tim2_la-tim2.lo: coders/$(am__dirstamp) \
+	coders/$(DEPDIR)/$(am__dirstamp)
+
+coders/tim2.la: $(coders_tim2_la_OBJECTS) $(coders_tim2_la_DEPENDENCIES) $(EXTRA_coders_tim2_la_DEPENDENCIES) coders/$(am__dirstamp)
+	$(AM_V_CCLD)$(coders_tim2_la_LINK) $(am_coders_tim2_la_rpath) $(coders_tim2_la_OBJECTS) $(coders_tim2_la_LIBADD) $(LIBS)
 coders/ttf_la-ttf.lo: coders/$(am__dirstamp) \
 	coders/$(DEPDIR)/$(am__dirstamp)
 
@@ -7811,6 +8055,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-utility.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-widget.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xml-tree.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwindow.Plo@am__quote@ # am--include-marker
@@ -7887,6 +8132,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jpeg.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-json.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-label.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mac.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-magick.Plo@am__quote@ # am--include-marker
@@ -7944,6 +8190,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tiff.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-txt.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-uil.Plo@am__quote@ # am--include-marker
@@ -8016,6 +8263,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/jp2_la-jp2.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/jpeg_la-jpeg.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/json_la-json.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/jxl_la-jxl.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/label_la-label.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/mac_la-mac.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_la-magick.Plo@am__quote@ # am--include-marker
@@ -8072,6 +8320,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/tiff_la-psd.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/tiff_la-tiff.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/tile_la-tile.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/tim2_la-tim2.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/tim_la-tim.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/ttf_la-ttf.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/txt_la-txt.Plo@am__quote@ # am--include-marker
@@ -8742,6 +8991,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.lo `test -f 'MagickCore/version.c' || echo '$(srcdir)/'`MagickCore/version.c
 
+MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo: MagickCore/visual-effects.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo -MD -MP -MF MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Tpo -c -o MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo `test -f 'MagickCore/visual-effects.c' || echo '$(srcdir)/'`MagickCore/visual-effects.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Tpo MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='MagickCore/visual-effects.c' object='MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.lo `test -f 'MagickCore/visual-effects.c' || echo '$(srcdir)/'`MagickCore/visual-effects.c
+
 MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.lo: MagickCore/vision.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.lo -MD -MP -MF MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Tpo -c -o MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.lo `test -f 'MagickCore/vision.c' || echo '$(srcdir)/'`MagickCore/vision.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Tpo MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Plo
@@ -9267,13 +9523,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pnm.lo `test -f 'coders/pnm.c' || echo '$(srcdir)/'`coders/pnm.c
 
-coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo: coders/ps.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo `test -f 'coders/ps.c' || echo '$(srcdir)/'`coders/ps.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/ps.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo `test -f 'coders/ps.c' || echo '$(srcdir)/'`coders/ps.c
-
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.lo: coders/ps2.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.lo `test -f 'coders/ps2.c' || echo '$(srcdir)/'`coders/ps2.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps2.Plo
@@ -9288,6 +9537,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps3.lo `test -f 'coders/ps3.c' || echo '$(srcdir)/'`coders/ps3.c
 
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo: coders/ps.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo `test -f 'coders/ps.c' || echo '$(srcdir)/'`coders/ps.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/ps.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ps.lo `test -f 'coders/ps.c' || echo '$(srcdir)/'`coders/ps.c
+
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.lo: coders/psd.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.lo `test -f 'coders/psd.c' || echo '$(srcdir)/'`coders/psd.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-psd.Plo
@@ -9421,6 +9677,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.lo `test -f 'coders/tile.c' || echo '$(srcdir)/'`coders/tile.c
 
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo: coders/tim2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo `test -f 'coders/tim2.c' || echo '$(srcdir)/'`coders/tim2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/tim2.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.lo `test -f 'coders/tim2.c' || echo '$(srcdir)/'`coders/tim2.c
+
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.lo: coders/tim.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.lo `test -f 'coders/tim.c' || echo '$(srcdir)/'`coders/tim.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Plo
@@ -9638,6 +9901,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.lo `test -f 'coders/jp2.c' || echo '$(srcdir)/'`coders/jp2.c
 
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo: coders/jxl.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo `test -f 'coders/jxl.c' || echo '$(srcdir)/'`coders/jxl.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/jxl.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.lo `test -f 'coders/jxl.c' || echo '$(srcdir)/'`coders/jxl.c
+
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo: coders/png.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.lo `test -f 'coders/png.c' || echo '$(srcdir)/'`coders/png.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-png.Plo
@@ -10205,6 +10475,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_json_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/json_la-json.lo `test -f 'coders/json.c' || echo '$(srcdir)/'`coders/json.c
 
+coders/jxl_la-jxl.lo: coders/jxl.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_jxl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/jxl_la-jxl.lo -MD -MP -MF coders/$(DEPDIR)/jxl_la-jxl.Tpo -c -o coders/jxl_la-jxl.lo `test -f 'coders/jxl.c' || echo '$(srcdir)/'`coders/jxl.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/jxl_la-jxl.Tpo coders/$(DEPDIR)/jxl_la-jxl.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/jxl.c' object='coders/jxl_la-jxl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_jxl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/jxl_la-jxl.lo `test -f 'coders/jxl.c' || echo '$(srcdir)/'`coders/jxl.c
+
 coders/label_la-label.lo: coders/label.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_label_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/label_la-label.lo -MD -MP -MF coders/$(DEPDIR)/label_la-label.Tpo -c -o coders/label_la-label.lo `test -f 'coders/label.c' || echo '$(srcdir)/'`coders/label.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/label_la-label.Tpo coders/$(DEPDIR)/label_la-label.Plo
@@ -10604,6 +10881,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_tim_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/tim_la-tim.lo `test -f 'coders/tim.c' || echo '$(srcdir)/'`coders/tim.c
 
+coders/tim2_la-tim2.lo: coders/tim2.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_tim2_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/tim2_la-tim2.lo -MD -MP -MF coders/$(DEPDIR)/tim2_la-tim2.Tpo -c -o coders/tim2_la-tim2.lo `test -f 'coders/tim2.c' || echo '$(srcdir)/'`coders/tim2.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/tim2_la-tim2.Tpo coders/$(DEPDIR)/tim2_la-tim2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/tim2.c' object='coders/tim2_la-tim2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_tim2_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/tim2_la-tim2.lo `test -f 'coders/tim2.c' || echo '$(srcdir)/'`coders/tim2.c
+
 coders/ttf_la-ttf.lo: coders/ttf.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_ttf_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/ttf_la-ttf.lo -MD -MP -MF coders/$(DEPDIR)/ttf_la-ttf.Tpo -c -o coders/ttf_la-ttf.lo `test -f 'coders/ttf.c' || echo '$(srcdir)/'`coders/ttf.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/ttf_la-ttf.Tpo coders/$(DEPDIR)/ttf_la-ttf.Plo
@@ -12174,6 +12458,7 @@
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-utility.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Plo
+	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-widget.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xml-tree.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwindow.Plo
@@ -12250,6 +12535,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jpeg.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-json.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-label.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mac.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-magick.Plo
@@ -12307,6 +12593,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tiff.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-txt.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-uil.Plo
@@ -12379,6 +12666,7 @@
 	-rm -f coders/$(DEPDIR)/jp2_la-jp2.Plo
 	-rm -f coders/$(DEPDIR)/jpeg_la-jpeg.Plo
 	-rm -f coders/$(DEPDIR)/json_la-json.Plo
+	-rm -f coders/$(DEPDIR)/jxl_la-jxl.Plo
 	-rm -f coders/$(DEPDIR)/label_la-label.Plo
 	-rm -f coders/$(DEPDIR)/mac_la-mac.Plo
 	-rm -f coders/$(DEPDIR)/magick_la-magick.Plo
@@ -12435,6 +12723,7 @@
 	-rm -f coders/$(DEPDIR)/tiff_la-psd.Plo
 	-rm -f coders/$(DEPDIR)/tiff_la-tiff.Plo
 	-rm -f coders/$(DEPDIR)/tile_la-tile.Plo
+	-rm -f coders/$(DEPDIR)/tim2_la-tim2.Plo
 	-rm -f coders/$(DEPDIR)/tim_la-tim.Plo
 	-rm -f coders/$(DEPDIR)/ttf_la-ttf.Plo
 	-rm -f coders/$(DEPDIR)/txt_la-txt.Plo
@@ -12651,6 +12940,7 @@
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-utility.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-version.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-vision.Plo
+	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-visual-effects.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-widget.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xml-tree.Plo
 	-rm -f MagickCore/$(DEPDIR)/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwindow.Plo
@@ -12727,6 +13017,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jp2.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jpeg.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-json.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-jxl.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-label.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mac.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-magick.Plo
@@ -12784,6 +13075,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tiff.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tile.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-tim2.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ttf.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-txt.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-uil.Plo
@@ -12856,6 +13148,7 @@
 	-rm -f coders/$(DEPDIR)/jp2_la-jp2.Plo
 	-rm -f coders/$(DEPDIR)/jpeg_la-jpeg.Plo
 	-rm -f coders/$(DEPDIR)/json_la-json.Plo
+	-rm -f coders/$(DEPDIR)/jxl_la-jxl.Plo
 	-rm -f coders/$(DEPDIR)/label_la-label.Plo
 	-rm -f coders/$(DEPDIR)/mac_la-mac.Plo
 	-rm -f coders/$(DEPDIR)/magick_la-magick.Plo
@@ -12912,6 +13205,7 @@
 	-rm -f coders/$(DEPDIR)/tiff_la-psd.Plo
 	-rm -f coders/$(DEPDIR)/tiff_la-tiff.Plo
 	-rm -f coders/$(DEPDIR)/tile_la-tile.Plo
+	-rm -f coders/$(DEPDIR)/tim2_la-tim2.Plo
 	-rm -f coders/$(DEPDIR)/tim_la-tim.Plo
 	-rm -f coders/$(DEPDIR)/ttf_la-ttf.Plo
 	-rm -f coders/$(DEPDIR)/txt_la-txt.Plo
@@ -13016,8 +13310,11 @@
 
 .PRECIOUS: Makefile
 
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@$(libMagickCore_threshold_target): MagickCore/threshold-map.h
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@MagickCore/threshold-map.h: config/thresholds.xml Makefile
+@MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE@	$(AM_V_GEN){ printf '%s\n  %s=\n' 'static const char *const' BuiltinMap; sed -e 's/"/\\"/g; s/^.*$$/    "&\\n"/; $$s/$$/;/' $<; } >$@
 install-exec-local-utilities:
-	$(mkdir_p) $(DESTDIR)$(bindir)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
 	cd $(DESTDIR)$(bindir) ; \
 	magick=`echo "magick" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
 	for name in $(MAGICK_UTILITIES) ; \
@@ -13181,9 +13478,9 @@
 	@for dir in $(DOCDIRS) ; do \
 	  $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
 	  if test -d $(builddir)/$$dir ; then \
-  		docsrcdir=$(builddir)/$$dir; \
+	    docsrcdir=$(builddir)/$$dir; \
 	  else \
-  		docsrcdir=$(srcdir)/$$dir; \
+	    docsrcdir=$(srcdir)/$$dir; \
 	  fi; \
 	  for file in $$docsrcdir/*.* ; do \
 	    echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$$dir" ; \
@@ -13203,14 +13500,14 @@
 	fi
 	@if test -n "$(VPATH)" ; then \
 	  cmp MagickCore/version.h $(srcdir)/MagickCore/version.h > /dev/null ; \
-          if test $$? -eq 1 ; then \
+	        if test $$? -eq 1 ; then \
 	    echo "Updating $(srcdir)/MagickCore/version.h ..."; \
 	    cp MagickCore/version.h $(srcdir)/MagickCore/version.h ; \
 	  fi ; \
 	fi ; \
 	touch magick-version
 
-${srcdir}/configure: ${srcdir}/version.sh ${srcdir}/gitversion.sh
+${srcdir}/configure: ${srcdir}/version.sh
 libtool: $(LIBTOOL_DEPS)
 	$(SHELL) ./config.status --recheck
 
@@ -13218,7 +13515,7 @@
 html-local:
 # copy static file
 	for dir in $(DOCDIRSMANUAL) ; do \
-		$(MKDIR_P) $(top_builddir)/$$dir ;\
+		$(mkinstalldirs) $(top_builddir)/$$dir ;\
 		for file in $$dir/*.* ; do \
 			if ! test -f $(top_builddir)/$$file; then \
 				cp -p -f $(top_srcdir)/$$file $(top_builddir)/$$dir ; \
@@ -13230,7 +13527,7 @@
 	    rm -rf $$dir || true; \
 	done;
 # make doxygen doc
-	$(MKDIR_P) $(top_builddir)/www/api
+	$(mkinstalldirs) $(top_builddir)/www/api
 	cd config && doxygen MagickCore.dox
 	cd config && doxygen MagickWand.dox
 	cd config && doxygen Magick++.dox
@@ -13239,7 +13536,7 @@
 	  chmod -R u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM) ; \
 	  rm -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM) ; \
 	fi
-  git clone git@git.imagemagick.org:repos/ImageMagick.git $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
+	git clone git@git.imagemagick.org:repos/ImageMagick.git $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
 @ZIP_DELEGATE_TRUE@	rm -f $(DIST_WINDOWS_SRC_ZIP)
 @ZIP_DELEGATE_TRUE@	$(ZIP) -r -9 -q  $(DIST_WINDOWS_SRC_ZIP) $(PACKAGE_NAME)-$(PACKAGE_VERSION)$(PACKAGE_VERSION_ADDENDUM)
 @P7ZIP_DELEGATE_TRUE@	rm -f $(DIST_WINDOWS_SRC_7ZIP)
@@ -13255,11 +13552,11 @@
 @RPM_DELEGATE_TRUE@	@echo ==============================================================
 
 @RPM_DELEGATE_TRUE@.PHONY: rpm
-@RPM_DELEGATE_TRUE@rpm:	dist
+@RPM_DELEGATE_TRUE@rpm: dist
 @RPM_DELEGATE_TRUE@	rm -rf $(RPMDIR)
-@RPM_DELEGATE_TRUE@	$(MKDIR_P) $(RPMDIR)
-@RPM_DELEGATE_TRUE@	$(MKDIR_P) $(RPMDIR)/BUILD
-@RPM_DELEGATE_TRUE@	$(MKDIR_P) $(RPMDIR)/RPMS
+@RPM_DELEGATE_TRUE@	$(mkinstalldirs) $(RPMDIR)
+@RPM_DELEGATE_TRUE@	$(mkinstalldirs) $(RPMDIR)/BUILD
+@RPM_DELEGATE_TRUE@	$(mkinstalldirs) $(RPMDIR)/RPMS
 @RPM_DELEGATE_TRUE@	$(RPM) --define="_sourcedir `pwd`" --define="_rpmdir `pwd`/$(RPMDIR)/RPMS" --define="_builddir `pwd`/$(RPMDIR)/BUILD" --nodeps -bb ImageMagick.spec
 @RPM_DELEGATE_TRUE@	@echo ==============================================================
 @RPM_DELEGATE_TRUE@	@echo $(DIST_ARCHIVE_RPM) is ready for distribution.
diff --git a/NOTICE b/NOTICE
index a8490a1..967481d 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,7 +2,7 @@
 
 1. ImageMagick copyright:
 
-Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization dedicated
+Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated
 to making software imaging solutions freely available.
 
 You may not use this file except in compliance with the License. You may obtain
diff --git a/PerlMagick/Magick.pm b/PerlMagick/Magick.pm
index 9e6e475..3187f66 100644
--- a/PerlMagick/Magick.pm
+++ b/PerlMagick/Magick.pm
@@ -1,6 +1,6 @@
 package Image::Magick;
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index f63c7ec..7217706 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -23,7 +23,7 @@
 %                             February 1997                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -575,6 +575,8 @@
     { "CLAHE", { {"geometry", StringReference}, {"width", IntegerReference},
       {"height", IntegerReference}, {"number-bins", IntegerReference},
       {"clip-limit", RealReference} } },
+    { "Kmeans", { {"geometry", StringReference}, {"colors", IntegerReference},
+      {"iterations", IntegerReference}, {"tolerance", RealReference} } },
   };
 
 static SplayTreeInfo
@@ -7647,6 +7649,8 @@
     RangeThresholdImage= 296
     CLAHE              = 297
     CLAHEImage         = 298
+    Kmeans             = 299
+    KMeansImage        = 300
     MogrifyRegion      = 666
   PPCODE:
   {
@@ -11501,6 +11505,27 @@
             geometry_info.psi,exception);
           break;
         }
+        case 150:  /* Kmeans */
+        {
+          if (attribute_flag[0] != 0)
+            {
+              flags=ParseGeometry(argument_list[0].string_reference,
+                &geometry_info);
+              if ((flags & SigmaValue) == 0)
+                geometry_info.sigma=100.0;
+              if ((flags & XiValue) == 0)
+                geometry_info.xi=0.01;
+            }
+          if (attribute_flag[1] != 0)
+            geometry_info.rho=argument_list[1].integer_reference;
+          if (attribute_flag[2] != 0)
+            geometry_info.sigma=argument_list[2].integer_reference;
+          if (attribute_flag[3] != 0)
+            geometry_info.xi=(ChannelType) argument_list[3].real_reference;
+          (void) KmeansImage(image,geometry_info.rho,geometry_info.sigma,
+            geometry_info.xi,exception);
+          break;
+        }
       }
       if (next != (Image *) NULL)
         (void) CatchImageException(next);
@@ -13610,10 +13635,10 @@
         PUSHs(&sv_undef);
       else
         PUSHs(sv_2mortal(newSVpv(magick_info->description,0)));
-      if (magick_info->module == (char *) NULL)
+      if (magick_info->magick_module == (char *) NULL)
         PUSHs(&sv_undef);
       else
-        PUSHs(sv_2mortal(newSVpv(magick_info->module,0)));
+        PUSHs(sv_2mortal(newSVpv(magick_info->magick_module,0)));
     }
 
   PerlException:
diff --git a/PerlMagick/Makefile.PL.in b/PerlMagick/Makefile.PL.in
index 244cd6c..64d82db 100644
--- a/PerlMagick/Makefile.PL.in
+++ b/PerlMagick/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/Makefile.am b/PerlMagick/Makefile.am
index a8cce50..2cfc6ed49 100644
--- a/PerlMagick/Makefile.am
+++ b/PerlMagick/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/check.sh.in b/PerlMagick/check.sh.in
index 7bed663..418f843 100644
--- a/PerlMagick/check.sh.in
+++ b/PerlMagick/check.sh.in
@@ -1,5 +1,5 @@
 #!/bin/sh
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/default/Magick.pm.in b/PerlMagick/default/Magick.pm.in
index bc67618..0fdd8ae 100644
--- a/PerlMagick/default/Magick.pm.in
+++ b/PerlMagick/default/Magick.pm.in
@@ -1,6 +1,6 @@
 package Image::Magick;
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/default/Makefile.PL.in b/PerlMagick/default/Makefile.PL.in
index 4c5d76c..4cbdaa5 100644
--- a/PerlMagick/default/Makefile.PL.in
+++ b/PerlMagick/default/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/Makefile.PL.in b/PerlMagick/quantum/Makefile.PL.in
index c528f5f..a2023f4 100644
--- a/PerlMagick/quantum/Makefile.PL.in
+++ b/PerlMagick/quantum/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/quantum.pm b/PerlMagick/quantum/quantum.pm
index 1f78129..ed7cbb7 100644
--- a/PerlMagick/quantum/quantum.pm
+++ b/PerlMagick/quantum/quantum.pm
@@ -1,6 +1,6 @@
 package Image::Magick::Q16HDRI;
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -43,7 +43,7 @@
       ConfigureError FatalErrorException
     );
 
-$VERSION = '7.0.8';
+$VERSION = '7.0.9';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/PerlMagick/quantum/quantum.pm.in b/PerlMagick/quantum/quantum.pm.in
index 70a8956..5f6ca50 100644
--- a/PerlMagick/quantum/quantum.pm.in
+++ b/PerlMagick/quantum/quantum.pm.in
@@ -1,6 +1,6 @@
 package Image::Magick::@MAGICK_ABI_SUFFIX@;
 
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in
index c70f208..3588d0f 100644
--- a/PerlMagick/quantum/quantum.xs.in
+++ b/PerlMagick/quantum/quantum.xs.in
@@ -23,7 +23,7 @@
 %                             February 1997                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -575,6 +575,8 @@
     { "CLAHE", { {"geometry", StringReference}, {"width", IntegerReference},
       {"height", IntegerReference}, {"number-bins", IntegerReference},
       {"clip-limit", RealReference} } },
+    { "Kmeans", { {"geometry", StringReference}, {"colors", IntegerReference},
+      {"iterations", IntegerReference}, {"tolerance", RealReference} } },
   };
 
 static SplayTreeInfo
@@ -7646,6 +7648,8 @@
     RangeThresholdImage= 296
     CLAHE              = 297
     CLAHEImage         = 298
+    Kmeans             = 299
+    KMeansImage        = 300
     MogrifyRegion      = 666
   PPCODE:
   {
@@ -11507,6 +11511,27 @@
             geometry_info.psi,exception);
           break;
         }
+        case 150:  /* Kmeans */
+        {
+          if (attribute_flag[0] != 0)
+            {
+              flags=ParseGeometry(argument_list[0].string_reference,
+                &geometry_info);
+              if ((flags & SigmaValue) == 0)
+                geometry_info.sigma=100.0;
+              if ((flags & XiValue) == 0)
+                geometry_info.xi=0.01;
+            }
+          if (attribute_flag[1] != 0)
+            geometry_info.rho=argument_list[1].integer_reference;
+          if (attribute_flag[2] != 0)
+            geometry_info.sigma=argument_list[2].integer_reference;
+          if (attribute_flag[3] != 0)
+            geometry_info.xi=(ChannelType) argument_list[3].real_reference;
+          (void) KmeansImage(image,geometry_info.rho,geometry_info.sigma,
+            geometry_info.xi,exception);
+          break;
+        }
       }
       if (next != (Image *) NULL)
         (void) CatchImageException(next);
@@ -13727,10 +13752,10 @@
         PUSHs(&sv_undef);
       else
         PUSHs(sv_2mortal(newSVpv(magick_info->description,0)));
-      if (magick_info->module == (char *) NULL)
+      if (magick_info->magick_module == (char *) NULL)
         PUSHs(&sv_undef);
       else
-        PUSHs(sv_2mortal(newSVpv(magick_info->module,0)));
+        PUSHs(sv_2mortal(newSVpv(magick_info->magick_module,0)));
     }
 
   PerlException:
diff --git a/PerlMagick/t/blob.t b/PerlMagick/t/blob.t
index 5625fa8..5e5ec13 100644
--- a/PerlMagick/t/blob.t
+++ b/PerlMagick/t/blob.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -31,7 +31,7 @@
 $image->BlobToImage( @blob );
 
 if ($image->Get('signature') ne 
-    'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7')
+    'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e')
   { print "not ok $test\n"; }
 else
   { print "ok $test\n"; }
diff --git a/PerlMagick/t/bzlib/read.t b/PerlMagick/t/bzlib/read.t
index 802076d..e722898 100644
--- a/PerlMagick/t/bzlib/read.t
+++ b/PerlMagick/t/bzlib/read.t
@@ -18,7 +18,7 @@
 # Test reading BZip compressed MIFF
 # 
 testRead( 'input.miff',
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 #
 # 2) Test reading BZip stream-compressed MIFF (.bz2 extension)
@@ -26,5 +26,5 @@
 print("Reading BZip stream-compressed MIFF (.bz2 extension) ...\n");
 ++$test;
 testRead( 'input.miff.bz2',
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
diff --git a/PerlMagick/t/bzlib/write.t b/PerlMagick/t/bzlib/write.t
index 51c05a5..59606b6 100644
--- a/PerlMagick/t/bzlib/write.t
+++ b/PerlMagick/t/bzlib/write.t
@@ -21,7 +21,7 @@
 testReadWrite( 'input.miff',
   'output.miff',
   q/compression=>'BZip'/,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 $test = 0;  # Quench PERL compliaint
 
diff --git a/PerlMagick/t/filter.t b/PerlMagick/t/filter.t
index 4723193..6682c7a 100644
--- a/PerlMagick/t/filter.t
+++ b/PerlMagick/t/filter.t
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -54,10 +54,10 @@
 testFilterCompare('input.miff', "fuzz=>$fuzz", 'reference/filter/ColorFloodfill.miff', 'ColorFloodfill', q/geometry=>"+25+45"/, 0.15, 1.0);
 ++$test;
 
-testFilterCompare('input.miff', "fuzz=>$fuzz", 'reference/filter/Colorize.miff', 'Colorize', q/fill=>"red", blend=>"50%"/, 0.0, 0.0 );
+testFilterCompare('input.miff', "fuzz=>$fuzz", 'reference/filter/Colorize.miff', 'Colorize', q/fill=>"red", blend=>"50%"/, 0.00001, 0.004);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Contrast.miff', 'Contrast', q//, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Contrast.miff', 'Contrast', q//, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/Convolve.miff', 'Convolve', q/[0.0625, 0.0625, 0.0625, 0.0625, 0.5, 0.0625, 0.0625, 0.0625, 0.0625]/, 0.1, 0.7);
@@ -96,7 +96,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/Frame.miff', 'Frame', q/'15x15+3+3'/, 0.02, 0.5);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Gamma.miff', 'Gamma', q/1.6/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Gamma.miff', 'Gamma', q/1.6/, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/GaussianBlur.miff', 'GaussianBlur', q/'0.0x1.5'/, 0.07, 0.9);
@@ -105,7 +105,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/Implode.miff', 'Implode', q/0.0/, 0.0, 0.0);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Level.miff', 'Level', q/'20%x'/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Level.miff', 'Level', q/'20%x'/, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/Magnify.miff', 'Magnify', q//, 0.003, 0.3);
@@ -147,7 +147,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/RadialBlur.miff', 'RadialBlur', q/10/, 0.004, 0.4);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Raise.miff', 'Raise', q/'10x10'/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Raise.miff', 'Raise', q/'10x10'/, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/ReduceNoise.miff', 'ReduceNoise', q//, 0.0, 0.0);
@@ -165,7 +165,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/Sample.miff', 'Sample', q/'60%'/, 0.006, 0.6);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Scale.miff', 'Scale', q/'60%'/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Scale.miff', 'Scale', q/'60%'/, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/Segment.miff', 'Segment', q//, 0.09, 0.9);
@@ -189,7 +189,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/Solarize.miff', 'Solarize', q//, 0.0, 0.0);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Swirl.miff', 'Swirl', q/90/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Swirl.miff', 'Swirl', q/90/, 0.00001, 0.004);
 ++$test;
 
 testFilterCompare('input.miff',  q//, 'reference/filter/Threshold.miff', 'Threshold', q/90%/, 0.0, 0.0);
@@ -201,7 +201,7 @@
 testFilterCompare('input.miff',  q//, 'reference/filter/UnsharpMask.miff', 'UnsharpMask', q/'5x2+1'/, 0.004, 0.4);
 ++$test;
 
-testFilterCompare('input.miff',  q//, 'reference/filter/Wave.miff', 'Wave', q/'25x150'/, 0.0, 0.0);
+testFilterCompare('input.miff',  q//, 'reference/filter/Wave.miff', 'Wave', q/'25x150'/, 0.00001, 0.004);
 ++$test;
 
 1;
diff --git a/PerlMagick/t/getattribute.t b/PerlMagick/t/getattribute.t
index 5abf29c..358565e 100644
--- a/PerlMagick/t/getattribute.t
+++ b/PerlMagick/t/getattribute.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -77,7 +77,7 @@
 
 ++$test;
 testGetAttribute('input.miff','signature',
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 ++$test;
 testGetAttribute('input.miff','texture',undef);
diff --git a/PerlMagick/t/input.tga b/PerlMagick/t/input.tga
index 022ec4de..0d902c9 100644
--- a/PerlMagick/t/input.tga
+++ b/PerlMagick/t/input.tga
Binary files differ
diff --git a/PerlMagick/t/jbig/read.t b/PerlMagick/t/jbig/read.t
index 0b0f751..a561bc3 100644
--- a/PerlMagick/t/jbig/read.t
+++ b/PerlMagick/t/jbig/read.t
@@ -14,4 +14,4 @@
 chdir 't/jbig' || die 'Cd failed';
 
 testRead( 'input.jbig',
-  'f7047e83432fbef872f3034a19efb95aa3b241d0be228ae0ccdc7814a9e27811');
+  '214ce53ffd74a5c46a354e53d4512294f6b68c8dc843db61d5de71f53c7ace0c');
diff --git a/PerlMagick/t/jbig/write.t b/PerlMagick/t/jbig/write.t
index a317eac..a355892 100644
--- a/PerlMagick/t/jbig/write.t
+++ b/PerlMagick/t/jbig/write.t
@@ -17,6 +17,6 @@
 testReadWrite( 'input.jbig',
   'output.jbig',
   '',
-  'f7047e83432fbef872f3034a19efb95aa3b241d0be228ae0ccdc7814a9e27811' );
+  '214ce53ffd74a5c46a354e53d4512294f6b68c8dc843db61d5de71f53c7ace0c' );
 
 $test=0; # Keep perl from complaining
diff --git a/PerlMagick/t/montage.t b/PerlMagick/t/montage.t
index 5dd1e16..6e3f86e 100644
--- a/PerlMagick/t/montage.t
+++ b/PerlMagick/t/montage.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -29,7 +29,7 @@
 #
 testMontage( q//,
   q/background=>'#696e7e'/,
-  'd29f905749426e5491bbd8c4f58b7c14dc1a72250632b7e7b542910e0cbb7c77');
+  'ad77fef2815f06678757ba79d14f752cfb639f078b32b54122714e25ede2bc5e');
 
 #
 # 2) Test Center gravity
@@ -38,7 +38,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'Center'/,
-  '21ab4077722e45db67c945b2364cfc1365d3f939d57fc6fb2c7b77f161381c2e');
+  '030de7b70860f11a66d7081df97a96d311641fc69f48aafdbde27da53ac61277');
 
 #
 # 3) Test NorthWest gravity
@@ -47,7 +47,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'NorthWest'/,
-  'a518ad6aa1c3ad2b117864525d610481c1b3b9ead2c624c773fb427f85ef897b');
+  'd139d942510d9ca5762799acad940b7539e56f9610ab57a26e22c18fe35a01b5');
 
 #
 # 4) Test North gravity
@@ -56,7 +56,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'North'/,
-  '4126725283eb699545d755a6b30c5fc6cee9ac16a1e8310cdbbedcbd054bebf6');
+  '5f02d04d24bfbeb2dc82a056cf595ec8ef1601a0e68aaae541c116cc7c627916');
 
 #
 # 5) Test NorthEast gravity
@@ -65,7 +65,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'NorthEast'/,
-  'e144c8d0da144864063753903838a286d46da56ca9ea0ce0b6080f84c6feac6c');
+  'd1e9ee7a612ef19b360c923795a0f0c7bc819983475adf6787e39ee8167f75f1');
 
 #
 # 6) Test West gravity
@@ -74,7 +74,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'West'/,
-  '67286cf1ed572e836f6b67c5d733a039bba9e6a7ef18d25397e46c17223b206f');
+  '084e12bf9e3325140d8df2fb52ac481aff408bb3ed1940d379c14d1e07b58599');
 
 #
 # 7) Test East gravity
@@ -83,7 +83,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'East'/,
-  'decf855bf26dfc3f7401769a09e302d8bac53cba6c27fd456cdfbc35e494be01');
+  'ff8cee733142654135e8baebaf5e036eaf5de1d419476c0d0a8bee9c88370066');
 
 #
 # 8) Test SouthWest gravity
@@ -92,7 +92,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'SouthWest'/,
-  '848fda241866b1a191ab4794b42272b5756dbeacac5b58ef5227a34a8c72817d');
+  'e7109f6f3291cb0d576a79cb70e7b3db6dde851f1cfc6e5d63fbbf96100264bb');
 
 #
 # 9) Test South gravity
@@ -101,7 +101,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'South'/,
-  'f5cccb291b3bea8cb62e5cd7a6c8e154eedfd8e12c20409a8e663231e62411c4');
+  '287fc09873957d91ef2a29cf09c7d20a477aaab2104c3ba9fd6046ea0ee633de');
 
 #
 # 10) Test SouthEast gravity
@@ -110,7 +110,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  geometry=>'90x80+5+5>', gravity=>'SouthEast'/,
-  'a19748d933fefe536b29b8ba98ce0024e3f2dc98102a1f56307a229bc3042f1c');
+  '7f2745dfeb6b94f059e521601cd41cda2d548b7fff5eabd4781b102c2581c4f4');
 
 #
 # 11) Test Framed Montage
@@ -122,9 +122,8 @@
 testMontage( q/bordercolor=>'blue', mattecolor=>'red'/, 
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80+3+3>', frame=>'8x10',
   borderwidth=>'0', gravity=>'Center', background=>'gray'/,
-  'dcfa6c2bc0e20ff0b5dba464559a1e106e605ec456c21c1205a53e478e4f3e02',
-  'dcfa6c2bc0e20ff0b5dba464559a1e106e605ec456c21c1205a53e478e4f3e02',
-  '72a7587a058c71cd62226e59b64c335190a37d7dd990d68534cf05df61084783');
+  'd65a3fcf9119a59414d52b6b11c0d131579341dbae03e4f18776dc8a01da2931',
+  '2aa66c8d3eb0c3b3e765df6ffc5977c026dd65f7839b763a48192cdd45d27474');
 
 #
 # 12) Test Framed Montage with drop-shadows
@@ -133,9 +132,8 @@
 testMontage( q/bordercolor=>'blue', mattecolor=>'red'/, 
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10',
   borderwidth=>'0', gravity=>'Center', shadow=>'True',background=>'gray'/,
-  'b3b7a530270164b4c5e391ac8080736a901428e5f650694170969fd292559317',
-  'b3b7a530270164b4c5e391ac8080736a901428e5f650694170969fd292559317',
-  '9fe18e11ac759d3a86362f16d0bdee4b6952d617daa3ad2c3511e19050dda71d');
+  'ff43a8c5dd980438c10436a71b47afc538ae3839ba57251768fa07add1229d8a',
+  '885d043b63810d030697104629d79f2141fab28cb561cf84b4f323209cee4f42');
 
 #
 # 13) Test Framed Montage with drop-shadows and background texture
@@ -144,7 +142,8 @@
 testMontage( q/bordercolor=>'blue', mattecolor=>'red'/, 
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80+6+6>', frame=>'8x10',
   borderwidth=>'0', gravity=>'Center', shadow=>'True', texture=>'granite:'/,
-  '08d4dfa09995e13a518002565d862f6e89d65de37d59c1d1ab45d7c6cde6bd47');
+  '0de019cb1e17fb9d3e60e6ae3931c6d384859613c3fc930cfef46720cae8237e',
+  '4774caea304139483a3f50a8b94690c7503ccbea89c0ae698e8bb8996d0cfda8');
 
 #
 # 14) Test Un-bordered, Un-framed Montage
@@ -153,9 +152,7 @@
 testMontage( q//,
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80+6+6>', mode=>'Unframe',
   borderwidth=>'0', gravity=>'Center', background=>'gray'/,
-  '245f9fbee901f99e08458aad797ade92ea17e68b230212510ad2eca96e169e39',
-  '245f9fbee901f99e08458aad797ade92ea17e68b230212510ad2eca96e169e39',
-  'ab07c5591848f1aa8bfffc46c094be40cf662e18f68b19229f1f7e9d9eec4692');
+  '1ac572b14256896360176430b0e571dd53bfa083214a0ef35069b7a4a1e56b2d');
 
 #
 # 15) Test Bordered, Un-framed Montage (mode=>'Unframe')
@@ -164,9 +161,7 @@
 testMontage( q/bordercolor=>'red'/, 
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80+6+6>', mode=>'Unframe',
   borderwidth=>'5', gravity=>'Center', background=>'gray'/,
-  '611833bd0e13681a82d34c4c40b2a263bf245ac879de240114df874f9eaca7f0',
-  '611833bd0e13681a82d34c4c40b2a263bf245ac879de240114df874f9eaca7f0',
-  '65bb1cd11a0dbbd90ca46b07ce58b2ba5fcfadc0869356e5a08eda53510e0126');
+  '08ce60c0e00ab7415c181a3fefcf2cb7e42d81aa4c630559d11073a4bcb95cad');
 
 #
 # 16) Test Bordered, Un-framed Montage (mode=>'UnFrame')
@@ -175,9 +170,7 @@
 testMontage( q/bordercolor=>'red'/, 
   q/ tile=>'4x4', geometry=>'90x80+6+6>', mode=>'UnFrame',
   borderwidth=>'5', gravity=>'Center', background=>'gray'/,
-  '611833bd0e13681a82d34c4c40b2a263bf245ac879de240114df874f9eaca7f0',
-  '611833bd0e13681a82d34c4c40b2a263bf245ac879de240114df874f9eaca7f0',
-  '65bb1cd11a0dbbd90ca46b07ce58b2ba5fcfadc0869356e5a08eda53510e0126');
+  '08ce60c0e00ab7415c181a3fefcf2cb7e42d81aa4c630559d11073a4bcb95cad');
 
 #
 # 17) Test Un-bordered, Un-framed Montage with 16x1 tile
@@ -186,9 +179,7 @@
 testMontage( q//,
   q/background=>'#696e7e',  tile=>'16x1', geometry=>'90x80+0+0>', mode=>'Unframe',
   borderwidth=>'0', gravity=>'Center', background=>'gray'/,
-  '49bf08b9ae34c7c8acee15b123c29e414ae6fb9bdf2a15dbdd3a33a753b8e7ff',
-  '49bf08b9ae34c7c8acee15b123c29e414ae6fb9bdf2a15dbdd3a33a753b8e7ff',
-  'c42d5f2bef5f30167f02d6ba85504ee82e06c16d9404bc6fc0f6e75c0f8f53e9');
+  '6de83e358b3b0939d0a0cb196514de31f4ded673f867e155b63f03c7e04e8170');
 
 #
 # 18) Test concatenated thumbnail Montage (concatenated via special Concatenate mode)
@@ -197,7 +188,7 @@
 ++$test;
 testMontage( q//,
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'90x80>', mode=>'Concatenate'/,
-  'b46f6d6c6305ab1d5f05f89030e775fca2f01dd5d40a8340372bd31dafaa4e83');
+  '8d857590f8f13bd4a893bbee811c3e801a97a6f6a98e8735b97c6812f1e35b11');
 #
 # 19) Test concatenated thumbnail Montage (concatentated by setting params to zero)
 #     Thumbnails should be compacted tightly together in a grid
@@ -206,6 +197,4 @@
 testMontage( q//, 
   q/background=>'#696e7e',  tile=>'4x4', geometry=>'+0+0', mode=>'Unframe', shadow=>'False',
   borderwidth=>'0', background=>'gray'/,
-  'b46f6d6c6305ab1d5f05f89030e775fca2f01dd5d40a8340372bd31dafaa4e83',
-  'b46f6d6c6305ab1d5f05f89030e775fca2f01dd5d40a8340372bd31dafaa4e83',
-  '6c61a8ad7be5f8c368dcb591f766349e648b623cbc41e6699ba3ea53ef182510');
+  '8d857590f8f13bd4a893bbee811c3e801a97a6f6a98e8735b97c6812f1e35b11');
diff --git a/PerlMagick/t/mpeg/read.t b/PerlMagick/t/mpeg/read.t
index 01a82be..448f7ef 100644
--- a/PerlMagick/t/mpeg/read.t
+++ b/PerlMagick/t/mpeg/read.t
@@ -18,13 +18,13 @@
 # Motion Picture Experts Group file interchange format (version 2)
 #
 testRead( 'input.m2v',
-  '4ed5fcb7356705276d7a73f2088a7192317df370de86ab95b29874f60e37088e' );
+  '2e30dd34e6cf2702188059bd8828930f39b1a7746a413f13f6d0dc98b9b0d3a6' );
 
 #
 # Motion Picture Experts Group file interchange format
 #
 ++$test;
 testRead( 'input.mpg',
-  '531b7360d6733d6339f247af3a3833c9e95d6c376b64374d374e26cfdede70a5' );
+  'e873cc6cc6eb5b5d11d5ddaaac92c6b86fec09e9721cbaafb8feca8c5be3c12a' );
 
 1;
diff --git a/PerlMagick/t/ping.t b/PerlMagick/t/ping.t
index 98bc9c8..fa3cd33 100644
--- a/PerlMagick/t/ping.t
+++ b/PerlMagick/t/ping.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/png/read-16.t b/PerlMagick/t/png/read-16.t
index 78c0ea3..ec58f1c 100644
--- a/PerlMagick/t/png/read-16.t
+++ b/PerlMagick/t/png/read-16.t
@@ -18,28 +18,28 @@
 # 1) Test Monochrome PNG
 # 
 testRead( 'input_mono.png',
-  'a8d79029f6ced36f904659dda5ea67a6bab5e602b1033aa29c7f1b45b35c1178' );
+  'fa43f8c3d45c3efadab6791a6de83b5a303f65e2c1d58e0814803a4846e68593' );
 
 #
 # 2) Test 256 color pseudocolor PNG
 # 
 ++$test;
 testRead( 'input_256.png',
-  '5d1041037358767b9ebd2d5398c50daeee2ae644e2d128006e2eb91e82cf4b16' );
+  'e3930ba2c0d7813f21e9ac16b058c10904470853dc6a59f9f3b3f1f47da7dc2c' );
 
 #
 # 3) Test TrueColor PNG
 # 
 ++$test;
 testRead( 'input_truecolor.png',
-  '76f43f03e51c8608bfca7ff96d3936148ad855782968a017ea03cccbeebff64d' );
+  '7d40e88aa651fd6234780c61a6cef9f34ae8f579975240cf5d33c86217a348c9' );
 
 #
 # 4) Test Multiple-image Network Graphics
 # 
 ++$test;
 testRead( 'input.mng',
-  '5a883e67c29d7bb27897ec7a3f3cb3fb0330fb43aef4360e8314503cb37fae09' );
+  '0cd7b340ab0c0bceac4e95a4248b12987446a9d2df07bcb6e7e7ecd4ddc44b13' );
 
 #
 # 5) Test 16-bit Portable Network Graphics
@@ -47,5 +47,5 @@
 ++$test;
 testRead( 'input_16.png',
   'd4bed86abb1849f69f1a5afb7c5cf8798e8192ba228357f189c277198c14f5a0',
-  '4036b56c00d731a2865470815eabc177dc158af2abacb34ef95c7e716ec2da60');
+  '2d30a8bed1ae8bd19c8320e861f3140dfc7497ca8a05d249734ab41c71272f08');
 
diff --git a/PerlMagick/t/png/read.t b/PerlMagick/t/png/read.t
index 4755042..0b5ae3f 100644
--- a/PerlMagick/t/png/read.t
+++ b/PerlMagick/t/png/read.t
@@ -19,7 +19,7 @@
 # 
 print( "1-bit grayscale PNG ...\n" );
 testRead( 'input_bw.png',
-  '5a5b600153abaaf82dc9086272d01bedc4201d14b614c18cb4e9c6d1581c9023' );
+  '7d12eaac6f41d3c2947022f382e158ea715e918ce0cd73649ec04db01239c88f' );
 
 #
 # 2) Test Monochrome PNG
@@ -27,7 +27,7 @@
 ++$test;
 print( "8-bit grayscale PNG ...\n" );
 testRead( 'input_mono.png',
-  'a8d79029f6ced36f904659dda5ea67a6bab5e602b1033aa29c7f1b45b35c1178' );
+  'fa43f8c3d45c3efadab6791a6de83b5a303f65e2c1d58e0814803a4846e68593' );
 
 #
 # 3) Test 16-bit Portable Network Graphics
@@ -36,14 +36,14 @@
 print( "16-bit grayscale PNG ...\n" );
 testRead( 'input_16.png',
   'd4bed86abb1849f69f1a5afb7c5cf8798e8192ba228357f189c277198c14f5a0',
-  '4036b56c00d731a2865470815eabc177dc158af2abacb34ef95c7e716ec2da60' );
+  '2d30a8bed1ae8bd19c8320e861f3140dfc7497ca8a05d249734ab41c71272f08' );
 #
 # 4) Test 256 color pseudocolor PNG
 # 
 ++$test;
 print( "8-bit indexed-color PNG ...\n" );
 testRead( 'input_256.png',
-  '5d1041037358767b9ebd2d5398c50daeee2ae644e2d128006e2eb91e82cf4b16' );
+  'e3930ba2c0d7813f21e9ac16b058c10904470853dc6a59f9f3b3f1f47da7dc2c' );
 
 #
 # 5) Test TrueColor PNG
@@ -51,7 +51,7 @@
 ++$test;
 print( "24-bit Truecolor PNG ...\n" );
 testRead( 'input_truecolor.png',
-  '76f43f03e51c8608bfca7ff96d3936148ad855782968a017ea03cccbeebff64d' );
+  '7d40e88aa651fd6234780c61a6cef9f34ae8f579975240cf5d33c86217a348c9' );
 
 #
 # 6) Test Multiple-image Network Graphics
@@ -59,5 +59,5 @@
 ++$test;
 print( "MNG with 24-bit Truecolor PNGs...\n" );
 testRead( 'input.mng',
-  '5a883e67c29d7bb27897ec7a3f3cb3fb0330fb43aef4360e8314503cb37fae09' );
+  '0cd7b340ab0c0bceac4e95a4248b12987446a9d2df07bcb6e7e7ecd4ddc44b13' );
 
diff --git a/PerlMagick/t/png/write-16.t b/PerlMagick/t/png/write-16.t
index 4cc5fdb..144a6c7 100644
--- a/PerlMagick/t/png/write-16.t
+++ b/PerlMagick/t/png/write-16.t
@@ -20,7 +20,7 @@
 testReadWrite( 'input_256.png',
   'output_256.png',
   q/quality=>54/,
-  '26687d6be46b4e1ca5201a47caa7dad660245c5f4517835ab6e19f2f84fc4a03' );
+  'e3930ba2c0d7813f21e9ac16b058c10904470853dc6a59f9f3b3f1f47da7dc2c' );
 
 #
 # 2) Test truecolor image
@@ -29,7 +29,7 @@
 testReadWrite( 'input_truecolor.png',
   'output_truecolor.png',
   q/quality=>55/,
-  '76f43f03e51c8608bfca7ff96d3936148ad855782968a017ea03cccbeebff64d' );
+  '7d40e88aa651fd6234780c61a6cef9f34ae8f579975240cf5d33c86217a348c9' );
 
 #
 # 3) Test monochrome image
@@ -37,7 +37,7 @@
 ++$test;
 testReadWrite( 'input_mono.png',
   'output_mono.png', '',
-  'a8d79029f6ced36f904659dda5ea67a6bab5e602b1033aa29c7f1b45b35c1178' );
+  'fa43f8c3d45c3efadab6791a6de83b5a303f65e2c1d58e0814803a4846e68593' );
 
 #
 # 4) Test Multiple-image Network Graphics
@@ -46,7 +46,7 @@
 testReadWrite( 'input.mng',
   'output.mng',
   q/quality=>55/,
-  '5a883e67c29d7bb27897ec7a3f3cb3fb0330fb43aef4360e8314503cb37fae09' );
+  '0cd7b340ab0c0bceac4e95a4248b12987446a9d2df07bcb6e7e7ecd4ddc44b13' );
 
 #
 # 5) Test 16-bit Portable Network Graphics
@@ -56,6 +56,6 @@
   'output_16.png',
   q/quality=>55/,
   'd4bed86abb1849f69f1a5afb7c5cf8798e8192ba228357f189c277198c14f5a0',
-  '4036b56c00d731a2865470815eabc177dc158af2abacb34ef95c7e716ec2da60');
+  '2d30a8bed1ae8bd19c8320e861f3140dfc7497ca8a05d249734ab41c71272f08');
 
 
diff --git a/PerlMagick/t/png/write.t b/PerlMagick/t/png/write.t
index c209294..b724aa2 100644
--- a/PerlMagick/t/png/write.t
+++ b/PerlMagick/t/png/write.t
@@ -19,7 +19,7 @@
 # 
 print( "1-bit grayscale PNG ...\n" );
 testReadWrite( 'input_bw.png', 'output_bw.png', q/quality=>95/,
-  '5a5b600153abaaf82dc9086272d01bedc4201d14b614c18cb4e9c6d1581c9023');
+  '7d12eaac6f41d3c2947022f382e158ea715e918ce0cd73649ec04db01239c88f');
 
 #
 # 2) Test monochrome image
@@ -28,7 +28,7 @@
 print( "8-bit grayscale PNG ...\n" );
 testReadWrite( 'input_mono.png',
   'output_mono.png', '',
-  'a8d79029f6ced36f904659dda5ea67a6bab5e602b1033aa29c7f1b45b35c1178');
+  'fa43f8c3d45c3efadab6791a6de83b5a303f65e2c1d58e0814803a4846e68593');
 #
 # 3) Test 16-bit Portable Network Graphics
 # 
@@ -38,7 +38,7 @@
   'output_16.png',
   q/quality=>55/,
   'd4bed86abb1849f69f1a5afb7c5cf8798e8192ba228357f189c277198c14f5a0',
-  '4036b56c00d731a2865470815eabc177dc158af2abacb34ef95c7e716ec2da60' );
+  '2d30a8bed1ae8bd19c8320e861f3140dfc7497ca8a05d249734ab41c71272f08' );
 #
 # 4) Test pseudocolor image
 #
@@ -47,7 +47,7 @@
 testReadWrite( 'input_256.png',
   'output_256.png',
   q/quality=>54/,
-  '26687d6be46b4e1ca5201a47caa7dad660245c5f4517835ab6e19f2f84fc4a03' );
+  'e3930ba2c0d7813f21e9ac16b058c10904470853dc6a59f9f3b3f1f47da7dc2c' );
 #
 # 5) Test truecolor image
 #
@@ -56,7 +56,7 @@
 testReadWrite( 'input_truecolor.png',
   'output_truecolor.png',
   q/quality=>55/,
-  '76f43f03e51c8608bfca7ff96d3936148ad855782968a017ea03cccbeebff64d' );
+  '7d40e88aa651fd6234780c61a6cef9f34ae8f579975240cf5d33c86217a348c9' );
 #
 # 6) Test Multiple-image Network Graphics
 #
@@ -65,4 +65,4 @@
 testReadWrite( 'input.mng',
   'output.mng',
   q/quality=>55/,
-  '5a883e67c29d7bb27897ec7a3f3cb3fb0330fb43aef4360e8314503cb37fae09' );
+  '0cd7b340ab0c0bceac4e95a4248b12987446a9d2df07bcb6e7e7ecd4ddc44b13' );
diff --git a/PerlMagick/t/read.t b/PerlMagick/t/read.t
index 469a5d9..8d39441 100644
--- a/PerlMagick/t/read.t
+++ b/PerlMagick/t/read.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -162,7 +162,7 @@
 
 print("Truevision Targa image file ...\n");
 ++$test;
-testReadCompare('input.tga', 'reference/read/input_tga.miff', q//, 0.0, 0.0);
+testReadCompare('input.tga', 'reference/read/input_tga.miff', q//, 0.1, 0.9);
 
 print("PSX TIM file ...\n");
 ++$test;
diff --git a/PerlMagick/t/setattribute.t b/PerlMagick/t/setattribute.t
index fe9bc09..8215e4a 100644
--- a/PerlMagick/t/setattribute.t
+++ b/PerlMagick/t/setattribute.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/subroutines.pl b/PerlMagick/t/subroutines.pl
index e18e2e7..7ea44b7 100644
--- a/PerlMagick/t/subroutines.pl
+++ b/PerlMagick/t/subroutines.pl
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -969,19 +969,6 @@
       $ref_32 = $ref_16;
     }
 
-  if (Image::Magick->new()->QuantumDepth == 32)
-    {
-      $ref_signature=$ref_32;
-    }
-  elsif (Image::Magick->new()->QuantumDepth == 16)
-    {
-      $ref_signature=$ref_16;
-    }
-  else
-    {
-      $ref_signature=$ref_8;
-    }
-
   # Create image for image list
   $images=Image::Magick->new;
 
@@ -1037,10 +1024,10 @@
     # $montage->Display();
     $signature=$montage->GetAttribute('signature');
     if ( defined( $signature ) ) {
-      if ( $signature ne $ref_signature ) {
+      if ( $signature ne $ref_8 && $signature ne $ref_16 && $signature ne $ref_32 ) {
         print "ReadImage()\n";
         print "Test $test, signatures do not match.\n";
-      	print "     Expected: $ref_signature\n";
+      	print "     Expected: $ref_8\n";
       	print "     Computed: $signature\n";
         print "     Depth:    ", Image::Magick->new()->QuantumDepth, "\n";
         $status = $montage->Write("test_${test}_out.miff");
diff --git a/PerlMagick/t/tiff/read.t b/PerlMagick/t/tiff/read.t
index 9a5c652..cc15447 100644
--- a/PerlMagick/t/tiff/read.t
+++ b/PerlMagick/t/tiff/read.t
@@ -19,7 +19,7 @@
 # 
 print("Monochrome ...\n");
 testRead ( 'input_mono.tiff',
-  'dedb5873a990158f0e5abdebda8c8dfb32de0be16b2b191fcb476b754e000a7b' );
+  '71e1a6be223e307b1dbf732860792b15adba662b7a7ef284daf7f982f874ccf1' );
 
 #
 # 2) Test reading PseudoColor (16 color)
@@ -27,7 +27,7 @@
 ++$test;
 print("PseudoColor (16 color)...\n");
 testRead( 'input_16.tiff',
-  '58a82998d620aba54b86ab8dca7cbfeb726f3e86842369d5a0292a8522e95dab' );
+  '0de2dcbf667c69ae6735d1a701b4038c1eeea25cc86981a496bb26fc82541835' );
 
 #
 # 3) Test reading PseudoColor (16 color + matte channel)
@@ -35,7 +35,7 @@
 ++$test;
 print("PseudoColor (16 color + matte channel)...\n");
 testRead( 'input_16_matte.tiff',
-  '58a82998d620aba54b86ab8dca7cbfeb726f3e86842369d5a0292a8522e95dab' );
+  '0de2dcbf667c69ae6735d1a701b4038c1eeea25cc86981a496bb26fc82541835' );
 
 #
 # 4) Test reading PseudoColor (256 color)
@@ -43,8 +43,7 @@
 ++$test;
 print("PseudoColor (256 color) ...\n");
 testRead( 'input_256.tiff',
-  'ec6408aba63b43dfc594b4bd766e43457754bb2382a02c170e3d085366e9a6f4',
-  '59c97ab49c16b8664f1362242548399ad9e902b96959db98540ec820484380b1' );
+  'b2644ac928730aa1d28e754aeb17b4731b57daea28c9fb89b1b50623e87215b5' );
 
 #
 # 5) Test reading PseudoColor (256 color + matte channel)
@@ -52,8 +51,7 @@
 ++$test;
 print("PseudoColor (256 color + matte channel) ...\n");
 testRead( 'input_256_matte.tiff',
-        '824af58cdd8a8accffee3dab1ed9d28b34a8b183d3e5f5f13caeaab03bcadd13',
-	'64b8429356cf9ea2b717faaa28a85b0f7ca174ea1a72063c1d4b2270084e4881' );
+	'24fc9ae8a8c00a01ba44a4f902230ca1a5841e283a5ec35e81815c194a344954' );
 
 #
 # 6) Test reading PseudoColor using contiguous planar packing
@@ -61,8 +59,7 @@
 ++$test;
 print("PseudoColor (256 color) contiguous planes ...\n");
 testRead( 'input_256_planar_contig.tiff',
-  'ec6408aba63b43dfc594b4bd766e43457754bb2382a02c170e3d085366e9a6f4',
-  '59c97ab49c16b8664f1362242548399ad9e902b96959db98540ec820484380b1' );
+  'b2644ac928730aa1d28e754aeb17b4731b57daea28c9fb89b1b50623e87215b5' );
 
 #
 # 7) Test reading PseudoColor using seperate planes
@@ -70,8 +67,7 @@
 ++$test;
 print("PseudoColor (256 color) seperate planes ...\n");
 testRead( 'input_256_planar_separate.tiff',
-  'ec6408aba63b43dfc594b4bd766e43457754bb2382a02c170e3d085366e9a6f4',
-  '59c97ab49c16b8664f1362242548399ad9e902b96959db98540ec820484380b1' );
+  'b2644ac928730aa1d28e754aeb17b4731b57daea28c9fb89b1b50623e87215b5' );
 
 #
 # 8) Test Reading TrueColor (8-bit)
@@ -79,7 +75,7 @@
 ++$test;
 print("TrueColor (8-bit) image ...\n");
 testRead( 'input_truecolor.tiff',
-  '2c5f5bcc5168543b807bf50476e472cd38e8d1a7d2c68df91e25ae7cd001166a' );
+  'ab90f892242d254e4c50dee17a7c8981bc7d46c9534bbb838cf5653c287886c8' );
 
 #
 # 9) Test Reading TrueColor (16-bit)
@@ -87,8 +83,7 @@
 ++$test;
 print("TrueColor (16-bit) image ...\n");
 testRead( 'input_truecolor_16.tiff',
-  '9897466dce6a47db3530821056c0a1c6e20f20d5bbfce837addfbede63bdecab',
-  '768d8c7d0a52108f1f8dc12fb10412f42bc18f07b0a537dd77c7774bec04a273' );
+  '562a32f51f620139402c1cc2336fb03f655da47dedf9fdbccfd4d23df55dd3b6' );
 
 #
 # 10) Test Reading 8-bit TrueColor Tiled (32x32 tiles)
@@ -96,7 +91,7 @@
 ++$test;
 print("TrueColor (8-bit) tiled image, 32x32 tiles ...\n");
 testRead( 'input_truecolor_tiled32x32.tiff',
-  '2c5f5bcc5168543b807bf50476e472cd38e8d1a7d2c68df91e25ae7cd001166a' );
+  'ab90f892242d254e4c50dee17a7c8981bc7d46c9534bbb838cf5653c287886c8' );
 
 #
 # 11) Test Reading 8-bit TrueColor Tiled (8 rows per strip)
@@ -104,7 +99,7 @@
 ++$test;
 print("TrueColor (8-bit) stripped, image, 8 rows per strip ...\n");
 testRead( 'input_truecolor_stripped.tiff',
-  '2c5f5bcc5168543b807bf50476e472cd38e8d1a7d2c68df91e25ae7cd001166a' );
+  'ab90f892242d254e4c50dee17a7c8981bc7d46c9534bbb838cf5653c287886c8' );
 
 #
 # 12) Test Reading Grayscale 4-bit
@@ -112,7 +107,7 @@
 ++$test;
 print("Grayscale (4-bit) ...\n");
 testRead( 'input_gray_4bit.tiff',
-  '3d58e49ad202f2b171214f7a0e8ebdc2ac2c7e45b68a2249502f9339ca7efc6e');
+  'e55c01b0d28b0a19431ba27203db7cb6ada189c9519d4466c44a764aad5e185a');
 
 #
 # 13) Test Reading Grayscale 8-bit
@@ -120,7 +115,7 @@
 ++$test;
 print("Grayscale (8-bit) ...\n");
 testRead( 'input_gray_8bit.tiff',
-  '76f4dd783661899ede132a87a7c68132462d0a60efe92906388c3aca1fb76130');
+  'cdeea215166c095ef42557d63da3d037d16f4e7884e94b7db21e18e241d84f86');
 
 #
 # 14) Test Reading Grayscale 8-bit + matte
@@ -128,7 +123,7 @@
 ++$test;
 print("Grayscale (8-bit + matte) ...\n");
 testRead( 'input_gray_8bit_matte.tiff',
-  '30206f5082b53a8f81d1b0e5dfec94b3513b15ee3fe87fb646a7fd5bf9c94c04' );
+  'fd4bf0cae6a978c301452178ae645a08cbd115659296a3fcfd5e07421bbaeb19' );
 
 #
 # 15) Test Reading Grayscale 12-bit
@@ -136,7 +131,7 @@
 ++$test;
 print("Grayscale (12-bit) ...\n");
 testRead( 'input_gray_12bit.tiff',
-  '8784d89a246384f42210e980cfccb4e6c98de9dade262984bf756e16232e6c83');
+  '638d5287bb0e6b585525334332ac348ab54903ad0104b789f9335413a8c59276');
 
 #
 # 16) Test Reading Grayscale 16-bit
@@ -144,6 +139,4 @@
 ++$test;
 print("Grayscale (16-bit) ...\n");
 testRead( 'input_gray_16bit.tiff',
-  'f056659e30e514325b8843d88f7bfa7a59c8b0496134ad0e66ea46eeece068d6',
-  'c8428037f92e6ef6c9fca343f3b6206dd9404304b310d20782346db874292e1f',
-  'c8428037f92e6ef6c9fca343f3b6206dd9404304b310d20782346db874292e1f');
+  '0cde228a8b2385f005fce6e3f027195a140971d2db9d122e0530e9e1fa75ea81');
diff --git a/PerlMagick/t/tiff/write.t b/PerlMagick/t/tiff/write.t
index 9f2deba..e7cafaa 100644
--- a/PerlMagick/t/tiff/write.t
+++ b/PerlMagick/t/tiff/write.t
@@ -21,7 +21,7 @@
 testReadWrite( 'input_16.tiff',
   'output_16.tiff',
   q//,
-  '58a82998d620aba54b86ab8dca7cbfeb726f3e86842369d5a0292a8522e95dab');
+  '0de2dcbf667c69ae6735d1a701b4038c1eeea25cc86981a496bb26fc82541835');
 
 #
 # 2) Test 8-bit pseudocolor image
@@ -31,8 +31,7 @@
 testReadWrite( 'input_256.tiff',
   'output_256.tiff',
   q//,
-  'ec6408aba63b43dfc594b4bd766e43457754bb2382a02c170e3d085366e9a6f4',
-  '59c97ab49c16b8664f1362242548399ad9e902b96959db98540ec820484380b1');
+  'b2644ac928730aa1d28e754aeb17b4731b57daea28c9fb89b1b50623e87215b5');
 
 #
 # 3) Test 4-bit pseudocolor + matte channel image
@@ -42,7 +41,7 @@
 testReadWrite( 'input_16_matte.tiff',
   'output_16_matte.tiff',
   q//,
-  '58a82998d620aba54b86ab8dca7cbfeb726f3e86842369d5a0292a8522e95dab' );
+  '0de2dcbf667c69ae6735d1a701b4038c1eeea25cc86981a496bb26fc82541835' );
 
 #
 # 4) Test 8-bit pseudocolor + matte channel image
@@ -52,8 +51,7 @@
 testReadWrite( 'input_256_matte.tiff',
   'output_256_matte.tiff',
   q//,
-  '824af58cdd8a8accffee3dab1ed9d28b34a8b183d3e5f5f13caeaab03bcadd13',
-  '64b8429356cf9ea2b717faaa28a85b0f7ca174ea1a72063c1d4b2270084e4881' );
+  '24fc9ae8a8c00a01ba44a4f902230ca1a5841e283a5ec35e81815c194a344954' );
 
 #
 # 5) Test truecolor image
@@ -63,7 +61,7 @@
 testReadWrite( 'input_truecolor.tiff',
   'output_truecolor.tiff',
   q/quality=>55/,
-  '2c5f5bcc5168543b807bf50476e472cd38e8d1a7d2c68df91e25ae7cd001166a' );
+  'ab90f892242d254e4c50dee17a7c8981bc7d46c9534bbb838cf5653c287886c8' );
 
 #
 # 6) Test monochrome image
@@ -73,7 +71,7 @@
 testReadWrite(  'input_mono.tiff',
   'output_mono.tiff',
   q//,
-  'dedb5873a990158f0e5abdebda8c8dfb32de0be16b2b191fcb476b754e000a7b' );
+  '71e1a6be223e307b1dbf732860792b15adba662b7a7ef284daf7f982f874ccf1' );
 
 #
 # 7) Test gray 4 bit image
@@ -83,7 +81,7 @@
 testReadWrite(  'input_gray_4bit.tiff',
   'output_gray_4bit.tiff',
   q//,
-  '3d58e49ad202f2b171214f7a0e8ebdc2ac2c7e45b68a2249502f9339ca7efc6e' );
+  'e55c01b0d28b0a19431ba27203db7cb6ada189c9519d4466c44a764aad5e185a' );
 
 #
 # 8) Test gray 8 bit image
@@ -93,7 +91,7 @@
 testReadWrite(  'input_gray_8bit.tiff',
   'output_gray_8bit.tiff',
   q//,
-  '76f4dd783661899ede132a87a7c68132462d0a60efe92906388c3aca1fb76130' );
+  'cdeea215166c095ef42557d63da3d037d16f4e7884e94b7db21e18e241d84f86' );
 
 #
 # 9) Test gray 4 bit image (with matte channel)
@@ -103,7 +101,7 @@
 testReadWrite(  'input_gray_4bit_matte.tiff',
   'output_gray_4bit_matte.tiff',
   q//,
-  '817ebd9cb521eca754aa3add8100be1b7865dc54510b830d67a57c254832d3d5' );
+  'aa1ccb94820722df3dbb8a84410b6e8f6d5a3e393e5b2204923a16182e0958b9' );
 
 #
 # 10) Test gray 8 bit image (with matte channel)
@@ -113,4 +111,4 @@
 testReadWrite(  'input_gray_8bit_matte.tiff',
   'output_gray_8bit_matte.tiff',
   q//,
-  '30206f5082b53a8f81d1b0e5dfec94b3513b15ee3fe87fb646a7fd5bf9c94c04' );
+  'fd4bf0cae6a978c301452178ae645a08cbd115659296a3fcfd5e07421bbaeb19' );
diff --git a/PerlMagick/t/write.t b/PerlMagick/t/write.t
index d55be8c..1681280 100644
--- a/PerlMagick/t/write.t
+++ b/PerlMagick/t/write.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -29,201 +29,196 @@
 testReadWrite( 'AVS:input.avs',
   'AVS:output.avs',
   q//,
-  '646ac633d5b5553721e032d2c9f8f54ffc19d315832bbf808c2b7321b1067293');
+  'cc6cd392e791804b817e825d48a37bc811f880f29e6d28e0ace3815eec687091');
 
 print("Microsoft Windows bitmap image file ...\n");
 ++$test;
 testReadWrite( 'BMP:input.bmp',
   'BMP:output.bmp',
   q//,
-  'e9b00f8a25976955cf8264391fc63f554396f4ac03d65cd0b1a2becbd667bc0b');
+  'a8e92cecc7ca058cb432a030f070793cb5be8cd09e74d07f963c81cc472af910');
 
 print("Microsoft Windows 24-bit bitmap image file ...\n");
 ++$test;
 testReadWrite( 'BMP:input.bmp24',
   'BMP:output.bmp24',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("ZSoft IBM PC multi-page Paintbrush file ...\n");
 ++$test;
 testReadWrite( 'DCX:input.dcx',
   'DCX:output.dcx',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Microsoft Windows 3.X DIB file ...\n");
 ++$test;
 testReadWrite( 'DIB:input.dib',
   'DIB:output.dib',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Flexible Image Transport System ...\n");
 ++$test;
 testReadWrite( 'FITS:input.fits',
   'FITS:output.fits',
   q//,
-  '72369bd71a89914a3db06b89b0b504d2b72d6cf4b8ecdf74ad3854cff05c2d33' );
+  '71f12148af77bf65bc7e0ff5fbe82b5d38416cd99c11470074436cfe42448b41' );
 
 print("CompuServe graphics interchange format ...\n");
 ++$test;
 testReadWrite( 'GIF:input.gif',
   'GIF:output.gif',
   q//,
-  '4db1c9f8cf10c1a9a7e80397b4cf060d2d31caae13ba712712e6341fb96bd6b0',
-  'e9b00f8a25976955cf8264391fc63f554396f4ac03d65cd0b1a2becbd667bc0b');
+  'a8e92cecc7ca058cb432a030f070793cb5be8cd09e74d07f963c81cc472af910');
 
 print("CompuServe graphics interchange format (1987) ...\n");
 ++$test;
 testReadWrite( 'GIF87:input.gif87',
   'GIF87:output.gif87',
   q//,
-  'a06fe5ec382d10ef6dce8d2bd729c4a57c66d82ed695e2786f1d1f280aaa17fb',
-  '5c45e316eba35ac44cbe55c74b81259a1419f85264e5bb35b79db4a91bf0e3f1');
+  '6ca156130053dcfd5515c531a2d43b5d166bb65ec9988bfbfd359f25b0a13f7e');
 
 print("Magick image file format ...\n");
 ++$test;
 testReadWrite( 'MIFF:input.miff',
   'MIFF:output.miff',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("MTV Raytracing image format ...\n");
 ++$test;
 testReadWrite( 'MTV:input.mtv',
   'MTV:output.mtv',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Portable bitmap format (black and white), ASCII format ...\n");
 ++$test;
 testReadWrite( 'PBM:input_p1.pbm',
   'PBM:output_p1.pbm',
   q/compression=>'None'/,
-  'dedb5873a990158f0e5abdebda8c8dfb32de0be16b2b191fcb476b754e000a7b');
+  '71e1a6be223e307b1dbf732860792b15adba662b7a7ef284daf7f982f874ccf1');
 
 print("Portable bitmap format (black and white), binary format ...\n");
 ++$test;
 testReadWrite( 'PBM:input_p4.pbm',
   'PBM:output_p4.pbm',
   q//,
-  'dedb5873a990158f0e5abdebda8c8dfb32de0be16b2b191fcb476b754e000a7b');
+  '71e1a6be223e307b1dbf732860792b15adba662b7a7ef284daf7f982f874ccf1');
 
 print("ZSoft IBM PC Paintbrush file ...\n");
 ++$test;
 testReadWrite( 'PCX:input.pcx',
   'PCX:output.pcx',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Portable graymap format (gray scale), ASCII format ...\n");
 ++$test;
 testReadWrite( 'PGM:input_p2.pgm',
   'PGM:output_p2.pgm',
   q/compression=>'None'/,
-  '63e162830260bb9892eb5a0e96301920e9cb4c6ed9016204dd58ededbb11923f');
+  '4385fd336eb1883fa41ad9b7f44a31c1a2923ae47b3d9650d395b9229b5e9198');
 
 print("Apple Macintosh QuickDraw/PICT file ...\n");
 ++$test;
 testReadWrite( 'PICT:input.pict',
   'PICT:output.pict',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Portable pixmap format (color), ASCII format ...\n");
 ++$test;
 testReadWrite( 'PPM:input_p3.ppm',
   'PPM:output_p3.ppm',
   q/compression=>'None'/,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Portable graymap format (gray scale), binary format ...\n");
 ++$test;
 testReadWrite( 'PGM:input_p5.pgm',
   'PGM:output_p5.pgm',
   q//,
-  '63e162830260bb9892eb5a0e96301920e9cb4c6ed9016204dd58ededbb11923f');
+  '4385fd336eb1883fa41ad9b7f44a31c1a2923ae47b3d9650d395b9229b5e9198');
 
 print("Portable pixmap format (color), binary format ...\n");
 ++$test;
 testReadWrite( 'PPM:input_p6.ppm',
   'PPM:output_p6.ppm',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Adobe Photoshop bitmap file ...\n");
 ++$test;
 testReadWrite( 'PSD:input.psd',
   'PSD:output.psd',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 print("Irix RGB image file ...\n");
 ++$test;
 testReadWrite( 'SGI:input.sgi',
   'SGI:output.sgi',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("SUN 1-bit Rasterfile ...\n");
 ++$test;
 testReadWrite( 'SUN:input.im1',
   'SUN:output.im1',
   q//,
-  '678af4d3e2f78a1ef30cb1df2bd6f00b347082f5b3560257aacd9ac40fb47d63');
+  '49d4c40abae73a1d6169dc1f0262e89ad5dc8a9f64e7feef3430090768e629c4');
 
 print("SUN 8-bit Rasterfile ...\n");
 ++$test;
 testReadWrite( 'SUN:input.im8',
   'SUN:output.im8',
   q//,
-  'a4c13fd97d6b9b32c016793d6ae2b01cee048b5f2790de8daaacccdf1c4b6956',
-  '8702000d509b897e48dc4834cf7fa1c2bf1a72ecc0d74a703e780f29b0835250');
+  '0249e226dd79884d3552aa50951c2689859e4c0c5f708da05fff9c6c93e66cb2');
 
 print("SUN True-Color Rasterfile ...\n");
 ++$test;
 testReadWrite( 'SUN:input.im24',
   'SUN:output.im24',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Truevision Targa image file ...\n");
 ++$test;
 testReadWrite( 'TGA:input.tga',
   'TGA:output.tga',
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7');
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');
 
 print("Khoros Visualization image file ...\n");
 ++$test;
 testReadWrite( 'VIFF:input.viff',
   'VIFF:output.viff',
   q//,
-  'c211b4dd4e0c3b1d42a96682b0d290ae6bed5652670abe3c7fcca54503611b3c',
-  '43783afb71012dcc4860d856a171246019f555d402dad04f61a27e8db09ef58b');
+  'cc0595eb4b8096cf76f84ff0c03607f5112fbab9d4fb32ef9305f5ce4545d00a');
 
 print("WBMP (Wireless Bitmap (level 0) image) ...\n");
 ++$test;
 testReadWrite( 'WBMP:input.wbmp',
   'WBMP:output.wbmp',
   q//,
-  '49279b862c8528fd47023b65361c6fc7081677311893d6c80ce577d463a948d8');
+  '8833a92cbe11a3b925a1b7edffd6508d7b12dd50e3f4907ca8d77917f6e4e697');
 
 print("X Windows system bitmap (black and white only) ...\n");
 ++$test;
 testReadWrite( 'XBM:input.xbm',
   'XBM:output.xbm',
   q//,
-  '38e65935f34b9814ce2c4d839ccd0438a3d8c2cfed93e6e0eb881787c28a91a4');
+  '49d4c40abae73a1d6169dc1f0262e89ad5dc8a9f64e7feef3430090768e629c4');
 
 print("X Windows system pixmap file (color) ...\n");
 ++$test;
 testReadWrite( 'XPM:input.xpm',
   'XPM:output.xpm',
   q//,
-  'a4c13fd97d6b9b32c016793d6ae2b01cee048b5f2790de8daaacccdf1c4b6956',
-  '8702000d509b897e48dc4834cf7fa1c2bf1a72ecc0d74a703e780f29b0835250');
+  '0249e226dd79884d3552aa50951c2689859e4c0c5f708da05fff9c6c93e66cb2');
 
 print("CMYK format ...\n");
 ++$test;
@@ -232,7 +227,7 @@
   '70x46',
   8,
   q//,
-  'f39e32b55a8ed4b2cc12c431cfe64fd0462f9aa0fb0122066f4010b562d5fe47');
+  '243b587fb295eb5c17b54a8b6768da139dd09b98bafcef569778ab941c6114ec');
 
 print("GRAY format ...\n");
 ++$test;
@@ -241,7 +236,7 @@
   '70x46',
   8,
   q//,
-  '6e885bb6b3f0edd30266f9c59f453f93452dd551bf4b2618938a377b8c8d0b66' );
+  'f03c7a969bf0d9f32821b0fa33895929b47f1994d6428822ae544d1a72c6a397' );
 
 print("RGB format ...\n");
 ++$test;
@@ -250,8 +245,7 @@
   '70x46',
   8,
   q//,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
-
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 print("RGBA format ...\n");
 ++$test;
@@ -260,6 +254,6 @@
   '70x46',
   8,
   q//,
-  '646ac633d5b5553721e032d2c9f8f54ffc19d315832bbf808c2b7321b1067293' );
+  'cc6cd392e791804b817e825d48a37bc811f880f29e6d28e0ace3815eec687091' );
 
 1;
diff --git a/PerlMagick/t/x11/write.t b/PerlMagick/t/x11/write.t
index 8b826e9..7c6d0bd 100644
--- a/PerlMagick/t/x11/write.t
+++ b/PerlMagick/t/x11/write.t
@@ -42,4 +42,4 @@
 testReadWrite( 'XWD:input.xwd',

   'XWD:output.xwd',

   q//,

-  '6a4a257921582768b774aeeac549b7c0c0b51f665395eddf921cce53a0ad2a33');

+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e');

diff --git a/PerlMagick/t/zlib/read.t b/PerlMagick/t/zlib/read.t
index 1cae240..a7626ba 100644
--- a/PerlMagick/t/zlib/read.t
+++ b/PerlMagick/t/zlib/read.t
@@ -20,7 +20,7 @@
 # 1) Test reading Zip compressed MIFF
 # 
 testRead( 'input.miff',
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 #
 # 3) Test reading Zip stream-compressed MIFF (.gz extension)
@@ -28,4 +28,4 @@
 print("Reading Zip stream-compressed MIFF (.gz extension) ...\n");
 ++$test;
 testRead( 'input.miff.gz',
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
diff --git a/PerlMagick/t/zlib/write.t b/PerlMagick/t/zlib/write.t
index b0aef40..4afcefb 100644
--- a/PerlMagick/t/zlib/write.t
+++ b/PerlMagick/t/zlib/write.t
@@ -21,7 +21,7 @@
 testReadWrite( 'input.miff',
   'output.miff',
   q/compression=>'Zip'/,
-  'f7b3db46d6f696ea8392f0ad0be945dd502a806e2c1e9c082efef517191758f7' );
+  'd0b17026dc758a4088c96bc0f21a2bf14e3ab4af8a35638129f7731f2f1cbe7e' );
 
 $test = 0;  # Quench PERL compliaint
 
diff --git a/QuickStart.txt b/QuickStart.txt
index 65f17ca..55ae0f4 100644
--- a/QuickStart.txt
+++ b/QuickStart.txt
@@ -27,15 +27,15 @@
   Set the MAGICK_HOME environment variable to the path where you extracted the
   ImageMagick files. For example
 
-     export MAGICK_HOME="$HOME/ImageMagick-7.0.2"
+     export MAGICK_HOME="$HOME/ImageMagick-7.0.9"
 
   On Linux and Solaris machines set the LD_LIBRARY_PATH environment variable:
 
-     export LD_LIBRARY_PATH="$HOME/ImageMagick-7.0.2/lib"
+     export LD_LIBRARY_PATH="$HOME/ImageMagick-7.0.9/lib"
 
   On Mac OS X (Darwin) machines set the DYLD_LIBRARY_PATH environment variable:
 
-     export DYLD_LIBRARY_PATH="$HOME/ImageMagick-7.0.2/lib"
+     export DYLD_LIBRARY_PATH="$HOME/ImageMagick-7.0.9/lib"
 
   Now, test ImageMagick to see if it is working
 
@@ -44,7 +44,7 @@
 
   To install PerlMagick type
 
-      cd ImageMagick-7.0.2/PerlMagick
+      cd ImageMagick-7.0.9/PerlMagick
       perl Makefile.PL
       make
       make install
@@ -68,7 +68,7 @@
 
           $MAGICK_CONFIGURE_PATH
           $MAGICK_HOME/etc/ImageMagick
-          $MAGICK_HOME/share/ImageMagick-7.0.2/config
+          $MAGICK_HOME/share/ImageMagick-7.0.9/config
           $HOME/.config/ImageMagick/
           <client path>/etc/ImageMagick/
           <current directory>/
@@ -81,7 +81,7 @@
 
           $MAGICK_CONFIGURE_PATH
           $MAGICK_HOME/etc/ImageMagick
-          $MAGICK_HOME/share/ImageMagick-7.0.2/config
+          $MAGICK_HOME/share/ImageMagick-7.0.9/config
           $HOME/.config/ImageMagick/
           <client path>/etc/ImageMagick/
           <current directory>/
@@ -98,7 +98,7 @@
           $HOME/.config/ImageMagick/
           <client path>/../etc/ImageMagick/modules-Q16/coders/
           $MAGICK_HOME/etc/ImageMagick/modules-Q16/coders
-          $MAGICK_HOME/share/ImageMagick-7.0.2/modules-Q16/coders
+          $MAGICK_HOME/share/ImageMagick-7.0.9/modules-Q16/coders
           $HOME/.config/ImageMagick/
           <client path>/etc/ImageMagick/modules-Q16/coders
           <current directory>/
@@ -107,10 +107,10 @@
 
   Download one of
 
-      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.2-0-Q16-windows-dll.exe
-      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.2-0-Q16-windows-static.exe
-      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.2-0-Q8-windows-dll.exe
-      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.2-0-Q8-windows-static.exe
+      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-15-Q16-windows-dll.exe
+      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-15-Q16-windows-static.exe
+      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-15-Q8-windows-dll.exe
+      ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-15-Q8-windows-static.exe
 
   and execute it (or "open" it from your browser) to start the installation
   program.
diff --git a/README.md b/README.md
index f8d6750..db10bb3 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,11 @@
-ImageMagick
-===========
+# ImageMagick  [![Build Status](https://travis-ci.org/ImageMagick/ImageMagick.svg?branch=master)](https://travis-ci.org/ImageMagick/ImageMagick) [![Build status](https://ci.appveyor.com/api/projects/status/jk7yr5plamnuh9g6/branch/master?svg=true)](https://ci.appveyor.com/project/dlemstra/imagemagick-windows/branch/master) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/imagemagick.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:imagemagick)
 
 <p align="center">
 <img align="center" src="https://imagemagick.org/image/wizard.png" alt="ImageMagick logo" width="265"/>
+</p>
 
 Use [ImageMagick®](https://imagemagick.org/) to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
 
-
-| Version | *nix | Windows |
-| ------------- | ------------- | ------------- |
-| 7 | [![Build Status](https://travis-ci.org/ImageMagick/ImageMagick.svg?branch=master)](https://travis-ci.org/ImageMagick/ImageMagick) | [![Build status](https://ci.appveyor.com/api/projects/status/jk7yr5plamnuh9g6/branch/master?svg=true)](https://ci.appveyor.com/project/dlemstra/imagemagick-windows/branch/master) |
-| 6 | [![Build Status](https://travis-ci.org/ImageMagick/ImageMagick6.svg?branch=master)](https://travis-ci.org/ImageMagick/ImageMagick6) | [![Build status](https://ci.appveyor.com/api/projects/status/jk7yr5plamnuh9g6/branch/ImageMagick-Windows-6?svg=true)](https://ci.appveyor.com/project/dlemstra/imagemagick-windows/branch/ImageMagick-Windows-6) |
-
 #### What is ImageMagick?
 
 The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), magick (R), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.
@@ -22,7 +16,7 @@
 
 The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.
 
-The current release is the ImageMagick 7.0.8 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
+The current release is the ImageMagick 7.0.9 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
 
 The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://gitlab.com/ImageMagick.
 
diff --git a/README.txt b/README.txt
index 32adf1a..240f562 100644
--- a/README.txt
+++ b/README.txt
@@ -30,7 +30,7 @@
   that includes memory error and thread data race detection to prevent
   security vulnerabilities.
 
-  The current release is the ImageMagick 7.0.8-* series. It runs on Linux,
+  The current release is the ImageMagick 7.0.9-* series. It runs on Linux,
   Windows, Mac Os X, iOS, Android OS, and others.
 
   The authoritative ImageMagick web site is https://imagemagick.org. The
diff --git a/androidconfigure b/androidconfigure
index b395718..667bcac 100755
--- a/androidconfigure
+++ b/androidconfigure
@@ -28,7 +28,7 @@
   export CFLAGS="-fPIE -fPIC"
   export LDFLAGS="-pie"
 
-  ./configure --host=${HOST}
+  ./configure --host=${HOST} --without-zlib
 
   mkdir -p configs/${ARCH}/MagickCore
   mv MagickCore/version.h configs/${ARCH}/MagickCore/
diff --git a/build/check-tests.sh b/build/check-tests.sh
index bcab6b5..a75de8f 100755
--- a/build/check-tests.sh
+++ b/build/check-tests.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
 
-if git diff --name-only HEAD~1 HEAD | grep ChangeLog; then
-    echo "##vso[task.setvariable variable=RunTests;isOutput=true]true"
-fi
\ No newline at end of file
+#if git diff --name-only HEAD~1 HEAD | grep ChangeLog; then
+#    echo "##vso[task.setvariable variable=RunTests;isOutput=true]true"
+#fi
\ No newline at end of file
diff --git a/coders/Android.bp b/coders/Android.bp
index 6e27324..7235d2a 100644
--- a/coders/Android.bp
+++ b/coders/Android.bp
@@ -19,21 +19,9 @@
 
     srcs: ["dds.c", "jpeg.c", "xc.c"],
 
-    exclude_srcs: [
-        // Removed because requires LIBTIFF
-        "tiff.c",
-    ],
-
-    cflags: [
-        "-DHAVE_CONFIG_H",
-        "-Wall",
-        "-Werror",
-        "-Wno-for-loop-analysis",
-        "-Wno-sign-compare",
-        "-Wno-unused-function",
-        "-Wno-unused-parameter",
-    ],
+    cflags: ["-DHAVE_CONFIG_H"],
 
     header_libs: ["Magick_headers"],
     static_libs: ["libjpeg_static_ndk"],
+    visibility: ["//vendor:__subpackages__"],
 }
diff --git a/coders/Make.com b/coders/Make.com
index 6242120..9bc5967 100755
--- a/coders/Make.com
+++ b/coders/Make.com
@@ -121,6 +121,7 @@
 $call Make tiff.c
 $call Make tile.c
 $call Make tim.c
+$call Make tim2.c
 $call Make ttf.c
 $call Make txt.c
 $call Make uil.c
@@ -155,7 +156,7 @@
   jnx,json,hdr,label,cals,caption,palm,mac,magick,map,mat,matte,pango,rgf, -
   meta,miff,mpc,mpr,msl,mpeg,mono,mtv,mvg,null,otb,pattern,pcd,pcl,pcx,pdb, -
   pdf,pes,pict,pix,plasma,png,pnm,preview,ps,ps2,ps3,psd,pwp,raw,rgb,rla,rle, -
-  sct,sfw,sgi,stegano,sun,svg,tga,thumbnail,tiff,tile,tim,ttf,txt,uil,url, -
+  sct,sfw,sgi,stegano,sun,svg,tga,thumbnail,tiff,tile,tim,tim2,ttf,txt,uil,url, -
   uyvy,vicar,vid,viff,wbmp,webp,wmf,wpg,x,xbm,xc,xcf,xpm,xps,xwd,ycbcr,yuv, -
   mask,screenshot,vips,sixel,xtrn, -
   cin,magick,scr,[-.magickcore]compress,[-.magickcore]prervicccm
diff --git a/coders/Makefile.am b/coders/Makefile.am
index eed0681..67a891c 100644
--- a/coders/Makefile.am
+++ b/coders/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -57,6 +57,11 @@
 MAGICKCORE_JPEG_SRCS = coders/jpeg.c
 endif
 
+if JXL_DELEGATE
+MAGICKCORE_JXL_MODULES = coders/jxl.la
+MAGICKCORE_JXL_SRCS = coders/jxl.c
+endif
+
 if LIBOPENJP2_DELEGATE
 MAGICKCORE_JP2_MODULES = coders/jp2.la
 MAGICKCORE_JP2_SRCS = coders/jp2.c
@@ -98,117 +103,255 @@
 
 MAGICKCORE_CODER_SRCS = \
 	coders/aai.c \
+	coders/aai.h \
 	coders/art.c \
+	coders/art.h \
 	coders/avs.c \
+	coders/avs.h \
 	coders/bgr.c \
+	coders/bgr.h \
 	coders/bmp.c \
+	coders/bmp.h \
 	coders/braille.c \
+	coders/braille.h \
+	coders/bytebuffer-private.h \
 	coders/cals.c \
+	coders/cals.h \
 	coders/caption.c \
+	coders/caption.h \
 	coders/cin.c \
+	coders/cin.h \
 	coders/cip.c \
+	coders/cip.h \
+	coders/clipboard.h \
 	coders/clip.c \
+	coders/clip.h \
 	coders/cmyk.c \
+	coders/cmyk.h \
+	coders/coders.h \
+	coders/coders-list.h \
+	coders/coders-private.h \
 	coders/cube.c \
+	coders/cube.h \
 	coders/cut.c \
+	coders/cut.h \
 	coders/dcm.c \
+	coders/dcm.h \
 	coders/dds.c \
+	coders/dds.h \
 	coders/debug.c \
+	coders/debug.h \
 	coders/dib.c \
+	coders/dib.h \
+	coders/djvu.h \
 	coders/dng.c \
+	coders/dng.h \
 	coders/dot.c \
+	coders/dot.h \
+	coders/dps.h \
 	coders/dpx.c \
+	coders/dpx.h \
+	coders/emf.h \
+	coders/ept.h \
+	coders/exr.h \
 	coders/fax.c \
+	coders/fax.h \
 	coders/fits.c \
+	coders/fits.h \
+	coders/flif.h \
+	coders/fpx.h \
+	coders/ghostscript-private.h \
 	coders/gif.c \
+	coders/gif.h \
 	coders/gradient.c \
+	coders/gradient.h \
 	coders/gray.c \
+	coders/gray.h \
 	coders/hald.c \
+	coders/hald.h \
 	coders/hdr.c \
+	coders/hdr.h \
+	coders/heic.h \
 	coders/histogram.c \
+	coders/histogram.h \
 	coders/hrz.c \
+	coders/hrz.h \
 	coders/html.c \
+	coders/html.h \
 	coders/icon.c \
+	coders/icon.h \
 	coders/info.c \
+	coders/info.h \
 	coders/inline.c \
+	coders/inline.h \
 	coders/ipl.c \
+	coders/ipl.h \
+	coders/jbig.h \
 	coders/jnx.c \
+	coders/jnx.h \
+	coders/jp2.h \
+	coders/jpeg.h \
 	coders/json.c \
+	coders/json.h \
+	coders/jxl.h \
 	coders/label.c \
+	coders/label.h \
 	coders/mac.c \
+	coders/mac.h \
 	coders/magick.c \
+	coders/magick.h \
 	coders/map.c \
+	coders/map.h \
 	coders/mask.c \
+	coders/mask.h \
 	coders/mat.c \
+	coders/mat.h \
 	coders/matte.c \
+	coders/matte.h \
 	coders/meta.c \
+	coders/meta.h \
 	coders/miff.c \
+	coders/miff.h \
 	coders/mono.c \
+	coders/mono.h \
 	coders/mpc.c \
+	coders/mpc.h \
 	coders/mpeg.c \
+	coders/mpeg.h \
 	coders/mpr.c \
+	coders/mpr.h \
 	coders/msl.c \
+	coders/msl.h \
 	coders/mtv.c \
+	coders/mtv.h \
 	coders/mvg.c \
+	coders/mvg.h \
 	coders/null.c \
+	coders/null.h \
 	coders/otb.c \
+	coders/otb.h \
 	coders/palm.c \
+	coders/palm.h \
 	coders/pango.c \
+	coders/pango.h \
 	coders/pattern.c \
+	coders/pattern.h \
 	coders/pcd.c \
+	coders/pcd.h \
 	coders/pcl.c \
+	coders/pcl.h \
 	coders/pcx.c \
+	coders/pcx.h \
 	coders/pdb.c \
+	coders/pdb.h \
 	coders/pdf.c \
+	coders/pdf.h \
 	coders/pes.c \
+	coders/pes.h \
 	coders/pgx.c \
+	coders/pgx.h \
 	coders/pict.c \
+	coders/pict.h \
 	coders/pix.c \
+	coders/pix.h \
 	coders/plasma.c \
+	coders/plasma.h \
+	coders/png.h \
 	coders/pnm.c \
-	coders/ps.c \
+	coders/pnm.h \
 	coders/ps2.c \
+	coders/ps2.h \
 	coders/ps3.c \
+	coders/ps3.h \
+	coders/ps.c \
 	coders/psd.c \
+	coders/psd.h \
 	coders/psd-private.h \
+	coders/psd-private.h \
+	coders/ps.h \
 	coders/pwp.c \
+	coders/pwp.h \
 	coders/raw.c \
+	coders/raw.h \
 	coders/rgb.c \
+	coders/rgb.h \
 	coders/rgf.c \
+	coders/rgf.h \
 	coders/rla.c \
+	coders/rla.h \
 	coders/rle.c \
+	coders/rle.h \
 	coders/scr.c \
 	coders/screenshot.c \
+	coders/screenshot.h \
+	coders/scr.h \
 	coders/sct.c \
+	coders/sct.h \
 	coders/sfw.c \
+	coders/sfw.h \
 	coders/sgi.c \
+	coders/sgi.h \
 	coders/sixel.c \
+	coders/sixel.h \
 	coders/stegano.c \
+	coders/stegano.h \
 	coders/sun.c \
+	coders/sun.h \
 	coders/svg.c \
+	coders/svg.h \
 	coders/tga.c \
+	coders/tga.h \
 	coders/thumbnail.c \
+	coders/thumbnail.h \
+	coders/tiff.h \
 	coders/tile.c \
+	coders/tile.h \
+	coders/tim2.c \
+	coders/tim2.h \
 	coders/tim.c \
+	coders/tim.h \
 	coders/ttf.c \
+	coders/ttf.h \
 	coders/txt.c \
+	coders/txt.h \
 	coders/uil.c \
+	coders/uil.h \
 	coders/url.c \
+	coders/url.h \
 	coders/uyvy.c \
+	coders/uyvy.h \
 	coders/vicar.c \
+	coders/vicar.h \
 	coders/vid.c \
+	coders/vid.h \
 	coders/viff.c \
+	coders/viff.h \
 	coders/vips.c \
+	coders/vips.h \
 	coders/wbmp.c \
+	coders/wbmp.h \
+	coders/webp.h \
+	coders/wmf.h \
 	coders/wpg.c \
+	coders/wpg.h \
 	coders/xbm.c \
+	coders/xbm.h \
 	coders/xc.c \
 	coders/xcf.c \
+	coders/xcf.h \
+	coders/xc.h \
+	coders/x.h \
 	coders/xpm.c \
+	coders/xpm.h \
 	coders/xps.c \
+	coders/xps.h \
 	coders/xtrn.c \
+	coders/xtrn.h \
+	coders/xwd.h \
 	coders/ycbcr.c \
+	coders/ycbcr.h \
 	coders/yuv.c \
+	coders/yuv.h \
 	$(MAGICKCORE_DPS_SRCS) \
 	$(MAGICKCORE_DJVU_SRCS) \
 	$(MAGICKCORE_EXR_SRCS) \
@@ -219,6 +362,7 @@
 	$(MAGICKCORE_JBIG_SRCS) \
 	$(MAGICKCORE_JPEG_SRCS) \
 	$(MAGICKCORE_JP2_SRCS) \
+	$(MAGICKCORE_JXL_SRCS) \
 	$(MAGICKCORE_PNG_SRCS) \
 	$(MAGICKCORE_TIFF_SRCS) \
 	$(MAGICKCORE_WEBP_SRCS) \
@@ -232,6 +376,7 @@
 	coders/bgr.h \
 	coders/bmp.h \
 	coders/braille.h \
+	coders/bytebuffer-private.h \
 	coders/cals.h \
 	coders/caption.h \
 	coders/cin.h \
@@ -260,6 +405,7 @@
 	coders/fits.h \
 	coders/flif.h \
 	coders/fpx.h \
+	coders/ghostscript-private.h \
 	coders/gif.h \
 	coders/gradient.h \
 	coders/gray.h \
@@ -278,6 +424,7 @@
 	coders/jp2.h \
 	coders/jpeg.h \
 	coders/json.h \
+	coders/jxl.h \
 	coders/label.h \
 	coders/mac.h \
 	coders/magick.h \
@@ -336,6 +483,7 @@
 	coders/tiff.h \
 	coders/tile.h \
 	coders/tim.h \
+	coders/tim2.h \
 	coders/ttf.h \
 	coders/txt.h \
 	coders/uil.h \
@@ -358,7 +506,7 @@
 	coders/xtrn.h \
 	coders/xwd.h \
 	coders/ycbcr.h \
-	coders/yuv.h 
+	coders/yuv.h
 
 if WITH_MODULES
 coders_LTLIBRARIES = \
@@ -453,6 +601,7 @@
 	coders/thumbnail.la \
 	coders/tile.la \
 	coders/tim.la \
+	coders/tim2.la \
 	coders/ttf.la \
 	coders/txt.la \
 	coders/uil.la \
@@ -482,6 +631,7 @@
 	$(MAGICKCORE_JBIG_MODULES) \
 	$(MAGICKCORE_JPEG_MODULES) \
 	$(MAGICKCORE_JP2_MODULES) \
+	$(MAGICKCORE_JXL_MODULES) \
 	$(MAGICKCORE_PNG_MODULES) \
 	$(MAGICKCORE_TIFF_MODULES) \
 	$(MAGICKCORE_WEBP_MODULES) \
@@ -785,6 +935,12 @@
 coders_json_la_LDFLAGS     = $(MODULECOMMONFLAGS)
 coders_json_la_LIBADD      = $(MAGICKCORE_LIBS)
 
+# JXL coder module
+coders_jxl_la_SOURCES      = coders/jxl.c
+coders_jxl_la_CPPFLAGS     = $(MAGICK_CODER_CPPFLAGS)
+coders_jxl_la_LDFLAGS      = $(MODULECOMMONFLAGS)
+coders_jxl_la_LIBADD       = $(MAGICKCORE_LIBS) $(JXL_LIBS)
+
 # LABEL coder module
 coders_label_la_SOURCES    = coders/label.c
 coders_label_la_CPPFLAGS   = $(MAGICK_CODER_CPPFLAGS)
@@ -1121,6 +1277,12 @@
 coders_tim_la_LDFLAGS      = $(MODULECOMMONFLAGS)
 coders_tim_la_LIBADD       = $(MAGICKCORE_LIBS)
 
+# TIM2 coder module
+coders_tim2_la_SOURCES      = coders/tim2.c
+coders_tim2_la_CPPFLAGS     = $(MAGICK_CODER_CPPFLAGS)
+coders_tim2_la_LDFLAGS      = $(MODULECOMMONFLAGS)
+coders_tim2_la_LIBADD       = $(MAGICKCORE_LIBS)
+
 # TTF coder module
 coders_ttf_la_SOURCES      = coders/ttf.c
 coders_ttf_la_CPPFLAGS     = $(MAGICK_CODER_CPPFLAGS)
diff --git a/coders/aai.c b/coders/aai.c
index dc05a18..3e684fe 100644
--- a/coders/aai.c
+++ b/coders/aai.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/aai.h b/coders/aai.h
index 40fc043..d9157c0 100644
--- a/coders/aai.h
+++ b/coders/aai.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/art.c b/coders/art.c
index 834d382..1872dc7 100644
--- a/coders/art.c
+++ b/coders/art.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -97,9 +97,6 @@
 */
 static Image *ReadARTImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
-
   Image
     *image;
 
@@ -116,6 +113,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -157,22 +157,25 @@
   if (quantum_info == (QuantumInfo *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   length=GetQuantumExtent(image,quantum_info,GrayQuantum);
+  pixels=GetQuantumPixels(quantum_info);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
+    const void
+      *stream;
+
     register Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
-    pixels=(const unsigned char *) ReadBlobStream(image,length,
-      GetQuantumPixels(quantum_info),&count);
+    stream=ReadBlobStream(image,length,pixels,&count);
     if (count != (ssize_t) length)
       break;
     (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-      GrayQuantum,pixels,exception);
-    pixels=(const unsigned char *) ReadBlobStream(image,(size_t) (-(ssize_t)
-      length) & 0x01,GetQuantumPixels(quantum_info),&count);
+      GrayQuantum,(unsigned char *) stream,exception);
+    stream=ReadBlobStream(image,(size_t) (-(ssize_t) length) & 0x01,pixels,
+      &count);
     if (SyncAuthenticPixels(image,exception) == MagickFalse)
       break;
     if (SetImageProgress(image,LoadImageTag,y,image->rows) == MagickFalse)
diff --git a/coders/art.h b/coders/art.h
index 3a58c33..854d4e3 100644
--- a/coders/art.h
+++ b/coders/art.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/avs.c b/coders/avs.c
index 6dbf540..3834419 100644
--- a/coders/avs.c
+++ b/coders/avs.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/avs.h b/coders/avs.h
index c04230e..0f17935 100644
--- a/coders/avs.h
+++ b/coders/avs.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bgr.c b/coders/bgr.c
index 215f66d..8987473 100644
--- a/coders/bgr.c
+++ b/coders/bgr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -97,11 +97,10 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-static Image *ReadBGRImage(const ImageInfo *image_info,
-  ExceptionInfo *exception)
+static Image *ReadBGRImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -129,6 +128,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -182,7 +184,7 @@
       image->alpha_trait=BlendPixelTrait;
       canvas_image->alpha_trait=BlendPixelTrait;
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -193,8 +195,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -203,6 +204,7 @@
   length=0;
   scene=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -225,8 +227,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -251,10 +252,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,quantum_type,pixels,exception);
+            quantum_info,quantum_type,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -285,8 +286,7 @@
               if (status == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         break;
       }
@@ -307,8 +307,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -336,10 +335,10 @@
             if (q == (Quantum *) NULL)
               break;
             length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-              quantum_info,quantum_type,pixels,exception);
+              quantum_info,quantum_type,(unsigned char *) stream,exception);
             if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
               break;
-            if (((y-image->extract_info.y) >= 0) && 
+            if (((y-image->extract_info.y) >= 0) &&
                 ((y-image->extract_info.y) < (ssize_t) image->rows))
               {
                 p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -387,8 +386,7 @@
                 if (SyncAuthenticPixels(image,exception) == MagickFalse)
                   break;
               }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
           if (image->previous == (Image *) NULL)
             {
@@ -408,8 +406,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -434,10 +431,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -456,8 +453,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -488,10 +484,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -510,8 +506,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -542,10 +537,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -564,8 +559,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -604,10 +598,10 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,AlphaQuantum,pixels,exception);
+                quantum_info,AlphaQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
-              if (((y-image->extract_info.y) >= 0) && 
+              if (((y-image->extract_info.y) >= 0) &&
                   ((y-image->extract_info.y) < (ssize_t) image->rows))
                 {
                   p=GetVirtualPixels(canvas_image,
@@ -627,8 +621,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                 }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -657,8 +650,8 @@
         if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse)
           {
             status=MagickFalse;
-            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
-              image->filename);
+            ThrowFileException(exception,CorruptImageError,
+              "UnexpectedEndOfFile",image->filename);
             break;
           }
         length=GetQuantumExtent(canvas_image,quantum_info,BlueQuantum);
@@ -666,16 +659,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -699,10 +690,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -721,8 +712,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -740,16 +730,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -773,10 +761,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -795,8 +783,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -814,16 +801,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -847,10 +832,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -869,8 +854,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -890,16 +874,14 @@
             {
               for (y=0; y < (ssize_t) image->extract_info.height; y++)
               {
-                pixels=(const unsigned char *) ReadBlobStream(image,length,
-                  GetQuantumPixels(quantum_info),&count);
+                stream=ReadBlobStream(image,length,pixels,&count);
                 if (count != (ssize_t) length)
                   break;
               }
               if (count != (ssize_t) length)
                 break;
             }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
               register const Quantum
@@ -923,10 +905,10 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,BlueQuantum,pixels,exception);
+                quantum_info,BlueQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
-              if (((y-image->extract_info.y) >= 0) && 
+              if (((y-image->extract_info.y) >= 0) &&
                   ((y-image->extract_info.y) < (ssize_t) image->rows))
                 {
                   p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
@@ -945,8 +927,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
diff --git a/coders/bgr.h b/coders/bgr.h
index 13a00ae..866c2c7 100644
--- a/coders/bgr.h
+++ b/coders/bgr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bmp.c b/coders/bmp.c
index bcbb150..6ea9bc1 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -18,7 +18,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -524,6 +524,9 @@
     profile_size,
     start_position;
 
+  MagickSizeType
+    blob_size;
+
   MemoryInfo
     *pixel_info;
 
@@ -586,6 +589,7 @@
   count=ReadBlob(image,2,magick);
   if (count != 2)
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  blob_size=GetBlobSize(image);
   do
   {
     PixelInfo
@@ -653,20 +657,22 @@
         /*
           Microsoft Windows BMP image file.
         */
-        if (bmp_info.size < 40)
-          ThrowReaderException(CorruptImageError,"NonOS2HeaderSizeError");
         bmp_info.width=(ssize_t) ReadBlobLSBSignedLong(image);
         bmp_info.height=(ssize_t) ReadBlobLSBSignedLong(image);
         bmp_info.planes=ReadBlobLSBShort(image);
         bmp_info.bits_per_pixel=ReadBlobLSBShort(image);
         bmp_info.compression=ReadBlobLSBLong(image);
-        bmp_info.image_size=ReadBlobLSBLong(image);
-        bmp_info.x_pixels=ReadBlobLSBLong(image);
-        bmp_info.y_pixels=ReadBlobLSBLong(image);
-        bmp_info.number_colors=ReadBlobLSBLong(image);
-        if ((MagickSizeType) bmp_info.number_colors > GetBlobSize(image))
-          ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
-        bmp_info.colors_important=ReadBlobLSBLong(image);
+        if (bmp_info.size > 16)
+          {
+            bmp_info.image_size=ReadBlobLSBLong(image);
+            bmp_info.x_pixels=ReadBlobLSBLong(image);
+            bmp_info.y_pixels=ReadBlobLSBLong(image);
+            bmp_info.number_colors=ReadBlobLSBLong(image);
+            if ((MagickSizeType) bmp_info.number_colors > blob_size)
+              ThrowReaderException(CorruptImageError,
+                "InsufficientImageDataInFile");
+            bmp_info.colors_important=ReadBlobLSBLong(image);
+          }
         if (image->debug != MagickFalse)
           {
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -723,9 +729,12 @@
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
               "  Number of colors: %u",bmp_info.number_colors);
           }
-        bmp_info.red_mask=ReadBlobLSBLong(image);
-        bmp_info.green_mask=ReadBlobLSBLong(image);
-        bmp_info.blue_mask=ReadBlobLSBLong(image);
+        if ((bmp_info.size > 40) || (bmp_info.compression == BI_BITFIELDS))
+          {
+            bmp_info.red_mask=ReadBlobLSBLong(image);
+            bmp_info.green_mask=ReadBlobLSBLong(image);
+            bmp_info.blue_mask=ReadBlobLSBLong(image);
+          }
         if (bmp_info.size > 40)
           {
             double
@@ -826,14 +835,17 @@
             (void) ReadBlobLSBLong(image);  /* Reserved byte */
           }
       }
-    if ((MagickSizeType) bmp_info.file_size > GetBlobSize(image))
-      (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-        "LengthAndFilesizeDoNotMatch","`%s'",image->filename);
-    else
-      if ((MagickSizeType) bmp_info.file_size < GetBlobSize(image))
-        (void) ThrowMagickException(exception,GetMagickModule(),
-          CorruptImageWarning,"LengthAndFilesizeDoNotMatch","`%s'",
-          image->filename);
+    if ((MagickSizeType) bmp_info.file_size != blob_size)
+      {
+        ExceptionType
+          severity;
+
+        severity=CorruptImageWarning;
+        if ((MagickSizeType) bmp_info.file_size > blob_size + 4)
+          severity=CorruptImageError;
+        (void) ThrowMagickException(exception,GetMagickModule(),severity,
+          "LengthAndFilesizeDoNotMatch","`%s'",image->filename);
+      }
     if (bmp_info.width <= 0)
       ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
     if (bmp_info.height == 0)
@@ -847,11 +859,11 @@
     if (bmp_info.bits_per_pixel < 16 &&
         bmp_info.number_colors > (1U << bmp_info.bits_per_pixel))
       ThrowReaderException(CorruptImageError,"UnrecognizedNumberOfColors");
-    if ((bmp_info.compression == 1) && (bmp_info.bits_per_pixel != 8))
+    if ((bmp_info.compression == BI_RLE8) && (bmp_info.bits_per_pixel != 8))
       ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
-    if ((bmp_info.compression == 2) && (bmp_info.bits_per_pixel != 4))
+    if ((bmp_info.compression == BI_RLE4) && (bmp_info.bits_per_pixel != 4))
       ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
-    if ((bmp_info.compression == 3) && (bmp_info.bits_per_pixel < 16))
+    if ((bmp_info.compression == BI_BITFIELDS) && (bmp_info.bits_per_pixel < 16))
       ThrowReaderException(CorruptImageError,"UnsupportedBitsPerPixel");
     switch (bmp_info.compression)
     {
@@ -958,7 +970,7 @@
       bmp_info.bits_per_pixel<<=1;
     bytes_per_line=4*((image->columns*bmp_info.bits_per_pixel+31)/32);
     length=(size_t) bytes_per_line*image->rows;
-    if ((MagickSizeType) (length/256) > GetBlobSize(image))
+    if ((MagickSizeType) (length/256) > blob_size)
       ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
     if ((bmp_info.compression == BI_RGB) ||
         (bmp_info.compression == BI_BITFIELDS))
@@ -1457,7 +1469,7 @@
         offset=start_position+14+profile_data;
         if ((offset < TellBlob(image)) ||
             (SeekBlob(image,offset,SEEK_SET) != offset) ||
-            (GetBlobSize(image) < (MagickSizeType) (offset+profile_size)))
+            (blob_size < (MagickSizeType) (offset+profile_size)))
           ThrowReaderException(CorruptImageError,"ImproperImageHeader");
         profile=AcquireStringInfo((size_t) profile_size);
         if (profile == (StringInfo *) NULL)
@@ -1506,11 +1518,10 @@
         if (GetNextImageInList(image) == (Image *) NULL)
           {
             status=MagickFalse;
-            return((Image *) NULL);
+            break;
           }
         image=SyncNextImageInList(image);
-        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
-          GetBlobSize(image));
+        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),blob_size);
         if (status == MagickFalse)
           break;
       }
@@ -1694,6 +1705,9 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
+  if (((image->columns << 3) != (int) (image->columns << 3)) ||
+      ((image->rows << 3) != (int) (image->rows << 3)))
+    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   type=4;
   if (LocaleCompare(image_info->magick,"BMP2") == 0)
     type=2;
@@ -2299,32 +2313,32 @@
         else
           (void) WriteBlobLSBLong(image,0x73524742U);  /* sRGB */
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.red_primary.x*0x40000000));
+          ((ssize_t) image->chromaticity.red_primary.x*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.red_primary.y*0x40000000));
+          ((ssize_t) image->chromaticity.red_primary.y*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          ((1.000f-(image->chromaticity.red_primary.x+
+          ((ssize_t) (1.000f-(image->chromaticity.red_primary.x+
           image->chromaticity.red_primary.y))*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.green_primary.x*0x40000000));
+          ((ssize_t) image->chromaticity.green_primary.x*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.green_primary.y*0x40000000));
+          ((ssize_t) image->chromaticity.green_primary.y*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          ((1.000f-(image->chromaticity.green_primary.x+
+          ((ssize_t) (1.000f-(image->chromaticity.green_primary.x+
           image->chromaticity.green_primary.y))*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.blue_primary.x*0x40000000));
+          ((ssize_t) image->chromaticity.blue_primary.x*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (image->chromaticity.blue_primary.y*0x40000000));
+          ((ssize_t) image->chromaticity.blue_primary.y*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          ((1.000f-(image->chromaticity.blue_primary.x+
+          ((ssize_t) (1.000f-(image->chromaticity.blue_primary.x+
           image->chromaticity.blue_primary.y))*0x40000000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (bmp_info.gamma_scale.x*0x10000));
+          ((ssize_t) bmp_info.gamma_scale.x*0x10000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (bmp_info.gamma_scale.y*0x10000));
+          ((ssize_t) bmp_info.gamma_scale.y*0x10000));
         (void) WriteBlobLSBLong(image,(unsigned int)
-          (bmp_info.gamma_scale.z*0x10000));
+          ((ssize_t) bmp_info.gamma_scale.z*0x10000));
         if ((image->rendering_intent != UndefinedIntent) ||
             (profile != (StringInfo *) NULL))
           {
diff --git a/coders/bmp.h b/coders/bmp.h
index f810a14..d414f0b 100644
--- a/coders/bmp.h
+++ b/coders/bmp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/braille.c b/coders/braille.c
index 665c557..188a5bf 100644
--- a/coders/braille.c
+++ b/coders/braille.c
@@ -15,7 +15,7 @@
 %                                February 2008                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -212,22 +212,24 @@
   assert(image_info->signature == MagickCoreSignature);
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
-  if (LocaleCompare(image_info->magick, "UBRL") == 0)
+  if (LocaleCompare(image_info->magick,"UBRL") == 0)
     unicode=1;
-  else if (LocaleCompare(image_info->magick, "UBRL6") == 0)
+  else if (LocaleCompare(image_info->magick,"UBRL6") == 0)
     {
       unicode=1;
       cell_height=3;
     }
-  else if (LocaleCompare(image_info->magick, "ISOBRL") == 0)
-    iso_11548_1=1;
-  else if (LocaleCompare(image_info->magick, "ISOBRL6") == 0)
-    {
-      iso_11548_1=1;
-      cell_height=3;
-    }
   else
-    cell_height=3;
+    if (LocaleCompare(image_info->magick,"ISOBRL") == 0)
+      iso_11548_1=1;
+    else
+      if (LocaleCompare(image_info->magick,"ISOBRL6") == 0)
+        {
+          iso_11548_1=1;
+          cell_height=3;
+        }
+      else
+        cell_height=3;
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
@@ -240,50 +242,54 @@
       value=GetImageProperty(image,"label",exception);
       if (value != (const char *) NULL)
         {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"Title: %s\n", value);
+          (void) FormatLocaleString(buffer,MagickPathExtent,"Title: %s\n",
+            value);
           (void) WriteBlobString(image,buffer);
         }
       if (image->page.x != 0)
         {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"X: %.20g\n",(double) 
-            image->page.x);
+          (void) FormatLocaleString(buffer,MagickPathExtent,"X: %.20g\n",
+            (double) image->page.x);
           (void) WriteBlobString(image,buffer);
         }
       if (image->page.y != 0)
         {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"Y: %.20g\n",(double) 
-            image->page.y);
+          (void) FormatLocaleString(buffer,MagickPathExtent,"Y: %.20g\n",
+            (double) image->page.y);
           (void) WriteBlobString(image,buffer);
         }
-      (void) FormatLocaleString(buffer,MagickPathExtent,"Width: %.20g\n",(double)
-        (image->columns+(image->columns % 2)));
+      (void) FormatLocaleString(buffer,MagickPathExtent,"Width: %.20g\n",
+        (double) (image->columns+(image->columns % 2)));
       (void) WriteBlobString(image,buffer);
-      (void) FormatLocaleString(buffer,MagickPathExtent,"Height: %.20g\n",(double)
-        image->rows);
+      (void) FormatLocaleString(buffer,MagickPathExtent,"Height: %.20g\n",
+        (double) image->rows);
       (void) WriteBlobString(image,buffer);
       (void) WriteBlobString(image,"\n");
     }
   (void) SetImageType(image,BilevelType,exception);
-  polarity = 0;
-  if (image->storage_class == PseudoClass) {
-    polarity=(Quantum) (GetPixelInfoIntensity(image,&image->colormap[0]) >=
-      (QuantumRange/2.0));
-    if (image->colors == 2)
+  polarity=0;
+  if (image->storage_class == PseudoClass)
+    {
       polarity=(Quantum) (GetPixelInfoIntensity(image,&image->colormap[0]) >=
-        GetPixelInfoIntensity(image,&image->colormap[1]));
-  }
+        (QuantumRange/2.0));
+      if (image->colors == 2)
+        polarity=(Quantum) (GetPixelInfoIntensity(image,&image->colormap[0]) >=
+          GetPixelInfoIntensity(image,&image->colormap[1]));
+    }
   for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) cell_height)
   {
     if ((y+cell_height) > image->rows)
-      cell_height = (size_t) (image->rows-y);
-
+      cell_height=(size_t) (image->rows-y);
     p=GetVirtualPixels(image,0,y,image->columns,cell_height,exception);
     if (p == (const Quantum *) NULL)
       break;
     for (x=0; x < (ssize_t) image->columns; x+=2)
     {
-      unsigned char cell = 0;
-      int two_columns = x+1 < (ssize_t) image->columns;
+      int
+        two_columns = x+1 < (ssize_t) image->columns;
+
+      unsigned char
+        cell = 0;
 
       do
       {
@@ -301,53 +307,60 @@
           do_cell(1,0,3);
         if (cell_height < 2)
           break;
-
         do_cell(0,1,1);
         if (two_columns)
           do_cell(1,1,4);
         if (cell_height < 3)
           break;
-
         do_cell(0,2,2);
         if (two_columns)
           do_cell(1,2,5);
         if (cell_height < 4)
           break;
-
         do_cell(0,3,6);
         if (two_columns)
           do_cell(1,3,7);
 DisableMSCWarning(4127)
-      } while(0);
+      } while (0);
 RestoreMSCWarning
-
-      if (unicode)
+      if (unicode != 0)
         {
-          unsigned char utf8[3];
-          /* Unicode text */
-          utf8[0] = (unsigned char) (0xe0|((0x28>>4)&0x0f));
-          utf8[1] = 0x80|((0x28<<2)&0x3f)|(cell>>6);
-          utf8[2] = 0x80|(cell&0x3f);
+          unsigned char
+            utf8[3];
+
+          /*
+            Unicode text.
+          */
+          utf8[0]=(unsigned char) (0xe0|((0x28 >> 4) & 0x0f));
+          utf8[1]=0x80|((0x28<<2) & 0x3f)|(cell >> 6);
+          utf8[2]=0x80|(cell & 0x3f);
           (void) WriteBlob(image,3,utf8);
         }
       else if (iso_11548_1)
         {
-          /* ISO/TR 11548-1 binary */
+          /*
+            ISO/TR 11548-1 binary.
+          */
           (void) WriteBlobByte(image,cell);
         }
       else
         {
-          /* BRF */
-          static const unsigned char iso_to_brf[64] = {
-            ' ', 'A', '1', 'B', '\'', 'K', '2', 'L',
-            '@', 'C', 'I', 'F', '/', 'M', 'S', 'P',
-            '"', 'E', '3', 'H', '9', 'O', '6', 'R',
-            '^', 'D', 'J', 'G', '>', 'N', 'T', 'Q',
-            ',', '*', '5', '<', '-', 'U', '8', 'V',
-            '.', '%', '[', '$', '+', 'X', '!', '&',
-            ';', ':', '4', '\\', '0', 'Z', '7', '(',
-            '_', '?', 'W', ']', '#', 'Y', ')', '='
-          };
+          static const unsigned char
+            iso_to_brf[64] =
+            {
+              ' ', 'A', '1', 'B', '\'', 'K', '2', 'L',
+              '@', 'C', 'I', 'F', '/', 'M', 'S', 'P',
+              '"', 'E', '3', 'H', '9', 'O', '6', 'R',
+              '^', 'D', 'J', 'G', '>', 'N', 'T', 'Q',
+              ',', '*', '5', '<', '-', 'U', '8', 'V',
+              '.', '%', '[', '$', '+', 'X', '!', '&',
+              ';', ':', '4', '\\', '0', 'Z', '7', '(',
+              '_', '?', 'W', ']', '#', 'Y', ')', '='
+            };
+
+          /*
+            BRF.
+          */
           (void) WriteBlobByte(image,iso_to_brf[cell]);
         }
     }
diff --git a/coders/braille.h b/coders/braille.h
index 3e7bbb3..c8ea23a 100644
--- a/coders/braille.h
+++ b/coders/braille.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bytebuffer-private.h b/coders/bytebuffer-private.h
new file mode 100644
index 0000000..38cf741
--- /dev/null
+++ b/coders/bytebuffer-private.h
@@ -0,0 +1,101 @@
+/*
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+  
+    https://imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+*/
+#ifndef MAGICK_BYTE_BUFFER_PRIVATE_H
+#define MAGICK_BYTE_BUFFER_PRIVATE_H
+
+#include "MagickCore/blob.h"
+
+typedef struct _MagickByteBuffer
+{
+  Image
+    *image;
+
+  ssize_t
+    offset,
+    count;
+
+  unsigned char
+    data[MagickMinBufferExtent];
+} MagickByteBuffer;
+
+static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
+{
+  if ((buffer->offset == buffer->count) && (buffer->offset > 0))
+    {
+      if (buffer->count != (ssize_t) sizeof(buffer->data)-1)
+        return(EOF);
+      buffer->offset=0;
+      buffer->count=0;
+    }
+  if ((buffer->offset == 0) && (buffer->count == 0))
+    {
+      buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-1,
+        buffer->data);
+      if (buffer->count < 1)
+        return(EOF);
+    }
+  return(buffer->data[buffer->offset++]);
+}
+
+static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer)
+{
+  ssize_t
+    count,
+    i;
+
+  if (buffer->offset != 0)
+    {
+      i=0;
+      while (buffer->offset < buffer->count)
+        buffer->data[i++]=buffer->data[buffer->offset++];
+      count=ReadBlob(buffer->image,sizeof(buffer->data)-1-i,buffer->data+i);
+      buffer->count=i;
+      if (count > 0)
+        buffer->count+=count;
+      buffer->offset=0;
+    }
+  return((char *) buffer->data);
+}
+
+static void CheckMagickByteBuffer(MagickByteBuffer *buffer,
+  const size_t length)
+{
+  if ((buffer->offset+length) > (ssize_t) sizeof(buffer->data))
+    (void) GetMagickByteBufferDatum(buffer);
+}
+
+static MagickBooleanType CompareMagickByteBuffer(MagickByteBuffer *buffer,
+  const char *p,const size_t length)
+{
+  const char
+    *q;
+
+  CheckMagickByteBuffer(buffer,length);
+  q=(const char *) buffer->data+buffer->offset;
+  if (LocaleNCompare(p,q,length) != 0)
+    return(MagickFalse);
+  return(MagickTrue);
+}
+
+static inline void SkipMagickByteBuffer(MagickByteBuffer *buffer,
+  const size_t length)
+{
+  CheckMagickByteBuffer(buffer,length);
+  if ((ssize_t) (buffer->offset+length) < buffer->count)
+    buffer->offset+=length;
+}
+
+#endif
diff --git a/coders/cals.c b/coders/cals.c
index 25af653..9c677d1 100644
--- a/coders/cals.c
+++ b/coders/cals.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/cals.h b/coders/cals.h
index 00761b2..f2ee57e 100644
--- a/coders/cals.h
+++ b/coders/cals.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/caption.c b/coders/caption.c
index 80f1a33..d938244 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -17,7 +17,7 @@
 %                               February 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -173,8 +173,7 @@
   if (image->columns == 0)
     {
       text=AcquireString(caption);
-      i=FormatMagickCaption(image,draw_info,split,&metrics,&text,
-        exception);
+      i=FormatMagickCaption(image,draw_info,split,&metrics,&text,exception);
       (void) CloneString(&draw_info->text,text);
       text=DestroyString(text);
       (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",
@@ -182,8 +181,7 @@
       if (draw_info->gravity == UndefinedGravity)
         (void) CloneString(&draw_info->geometry,geometry);
       status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
-      width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
-      image->columns=width;
+      image->columns=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
     }
   if (image->rows == 0)
     {
@@ -227,33 +225,44 @@
       /*
         Auto fit text into bounding box.
       */
-      for (n=0; n < 32; n++, draw_info->pointsize*=2.0)
-      {
-        text=AcquireString(caption);
-        i=FormatMagickCaption(image,draw_info,split,&metrics,&text,
-          exception);
-        (void) CloneString(&draw_info->text,text);
-        text=DestroyString(text);
-        (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",
-          -metrics.bounds.x1,metrics.ascent);
-        if (draw_info->gravity == UndefinedGravity)
-          (void) CloneString(&draw_info->geometry,geometry);
-        status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
-        if (status == MagickFalse)
-          break;
-        width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
-        height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);
-        if ((image->columns != 0) && (image->rows != 0))
+      option=GetImageOption(image_info,"caption:max-pointsize");
+      if (option != (const char*) NULL)
+        {
+          high=StringToDouble(option,(char**) NULL);
+          if (high < 1.0)
+            high=1.0;
+          high+=1.0;
+        }
+      else
+        {
+          for (n=0; n < 32; n++, draw_info->pointsize*=2.0)
           {
-            if ((width >= image->columns) && (height >= image->rows))
+            text=AcquireString(caption);
+            i=FormatMagickCaption(image,draw_info,split,&metrics,&text,
+              exception);
+            (void) CloneString(&draw_info->text,text);
+            text=DestroyString(text);
+            (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",
+              -metrics.bounds.x1,metrics.ascent);
+            if (draw_info->gravity == UndefinedGravity)
+              (void) CloneString(&draw_info->geometry,geometry);
+            status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
+            if (status == MagickFalse)
               break;
+            width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
+            height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);
+            if ((image->columns != 0) && (image->rows != 0))
+              {
+                if ((width >= image->columns) && (height >= image->rows))
+                  break;
+              }
+            else
+              if (((image->columns != 0) && (width >= image->columns)) ||
+                  ((image->rows != 0) && (height >= image->rows)))
+                break;
           }
-        else
-          if (((image->columns != 0) && (width >= image->columns)) ||
-              ((image->rows != 0) && (height >= image->rows)))
-            break;
-      }
-      high=draw_info->pointsize;
+          high=draw_info->pointsize;
+        }
       for (low=1.0; (high-low) > 0.5; )
       {
         draw_info->pointsize=(low+high)/2.0;
@@ -295,8 +304,8 @@
   caption=DestroyString(caption);
   (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",MagickMax(
     draw_info->direction == RightToLeftDirection ? (double) image->columns-
-    metrics.bounds.x2 : -metrics.bounds.x1,0.0),draw_info->gravity ==
-    UndefinedGravity ? MagickMax(metrics.ascent,metrics.bounds.y2) : 0.0);
+    metrics.bounds.x2 : -metrics.bounds.x1,0.0),(draw_info->gravity ==
+    UndefinedGravity ? MagickMax(metrics.ascent,metrics.bounds.y2) : 0.0));
   (void) CloneString(&draw_info->geometry,geometry);
   status=AnnotateImage(image,draw_info,exception);
   if (image_info->pointsize == 0.0)
diff --git a/coders/caption.h b/coders/caption.h
index 3fae33d..32959a4 100644
--- a/coders/caption.h
+++ b/coders/caption.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cin.c b/coders/cin.c
index c127650..fa3808d 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -20,7 +20,7 @@
 %                               October 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -59,6 +59,7 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/option.h"
@@ -69,7 +70,7 @@
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
-#include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
 
 /*
   Typedef declaration.
@@ -387,9 +388,6 @@
   CINInfo
     cin;
 
-  const unsigned char
-    *pixels;
-
   Image
     *image;
 
@@ -419,7 +417,9 @@
     y;
 
   unsigned char
-    magick[4];
+    magick[4],
+    *pixels;
+
 
   /*
     Open image file.
@@ -759,17 +759,20 @@
       quantum_type=GrayQuantum;
       length=GetBytesPerRow(image->columns,1,image->depth,MagickTrue);
     }
+  pixels=GetQuantumPixels(quantum_info);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
+    const void
+      *stream;
+
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
-    pixels=(const unsigned char *) ReadBlobStream(image,length,
-      GetQuantumPixels(quantum_info),&count);
+    stream=ReadBlobStream(image,length,pixels,&count);
     if ((size_t) count != length)
       break;
     (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-      quantum_type,pixels,exception);
+      quantum_type,(unsigned char *) stream,exception);
     if (SyncAuthenticPixels(image,exception) == MagickFalse)
       break;
     if (image->previous == (Image *) NULL)
@@ -932,7 +935,7 @@
     y;
 
   struct tm
-    local_time;
+    utc_time;
 
   time_t
     seconds;
@@ -990,14 +993,10 @@
       sizeof(cin.file.filename));
   offset+=WriteBlob(image,sizeof(cin.file.filename),(unsigned char *)
     cin.file.filename);
-  seconds=time((time_t *) NULL);
-#if defined(MAGICKCORE_HAVE_LOCALTIME_R)
-  (void) localtime_r(&seconds,&local_time);
-#else
-  (void) memcpy(&local_time,localtime(&seconds),sizeof(local_time));
-#endif
+  seconds=GetMagickTime();
+  GetMagickUTCtime(&seconds,&utc_time);
   (void) memset(timestamp,0,sizeof(timestamp));
-  (void) strftime(timestamp,MagickPathExtent,"%Y:%m:%d:%H:%M:%S%Z",&local_time);
+  (void) strftime(timestamp,MaxTextExtent,"%Y:%m:%d:%H:%M:%SUTC",&utc_time);
   (void) memset(cin.file.create_date,0,sizeof(cin.file.create_date));
   (void) CopyMagickString(cin.file.create_date,timestamp,11);
   offset+=WriteBlob(image,sizeof(cin.file.create_date),(unsigned char *)
@@ -1093,9 +1092,8 @@
       sizeof(cin.origination.filename));
   offset+=WriteBlob(image,sizeof(cin.origination.filename),(unsigned char *)
     cin.origination.filename);
-  seconds=time((time_t *) NULL);
   (void) memset(timestamp,0,sizeof(timestamp));
-  (void) strftime(timestamp,MagickPathExtent,"%Y:%m:%d:%H:%M:%S%Z",&local_time);
+  (void) strftime(timestamp,MaxTextExtent,"%Y:%m:%d:%H:%M:%SUTC",&utc_time);
   (void) memset(cin.origination.create_date,0,
     sizeof(cin.origination.create_date));
   (void) CopyMagickString(cin.origination.create_date,timestamp,11);
diff --git a/coders/cin.h b/coders/cin.h
index 4de0ce3..31f454e 100644
--- a/coders/cin.h
+++ b/coders/cin.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cip.c b/coders/cip.c
index 41a9288..2050c75 100644
--- a/coders/cip.c
+++ b/coders/cip.c
@@ -16,7 +16,7 @@
 %                                April 2004                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/cip.h b/coders/cip.h
index 3a38199..a7bb20a 100644
--- a/coders/cip.h
+++ b/coders/cip.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/clip.c b/coders/clip.c
index 51d6c7a..c05c4f6 100644
--- a/coders/clip.c
+++ b/coders/clip.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/clip.h b/coders/clip.h
index 64fb89b..6e09661 100644
--- a/coders/clip.h
+++ b/coders/clip.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/clipboard.c b/coders/clipboard.c
index 50d51f0..4a2c2d3 100644
--- a/coders/clipboard.c
+++ b/coders/clipboard.c
@@ -17,7 +17,7 @@
 %                                 May 2002                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -138,7 +138,7 @@
   ssize_t
     y;
 
-  unsigned int
+  unsigned char
     offset;
 
   void
@@ -152,8 +152,7 @@
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
   image=AcquireImage(image_info,exception);
-  if (!IsClipboardFormatAvailable(CF_BITMAP) &&
-      !IsClipboardFormatAvailable(CF_DIB) &&
+  if (!IsClipboardFormatAvailable(CF_DIB) &&
       !IsClipboardFormatAvailable(CF_DIBV5))
     ThrowReaderException(CoderError,"NoBitmapOnClipboard");
   if (!OpenClipboard(NULL))
@@ -178,6 +177,7 @@
   if (clip_mem == (LPVOID) NULL)
     {
       CloseClipboard();
+      clip_data=RelinquishMagickMemory(clip_data);
       ThrowReaderException(CoderError,"UnableToReadImageData");
     }
   p=(unsigned char *) clip_data;
@@ -186,7 +186,9 @@
   (void) GlobalUnlock(clip_mem);
   (void) CloseClipboard();
   memset(clip_data,0,BMP_HEADER_SIZE);
-  offset=((unsigned int) p[0])+BMP_HEADER_SIZE;
+  offset=p[0]+BMP_HEADER_SIZE;
+  if ((p[0] == 40) && (p[16] == BI_BITFIELDS))
+    offset+=12;
   p-=BMP_HEADER_SIZE;
   p[0]='B';
   p[1]='M';
@@ -340,7 +342,7 @@
       ThrowWriterException(CoderError,"UnableToWriteImageData");
     }
   clip_mem=GlobalLock(clip_handle);
-  if (clip_handle == (LPVOID) NULL)
+  if (clip_mem == (LPVOID) NULL)
     {
       (void) GlobalFree((HGLOBAL) clip_handle);
       clip_data=RelinquishMagickMemory(clip_data);
diff --git a/coders/clipboard.h b/coders/clipboard.h
index 713abd6..e344ba9 100644
--- a/coders/clipboard.h
+++ b/coders/clipboard.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cmyk.c b/coders/cmyk.c
index 8be16c3..9641456 100644
--- a/coders/cmyk.c
+++ b/coders/cmyk.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -99,8 +99,8 @@
 static Image *ReadCMYKImage(const ImageInfo *image_info,
   ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -128,6 +128,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -178,7 +181,7 @@
       quantum_type=CMYKAQuantum;
       image->alpha_trait=BlendPixelTrait;
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -189,8 +192,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -199,6 +201,7 @@
   length=0;
   scene=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -223,8 +226,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -249,7 +251,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,quantum_type,pixels,exception);
+            quantum_info,quantum_type,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -283,8 +285,7 @@
               if (status == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         break;
       }
@@ -306,8 +307,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,CyanQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -335,7 +335,7 @@
             if (q == (Quantum *) NULL)
               break;
             length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-              quantum_info,quantum_type,pixels,exception);
+              quantum_info,quantum_type,(unsigned char *) stream,exception);
             if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
               break;
             if (((y-image->extract_info.y) >= 0) && 
@@ -385,8 +385,7 @@
                 if (SyncAuthenticPixels(image,exception) == MagickFalse)
                   break;
               }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
           if (image->previous == (Image *) NULL)
             {
@@ -406,8 +405,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,CyanQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -432,7 +430,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,CyanQuantum,pixels,exception);
+            quantum_info,CyanQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -453,8 +451,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -485,7 +482,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,MagentaQuantum,pixels,exception);
+            quantum_info,MagentaQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -506,8 +503,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -538,7 +534,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,YellowQuantum,pixels,exception);
+            quantum_info,YellowQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -559,8 +555,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -591,7 +586,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlackQuantum,pixels,exception);
+            quantum_info,BlackQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -612,8 +607,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -646,7 +640,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,AlphaQuantum,pixels,exception);
+                quantum_info,AlphaQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -668,8 +662,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                 }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -707,16 +700,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -740,7 +731,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,CyanQuantum,pixels,exception);
+            quantum_info,CyanQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -761,8 +752,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -780,16 +770,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -813,7 +801,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,MagentaQuantum,pixels,exception);
+            quantum_info,MagentaQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -834,8 +822,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -853,16 +840,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -886,7 +871,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,YellowQuantum,pixels,exception);
+            quantum_info,YellowQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -908,8 +893,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -927,16 +911,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -960,7 +942,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlackQuantum,pixels,exception);
+            quantum_info,BlackQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -982,8 +964,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -1003,16 +984,14 @@
             {
               for (y=0; y < (ssize_t) image->extract_info.height; y++)
               {
-                pixels=(const unsigned char *) ReadBlobStream(image,length,
-                  GetQuantumPixels(quantum_info),&count);
+                stream=ReadBlobStream(image,length,pixels,&count);
                 if (count != (ssize_t) length)
                   break;
               }
               if (count != (ssize_t) length)
                 break;
             }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
               register const Quantum
@@ -1036,7 +1015,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,YellowQuantum,pixels,exception);
+                quantum_info,YellowQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -1058,8 +1037,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
diff --git a/coders/cmyk.h b/coders/cmyk.h
index c888207..d8b37a8 100644
--- a/coders/cmyk.h
+++ b/coders/cmyk.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/coders-list.h b/coders/coders-list.h
index aa91e3a..6345593 100644
--- a/coders/coders-list.h
+++ b/coders/coders-list.h
@@ -1,12 +1,12 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
-  
+
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
-  
+
     https://imagemagick.org/script/license.php
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -94,6 +94,9 @@
   AddMagickCoder(JPEG)
 #endif
 AddMagickCoder(JSON)
+#if defined(MAGICKCORE_JXL_DELEGATE)
+  AddMagickCoder(JXL)
+#endif
 AddMagickCoder(LABEL)
 AddMagickCoder(MAC)
 AddMagickCoder(MAGICK)
@@ -155,6 +158,7 @@
 #endif
 AddMagickCoder(TILE)
 AddMagickCoder(TIM)
+AddMagickCoder(TIM2)
 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
   AddMagickCoder(TTF)
 #endif
diff --git a/coders/coders-private.h b/coders/coders-private.h
index 757cb97..04d967a 100644
--- a/coders/coders-private.h
+++ b/coders/coders-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/coders.h b/coders/coders.h
index 45c44ba..c48409c 100644
--- a/coders/coders.h
+++ b/coders/coders.h
@@ -1,12 +1,12 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
-  
+
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
-  
+
     https://imagemagick.org/script/license.php
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -92,6 +92,9 @@
   #include "coders/jpeg.h"
 #endif
 #include "coders/json.h"
+#if defined(MAGICKCORE_JXL_DELEGATE)
+  #include "coders/jxl.h"
+#endif
 #include "coders/label.h"
 #include "coders/mac.h"
 #include "coders/magick.h"
@@ -153,6 +156,7 @@
 #endif
 #include "coders/tile.h"
 #include "coders/tim.h"
+#include "coders/tim2.h"
 #if defined(MAGICKCORE_FREETYPE_DELEGATE)
   #include "coders/ttf.h"
 #endif
diff --git a/coders/cube.c b/coders/cube.c
index f7639e2..d67d904 100644
--- a/coders/cube.c
+++ b/coders/cube.c
@@ -17,7 +17,7 @@
 %                                 July 2018                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -165,7 +165,7 @@
       *q;
 
     q=p;
-    GetNextToken(q,&q,MagickPathExtent,token);
+    (void) GetNextToken(q,&q,MagickPathExtent,token);
     if ((*token == '#') || (*token == '\0'))
       continue;
     if ((LocaleCompare(token,"LUT_1D_SIZE") == 0) ||
@@ -173,7 +173,7 @@
       {
         if (cube_info != (MemoryInfo *) NULL)
           cube_info=RelinquishVirtualMemory(cube_info);
-        GetNextToken(q,&q,MagickPathExtent,value);
+        (void) GetNextToken(q,&q,MagickPathExtent,value);
         cube_level=(size_t) StringToLong(value);
         if (LocaleCompare(token,"LUT_1D_SIZE") == 0)
           cube_level=(size_t) ceil(pow((double) cube_level,1.0/3.0));
@@ -195,7 +195,7 @@
     else
       if (LocaleCompare(token,"TITLE ") == 0)
         {
-          GetNextToken(q,&q,MagickPathExtent,value);
+          (void) GetNextToken(q,&q,MagickPathExtent,value);
           (void) SetImageProperty(image,"title",value,exception);
         }
       else
diff --git a/coders/cube.h b/coders/cube.h
index 2f7ade5..7c665cd 100644
--- a/coders/cube.h
+++ b/coders/cube.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cut.c b/coders/cut.c
index 69f2362..c4f2768 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -552,6 +552,7 @@
   BImgBuff=(unsigned char *) AcquireQuantumMemory((size_t) ldblk,
     sizeof(*BImgBuff));  /*Ldblk was set in the check phase*/
   if(BImgBuff==NULL) goto NoMemory;
+  (void) memset(BImgBuff,0,(size_t) ldblk*sizeof(*BImgBuff));
 
   offset=SeekBlob(image,6 /*sizeof(Header)*/,SEEK_SET);
   if (offset < 0)
diff --git a/coders/cut.h b/coders/cut.h
index 0f080a8..d459e09 100644
--- a/coders/cut.h
+++ b/coders/cut.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dcm.c b/coders/dcm.c
index 168e8dd..f119a09 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -2932,7 +2932,7 @@
             }
           index&=info->mask;
           index=(int) ConstrainColormapIndex(image,(ssize_t) index,exception);
-          if (first_segment)
+          if (first_segment != MagickFalse)
             SetPixelIndex(image,(Quantum) index,q);
           else
             SetPixelIndex(image,(Quantum) (((size_t) index) |
@@ -3179,8 +3179,8 @@
         Check for "explicitness", but meta-file headers always explicit.
       */
       if ((explicit_file == MagickFalse) && (group != 0x0002))
-        explicit_file=(isupper((unsigned char) *explicit_vr) != MagickFalse) &&
-          (isupper((unsigned char) *(explicit_vr+1)) != MagickFalse) ?
+        explicit_file=(isupper((int) ((unsigned char) *explicit_vr)) != 0) &&
+          (isupper((int) ((unsigned char) *(explicit_vr+1))) != 0) ?
           MagickTrue : MagickFalse;
       use_explicit=((group == 0x0002) && (explicit_retry == MagickFalse)) ||
         (explicit_file != MagickFalse) ? MagickTrue : MagickFalse;
@@ -3600,7 +3600,7 @@
               */
               if (data == (unsigned char *) NULL)
                 break;
-              colors=(size_t) (length/2);
+              colors=(size_t) (length/info.bytes_per_pixel);
               datum=(int) colors;
               if (redmap != (int *) NULL)
                 redmap=(int *) RelinquishMagickMemory(redmap);
@@ -3632,7 +3632,7 @@
               */
               if (data == (unsigned char *) NULL)
                 break;
-              colors=(size_t) (length/2);
+              colors=(size_t) (length/info.bytes_per_pixel);
               datum=(int) colors;
               if (greenmap != (int *) NULL)
                 greenmap=(int *) RelinquishMagickMemory(greenmap);
@@ -3664,7 +3664,7 @@
               */
               if (data == (unsigned char *) NULL)
                 break;
-              colors=(size_t) (length/2);
+              colors=(size_t) (length/info.bytes_per_pixel);
               datum=(int) colors;
               if (bluemap != (int *) NULL)
                 bluemap=(int *) RelinquishMagickMemory(bluemap);
@@ -3724,7 +3724,7 @@
               attribute=AcquireString("dcm:");
               (void) ConcatenateString(&attribute,dicom_info[i].description);
               for (i=0; i < (ssize_t) MagickMax(length,4); i++)
-                if (isprint((int) data[i]) == MagickFalse)
+                if (isprint((int) data[i]) == 0)
                   break;
               if ((i == (ssize_t) length) || (length > 4))
                 {
@@ -3745,7 +3745,7 @@
                 Display group data.
               */
               for (i=0; i < (ssize_t) MagickMax(length,4); i++)
-                if (isprint((int) data[i]) == MagickFalse)
+                if (isprint((int) data[i]) == 0)
                   break;
               if ((i != (ssize_t) length) && (length <= 4))
                 {
@@ -3759,7 +3759,7 @@
                 }
               else
                 for (i=0; i < (ssize_t) length; i++)
-                  if (isprint((int) data[i]) != MagickFalse)
+                  if (isprint((int) data[i]) != 0)
                     (void) FormatLocaleFile(stdout,"%c",data[i]);
                   else
                     (void) FormatLocaleFile(stdout,"%c",'.');
@@ -3859,18 +3859,17 @@
           tag=((unsigned int) ReadBlobLSBShort(image) << 16) |
             ReadBlobLSBShort(image);
           length=(size_t) ReadBlobLSBLong(image);
-          if (length > (size_t) GetBlobSize(image))
+          if (EOFBlob(image) != MagickFalse)
             {
-              read_info=DestroyImageInfo(read_info);
-              ThrowDCMException(CorruptImageError,
-                "InsufficientImageDataInFile");
+              status=MagickFalse;
+              break;
             }
           if (tag == 0xFFFEE0DD)
             break; /* sequence delimiter tag */
           if (tag != 0xFFFEE000)
             {
-              read_info=DestroyImageInfo(read_info);
-              ThrowDCMException(CorruptImageError,"ImproperImageHeader");
+              status=MagickFalse;
+              break;
             }
           file=(FILE *) NULL;
           unique_file=AcquireUniqueFileResource(filename);
diff --git a/coders/dcm.h b/coders/dcm.h
index 3d36183..bad57c6 100644
--- a/coders/dcm.h
+++ b/coders/dcm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dds.c b/coders/dds.c
index fd506b2..d133636 100644
--- a/coders/dds.c
+++ b/coders/dds.c
@@ -19,7 +19,7 @@
 %                              September 2013                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/dds.h b/coders/dds.h
index f325c25..abe4249 100644
--- a/coders/dds.h
+++ b/coders/dds.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/debug.c b/coders/debug.c
index e689b78..b8ed094 100644
--- a/coders/debug.c
+++ b/coders/debug.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/debug.h b/coders/debug.h
index 4ea296f..3a53472 100644
--- a/coders/debug.h
+++ b/coders/debug.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dib.c b/coders/dib.c
index 72578f1..80bb0aa 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -930,8 +930,6 @@
       /*
         Handle ICO mask.
       */
-      image->storage_class=DirectClass;
-      image->alpha_trait=BlendPixelTrait;
       for (y=0; y < (ssize_t) image->rows; y++)
       {
         register ssize_t
@@ -947,15 +945,23 @@
         {
           c=ReadBlobByte(image);
           for (bit=0; bit < 8; bit++)
+          {
+            if (c & (0x80 >> bit))
+              image->alpha_trait=BlendPixelTrait;
             SetPixelAlpha(image,c & (0x80 >> bit) ? TransparentAlpha :
               OpaqueAlpha,q+x*GetPixelChannels(image)+bit);
+          }
         }
         if ((image->columns % 8) != 0)
           {
             c=ReadBlobByte(image);
             for (bit=0; bit < (ssize_t) (image->columns % 8); bit++)
+            {
+              if (c & (0x80 >> bit))
+                image->alpha_trait=BlendPixelTrait;
               SetPixelAlpha(image,c & (0x80 >> bit) ? TransparentAlpha :
                 OpaqueAlpha,q+x*GetPixelChannels(image)+bit);
+            }
           }
         if (image->columns % 32)
           for (x=0; x < (ssize_t) ((32-(image->columns % 32))/8); x++)
@@ -1131,6 +1137,9 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
+  if (((image->columns << 3) != (int) (image->columns << 3)) ||
+      ((image->rows << 3) != (int) (image->rows << 3)))
+    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   /*
     Initialize DIB raster file header.
   */
diff --git a/coders/dib.h b/coders/dib.h
index a9dac8d..1398bd6 100644
--- a/coders/dib.h
+++ b/coders/dib.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/djvu.c b/coders/djvu.c
index 11c40a7..881515c 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -186,8 +186,7 @@
 #define DEBUG 0
 
 #if DEBUG
-static const char*
-message_tag_name(ddjvu_message_tag_t tag)
+static const char *message_tag_name(ddjvu_message_tag_t tag)
 {
    static char* names[] =
       {
diff --git a/coders/djvu.h b/coders/djvu.h
index a917744..29e9fb2 100644
--- a/coders/djvu.h
+++ b/coders/djvu.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dng.c b/coders/dng.c
index 9a8cc62..4bbc395 100644
--- a/coders/dng.c
+++ b/coders/dng.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -56,6 +56,7 @@
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/opencl.h"
+#include "MagickCore/option.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/profile.h"
 #include "MagickCore/property.h"
@@ -178,10 +179,6 @@
   if (*raw_info->shootinginfo.BodySerial != '\0')
     (void) SetImageProperty(image,"dng:serial.number",
       raw_info->shootinginfo.BodySerial,exception);
-  (void) FormatLocaleString(property,MagickPathExtent,"%0.2f",
-    raw_info->other.FlashEC);
-  (void) SetImageProperty(image,"dng:flash.exposure.compensation",property,
-    exception);
   (void) FormatLocaleString(property,MagickPathExtent,"1/%0.1f",
     1.0/raw_info->other.shutter);
   (void) SetImageProperty(image,"dng:exposure.time",property,exception);
@@ -387,6 +384,8 @@
         libraw_close(raw_info);
         return(DestroyImageList(image));
       }
+    raw_info->params.use_camera_wb=IsStringTrue(GetImageOption(image_info,
+      "dng:use_camera_wb"));
 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_MSC_VER) && (_MSC_VER > 1310)
     {
       wchar_t
@@ -581,6 +580,12 @@
   entry->flags^=CoderBlobSupportFlag;
   entry->format_type=ExplicitFormatType;
   (void) RegisterMagickInfo(entry);
+  entry=AcquireMagickInfo("DNG","CR3","Canon Digital Camera Raw Image Format");
+  entry->decoder=(DecodeImageHandler *) ReadDNGImage;
+  entry->flags|=CoderDecoderSeekableStreamFlag;
+  entry->flags^=CoderBlobSupportFlag;
+  entry->format_type=ExplicitFormatType;
+  (void) RegisterMagickInfo(entry);
   entry=AcquireMagickInfo("DNG","CRW","Canon Digital Camera Raw Image Format");
   entry->decoder=(DecodeImageHandler *) ReadDNGImage;
   entry->flags|=CoderDecoderSeekableStreamFlag;
@@ -745,6 +750,7 @@
   (void) UnregisterMagickInfo("ERF");
   (void) UnregisterMagickInfo("DCR");
   (void) UnregisterMagickInfo("CRW");
+  (void) UnregisterMagickInfo("CR3");
   (void) UnregisterMagickInfo("CR2");
   (void) UnregisterMagickInfo("DNG");
   (void) UnregisterMagickInfo("ARW");
diff --git a/coders/dng.h b/coders/dng.h
index f6ef435..6bed2ff 100644
--- a/coders/dng.h
+++ b/coders/dng.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -17,6 +17,8 @@
 #include "coders/coders-private.h"
 
 #define MagickDNGHeaders \
+  MagickCoderHeader("CR2", 0, "\115\115\000\052\000\020\000\000\122\103\002") \
+  MagickCoderHeader("CR2", 0, "\111\111\052\000\020\000\000\000\103\122\002") \
   MagickCoderHeader("CRW", 0, "II\x1a\x00\x00\x00HEAPCCDR") \
   MagickCoderHeader("ORF", 0, "IIRO\x08\x00\x00\x00") \
   MagickCoderHeader("MRW", 0, "\x00MRM") \
@@ -26,6 +28,7 @@
   MagickCoderAlias("DNG", "3FR") \
   MagickCoderAlias("DNG", "ARW") \
   MagickCoderAlias("DNG", "CR2") \
+  MagickCoderAlias("DNG", "CR3") \
   MagickCoderAlias("DNG", "CRW") \
   MagickCoderAlias("DNG", "DCR") \
   MagickCoderAlias("DNG", "DCRAW") \
diff --git a/coders/dot.c b/coders/dot.c
index 4ece494..44a9e1e 100644
--- a/coders/dot.c
+++ b/coders/dot.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -129,7 +129,7 @@
   image=AcquireImage(image_info,exception);
   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
   if (status == MagickFalse)
-    return((Image *) NULL);
+    return(DestroyImageList(image));
   read_info=CloneImageInfo(image_info);
   SetImageInfoBlob(read_info,(void *) NULL,0);
   (void) CopyMagickString(read_info->magick,"SVG",MagickPathExtent);
@@ -144,7 +144,7 @@
   if (graph == (graph_t *) NULL)
     {
       (void) RelinquishUniqueFileResource(read_info->filename);
-      return ((Image *) NULL);
+      return(DestroyImageList(image));
     }
   option=GetImageOption(image_info,"dot:layout-engine");
   if (option == (const char *) NULL)
@@ -154,6 +154,7 @@
   gvRenderFilename(graphic_context,graph,(char *) "svg",read_info->filename);
   gvFreeLayout(graphic_context,graph);
   agclose(graph);
+  image=DestroyImageList(image);
   /*
     Read SVG graph.
   */
diff --git a/coders/dot.h b/coders/dot.h
index b534682..bcd6ef1 100644
--- a/coders/dot.h
+++ b/coders/dot.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dps.c b/coders/dps.c
index 68a28b3..0577425 100644
--- a/coders/dps.c
+++ b/coders/dps.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -174,7 +174,10 @@
   image=AcquireImage(image_info,exception);
   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
   if (status == MagickFalse)
-    return((Image *) NULL);
+    {
+      image=DestroyImageList(image);
+      return((Image *) NULL);
+    }
   /*
     Get user defaults from X resource database.
   */
diff --git a/coders/dps.h b/coders/dps.h
index 25f36ac..a5491cc 100644
--- a/coders/dps.h
+++ b/coders/dps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dpx.c b/coders/dpx.c
index 38df30c..cffe235 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -17,7 +17,7 @@
 %                                March 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -65,6 +65,7 @@
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 
 /*
   Define declaration.
@@ -726,8 +727,6 @@
     dpx.file.version);
   (void) FormatImageProperty(image,"dpx:file.version","%.8s",dpx.file.version);
   dpx.file.file_size=ReadBlobLong(image);
-  if (0 && dpx.file.file_size > GetBlobSize(image))
-    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   offset+=4;
   dpx.file.ditto_key=ReadBlobLong(image);
   offset+=4;
@@ -735,16 +734,10 @@
     (void) FormatImageProperty(image,"dpx:file.ditto.key","%u",
       dpx.file.ditto_key);
   dpx.file.generic_size=ReadBlobLong(image);
-  if (0 && dpx.file.generic_size > GetBlobSize(image))
-    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   offset+=4;
   dpx.file.industry_size=ReadBlobLong(image);
-  if (dpx.file.industry_size > GetBlobSize(image))
-    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   offset+=4;
   dpx.file.user_size=ReadBlobLong(image);
-  if (0 && dpx.file.user_size > GetBlobSize(image))
-    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   offset+=4;
   offset+=ReadBlob(image,sizeof(dpx.file.filename),(unsigned char *)
     dpx.file.filename);
@@ -851,8 +844,6 @@
     dpx.image.image_element[i].bit_size=(unsigned char) ReadBlobByte(image);
     offset++;
     dpx.image.image_element[i].packing=ReadBlobShort(image);
-    if (dpx.image.image_element[i].packing > 2)
-      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     offset+=2;
     dpx.image.image_element[i].encoding=ReadBlobShort(image);
     offset+=2;
@@ -1150,6 +1141,9 @@
     return(DestroyImageList(image));
   for (n=0; n < (ssize_t) dpx.image.number_elements; n++)
   {
+    unsigned char
+      *pixels;
+
     /*
       Convert DPX raster image to pixel packets.
     */
@@ -1245,10 +1239,11 @@
     SetQuantumQuantum(quantum_info,32);
     SetQuantumPack(quantum_info,dpx.image.image_element[n].packing == 0 ?
       MagickTrue : MagickFalse);
+    pixels=GetQuantumPixels(quantum_info);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      const unsigned char
-        *pixels;
+      const void
+        *stream;
 
       MagickBooleanType
         sync;
@@ -1260,10 +1255,9 @@
         length;
 
       ssize_t
-        offset;
+        row_offset;
 
-      pixels=(const unsigned char *) ReadBlobStream(image,extent,
-        GetQuantumPixels(quantum_info),&count);
+      stream=ReadBlobStream(image,extent,pixels,&count);
       if (count != (ssize_t) extent)
         break;
       if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -1277,12 +1271,12 @@
           if (proceed == MagickFalse)
             break;
         }
-      offset=row++;
-      q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
+      row_offset=row++;
+      q=QueueAuthenticPixels(image,0,row_offset,image->columns,1,exception);
       if (q == (Quantum *) NULL)
         break;
       length=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-        quantum_type,pixels,exception);
+        quantum_type,(unsigned char *) stream,exception);
       (void) length;
       sync=SyncAuthenticPixels(image,exception);
       if (sync == MagickFalse)
@@ -1461,9 +1455,6 @@
 static MagickBooleanType WriteDPXImage(const ImageInfo *image_info,Image *image,
   ExceptionInfo *exception)
 {
-  char
-    *url;
-
   const char
     *value;
 
@@ -1590,14 +1581,13 @@
     (void) strncpy(dpx.file.filename,value,sizeof(dpx.file.filename)-1);
   offset+=WriteBlob(image,sizeof(dpx.file.filename),(unsigned char *)
     dpx.file.filename);
-  seconds=time((time_t *) NULL);
+  seconds=GetMagickTime();
   (void) FormatMagickTime(seconds,sizeof(dpx.file.timestamp),
     dpx.file.timestamp);
   offset+=WriteBlob(image,sizeof(dpx.file.timestamp),(unsigned char *)
     dpx.file.timestamp);
-  url=GetMagickHomeURL();
-  (void) strncpy(dpx.file.creator,url,sizeof(dpx.file.creator)-1);
-  url=DestroyString(url);
+  (void) strncpy(dpx.file.creator,MagickAuthoritativeURL,
+    sizeof(dpx.file.creator)-1);
   value=GetDPXProperty(image,"dpx:file.creator",exception);
   if (value != (const char *) NULL)
     (void) strncpy(dpx.file.creator,value,sizeof(dpx.file.creator)-1);
@@ -2018,11 +2008,16 @@
   pixels=(unsigned char *) GetQuantumPixels(quantum_info);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
+    size_t
+      length;
+
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
     if (p == (const Quantum *) NULL)
       break;
-    (void) ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+    length=ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
       quantum_type,pixels,exception);
+    if (length == 0)
+      break;
     count=WriteBlob(image,extent,pixels);
     if (count != (ssize_t) extent)
       break;
@@ -2032,6 +2027,8 @@
       break;
   }
   quantum_info=DestroyQuantumInfo(quantum_info);
+  if (y < (ssize_t) image->rows)
+    ThrowWriterException(CorruptImageError,"UnableToWriteImageData");
   (void) CloseBlob(image);
   return(status);
 }
diff --git a/coders/dpx.h b/coders/dpx.h
index 4f502f4..47c8f09 100644
--- a/coders/dpx.h
+++ b/coders/dpx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/emf.c b/coders/emf.c
index 1218855..16c2738 100644
--- a/coders/emf.c
+++ b/coders/emf.c
@@ -18,7 +18,7 @@
 %                               Dirk Lemstra                                  %
 %                               January 2014                                  %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/emf.h b/coders/emf.h
index d4c8ab1..ef753cd 100644
--- a/coders/emf.h
+++ b/coders/emf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ept.c b/coders/ept.c
index 03dafd9..dd66725 100644
--- a/coders/ept.c
+++ b/coders/ept.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -156,6 +156,10 @@
 */
 static Image *ReadEPTImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
+  const void
+    *postscript_data,
+    *tiff_data;
+
   EPTInfo
     ept_info;
 
@@ -196,13 +200,13 @@
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   ept_info.postscript_offset=(MagickOffsetType) ReadBlobLSBLong(image);
   ept_info.postscript_length=ReadBlobLSBLong(image);
-  if (ept_info.postscript_length > GetBlobSize(image))
+  if ((MagickSizeType) ept_info.postscript_length > GetBlobSize(image))
     ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
   (void) ReadBlobLSBLong(image);
   (void) ReadBlobLSBLong(image);
   ept_info.tiff_offset=(MagickOffsetType) ReadBlobLSBLong(image);
   ept_info.tiff_length=ReadBlobLSBLong(image);
-  if (ept_info.tiff_length > GetBlobSize(image))
+  if ((MagickSizeType) ept_info.tiff_length > GetBlobSize(image))
     ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
   (void) ReadBlobLSBShort(image);
   ept_info.postscript=(unsigned char *) AcquireQuantumMemory(
@@ -229,7 +233,7 @@
         ept_info.postscript);
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     }
-  count=ReadBlob(image,ept_info.tiff_length,ept_info.tiff);
+  tiff_data=ReadBlobStream(image,ept_info.tiff_length,ept_info.tiff,&count);
   if (count != (ssize_t) (ept_info.tiff_length))
     (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageWarning,
       "InsufficientImageDataInFile","`%s'",image->filename);
@@ -241,7 +245,8 @@
         ept_info.postscript);
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     }
-  count=ReadBlob(image,ept_info.postscript_length,ept_info.postscript);
+  postscript_data=ReadBlobStream(image,ept_info.postscript_length,
+    ept_info.postscript,&count);
   if (count != (ssize_t) (ept_info.postscript_length))
     (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageWarning,
       "InsufficientImageDataInFile","`%s'",image->filename);
@@ -249,12 +254,12 @@
   image=DestroyImage(image);
   read_info=CloneImageInfo(image_info);
   (void) CopyMagickString(read_info->magick,"EPS",MagickPathExtent);
-  image=BlobToImage(read_info,ept_info.postscript,ept_info.postscript_length,
+  image=BlobToImage(read_info,postscript_data,ept_info.postscript_length,
     exception);
   if (image == (Image *) NULL)
     {
       (void) CopyMagickString(read_info->magick,"TIFF",MagickPathExtent);
-      image=BlobToImage(read_info,ept_info.tiff,ept_info.tiff_length,exception);
+      image=BlobToImage(read_info,tiff_data,ept_info.tiff_length,exception);
     }
   read_info=DestroyImageInfo(read_info);
   if (image != (Image *) NULL)
@@ -440,7 +445,7 @@
   write_info=CloneImageInfo(image_info);
   (void) CopyMagickString(write_info->magick,"TIFF",MagickPathExtent);
   (void) FormatLocaleString(filename,MagickPathExtent,"tiff:%s",
-    write_info->filename); 
+    write_info->filename);
   (void) CopyMagickString(write_info->filename,filename,MagickPathExtent);
   if ((write_image->columns > 512) || (write_image->rows > 512))
     {
diff --git a/coders/ept.h b/coders/ept.h
index 643fabc..22a3d26 100644
--- a/coders/ept.h
+++ b/coders/ept.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/exr.c b/coders/exr.c
index cc4697f..91c8aa4 100644
--- a/coders/exr.c
+++ b/coders/exr.c
@@ -17,7 +17,7 @@
 %                                 April 2007                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -61,19 +61,22 @@
 #include "MagickCore/utility.h"
 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
 #include <ImfCRgbaFile.h>
+#if IMF_VERSION_NUMBER > 1
+#include <OpenEXRConfig.h>
+#endif
 
 /*
   Typedef declaractions.
 */
-typedef struct _ExrWindow
+typedef struct _EXRWindowInfo
 {
   int
     max_x,
     max_y,
     min_x,
     min_y;
-} ExrWindow;
-
+} EXRWindowInfo;
+
 /*
   Forward declarations.
 */
@@ -144,36 +147,35 @@
 */
 static Image *ReadEXRImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  ExrWindow
-    data_window,
-    display_window;
-
   const ImfHeader
     *hdr_info;
 
+  EXRWindowInfo
+    data_window,
+    display_window;
+
   Image
     *image;
 
-  ImageInfo
-    *read_info;
-
   ImfInputFile
     *file;
 
   ImfRgba
     *scanline;
 
+  int
+    compression;
+
   MagickBooleanType
     status;
 
-  register ssize_t
-    x;
-
   register Quantum
     *q;
 
+  size_t
+    columns;
+
   ssize_t
-    columns,
     y;
 
   /*
@@ -193,37 +195,53 @@
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
-  read_info=CloneImageInfo(image_info);
-  if (IsPathAccessible(read_info->filename) == MagickFalse)
-    {
-      (void) AcquireUniqueFilename(read_info->filename);
-      (void) ImageToFile(image,read_info->filename,exception);
-    }
-  file=ImfOpenInputFile(read_info->filename);
+  file=ImfOpenInputFile(image->filename);
   if (file == (ImfInputFile *) NULL)
     {
       ThrowFileException(exception,BlobError,"UnableToOpenBlob",
         ImfErrorMessage());
-      if (LocaleCompare(image_info->filename,read_info->filename) != 0)
-        (void) RelinquishUniqueFileResource(read_info->filename);
-      read_info=DestroyImageInfo(read_info);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
   hdr_info=ImfInputHeader(file);
   ImfHeaderDisplayWindow(hdr_info,&display_window.min_x,&display_window.min_y,
     &display_window.max_x,&display_window.max_y);
-  image->columns=display_window.max_x-display_window.min_x+1UL;
-  image->rows=display_window.max_y-display_window.min_y+1UL;
+  image->columns=((size_t) display_window.max_x-display_window.min_x+1UL);
+  image->rows=((size_t) display_window.max_y-display_window.min_y+1UL);
   image->alpha_trait=BlendPixelTrait;
-  SetImageColorspace(image,RGBColorspace,exception);
+  (void) SetImageColorspace(image,RGBColorspace,exception);
   image->gamma=1.0;
+  image->compression=NoCompression;
+  compression=ImfHeaderCompression(hdr_info);
+  if (compression == IMF_RLE_COMPRESSION)
+    image->compression=RLECompression;
+  if (compression == IMF_ZIPS_COMPRESSION)
+    image->compression=ZipSCompression;
+  if (compression == IMF_ZIP_COMPRESSION)
+    image->compression=ZipCompression;
+  if (compression == IMF_PIZ_COMPRESSION)
+    image->compression=PizCompression;
+  if (compression == IMF_PXR24_COMPRESSION)
+    image->compression=Pxr24Compression;
+#if defined(IMF_B44_COMPRESSION)
+  if (compression == IMF_B44_COMPRESSION)
+    image->compression=B44Compression;
+#endif
+#if defined(IMF_B44A_COMPRESSION)
+  if (compression == IMF_B44A_COMPRESSION)
+    image->compression=B44ACompression;
+#endif
+#if defined(IMF_DWAA_COMPRESSION)
+  if (compression == IMF_DWAA_COMPRESSION)
+    image->compression=DWAACompression;
+#endif
+#if defined(IMF_DWAB_COMPRESSION)
+  if (compression == IMF_DWAB_COMPRESSION)
+    image->compression=DWABCompression;
+#endif
   if (image_info->ping != MagickFalse)
     {
       (void) ImfCloseInputFile(file);
-      if (LocaleCompare(image_info->filename,read_info->filename) != 0)
-        (void) RelinquishUniqueFileResource(read_info->filename);
-      read_info=DestroyImageInfo(read_info);
       (void) CloseBlob(image);
       return(GetFirstImageInList(image));
     }
@@ -232,7 +250,7 @@
     return(DestroyImageList(image));
   ImfHeaderDataWindow(hdr_info,&data_window.min_x,&data_window.min_y,
     &data_window.max_x,&data_window.max_y);
-  columns=(ssize_t) data_window.max_x-data_window.min_x+1UL;
+  columns=((size_t) data_window.max_x-data_window.min_x+1UL);
   if ((display_window.min_x > data_window.max_x) ||
       (display_window.min_x+(int) image->columns <= data_window.min_x))
     scanline=(ImfRgba *) NULL;
@@ -242,9 +260,6 @@
       if (scanline == (ImfRgba *) NULL)
         {
           (void) ImfCloseInputFile(file);
-          if (LocaleCompare(image_info->filename,read_info->filename) != 0)
-            (void) RelinquishUniqueFileResource(read_info->filename);
-          read_info=DestroyImageInfo(read_info);
           image=DestroyImageList(image);
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
         }
@@ -254,10 +269,13 @@
     int
       yy;
 
+    register ssize_t
+      x;
+
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
-    yy=display_window.min_y+y;
+    yy=(int) (display_window.min_y+y);
     if ((yy < data_window.min_y) || (yy > data_window.max_y) ||
         (scanline == (ImfRgba *) NULL))
       {
@@ -266,9 +284,11 @@
           SetPixelViaPixelInfo(image,&image->background_color,q);
           q+=GetPixelChannels(image);
         }
+        if (SyncAuthenticPixels(image,exception) == MagickFalse)
+          break;
         continue;
       }
-    memset(scanline,0,columns*sizeof(*scanline));
+    (void) memset(scanline,0,columns*sizeof(*scanline));
     ImfInputSetFrameBuffer(file,scanline-data_window.min_x-columns*yy,1,
       columns);
     ImfInputReadPixels(file,yy,yy);
@@ -277,7 +297,7 @@
       int
         xx;
 
-      xx=display_window.min_x+((int) x-data_window.min_x);
+      xx=(int) (display_window.min_x+x-data_window.min_x);
       if ((xx < 0) || (display_window.min_x+(int) x > data_window.max_x))
         SetPixelViaPixelInfo(image,&image->background_color,q);
       else
@@ -298,9 +318,6 @@
   }
   scanline=(ImfRgba *) RelinquishMagickMemory(scanline);
   (void) ImfCloseInputFile(file);
-  if (LocaleCompare(image_info->filename,read_info->filename) != 0)
-    (void) RelinquishUniqueFileResource(read_info->filename);
-  read_info=DestroyImageInfo(read_info);
   (void) CloseBlob(image);
   return(GetFirstImageInList(image));
 }
@@ -331,15 +348,25 @@
 */
 ModuleExport size_t RegisterEXRImage(void)
 {
+  char
+    version[MagickPathExtent];
+
   MagickInfo
     *entry;
 
+  *version='\0';
   entry=AcquireMagickInfo("EXR","EXR","High Dynamic-range (HDR)");
 #if defined(MAGICKCORE_OPENEXR_DELEGATE)
   entry->decoder=(DecodeImageHandler *) ReadEXRImage;
   entry->encoder=(EncodeImageHandler *) WriteEXRImage;
+#if defined( OPENEXR_PACKAGE_STRING)
+  (void) FormatLocaleString(version,MagickPathExtent,OPENEXR_PACKAGE_STRING);
+#endif
 #endif
   entry->magick=(IsImageFormatHandler *) IsEXR;
+  if (*version != '\0')
+    entry->version=ConstantString(version);
+  entry->flags|=CoderDecoderSeekableStreamFlag;
   entry->flags^=CoderAdjoinFlag;
   entry->flags^=CoderBlobSupportFlag;
   (void) RegisterMagickInfo(entry);
@@ -461,6 +488,8 @@
   ImfHeaderSetDisplayWindow(hdr_info,0,0,(int) image->columns-1,(int)
     image->rows-1);
   compression=IMF_NO_COMPRESSION;
+  if (write_info->compression == RLECompression)
+    compression=IMF_RLE_COMPRESSION;
   if (write_info->compression == ZipSCompression)
     compression=IMF_ZIPS_COMPRESSION;
   if (write_info->compression == ZipCompression)
@@ -469,14 +498,22 @@
     compression=IMF_PIZ_COMPRESSION;
   if (write_info->compression == Pxr24Compression)
     compression=IMF_PXR24_COMPRESSION;
-#if defined(B44Compression)
+#if defined(IMF_B44_COMPRESSION)
   if (write_info->compression == B44Compression)
     compression=IMF_B44_COMPRESSION;
 #endif
-#if defined(B44ACompression)
+#if defined(IMF_B44A_COMPRESSION)
   if (write_info->compression == B44ACompression)
     compression=IMF_B44A_COMPRESSION;
 #endif
+#if defined(IMF_DWAA_COMPRESSION)
+  if (write_info->compression == DWAACompression)
+    compression=IMF_DWAA_COMPRESSION;
+#endif
+#if defined(IMF_DWAB_COMPRESSION)
+  if (write_info->compression == DWABCompression)
+    compression=IMF_DWAB_COMPRESSION;
+#endif
   channels=0;
   value=GetImageOption(image_info,"exr:color-type");
   if (value != (const char *) NULL)
diff --git a/coders/exr.h b/coders/exr.h
index ad67c65..8121126 100644
--- a/coders/exr.h
+++ b/coders/exr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fax.c b/coders/fax.c
index bc9876d..111300c 100644
--- a/coders/fax.c
+++ b/coders/fax.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/fax.h b/coders/fax.h
index 0a5fa54..f0164fa 100644
--- a/coders/fax.h
+++ b/coders/fax.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fits.c b/coders/fits.c
index f342423..eea7a30 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/fits.h b/coders/fits.h
index aa23ffe..539bf90 100644
--- a/coders/fits.h
+++ b/coders/fits.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/flif.c b/coders/flif.c
index 9133abb..9b1af42 100644
--- a/coders/flif.c
+++ b/coders/flif.c
@@ -17,7 +17,7 @@
 %                                April 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/flif.h b/coders/flif.h
index 920299e..ef51e43 100644
--- a/coders/flif.h
+++ b/coders/flif.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fpx.c b/coders/fpx.c
index e51fb48..e5dc105 100644
--- a/coders/fpx.c
+++ b/coders/fpx.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/fpx.h b/coders/fpx.h
index fa4f8a4..3c1fa09 100644
--- a/coders/fpx.h
+++ b/coders/fpx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ghostscript-private.h b/coders/ghostscript-private.h
new file mode 100644
index 0000000..836f3f2
--- /dev/null
+++ b/coders/ghostscript-private.h
@@ -0,0 +1,264 @@
+/*
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+  
+    https://imagemagick.org/script/license.php
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+*/
+#ifndef MAGICK_GHOSTSCRIPT_BUFFER_PRIVATE_H
+#define MAGICK_GHOSTSCRIPT_BUFFER_PRIVATE_H
+
+#include "coders/bytebuffer-private.h"
+
+#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
+static int MagickDLLCall GhostscriptDelegateMessage(void *handle,
+  const char *message,int length)
+{
+  char
+    **messages;
+
+  ssize_t
+    offset;
+
+  offset=0;
+  messages=(char **) handle;
+  if (*messages == (char *) NULL)
+    *messages=(char *) AcquireQuantumMemory(length+1,sizeof(char *));
+  else
+    {
+      offset=strlen(*messages);
+      *messages=(char *) ResizeQuantumMemory(*messages,offset+length+1,
+        sizeof(char *));
+    }
+  if (*messages == (char *) NULL)
+    return(0);
+  (void) memcpy(*messages+offset,message,length);
+  (*messages)[length+offset] ='\0';
+  return(length);
+}
+#endif
+
+static MagickBooleanType InvokeGhostscriptDelegate(
+  const MagickBooleanType verbose,const char *command,char *message,
+  ExceptionInfo *exception)
+{
+  int
+    status;
+
+#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
+#define SetArgsStart(command,args_start) \
+  if (args_start == (const char *) NULL) \
+    { \
+      if (*command != '"') \
+        args_start=strchr(command,' '); \
+      else \
+        { \
+          args_start=strchr(command+1,'"'); \
+          if (args_start != (const char *) NULL) \
+            args_start++; \
+        } \
+    }
+
+#define ExecuteGhostscriptCommand(command,status) \
+{ \
+  status=ExternalDelegateCommand(MagickFalse,verbose,command,message, \
+    exception); \
+  if (status == 0) \
+    return(MagickTrue); \
+  if (status < 0) \
+    return(MagickFalse); \
+  (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, \
+    "FailedToExecuteCommand","`%s' (%d)",command,status); \
+  return(MagickFalse); \
+}
+
+  char
+    **argv,
+    *errors;
+
+  const char
+    *args_start = (const char *) NULL;
+
+  const GhostInfo
+    *ghost_info;
+
+  gs_main_instance
+    *interpreter;
+
+  gsapi_revision_t
+    revision;
+
+  int
+    argc,
+    code;
+
+  register ssize_t
+    i;
+
+#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+  ghost_info=NTGhostscriptDLLVectors();
+#else
+  GhostInfo
+    ghost_info_struct;
+
+  ghost_info=(&ghost_info_struct);
+  (void) memset(&ghost_info_struct,0,sizeof(ghost_info_struct));
+  ghost_info_struct.delete_instance=(void (*)(gs_main_instance *))
+    gsapi_delete_instance;
+  ghost_info_struct.exit=(int (*)(gs_main_instance *)) gsapi_exit;
+  ghost_info_struct.new_instance=(int (*)(gs_main_instance **,void *))
+    gsapi_new_instance;
+  ghost_info_struct.init_with_args=(int (*)(gs_main_instance *,int,char **))
+    gsapi_init_with_args;
+  ghost_info_struct.run_string=(int (*)(gs_main_instance *,const char *,int,
+    int *)) gsapi_run_string;
+  ghost_info_struct.set_stdio=(int (*)(gs_main_instance *,int (*)(void *,char *,
+    int),int (*)(void *,const char *,int),int (*)(void *, const char *, int)))
+    gsapi_set_stdio;
+  ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
+#endif
+  if (ghost_info == (GhostInfo *) NULL)
+    ExecuteGhostscriptCommand(command,status);
+  if ((ghost_info->revision)(&revision,sizeof(revision)) != 0)
+    revision.revision=0;
+  if (verbose != MagickFalse)
+    {
+      (void) fprintf(stdout,"[ghostscript library %.2f]",(double)
+        revision.revision/100.0);
+      SetArgsStart(command,args_start);
+      (void) fputs(args_start,stdout);
+    }
+  interpreter=(gs_main_instance *) NULL;
+  errors=(char *) NULL;
+  status=(ghost_info->new_instance)(&interpreter,(void *) &errors);
+  if (status < 0)
+    ExecuteGhostscriptCommand(command,status);
+  code=0;
+  argv=StringToArgv(command,&argc);
+  if (argv == (char **) NULL)
+    {
+      (ghost_info->delete_instance)(interpreter);
+      return(MagickFalse);
+    }
+  (void) (ghost_info->set_stdio)(interpreter,(int (MagickDLLCall *)(void *,
+    char *,int)) NULL,GhostscriptDelegateMessage,GhostscriptDelegateMessage);
+  status=(ghost_info->init_with_args)(interpreter,argc-1,argv+1);
+  if (status == 0)
+    status=(ghost_info->run_string)(interpreter,"systemdict /start get exec\n",
+      0,&code);
+  (ghost_info->exit)(interpreter);
+  (ghost_info->delete_instance)(interpreter);
+  for (i=0; i < (ssize_t) argc; i++)
+    argv[i]=DestroyString(argv[i]);
+  argv=(char **) RelinquishMagickMemory(argv);
+  if (status != 0)
+    {
+      SetArgsStart(command,args_start);
+      if (status == -101) /* quit */
+        (void) FormatLocaleString(message,MaxTextExtent,
+          "[ghostscript library %.2f]%s: %s",(double) revision.revision/100.0,
+          args_start,errors);
+      else
+        {
+          (void) ThrowMagickException(exception,GetMagickModule(),
+            DelegateError,"PostscriptDelegateFailed",
+            "`[ghostscript library %.2f]%s': %s",(double) revision.revision/
+            100.0,args_start,errors);
+          if (errors != (char *) NULL)
+            errors=DestroyString(errors);
+          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+            "Ghostscript returns status %d, exit code %d",status,code);
+          return(MagickFalse);
+        }
+    }
+  if (errors != (char *) NULL)
+    errors=DestroyString(errors);
+  return(MagickTrue);
+#else
+  status=ExternalDelegateCommand(MagickFalse,verbose,command,(char *) NULL,
+    exception);
+  return(status == 0 ? MagickTrue : MagickFalse);
+#endif
+}
+
+static MagickBooleanType IsGhostscriptRendered(const char *path)
+{
+  MagickBooleanType
+    status;
+
+  struct stat
+    attributes;
+
+  if ((path == (const char *) NULL) || (*path == '\0'))
+    return(MagickFalse);
+  status=GetPathAttributes(path,&attributes);
+  if ((status != MagickFalse) && S_ISREG(attributes.st_mode) &&
+      (attributes.st_size > 0))
+    return(MagickTrue);
+  return(MagickFalse);
+}
+
+static void ReadGhostScriptXMPProfile(MagickByteBuffer *buffer,
+  StringInfo **profile)
+{
+#define BeginXMPPacket  "?xpacket begin="
+#define EndXMPPacket  "<?xpacket end="
+
+  int
+    c;
+
+  MagickBooleanType
+    found_end,
+    status;
+
+  register char
+    *p;
+
+  size_t
+    length;
+
+  ssize_t
+    count;
+
+  if (*profile != (StringInfo *) NULL)
+    return;
+  status=CompareMagickByteBuffer(buffer,BeginXMPPacket,strlen(BeginXMPPacket));
+  if (status == MagickFalse)
+    return;
+  length=8192;
+  *profile=AcquireStringInfo(length);
+  found_end=MagickFalse;
+  p=(char *) GetStringInfoDatum(*profile);
+  *p++='<';
+  count=1;
+  for (c=ReadMagickByteBuffer(buffer); c != EOF; c=ReadMagickByteBuffer(buffer))
+  {
+    if (count == (ssize_t) length)
+      {
+        length<<=1;
+        SetStringInfoLength(*profile,length);
+        p=(char *) GetStringInfoDatum(*profile)+count;
+      }
+    count++;
+    *p++=(char) c;
+    if (found_end == MagickFalse)
+      found_end=CompareMagickByteBuffer(buffer,EndXMPPacket,
+        strlen(EndXMPPacket));
+    else
+      {
+        if (c == (int) '>')
+          break;
+      }
+  }
+  SetStringInfoLength(*profile,(size_t) count);
+}
+
+#endif
diff --git a/coders/gif.c b/coders/gif.c
index 24781a1..d9a140b 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -673,13 +673,15 @@
       /*
         Probe hash table.
       */
+      next_pixel=MagickFalse;
+      displacement=1;
       index=(Quantum) ((size_t) GetPixelIndex(image,p) & 0xff);
       p+=GetPixelChannels(image);
       k=(ssize_t) (((size_t) index << (MaxGIFBits-8))+waiting_code);
       if (k >= MaxHashTable)
         k-=MaxHashTable;
-      next_pixel=MagickFalse;
-      displacement=1;
+      if (k < 0)
+        continue;
       if (hash_code[k] > 0)
         {
           if ((hash_prefix[k] == waiting_code) &&
@@ -1028,6 +1030,7 @@
   meta_image=AcquireImage(image_info,exception);  /* metadata container */
   meta_image->page.width=ReadBlobLSBShort(image);
   meta_image->page.height=ReadBlobLSBShort(image);
+  meta_image->iterations=1;
   flag=(unsigned char) ReadBlobByte(image);
   profiles=(LinkedListInfo *) NULL;
   background=(unsigned char) ReadBlobByte(image);
@@ -1096,7 +1099,7 @@
               if (count == 0)
                 break;
               buffer[count]='\0';
-              if (((ssize_t) count+offset+MagickPathExtent) >= (ssize_t) extent)
+              if ((ssize_t) (count+offset+MagickPathExtent) >= (ssize_t) extent)
                 {
                   extent<<=1;
                   comments=(char *) ResizeQuantumMemory(comments,extent+
@@ -1166,16 +1169,15 @@
                   MagickTrue : MagickFalse;
                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                   "    Reading GIF application extension");
-                info=(unsigned char *) AcquireQuantumMemory(255UL,
-                  sizeof(*info));
+                reserved_length=255;
+                info=(unsigned char *) AcquireQuantumMemory((size_t)
+                  reserved_length,sizeof(*info));
                 if (info == (unsigned char *) NULL)
                   ThrowGIFException(ResourceLimitError,
                     "MemoryAllocationFailed");
-                (void) memset(info,0,255UL*sizeof(*info));
-                reserved_length=255;
                 for (info_length=0; ; )
                 {
-                  block_length=(int) ReadBlobBlock(image,&info[info_length]);
+                  block_length=(int) ReadBlobBlock(image,info+info_length);
                   if (block_length == 0)
                     break;
                   info_length+=block_length;
diff --git a/coders/gif.h b/coders/gif.h
index 2f33816..597eb11 100644
--- a/coders/gif.h
+++ b/coders/gif.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/gradient.c b/coders/gradient.c
index 4032791..4a10fcf 100644
--- a/coders/gradient.c
+++ b/coders/gradient.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/gradient.h b/coders/gradient.h
index f4d4e4a..73e20f0 100644
--- a/coders/gradient.h
+++ b/coders/gradient.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/gray.c b/coders/gray.c
index 745b969..c4643f3 100644
--- a/coders/gray.c
+++ b/coders/gray.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -100,8 +100,8 @@
 static Image *ReadGRAYImage(const ImageInfo *image_info,
   ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -129,6 +129,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -177,7 +180,7 @@
       image->alpha_trait=BlendPixelTrait;
       canvas_image->alpha_trait=BlendPixelTrait;
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -188,8 +191,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -198,6 +200,7 @@
   length=0;
   scene=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -220,8 +223,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -246,7 +248,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,quantum_type,pixels,exception);
+            quantum_info,quantum_type,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -279,8 +281,7 @@
               if (status == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         break;
       }
@@ -299,8 +300,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -328,7 +328,7 @@
             if (q == (Quantum *) NULL)
               break;
             length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-              quantum_info,quantum_type,pixels,exception);
+              quantum_info,quantum_type,(unsigned char *) stream,exception);
             if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
               break;
             if (((y-image->extract_info.y) >= 0) && 
@@ -363,8 +363,7 @@
                 if (SyncAuthenticPixels(image,exception) == MagickFalse)
                   break;
               }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
           if (image->previous == (Image *) NULL)
             {
@@ -384,8 +383,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -410,7 +408,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -431,8 +429,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -465,7 +462,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,AlphaQuantum,pixels,exception);
+                quantum_info,AlphaQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -487,8 +484,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                 }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -517,8 +513,8 @@
         if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse)
           {
             status=MagickFalse;
-            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
-              image->filename);
+            ThrowFileException(exception,CorruptImageError,
+              "UnexpectedEndOfFile",image->filename);
             break;
           }
         length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
@@ -526,16 +522,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -559,7 +553,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -580,8 +574,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -602,16 +595,14 @@
             {
               for (y=0; y < (ssize_t) image->extract_info.height; y++)
               {
-                pixels=(const unsigned char *) ReadBlobStream(image,length,
-                  GetQuantumPixels(quantum_info),&count);
+                stream=ReadBlobStream(image,length,pixels,&count);
                 if (count != (ssize_t) length)
                   break;
               }
               if (count != (ssize_t) length)
                 break;
             }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
               register const Quantum
@@ -635,7 +626,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,BlueQuantum,pixels,exception);
+                quantum_info,BlueQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -656,8 +647,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -717,7 +707,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   R e g i s t e r G R A Y I m a g e                                           %
+%   R e g i s t e r G R A Y I m a g e                                         %
 %                                                                             %
 %                                                                             %
 %                                                                             %
diff --git a/coders/gray.h b/coders/gray.h
index 05df567..2b08acd 100644
--- a/coders/gray.h
+++ b/coders/gray.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hald.c b/coders/hald.c
index 131e2ae..b18e6dc 100644
--- a/coders/hald.c
+++ b/coders/hald.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/hald.h b/coders/hald.h
index 79d290c..3d062b4 100644
--- a/coders/hald.h
+++ b/coders/hald.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hdr.c b/coders/hdr.c
index b420111..85c3081 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -263,7 +263,7 @@
           } while (isalnum(c) || (c == '_'));
           *p='\0';
           value_expected=MagickFalse;
-          while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
+          while ((isspace(c) != 0) || (c == '='))
           {
             if (c == '=')
               value_expected=MagickTrue;
@@ -375,7 +375,7 @@
           }
         }
     if ((image->columns == 0) && (image->rows == 0))
-      while (isspace((int) ((unsigned char) c)) != 0)
+      while (isspace(c) != 0)
         c=ReadBlobByte(image);
   }
   if ((LocaleCompare(format,"32-bit_rle_rgbe") != 0) &&
@@ -785,9 +785,13 @@
             exponent;
 
           gamma=frexp(gamma,&exponent)*256.0/gamma;
-          pixel[0]=(unsigned char) (gamma*QuantumScale*GetPixelRed(image,p));
-          pixel[1]=(unsigned char) (gamma*QuantumScale*GetPixelGreen(image,p));
-          pixel[2]=(unsigned char) (gamma*QuantumScale*GetPixelBlue(image,p));
+          if (GetPixelRed(image,p) > 0)
+            pixel[0]=(unsigned char) (gamma*QuantumScale*GetPixelRed(image,p));
+          if (GetPixelGreen(image,p) > 0)
+            pixel[1]=(unsigned char) (gamma*QuantumScale*
+              GetPixelGreen(image,p));
+          if (GetPixelBlue(image,p) > 0)
+            pixel[2]=(unsigned char) (gamma*QuantumScale*GetPixelBlue(image,p));
           pixel[3]=(unsigned char) (exponent+128);
         }
       if ((image->columns >= 8) && (image->columns <= 0x7ffff))
diff --git a/coders/hdr.h b/coders/hdr.h
index 51e15f6..aeaff7c 100644
--- a/coders/hdr.h
+++ b/coders/hdr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/heic.c b/coders/heic.c
index 154a111..f5db596 100644
--- a/coders/heic.c
+++ b/coders/heic.c
@@ -22,7 +22,7 @@
 %                                                                             %
 %                      Copyright 2017-2018 YANDEX LLC.                        %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -81,20 +81,22 @@
 #endif
 #endif
 
-
 #if defined(MAGICKCORE_HEIC_DELEGATE)
+/*
+  Define declarations.
+*/
+#define XmpNamespaceExtent  28
 
 /*
   Const declarations.
 */
-static const char *xmp_namespace = "http://ns.adobe.com/xap/1.0/ ";
-#define XmpNamespaceExtent 28
+static const char
+  xmp_namespace[] = "http://ns.adobe.com/xap/1.0/ ";
 
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT)
 /*
   Forward declarations.
 */
-
-#if !defined(MAGICKCORE_WINDOWS_SUPPORT)
 static MagickBooleanType
   WriteHEICImage(const ImageInfo *,Image *,ExceptionInfo *);
 #endif
@@ -131,21 +133,135 @@
 {
   if (error->code == 0)
     return(MagickTrue);
-
   ThrowBinaryException(CorruptImageError,error->message,image->filename);
 }
 
-static Image *ReadHEICImage(const ImageInfo *image_info,
-  ExceptionInfo *exception)
+static MagickBooleanType ReadHEICColorProfile(Image *image,
+  struct heif_image_handle *image_handle,ExceptionInfo *exception)
+{
+  size_t
+    length;
+
+#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
+  length=heif_image_handle_get_raw_color_profile_size(image_handle);
+  if (length > 0)
+    {
+      unsigned char
+        *color_buffer;
+
+      /*
+        Read color profile.
+      */
+      if ((MagickSizeType) length > GetBlobSize(image))
+        ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
+          image->filename);
+      color_buffer=(unsigned char *) AcquireMagickMemory(length);
+      if (color_buffer != (unsigned char *) NULL)
+        {
+          struct heif_error
+            error;
+
+          error=heif_image_handle_get_raw_color_profile(image_handle,
+            color_buffer);
+          if (error.code == 0)
+            {
+              StringInfo
+                *profile;
+
+              profile=BlobToStringInfo(color_buffer,length);
+              if (profile != (StringInfo*) NULL)
+                {
+                  (void) SetImageProfile(image,"icc",profile,exception);
+                  profile=DestroyStringInfo(profile);
+                }
+            }
+        }
+      color_buffer=(unsigned char *) RelinquishMagickMemory(color_buffer);
+    }
+#endif
+  return(MagickTrue);
+}
+
+static MagickBooleanType ReadHEICExifProfile(Image *image,
+  struct heif_image_handle *image_handle,ExceptionInfo *exception)
 {
   heif_item_id
     exif_id;
 
-  Image
-    *image;
+  int
+    count;
+
+  count=heif_image_handle_get_list_of_metadata_block_IDs(image_handle,"Exif",
+    &exif_id,1);
+  if (count > 0)
+    {
+      size_t
+        exif_size;
+
+      unsigned char
+        *exif_buffer;
+
+      /*
+        Read Exif profile.
+      */
+      exif_size=heif_image_handle_get_metadata_size(image_handle,exif_id);
+      if ((MagickSizeType) exif_size > GetBlobSize(image))
+        ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
+          image->filename);
+      exif_buffer=(unsigned char *) AcquireMagickMemory(exif_size);
+      if (exif_buffer != (unsigned char *) NULL)
+        {
+          struct heif_error
+            error;
+
+          error=heif_image_handle_get_metadata(image_handle,
+            exif_id,exif_buffer);
+          if (error.code == 0)
+            {
+              StringInfo
+                *profile;
+
+              /*
+                The first 4 byte should be skipped since they indicate the
+                offset to the start of the TIFF header of the Exif data.
+              */
+              profile=(StringInfo*) NULL;
+              if (exif_size > 8)
+                profile=BlobToStringInfo(exif_buffer+4,(size_t) exif_size-4);
+              if (profile != (StringInfo*) NULL)
+                {
+                  (void) SetImageProfile(image,"exif",profile,exception);
+                  profile=DestroyStringInfo(profile);
+                }
+            }
+        }
+      exif_buffer=(unsigned char *) RelinquishMagickMemory(exif_buffer);
+  }
+  return(MagickTrue);
+}
+
+static inline MagickBooleanType HEICSkipImage(const ImageInfo *image_info,
+  Image *image)
+{
+  if (image_info->number_scenes == 0)
+    return(MagickFalse);
+  if (image->scene == 0)
+    return(MagickFalse);
+  if (image->scene < image_info->scene)
+    return(MagickTrue);
+  if (image->scene > image_info->scene+image_info->number_scenes-1)
+    return(MagickTrue);
+  return(MagickFalse);
+}
+
+static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
+  Image *image,struct heif_context *heif_context,heif_item_id image_id,
+  ExceptionInfo *exception)
+{
+  const char
+    *option;
 
   int
-    count,
     stride_y,
     stride_cb,
     stride_cr;
@@ -153,14 +269,11 @@
   MagickBooleanType
     status;
 
-  MagickSizeType
-    length;
-
   ssize_t
     y;
 
-  struct heif_context
-    *heif_context;
+  struct heif_decoding_options
+    *decode_options;
 
   struct heif_error
     error;
@@ -171,20 +284,144 @@
   struct heif_image_handle
     *image_handle;
 
-  struct heif_decoding_options
-    *decode_options;
-
-  uint8_t
+  const uint8_t
     *p_y,
     *p_cb,
     *p_cr;
 
+  error=heif_context_get_image_handle(heif_context,image_id,&image_handle);
+  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+    return(MagickFalse);
+  if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse)
+    {
+      heif_image_handle_release(image_handle);
+      return(MagickFalse);
+    }
+  if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse)
+    {
+      heif_image_handle_release(image_handle);
+      return(MagickFalse);
+    }
+  /*
+    Set image size.
+  */
+  image->depth=8;
+  image->columns=(size_t) heif_image_handle_get_width(image_handle);
+  image->rows=(size_t) heif_image_handle_get_height(image_handle);
+  if (image_info->ping != MagickFalse)
+    {
+      image->colorspace=YCbCrColorspace;
+      heif_image_handle_release(image_handle);
+      return(MagickTrue);
+    }
+  if (HEICSkipImage(image_info,image) != MagickFalse)
+    {
+      heif_image_handle_release(image_handle);
+      return(MagickTrue);
+    }
+  status=SetImageExtent(image,image->columns,image->rows,exception);
+  if (status == MagickFalse)
+    {
+      heif_image_handle_release(image_handle);
+      return(MagickFalse);
+    }
+  /*
+    Copy HEIF image into ImageMagick data structures.
+  */
+  (void) SetImageColorspace(image,YCbCrColorspace,exception);
+  decode_options=(struct heif_decoding_options *) NULL;
+  option=GetImageOption(image_info,"heic:preserve-orientation");
+  if (IsStringTrue(option) == MagickTrue)
+    {
+      decode_options=heif_decoding_options_alloc();
+      decode_options->ignore_transformations=1;
+    }
+  else
+    (void) SetImageProperty(image,"exif:Orientation","1",exception);
+  error=heif_decode_image(image_handle,&heif_image,heif_colorspace_YCbCr,
+    heif_chroma_420,decode_options);
+  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+    {
+      heif_image_handle_release(image_handle);
+      return(MagickFalse);
+    }
+  if (decode_options != (struct heif_decoding_options *) NULL)
+    {
+      /*
+        Correct the width and height of the image.
+      */
+      image->columns=(size_t) heif_image_get_width(heif_image,heif_channel_Y);
+      image->rows=(size_t) heif_image_get_height(heif_image,heif_channel_Y);
+      status=SetImageExtent(image,image->columns,image->rows,exception);
+      heif_decoding_options_free(decode_options);
+      if (status == MagickFalse)
+        {
+          heif_image_release(heif_image);
+          heif_image_handle_release(image_handle);
+          return(MagickFalse);
+        }
+    }
+  p_y=heif_image_get_plane_readonly(heif_image,heif_channel_Y,&stride_y);
+  p_cb=heif_image_get_plane_readonly(heif_image,heif_channel_Cb,&stride_cb);
+  p_cr=heif_image_get_plane_readonly(heif_image,heif_channel_Cr,&stride_cr);
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    Quantum
+      *q;
+
+    register ssize_t
+      x;
+
+    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+    if (q == (Quantum *) NULL)
+      break;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      SetPixelRed(image,ScaleCharToQuantum((unsigned char) p_y[y*
+        stride_y+x]),q);
+      SetPixelGreen(image,ScaleCharToQuantum((unsigned char) p_cb[(y/2)*
+        stride_cb+x/2]),q);
+      SetPixelBlue(image,ScaleCharToQuantum((unsigned char) p_cr[(y/2)*
+        stride_cr+x/2]),q);
+      q+=GetPixelChannels(image);
+    }
+    if (SyncAuthenticPixels(image,exception) == MagickFalse)
+      break;
+  }
+  heif_image_release(heif_image);
+  heif_image_handle_release(image_handle);
+  return(MagickTrue);
+}
+
+static Image *ReadHEICImage(const ImageInfo *image_info,
+  ExceptionInfo *exception)
+{
+  const StringInfo
+    *profile;
+
+  heif_item_id
+    *image_ids,
+    primary_image_id;
+
+  Image
+    *image;
+
+  MagickBooleanType
+    status;
+
+  size_t
+    count,
+    length;
+
+  struct heif_context
+    *heif_context;
+
+  struct heif_error
+    error;
+
   void
     *file_data;
 
-  const char
-    *option;
-
   /*
     Open image file.
   */
@@ -199,7 +436,9 @@
   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(DestroyImageList(image));
-  length=GetBlobSize(image);
+  if (GetBlobSize(image) > (MagickSizeType) SSIZE_MAX)
+    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+  length=(size_t) GetBlobSize(image);
   file_data=AcquireMagickMemory(length);
   if (file_data == (void *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -212,146 +451,95 @@
     Decode HEIF file
   */
   heif_context=heif_context_alloc();
-  error=heif_context_read_from_memory(heif_context,file_data,length,NULL);
-  file_data=RelinquishMagickMemory(file_data);
+  error=heif_context_read_from_memory_without_copy(heif_context,file_data,
+    length,NULL);
   if (IsHeifSuccess(&error,image,exception) == MagickFalse)
     {
       heif_context_free(heif_context);
+      file_data=RelinquishMagickMemory(file_data);
       return(DestroyImageList(image));
     }
-  image_handle=(struct heif_image_handle *) NULL;
-  error=heif_context_get_primary_image_handle(heif_context,&image_handle);
+  error=heif_context_get_primary_image_ID(heif_context,&primary_image_id);
   if (IsHeifSuccess(&error,image,exception) == MagickFalse)
     {
       heif_context_free(heif_context);
+      file_data=RelinquishMagickMemory(file_data);
       return(DestroyImageList(image));
     }
-  /*
-    Read Exif data from HEIC file
-  */
-  count=heif_image_handle_get_list_of_metadata_block_IDs(image_handle,"Exif",
-    &exif_id,1);
-  if (count > 0)
+  status=ReadHEICImageByID(image_info,image,heif_context,primary_image_id,
+    exception);
+  image_ids=(heif_item_id *) NULL;
+  count=(size_t) heif_context_get_number_of_top_level_images(heif_context);
+  if ((status != MagickFalse) && (count > 1))
     {
-      size_t
-        exif_size;
+      register size_t
+        i;
 
-      unsigned char
-        *exif_buffer;
-
-      exif_size=heif_image_handle_get_metadata_size(image_handle,exif_id);
-      if (exif_size > GetBlobSize(image))
+      image_ids=(heif_item_id *) AcquireQuantumMemory((size_t) count,
+        sizeof(*image_ids));
+      if (image_ids == (heif_item_id *) NULL)
         {
-          heif_image_handle_release(image_handle);
           heif_context_free(heif_context);
-          ThrowReaderException(CorruptImageError,
-            "InsufficientImageDataInFile");
+          ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
         }
-      exif_buffer=(unsigned char *) AcquireMagickMemory(exif_size);
-      if (exif_buffer !=(unsigned char *) NULL)
-        {
-          error=heif_image_handle_get_metadata(image_handle,
-            exif_id,exif_buffer);
-          if (error.code == 0)
-            {
-              StringInfo
-                *profile;
-
-              // The first 4 byte should be skipped since they indicate the
-              // offset to the start of the TIFF header of the Exif data.
-              profile=(StringInfo*) NULL;
-              if (exif_size > 8)
-                profile=BlobToStringInfo(exif_buffer+4,exif_size-4);
-              if (profile != (StringInfo*) NULL)
-                {
-                  SetImageProfile(image,"exif",profile,exception);
-                  profile=DestroyStringInfo(profile);
-                }
-            }
-        }
-      exif_buffer=RelinquishMagickMemory(exif_buffer);
-  }
-  /*
-    Set image size
-   */
-  image->depth=8;
-  image->columns=(size_t) heif_image_handle_get_width(image_handle);
-  image->rows=(size_t) heif_image_handle_get_height(image_handle);
-  if (image_info->ping != MagickFalse)
-    {
-      image->colorspace=YCbCrColorspace;
-      heif_image_handle_release(image_handle);
-      heif_context_free(heif_context);
-      return(GetFirstImageInList(image));
+      (void) heif_context_get_list_of_top_level_image_IDs(heif_context,
+        image_ids,(int) count);
+      for (i=0; i < count; i++)
+      {
+        if (image_ids[i] == primary_image_id)
+          continue;
+        /*
+          Allocate next image structure.
+        */
+        AcquireNextImage(image_info,image,exception);
+        if (GetNextImageInList(image) == (Image *) NULL)
+          {
+            status=MagickFalse;
+            break;
+          }
+        image=SyncNextImageInList(image);
+        status=ReadHEICImageByID(image_info,image,heif_context,image_ids[i],
+          exception);
+        if (status == MagickFalse)
+          break;
+        if (image_info->number_scenes != 0)
+          if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+            break;
+      }
     }
-  status=SetImageExtent(image,image->columns,image->rows,exception);
-  if (status == MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      heif_context_free(heif_context);
-      return(DestroyImageList(image));
-    }
-  /*
-    Copy HEIF image into ImageMagick data structures
-  */
-  (void) SetImageColorspace(image,YCbCrColorspace,exception);
-  decode_options=(struct heif_decoding_options *) NULL;
-  option=GetImageOption(image_info,"heic:preserve-orientation");
-  if (IsStringTrue(option) == MagickTrue)
-    {
-      decode_options=heif_decoding_options_alloc();
-      decode_options->ignore_transformations=1;
-    }
-  else
-    SetImageProperty(image,"exif:Orientation","1",exception);
-  error=heif_decode_image(image_handle,&heif_image,heif_colorspace_YCbCr,
-    heif_chroma_420,decode_options);
-  if (decode_options != (struct heif_decoding_options *) NULL)
-    {
-      /* Correct the width and height of the image */
-      image->columns=(size_t) heif_image_get_width(heif_image,heif_channel_Y);
-      image->rows=(size_t) heif_image_get_height(heif_image,heif_channel_Y);
-      status=SetImageExtent(image,image->columns,image->rows,exception);
-      heif_decoding_options_free(decode_options);
-    }
-  if ((IsHeifSuccess(&error,image,exception) == MagickFalse) ||
-      (status == MagickFalse))
-    {
-      heif_image_handle_release(image_handle);
-      heif_context_free(heif_context);
-      return(DestroyImageList(image));
-    }
-  p_y=heif_image_get_plane(heif_image,heif_channel_Y,&stride_y);
-  p_cb=heif_image_get_plane(heif_image,heif_channel_Cb,&stride_cb);
-  p_cr=heif_image_get_plane(heif_image,heif_channel_Cr,&stride_cr);
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    Quantum
-      *q;
-
-    register ssize_t
-      x;
-
-    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
-    if (q == (Quantum *) NULL)
-      break;
-    for (x=0; x < (long) image->columns; x++)
-    {
-      SetPixelRed(image,ScaleCharToQuantum(p_y[y*stride_y + x]),q);
-      SetPixelGreen(image,ScaleCharToQuantum(p_cb[(y/2)*stride_cb + x/2]),q);
-      SetPixelBlue(image,ScaleCharToQuantum(p_cr[(y/2)*stride_cr + x/2]),q);
-      q+=GetPixelChannels(image);
-    }
-    if (SyncAuthenticPixels(image,exception) == MagickFalse)
-      break;
-  }
-  heif_image_release(heif_image);
-  heif_image_handle_release(image_handle);
+  if (image_ids != (heif_item_id *) NULL)
+    (void) RelinquishMagickMemory(image_ids);
   heif_context_free(heif_context);
-  return(GetFirstImageInList(image));
+  file_data=RelinquishMagickMemory(file_data);
+  if (status == MagickFalse)
+    return(DestroyImageList(image));
+  /*
+    Change image colorspace if it contains a color profile.
+  */
+  image=GetFirstImageInList(image);
+  profile=GetImageProfile(image,"icc");
+  if (profile != (const StringInfo *) NULL)
+    {
+      Image
+        *next;
+
+      next=image;
+      while (next != (Image *) NULL)
+      {
+        if (HEICSkipImage(image_info,next) != MagickFalse)
+          {
+            if (image_info->ping == MagickFalse)
+              (void) TransformImageColorspace(next,sRGBColorspace,exception);
+            else
+              next->colorspace=sRGBColorspace;
+          }
+        next=GetNextImageInList(next);
+      }
+    }
+  return(image);
 }
 #endif
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -391,7 +579,7 @@
     return(MagickTrue);
   return(MagickFalse);
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -432,11 +620,10 @@
   entry->version=ConstantString(LIBHEIF_VERSION);
 #endif
   entry->flags|=CoderDecoderSeekableStreamFlag;
-  entry->flags^=CoderAdjoinFlag;
   (void) RegisterMagickInfo(entry);
   return(MagickImageCoderSignature);
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -460,7 +647,7 @@
 {
   (void) UnregisterMagickInfo("HEIC");
 }
-
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -488,8 +675,10 @@
 %    o exception:  return any errors or warnings in this structure.
 %
 */
+
 #if defined(MAGICKCORE_HEIC_DELEGATE) && !defined(MAGICKCORE_WINDOWS_SUPPORT)
-static void WriteProfile(struct heif_context* ctx,Image *image,
+#if LIBHEIF_NUMERIC_VERSION >= 0x01030000
+static void WriteProfile(struct heif_context *context,Image *image,
   ExceptionInfo *exception)
 {
   const char
@@ -498,41 +687,33 @@
   const StringInfo
     *profile;
 
-  MagickBooleanType
-    iptc;
-
   register ssize_t
     i;
 
   size_t
     length;
 
-  StringInfo
-    *custom_profile;
-
   struct heif_error
     error;
 
   struct heif_image_handle
     *image_handle;
 
-  /*Get image handle*/
+  /*
+    Get image handle.
+  */
   image_handle=(struct heif_image_handle *) NULL;
-  error=heif_context_get_primary_image_handle(ctx,&image_handle);
+  error=heif_context_get_primary_image_handle(context,&image_handle);
   if (error.code != 0)
     return;
-
   /*
     Save image profile as a APP marker.
   */
-  iptc=MagickFalse;
-  custom_profile=AcquireStringInfo(65535L);
   ResetImageProfileIterator(image);
   for (name=GetNextImageProfile(image); name != (const char *) NULL; )
   {
     profile=GetImageProfile(image,name);
     length=GetStringInfoLength(profile);
-
     if (LocaleCompare(name,"EXIF") == 0)
       {
         length=GetStringInfoLength(profile);
@@ -543,10 +724,9 @@
               image->filename);
             length=65533L;
           }
-          (void) heif_context_add_exif_metadata(ctx,image_handle,
+          (void) heif_context_add_exif_metadata(context,image_handle,
             (void*) GetStringInfoDatum(profile),length);
       }
-
     if (LocaleCompare(name,"XMP") == 0)
       {
         StringInfo
@@ -561,7 +741,7 @@
             for (i=0; i < (ssize_t) GetStringInfoLength(xmp_profile); i+=65533L)
             {
               length=MagickMin(GetStringInfoLength(xmp_profile)-i,65533L);
-              error=heif_context_add_XMP_metadata(ctx,image_handle,
+              error=heif_context_add_XMP_metadata(context,image_handle,
                 (void*) (GetStringInfoDatum(xmp_profile)+i),length);
               if (error.code != 0)
                 break;
@@ -574,12 +754,12 @@
         "%s profile: %.20g bytes",name,(double) GetStringInfoLength(profile));
     name=GetNextImageProfile(image);
   }
-  custom_profile=DestroyStringInfo(custom_profile);
   heif_image_handle_release(image_handle);
 }
+#endif
 
-static struct heif_error heif_write_func(struct heif_context *ctx,const void* data,
-  size_t size,void* userdata)
+static struct heif_error heif_write_func(struct heif_context *context,
+  const void* data,size_t size,void* userdata)
 {
   Image
     *image;
@@ -587,28 +767,27 @@
   struct heif_error
     error_ok;
 
-  (void) ctx;
+  (void) context;
   image=(Image*) userdata;
-  (void) WriteBlob(image,size,data);
+  (void) WriteBlob(image,size,(const unsigned char *) data);
   error_ok.code=heif_error_Ok;
   error_ok.subcode=heif_suberror_Unspecified;
   error_ok.message="ok";
   return(error_ok);
 }
 
-static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,Image *image,
-  ExceptionInfo *exception)
+static MagickBooleanType WriteHEICImage(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
 {
-  long
-    x,
-    y;
-
   MagickBooleanType
     status;
 
   MagickOffsetType
     scene;
 
+  ssize_t
+    y;
+
   struct heif_context
     *heif_context;
 
@@ -639,6 +818,11 @@
     const Quantum
       *p;
 
+#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
+    const StringInfo
+      *profile;
+#endif
+
     int
       stride_y,
       stride_cb,
@@ -663,13 +847,19 @@
     if (status == MagickFalse)
       break;
     /*
-      Initialize HEIF encoder context
+      Initialize HEIF encoder context.
     */
     error=heif_image_create((int) image->columns,(int) image->rows,
       heif_colorspace_YCbCr,heif_chroma_420,&heif_image);
     status=IsHeifSuccess(&error,image,exception);
     if (status == MagickFalse)
       break;
+#if LIBHEIF_NUMERIC_VERSION >= 0x01040000
+    profile=GetImageProfile(image,"icc");
+    if (profile != (StringInfo *) NULL)
+      (void) heif_image_set_raw_color_profile(heif_image,"prof",
+        GetStringInfoDatum(profile),GetStringInfoLength(profile));
+#endif
     error=heif_image_add_plane(heif_image,heif_channel_Y,(int) image->columns,
       (int) image->rows,8);
     status=IsHeifSuccess(&error,image,exception);
@@ -691,40 +881,35 @@
     /*
       Copy image to heif_image
     */
-    for (y=0; y < (long) image->rows; y++)
+    for (y=0; y < (ssize_t) image->rows; y++)
     {
+      register ssize_t
+        x;
+
       p=GetVirtualPixels(image,0,y,image->columns,1,exception);
       if (p == (const Quantum *) NULL)
         {
           status=MagickFalse;
           break;
         }
-      if ((y & 1)==0)
+      if ((y & 0x01) == 0)
+        for (x=0; x < (ssize_t) image->columns; x+=2)
         {
-          for (x=0; x < (long) image->columns; x+=2)
+          p_y[y*stride_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
+          p_cb[y/2*stride_cb+x/2]=ScaleQuantumToChar(GetPixelGreen(image,p));
+          p_cr[y/2*stride_cr+x/2]=ScaleQuantumToChar(GetPixelBlue(image,p));
+          p+=GetPixelChannels(image);
+          if ((x+1) < (ssize_t) image->columns)
             {
-              p_y[y*stride_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
-              p_cb[y/2*stride_cb+x/2]=ScaleQuantumToChar(GetPixelGreen(image,
-                p));
-              p_cr[y/2*stride_cr+x/2]=ScaleQuantumToChar(GetPixelBlue(image,
-                p));
+              p_y[y*stride_y+x+1]=ScaleQuantumToChar(GetPixelRed(image,p));
               p+=GetPixelChannels(image);
-
-              if (x+1 < (long) image->columns)
-                {
-                  p_y[y*stride_y + x+1]=ScaleQuantumToChar(GetPixelRed(image,
-                    p));
-                  p+=GetPixelChannels(image);
-                }
             }
         }
       else
+        for (x=0; x < (ssize_t) image->columns; x++)
         {
-          for (x=0; x < (long) image->columns; x++)
-          {
-            p_y[y*stride_y + x]=ScaleQuantumToChar(GetPixelRed(image,p));
-            p+=GetPixelChannels(image);
-          }
+          p_y[y*stride_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
+          p+=GetPixelChannels(image);
         }
       if (image->previous == (Image *) NULL)
         {
@@ -746,30 +931,30 @@
       break;
     if (image_info->quality != UndefinedCompressionQuality)
       {
-        error=heif_encoder_set_lossy_quality(heif_encoder,
-          (int) image_info->quality);
+        error=heif_encoder_set_lossy_quality(heif_encoder,(int)
+          image_info->quality);
         status=IsHeifSuccess(&error,image,exception);
         if (status == MagickFalse)
           break;
       }
     error=heif_context_encode_image(heif_context,heif_image,heif_encoder,
-      (const struct heif_encoding_options*) NULL,
-      (struct heif_image_handle**) NULL);
+      (const struct heif_encoding_options *) NULL,
+      (struct heif_image_handle **) NULL);
     status=IsHeifSuccess(&error,image,exception);
     if (status == MagickFalse)
       break;
     writer.writer_api_version=1;
     writer.write=heif_write_func;
-
-  	if (image->profiles != (void *) NULL)
-    	WriteProfile(heif_context, image, exception);
-
+#if LIBHEIF_NUMERIC_VERSION >= 0x01030000
+    if (image->profiles != (void *) NULL)
+      WriteProfile(heif_context, image, exception);
+#endif
     error=heif_context_write(heif_context,&writer,image);
     status=IsHeifSuccess(&error,image,exception);
     if (status == MagickFalse)
       break;
     if (GetNextImageInList(image) == (Image *) NULL)
-        break;
+      break;
     image=SyncNextImageInList(image);
     status=SetImageProgress(image,SaveImagesTag,scene,
       GetImageListLength(image));
@@ -781,13 +966,11 @@
     heif_image=(struct heif_image*) NULL;
     scene++;
   } while (image_info->adjoin != MagickFalse);
-
   if (heif_encoder != (struct heif_encoder*) NULL)
     heif_encoder_release(heif_encoder);
   if (heif_image != (struct heif_image*) NULL)
     heif_image_release(heif_image);
   heif_context_free(heif_context);
-
   (void) CloseBlob(image);
   return(status);
 }
diff --git a/coders/heic.h b/coders/heic.h
index 00b3632..951b43d 100644
--- a/coders/heic.h
+++ b/coders/heic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/histogram.c b/coders/histogram.c
index b193cfe..1f2a31a 100644
--- a/coders/histogram.c
+++ b/coders/histogram.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/histogram.h b/coders/histogram.h
index c3712c5..b9276db 100644
--- a/coders/histogram.h
+++ b/coders/histogram.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hrz.c b/coders/hrz.c
index 4c7cc55..87f18c9 100644
--- a/coders/hrz.c
+++ b/coders/hrz.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/hrz.h b/coders/hrz.h
index 6b1c9c0..d1f502e 100644
--- a/coders/hrz.h
+++ b/coders/hrz.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/html.c b/coders/html.c
index fe97a43..062197d 100644
--- a/coders/html.c
+++ b/coders/html.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -94,7 +94,7 @@
 */
 static MagickBooleanType IsHTML(const unsigned char *magick,const size_t length)
 {
-  if (length < 5)
+  if (length < 6)
     return(MagickFalse);
   if (LocaleNCompare((char *) magick+1,"html",5) == 0)
     return(MagickTrue);
diff --git a/coders/html.h b/coders/html.h
index fd12687..2ee8de8 100644
--- a/coders/html.h
+++ b/coders/html.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/icon.c b/coders/icon.c
index 80822e5..4fb6fd6 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -142,73 +142,8 @@
 /*
   Forward declaractions.
 */
-static Image
-  *AutoResizeImage(const Image *,const char *,MagickOffsetType *,
-    ExceptionInfo *);
-
 static MagickBooleanType
   WriteICONImage(const ImageInfo *,Image *,ExceptionInfo *);
-
-Image *AutoResizeImage(const Image *image,const char *option,
-  MagickOffsetType *count,ExceptionInfo *exception)
-{
-  #define MAX_SIZES 16
-
-  char
-    *q;
-
-  const char
-    *p;
-
-  Image
-    *resized,
-    *images;
-
-  register ssize_t
-    i;
-
-  size_t
-    sizes[MAX_SIZES]={256,192,128,96,64,48,40,32,24,16};
-
-  images=NULL;
-  *count=0;
-  i=0;
-  p=option;
-  while (*p != '\0' && i < MAX_SIZES)
-  {
-    size_t
-      size;
-
-    while ((isspace((int) ((unsigned char) *p)) != 0))
-      p++;
-
-    size=(size_t)strtol(p,&q,10);
-    if ((p == q) || (size < 16) || (size > 256))
-      return((Image *) NULL);
-
-    p=q;
-    sizes[i++]=size;
-
-    while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))
-      p++;
-  }
-
-  if (i==0)
-    i=10;
-  *count=i;
-  for (i=0; i < *count; i++)
-  {
-    resized=ResizeImage(image,sizes[i],sizes[i],image->filter,exception);
-    if (resized == (Image *) NULL)
-      return(DestroyImageList(images));
-
-    if (images == (Image *) NULL)
-      images=resized;
-    else
-      AppendImageToList(&images,resized);
-  }
-  return(images);
-}
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -359,7 +294,7 @@
         length=icon_file.directory[i].size;
         if ((length < 16) || (~length < 16))
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-        png=(unsigned char *) AcquireQuantumMemory(length+16,sizeof(*png));
+        png=(unsigned char *) AcquireQuantumMemory(length,sizeof(*png));
         if (png == (unsigned char *) NULL)
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
         (void) memcpy(png,"\211PNG\r\n\032\n\000\000\000\015",12);
@@ -376,7 +311,7 @@
           }
         read_info=CloneImageInfo(image_info);
         (void) CopyMagickString(read_info->magick,"PNG",MagickPathExtent);
-        icon_image=BlobToImage(read_info,png,length+16,exception);
+        icon_image=BlobToImage(read_info,png,length,exception);
         read_info=DestroyImageInfo(read_info);
         png=(unsigned char *) RelinquishMagickMemory(png);
         if (icon_image == (Image *) NULL)
@@ -864,6 +799,63 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
+
+static Image *AutoResizeImage(const Image *image,const char *option,
+  MagickOffsetType *count,ExceptionInfo *exception)
+{
+#define MAX_SIZES 16
+
+  char
+    *q;
+
+  const char
+    *p;
+
+  Image
+    *images,
+    *resized;
+
+  register ssize_t
+    i;
+
+  size_t
+    sizes[MAX_SIZES] ={ 256, 192, 128, 96, 64, 48, 40, 32, 24, 16};
+
+  images=NULL;
+  *count=0;
+  i=0;
+  p=option;
+  while ((*p != '\0') && (i < MAX_SIZES))
+  {
+    size_t
+      size;
+
+    while ((isspace((int) ((unsigned char) *p)) != 0))
+      p++;
+    size=(size_t) strtol(p,&q,10);
+    if ((p == q) || (size < 16) || (size > 256))
+      return((Image *) NULL);
+    p=q;
+    sizes[i++]=size;
+    while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ','))
+      p++;
+  }
+  if (i == 0)
+    i=10;
+  *count=i;
+  for (i=0; i < *count; i++)
+  {
+    resized=ResizeImage(image,sizes[i],sizes[i],image->filter,exception);
+    if (resized == (Image *) NULL)
+      return(DestroyImageList(images));
+    if (images == (Image *) NULL)
+      images=resized;
+    else
+      AppendImageToList(&images,resized);
+  }
+  return(images);
+}
+
 static MagickBooleanType WriteICONImage(const ImageInfo *image_info,
   Image *image,ExceptionInfo *exception)
 {
@@ -996,13 +988,14 @@
         write_info=CloneImageInfo(image_info);
         (void) CopyMagickString(write_info->magick,"PNG",MagickPathExtent);
         length=0;
-
-        /* Don't write any ancillary chunks except for gAMA */
+        /*
+          Don't write any ancillary chunks except for gAMA.
+        */
         (void) SetImageArtifact(write_image,"png:include-chunk","none,gama");
-
-        /* Only write PNG32 formatted PNG (32-bit RGBA), 8 bits per channel */
+        /*
+          Only write PNG32 formatted PNG (32-bit RGBA), 8 bits per channel.
+        */
         (void) SetImageArtifact(write_image,"png:format","png32");
-
         png=(unsigned char *) ImageToBlob(write_info,write_image,&length,
           exception);
         write_image=DestroyImageList(write_image);
@@ -1052,8 +1045,6 @@
               Colormapped ICON raster.
             */
             icon_info.bits_per_pixel=8;
-            if (next->colors <= 256)
-              icon_info.bits_per_pixel=8;
             if (next->colors <= 16)
               icon_info.bits_per_pixel=4;
             if (next->colors <= 2)
@@ -1076,8 +1067,8 @@
                 icon_info.offset_bits+=(one << icon_info.bits_per_pixel);
               }
           }
-        bytes_per_line=(((next->columns*icon_info.bits_per_pixel)+31) &
-          ~31) >> 3;
+        bytes_per_line=(((next->columns*icon_info.bits_per_pixel)+31) & ~31) >>
+          3;
         icon_info.ba_offset=0;
         icon_info.width=(ssize_t) next->columns;
         icon_info.height=(ssize_t) next->rows;
@@ -1148,7 +1139,7 @@
                     bit=0;
                     byte=0;
                   }
-                p+=GetPixelChannels(image);
+                p+=GetPixelChannels(next);
               }
               if (bit != 0)
                 *q++=(unsigned char) (byte << (8-bit));
@@ -1189,7 +1180,7 @@
                     nibble=0;
                     byte=0;
                   }
-                p+=GetPixelChannels(image);
+                p+=GetPixelChannels(next);
               }
               if (nibble != 0)
                 *q++=(unsigned char) (byte << 4);
@@ -1216,7 +1207,7 @@
               for (x=0; x < (ssize_t) next->columns; x++)
               {
                 *q++=(unsigned char) GetPixelIndex(next,p);
-                p+=GetPixelChannels(image);
+                p+=GetPixelChannels(next);
               }
               if (next->previous == (Image *) NULL)
                 {
@@ -1285,7 +1276,8 @@
         (void) WriteBlobLSBLong(image,(unsigned int) icon_info.x_pixels);
         (void) WriteBlobLSBLong(image,(unsigned int) icon_info.y_pixels);
         (void) WriteBlobLSBLong(image,(unsigned int) icon_info.number_colors);
-        (void) WriteBlobLSBLong(image,(unsigned int) icon_info.colors_important);
+        (void) WriteBlobLSBLong(image,(unsigned int)
+          icon_info.colors_important);
         if (next->storage_class == PseudoClass)
           {
             unsigned char
diff --git a/coders/icon.h b/coders/icon.h
index fbc7379..4f494a7 100644
--- a/coders/icon.h
+++ b/coders/icon.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/info.c b/coders/info.c
index ec2e3ac..4ec8143 100644
--- a/coders/info.c
+++ b/coders/info.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/info.h b/coders/info.h
index e8c7532..ff2b424 100644
--- a/coders/info.h
+++ b/coders/info.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/inline.c b/coders/inline.c
index 58701d4..fb1fb9a 100644
--- a/coders/inline.c
+++ b/coders/inline.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/inline.h b/coders/inline.h
index b241aa0..9e793bc 100644
--- a/coders/inline.h
+++ b/coders/inline.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ipl.c b/coders/ipl.c
index 0b3f4b2..b1494ac 100644
--- a/coders/ipl.c
+++ b/coders/ipl.c
@@ -19,7 +19,7 @@
 %                                  2008.05.07                                 %
 %                                     v 0.9                                   %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/ipl.h b/coders/ipl.h
index 68e7364..c45f94b 100644
--- a/coders/ipl.h
+++ b/coders/ipl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jbig.c b/coders/jbig.c
index 74f1572..7a38a9e 100644
--- a/coders/jbig.c
+++ b/coders/jbig.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/jbig.h b/coders/jbig.h
index 44799cb..25aef77 100644
--- a/coders/jbig.h
+++ b/coders/jbig.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jnx.c b/coders/jnx.c
index e9837d5..b53b542 100644
--- a/coders/jnx.c
+++ b/coders/jnx.c
@@ -16,7 +16,7 @@
 %                                 July 2012                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -267,7 +267,10 @@
       (void) ReadBlobLSBShort(image); /* width */
       (void) ReadBlobLSBShort(image); /* height */
       if (EOFBlob(image) != MagickFalse)
-        ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+        {
+          images=DestroyImageList(images);
+          ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+        }
       tile_length=ReadBlobLSBLong(image);
       tile_offset=ReadBlobLSBSignedLong(image);
       if (tile_offset == -1)
@@ -282,13 +285,15 @@
         Read a tile.
       */
       if (((MagickSizeType) tile_length) > GetBlobSize(image))
-        ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+        {
+          images=DestroyImageList(images);
+          ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+        }
       blob=(unsigned char *) AcquireQuantumMemory((size_t) tile_length+2,
         sizeof(*blob));
       if (blob == (unsigned char *) NULL)
         {
-          if (images != (Image *) NULL)
-            images=DestroyImageList(images);
+          images=DestroyImageList(images);
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
         }
       blob[0]=0xFF;
@@ -296,8 +301,7 @@
       count=ReadBlob(image,tile_length,blob+2);
       if (count != (ssize_t) tile_length)
         {
-          if (images != (Image *) NULL)
-            images=DestroyImageList(images);
+          images=DestroyImageList(images);
           blob=(unsigned char *) RelinquishMagickMemory(blob);
           ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
         }
@@ -331,8 +335,6 @@
   }
   (void) CloseBlob(image);
   image=DestroyImage(image);
-  if (images == (Image *) NULL)
-    return((Image *) NULL);
   return(GetFirstImageInList(images));
 }
 
diff --git a/coders/jnx.h b/coders/jnx.h
index c060b67..4fef1d6 100644
--- a/coders/jnx.h
+++ b/coders/jnx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jp2.c b/coders/jp2.c
index e74db30..e96a1e3 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -17,7 +17,7 @@
 %                                 June 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -346,17 +346,21 @@
       opj_destroy_codec(jp2_codec);
       ThrowReaderException(DelegateError,"UnableToDecodeImageFile");
     }
-  jp2_status=1;
-  if ((image->columns != 0) && (image->rows != 0))
+  jp2_status=OPJ_TRUE;
+  if (image->ping == MagickFalse)
     {
-      /*
-        Extract an area from the image.
-      */
-      jp2_status=opj_set_decode_area(jp2_codec,jp2_image,
-        (OPJ_INT32) image->extract_info.x,(OPJ_INT32) image->extract_info.y,
-        (OPJ_INT32) (image->extract_info.x+(ssize_t) image->columns),
-        (OPJ_INT32) (image->extract_info.y+(ssize_t) image->rows));
-      if (jp2_status == 0)
+      if ((image->columns != 0) && (image->rows != 0))
+        /*
+          Extract an area from the image.
+        */
+        jp2_status=opj_set_decode_area(jp2_codec,jp2_image,
+          (OPJ_INT32) image->extract_info.x,(OPJ_INT32) image->extract_info.y,
+          (OPJ_INT32) (image->extract_info.x+(ssize_t) image->columns),
+          (OPJ_INT32) (image->extract_info.y+(ssize_t) image->rows));
+      else
+        jp2_status=opj_set_decode_area(jp2_codec,jp2_image,0,0,
+          jp2_image->comps[0].w,jp2_image->comps[0].h);
+      if (jp2_status == OPJ_FALSE)
         {
           opj_stream_destroy(jp2_stream);
           opj_destroy_codec(jp2_codec);
@@ -378,14 +382,11 @@
   else
     if (image->ping == MagickFalse)
       {
-        jp2_status=opj_set_decode_area(jp2_codec,jp2_image,0,0,
-          jp2_image->comps[0].w-1,jp2_image->comps[0].h-1);
-        if (jp2_status != 0)
-          jp2_status=opj_decode(jp2_codec,jp2_stream,jp2_image);
-        if (jp2_status != 0)
+        jp2_status=opj_decode(jp2_codec,jp2_stream,jp2_image);
+        if (jp2_status != OPJ_FALSE)
           jp2_status=opj_end_decompress(jp2_codec,jp2_stream);
       }
-  if (jp2_status == 0)
+  if (jp2_status == OPJ_FALSE)
     {
       opj_stream_destroy(jp2_stream);
       opj_destroy_codec(jp2_codec);
@@ -776,6 +777,17 @@
   parameters->cp_disto_alloc=1;
 }
 
+static inline int CalculateNumResolutions(size_t width,size_t height)
+{
+  int
+    i;
+
+  for (i=1; i < 6; i++)
+    if ((width < ((size_t) 1UL << i)) || (height < ((size_t) 1UL << i)))
+      break;
+  return(i);
+}
+
 static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image,
   ExceptionInfo *exception)
 {
@@ -796,7 +808,7 @@
     jp2_colorspace;
 
   opj_cparameters_t
-    parameters;
+    *parameters;
 
   opj_image_cmptparm_t
     jp2_info[5];
@@ -833,22 +845,23 @@
   /*
     Initialize JPEG 2000 API.
   */
-  opj_set_default_encoder_parameters(&parameters);
-  for (i=1; i < 6; i++)
-    if (((size_t) (1UL << (i+2)) > image->columns) &&
-        ((size_t) (1UL << (i+2)) > image->rows))
-      break;
-  parameters.numresolution=i;
+  parameters=(opj_cparameters_t *) AcquireMagickMemory(sizeof(*parameters));
+  if (parameters == (opj_cparameters_t *) NULL)
+    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+  opj_set_default_encoder_parameters(parameters);
   option=GetImageOption(image_info,"jp2:number-resolutions");
   if (option != (const char *) NULL)
-    parameters.numresolution=StringToInteger(option);
-  parameters.tcp_numlayers=1;
-  parameters.tcp_rates[0]=0;  /* lossless */
-  parameters.cp_disto_alloc=1;
+    parameters->numresolution=StringToInteger(option);
+  else
+    parameters->numresolution=CalculateNumResolutions(image->columns,
+      image->rows);
+  parameters->tcp_numlayers=1;
+  parameters->tcp_rates[0]=0;  /* lossless */
+  parameters->cp_disto_alloc=1;
   if ((image_info->quality != 0) && (image_info->quality != 100))
     {
-      parameters.tcp_distoratio[0]=(double) image_info->quality;
-      parameters.cp_fixed_quality=OPJ_TRUE;
+      parameters->tcp_distoratio[0]=(double) image_info->quality;
+      parameters->cp_fixed_quality=OPJ_TRUE;
     }
   if (image_info->extract != (char *) NULL)
     {
@@ -861,16 +874,19 @@
       /*
         Set tile size.
       */
+      (void) memset(&geometry,0,sizeof(geometry));
       flags=ParseAbsoluteGeometry(image_info->extract,&geometry);
-      parameters.cp_tdx=(int) geometry.width;
-      parameters.cp_tdy=(int) geometry.width;
+      parameters->cp_tdx=(int) geometry.width;
+      parameters->cp_tdy=(int) geometry.width;
       if ((flags & HeightValue) != 0)
-        parameters.cp_tdy=(int) geometry.height;
+        parameters->cp_tdy=(int) geometry.height;
       if ((flags & XValue) != 0)
-        parameters.cp_tx0=geometry.x;
+        parameters->cp_tx0=geometry.x;
       if ((flags & YValue) != 0)
-        parameters.cp_ty0=geometry.y;
-      parameters.tile_size_on=OPJ_TRUE;
+        parameters->cp_ty0=geometry.y;
+      parameters->tile_size_on=OPJ_TRUE;
+      parameters->numresolution=CalculateNumResolutions(parameters->cp_tdx,
+        parameters->cp_tdy);
     }
   option=GetImageOption(image_info,"jp2:quality");
   if (option != (const char *) NULL)
@@ -882,7 +898,7 @@
         Set quality PSNR.
       */
       p=option;
-      for (i=0; sscanf(p,"%f",&parameters.tcp_distoratio[i]) == 1; i++)
+      for (i=0; sscanf(p,"%f",&parameters->tcp_distoratio[i]) == 1; i++)
       {
         if (i > 100)
           break;
@@ -892,22 +908,22 @@
           break;
         p++;
       }
-      parameters.tcp_numlayers=i+1;
-      parameters.cp_fixed_quality=OPJ_TRUE;
+      parameters->tcp_numlayers=i+1;
+      parameters->cp_fixed_quality=OPJ_TRUE;
     }
   option=GetImageOption(image_info,"jp2:progression-order");
   if (option != (const char *) NULL)
     {
       if (LocaleCompare(option,"LRCP") == 0)
-        parameters.prog_order=OPJ_LRCP;
+        parameters->prog_order=OPJ_LRCP;
       if (LocaleCompare(option,"RLCP") == 0)
-        parameters.prog_order=OPJ_RLCP;
+        parameters->prog_order=OPJ_RLCP;
       if (LocaleCompare(option,"RPCL") == 0)
-        parameters.prog_order=OPJ_RPCL;
+        parameters->prog_order=OPJ_RPCL;
       if (LocaleCompare(option,"PCRL") == 0)
-        parameters.prog_order=OPJ_PCRL;
+        parameters->prog_order=OPJ_PCRL;
       if (LocaleCompare(option,"CPRL") == 0)
-        parameters.prog_order=OPJ_CPRL;
+        parameters->prog_order=OPJ_CPRL;
     }
   option=GetImageOption(image_info,"jp2:rate");
   if (option != (const char *) NULL)
@@ -919,7 +935,7 @@
         Set compression rate.
       */
       p=option;
-      for (i=0; sscanf(p,"%f",&parameters.tcp_rates[i]) == 1; i++)
+      for (i=0; sscanf(p,"%f",&parameters->tcp_rates[i]) == 1; i++)
       {
         if (i >= 100)
           break;
@@ -929,21 +945,21 @@
           break;
         p++;
       }
-      parameters.tcp_numlayers=i+1;
-      parameters.cp_disto_alloc=OPJ_TRUE;
+      parameters->tcp_numlayers=i+1;
+      parameters->cp_disto_alloc=OPJ_TRUE;
     }
   if (image_info->sampling_factor != (const char *) NULL)
     (void) sscanf(image_info->sampling_factor,"%d,%d",
-      &parameters.subsampling_dx,&parameters.subsampling_dy);
+      &parameters->subsampling_dx,&parameters->subsampling_dy);
   property=GetImageProperty(image,"comment",exception);
   if (property != (const char *) NULL)
-    parameters.cp_comment=(char *) property;
+    parameters->cp_comment=(char *) property;
   channels=3;
   jp2_colorspace=OPJ_CLRSPC_SRGB;
   if (image->colorspace == YUVColorspace)
     {
       jp2_colorspace=OPJ_CLRSPC_SYCC;
-      parameters.subsampling_dx=2;
+      parameters->subsampling_dx=2;
     }
   else
     {
@@ -957,7 +973,7 @@
       if (image->alpha_trait != UndefinedPixelTrait)
         channels++;
     }
-  parameters.tcp_mct=channels == 3 ? 1 : 0;
+  parameters->tcp_mct=channels == 3 ? 1 : 0;
   memset(jp2_info,0,sizeof(jp2_info));
   for (i=0; i < (ssize_t) channels; i++)
   {
@@ -971,24 +987,27 @@
         jp2_info[i].bpp++;
       }
     jp2_info[i].sgnd=0;
-    jp2_info[i].dx=parameters.subsampling_dx;
-    jp2_info[i].dy=parameters.subsampling_dy;
+    jp2_info[i].dx=parameters->subsampling_dx;
+    jp2_info[i].dy=parameters->subsampling_dy;
     jp2_info[i].w=(OPJ_UINT32) image->columns;
     jp2_info[i].h=(OPJ_UINT32) image->rows;
   }
   jp2_image=opj_image_create((OPJ_UINT32) channels,jp2_info,jp2_colorspace);
   if (jp2_image == (opj_image_t *) NULL)
-    ThrowWriterException(DelegateError,"UnableToEncodeImageFile");
-  jp2_image->x0=parameters.image_offset_x0;
-  jp2_image->y0=parameters.image_offset_y0;
-  jp2_image->x1=(unsigned int) (2*parameters.image_offset_x0+(image->columns-1)*
-    parameters.subsampling_dx+1);
-  jp2_image->y1=(unsigned int) (2*parameters.image_offset_y0+(image->rows-1)*
-    parameters.subsampling_dx+1);
+    {
+      parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters);
+      ThrowWriterException(DelegateError,"UnableToEncodeImageFile");
+    }
+  jp2_image->x0=parameters->image_offset_x0;
+  jp2_image->y0=parameters->image_offset_y0;
+  jp2_image->x1=(unsigned int) (2*parameters->image_offset_x0+
+    (image->columns-1)*parameters->subsampling_dx+1);
+  jp2_image->y1=(unsigned int) (2*parameters->image_offset_y0+
+    (image->rows-1)*parameters->subsampling_dx+1);
   if ((image->depth == 12) &&
       ((image->columns == 2048) || (image->rows == 1080) ||
        (image->columns == 4096) || (image->rows == 2160)))
-    CinemaProfileCompliance(jp2_image,&parameters);
+    CinemaProfileCompliance(jp2_image,parameters);
   if (channels == 4)
     jp2_image->comps[3].alpha=1;
   else
@@ -1018,7 +1037,8 @@
         register int
           *q;
 
-        scale=(double) ((1UL << jp2_image->comps[i].prec)-1)/QuantumRange;
+        scale=(double) (((size_t) 1UL << jp2_image->comps[i].prec)-1)/
+          QuantumRange;
         q=jp2_image->comps[i].data+(y/jp2_image->comps[i].dy*
           image->columns/jp2_image->comps[i].dx+x/jp2_image->comps[i].dx);
         switch (i)
@@ -1071,12 +1091,13 @@
       jp2_codec=opj_create_compress(OPJ_CODEC_JP2);
   opj_set_warning_handler(jp2_codec,JP2WarningHandler,exception);
   opj_set_error_handler(jp2_codec,JP2ErrorHandler,exception);
-  opj_setup_encoder(jp2_codec,&parameters,jp2_image);
+  opj_setup_encoder(jp2_codec,parameters,jp2_image);
   jp2_stream=opj_stream_create(OPJ_J2K_STREAM_CHUNK_SIZE,OPJ_FALSE);
   if (jp2_stream == (opj_stream_t *) NULL)
     {
       opj_destroy_codec(jp2_codec);
       opj_image_destroy(jp2_image);
+      parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters);
       ThrowWriterException(DelegateError,"UnableToEncodeImageFile");
     }
   opj_stream_set_read_function(jp2_stream,JP2ReadHandler);
@@ -1091,6 +1112,7 @@
       opj_stream_destroy(jp2_stream);
       opj_destroy_codec(jp2_codec);
       opj_image_destroy(jp2_image);
+      parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters);
       ThrowWriterException(DelegateError,"UnableToEncodeImageFile");
     }
   /*
@@ -1099,6 +1121,7 @@
   opj_stream_destroy(jp2_stream);
   opj_destroy_codec(jp2_codec);
   opj_image_destroy(jp2_image);
+  parameters=(opj_cparameters_t *) RelinquishMagickMemory(parameters);
   (void) CloseBlob(image);
   return(MagickTrue);
 }
diff --git a/coders/jp2.h b/coders/jp2.h
index fc45935..3da5ea3 100644
--- a/coders/jp2.h
+++ b/coders/jp2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jpeg.c b/coders/jpeg.c
index ec78c0b..7918eec 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -39,8 +39,7 @@
 %
 %
 */
-
-
+
 /*
   Include declarations.
 */
@@ -104,7 +103,6 @@
 #define ICC_PROFILE  "ICC_PROFILE"
 #define IPTC_MARKER  (JPEG_APP0+13)
 #define XML_MARKER  (JPEG_APP0+1)
-#define MaxBufferExtent  16384
 #define MaxJPEGScans  1024
 
 /*
@@ -125,8 +123,8 @@
 
 typedef struct _ErrorManager
 {
-  ExceptionInfo
-    *exception;
+  jmp_buf
+    error_recovery;
 
   Image
     *image;
@@ -137,8 +135,8 @@
   StringInfo
     *profile;
 
-  jmp_buf
-    error_recovery;
+  ExceptionInfo
+    *exception;
 } ErrorManager;
 
 typedef struct _SourceManager
@@ -178,7 +176,7 @@
   Const declarations.
 */
 static const char
-  *xmp_namespace = "http://ns.adobe.com/xap/1.0/ ";
+  xmp_namespace[] = "http://ns.adobe.com/xap/1.0/ ";
 #define XmpNamespaceExtent 28
 
 /*
@@ -259,7 +257,7 @@
 
   source=(SourceManager *) cinfo->src;
   source->manager.bytes_in_buffer=(size_t) ReadBlob(source->image,
-    MaxBufferExtent,source->buffer);
+    MagickMinBufferExtent,source->buffer);
   if (source->manager.bytes_in_buffer == 0)
     {
       if (source->start_of_blob != FALSE)
@@ -277,7 +275,11 @@
 static int GetCharacter(j_decompress_ptr jpeg_info)
 {
   if (jpeg_info->src->bytes_in_buffer == 0)
-    (void) (*jpeg_info->src->fill_input_buffer)(jpeg_info);
+    {
+      (void) (*jpeg_info->src->fill_input_buffer)(jpeg_info);
+      if (jpeg_info->err->msg_code == JWRN_JPEG_EOF)
+        return EOF;
+    }
   jpeg_info->src->bytes_in_buffer--;
   return((int) GETJOCTET(*jpeg_info->src->next_input_byte++));
 }
@@ -455,7 +457,7 @@
   */
   error_manager->profile=comment;
   p=GetStringInfoDatum(comment);
-  for (i=0; i < (ssize_t) GetStringInfoLength(comment); i++)
+  for (i=0; i < (ssize_t) length; i++)
   {
     int
       c;
@@ -467,6 +469,14 @@
   }
   *p='\0';
   error_manager->profile=NULL;
+  if (i != (ssize_t) length)
+    {
+      comment=DestroyStringInfo(comment);
+      (void) ThrowMagickException(exception,GetMagickModule(),
+        CorruptImageError,"InsufficientImageDataInFile","`%s'",
+        image->filename);
+      return(FALSE);
+    }
   p=GetStringInfoDatum(comment);
   (void) SetImageProperty(image,"comment",(const char *) p,exception);
   comment=DestroyStringInfo(comment);
@@ -543,7 +553,7 @@
     }
   error_manager->profile=profile;
   p=GetStringInfoDatum(profile);
-  for (i=(ssize_t) GetStringInfoLength(profile)-1; i >= 0; i--)
+  for (i=0; i < (ssize_t) length; i++)
   {
     int
       c;
@@ -554,6 +564,14 @@
     *p++=(unsigned char) c;
   }
   error_manager->profile=NULL;
+  if (i != (ssize_t) length)
+    {
+      profile=DestroyStringInfo(profile);
+      (void) ThrowMagickException(exception,GetMagickModule(),
+        CorruptImageError,"InsufficientImageDataInFile","`%s'",
+        image->filename);
+      return(FALSE);
+    }
   icc_profile=(StringInfo *) GetImageProfile(image,"icc");
   if (icc_profile != (StringInfo *) NULL)
     {
@@ -660,7 +678,7 @@
     }
   error_manager->profile=profile;
   p=GetStringInfoDatum(profile);
-  for (i=0;  i < (ssize_t) GetStringInfoLength(profile); i++)
+  for (i=0; i < (ssize_t) length; i++)
   {
     int
       c;
@@ -671,7 +689,17 @@
     *p++=(unsigned char) c;
   }
   error_manager->profile=NULL;
-  /* The IPTC profile is actually an 8bim */
+  if (i != (ssize_t) length)
+    {
+      profile=DestroyStringInfo(profile);
+      (void) ThrowMagickException(exception,GetMagickModule(),
+        CorruptImageError,"InsufficientImageDataInFile","`%s'",
+        image->filename);
+      return(FALSE);
+    }
+  /*
+    The IPTC profile is actually an 8bim.
+  */
   iptc_profile=(StringInfo *) GetImageProfile(image,"8bim");
   if (iptc_profile != (StringInfo *) NULL)
     {
@@ -752,7 +780,7 @@
     }
   error_manager->profile=profile;
   p=GetStringInfoDatum(profile);
-  for (i=0; i < (ssize_t) GetStringInfoLength(profile); i++)
+  for (i=0; i < (ssize_t) length; i++)
   {
     int
       c;
@@ -763,31 +791,40 @@
     *p++=(unsigned char) c;
   }
   error_manager->profile=NULL;
+  if (i != (ssize_t) length)
+    {
+      profile=DestroyStringInfo(profile);
+      (void) ThrowMagickException(exception,GetMagickModule(),
+        CorruptImageError,"InsufficientImageDataInFile","`%s'",
+        image->filename);
+      return(FALSE);
+    }
   if (marker == 1)
     {
       p=GetStringInfoDatum(profile);
       if ((length > 4) && (LocaleNCompare((char *) p,"exif",4) == 0))
         (void) CopyMagickString(name,"exif",MagickPathExtent);
-      else if ((length > XmpNamespaceExtent) &&
-          (LocaleNCompare((char *) p,xmp_namespace,XmpNamespaceExtent-1) == 0))
-        {
-          ssize_t
-            j;
-
-          /*
-            Extract namespace from XMP profile.
-          */
-          p=GetStringInfoDatum(profile)+XmpNamespaceExtent;
-          for (j=XmpNamespaceExtent; j < (ssize_t) GetStringInfoLength(profile); j++)
+      else
+        if ((length > XmpNamespaceExtent) &&
+            (LocaleNCompare((char *) p,xmp_namespace,XmpNamespaceExtent-1) == 0))
           {
-            if (*p == '\0')
-              break;
-            p++;
+            ssize_t
+              j;
+
+            /*
+              Extract namespace from XMP profile.
+            */
+            p=GetStringInfoDatum(profile)+XmpNamespaceExtent;
+            for (j=XmpNamespaceExtent; j < (ssize_t) GetStringInfoLength(profile); j++)
+            {
+              if (*p == '\0')
+                break;
+              p++;
+            }
+            if (j < (ssize_t) GetStringInfoLength(profile))
+              (void) DestroyStringInfo(SplitStringInfo(profile,(size_t) (j+1)));
+            (void) CopyMagickString(name,"xmp",MagickPathExtent);
           }
-          if (j < (ssize_t) GetStringInfoLength(profile))
-            (void) DestroyStringInfo(SplitStringInfo(profile,(size_t) (j+1)));
-          (void) CopyMagickString(name,"xmp",MagickPathExtent);
-        }
     }
   previous_profile=GetImageProfile(image,name);
   if ((previous_profile != (const StringInfo *) NULL) &&
@@ -805,6 +842,7 @@
       (void) memcpy(GetStringInfoDatum(profile),
         GetStringInfoDatum(previous_profile),
         GetStringInfoLength(previous_profile));
+      GetStringInfoDatum(profile)[GetStringInfoLength(profile)]='\0';
     }
   status=SetImageProfile(image,name,profile,exception);
   profile=DestroyStringInfo(profile);
@@ -851,7 +889,7 @@
     ((j_common_ptr) cinfo,JPOOL_IMAGE,sizeof(SourceManager));
   source=(SourceManager *) cinfo->src;
   source->buffer=(JOCTET *) (*cinfo->mem->alloc_small)
-    ((j_common_ptr) cinfo,JPOOL_IMAGE,MaxBufferExtent*sizeof(JOCTET));
+    ((j_common_ptr) cinfo,JPOOL_IMAGE,MagickMinBufferExtent*sizeof(JOCTET));
   source=(SourceManager *) cinfo->src;
   source->manager.init_source=InitializeSource;
   source->manager.fill_input_buffer=FillInputBuffer;
@@ -1381,9 +1419,6 @@
   if (jpeg_info.arith_code == TRUE)
     (void) SetImageProperty(image,"jpeg:coding","arithmetic",exception);
 #endif
-  if ((dct_method == (const char *) NULL) && (image->quality > 0) &&
-      (image->quality <= 90))
-    jpeg_info.dct_method=JDCT_IFAST;
   if (image_info->ping != MagickFalse)
     {
       jpeg_destroy_decompress(&jpeg_info);
@@ -1786,8 +1821,8 @@
 
   destination=(DestinationManager *) cinfo->dest;
   destination->manager.free_in_buffer=(size_t) WriteBlob(destination->image,
-    MaxBufferExtent,destination->buffer);
-  if (destination->manager.free_in_buffer != MaxBufferExtent)
+    MagickMinBufferExtent,destination->buffer);
+  if (destination->manager.free_in_buffer != MagickMinBufferExtent)
     ERREXIT(cinfo,JERR_FILE_WRITE);
   destination->manager.next_output_byte=destination->buffer;
   return(TRUE);
@@ -1994,9 +2029,9 @@
 
   destination=(DestinationManager *) cinfo->dest;
   destination->buffer=(JOCTET *) (*cinfo->mem->alloc_small)
-    ((j_common_ptr) cinfo,JPOOL_IMAGE,MaxBufferExtent*sizeof(JOCTET));
+    ((j_common_ptr) cinfo,JPOOL_IMAGE,MagickMinBufferExtent*sizeof(JOCTET));
   destination->manager.next_output_byte=destination->buffer;
-  destination->manager.free_in_buffer=MaxBufferExtent;
+  destination->manager.free_in_buffer=MagickMinBufferExtent;
 }
 
 static void TerminateDestination(j_compress_ptr cinfo)
@@ -2005,15 +2040,15 @@
     *destination;
 
   destination=(DestinationManager *) cinfo->dest;
-  if ((MaxBufferExtent-(int) destination->manager.free_in_buffer) > 0)
+  if ((MagickMinBufferExtent-(int) destination->manager.free_in_buffer) > 0)
     {
       ssize_t
         count;
 
-      count=WriteBlob(destination->image,MaxBufferExtent-
+      count=WriteBlob(destination->image,MagickMinBufferExtent-
         destination->manager.free_in_buffer,destination->buffer);
       if (count != (ssize_t)
-          (MaxBufferExtent-destination->manager.free_in_buffer))
+          (MagickMinBufferExtent-destination->manager.free_in_buffer))
         ERREXIT(cinfo,JERR_FILE_WRITE);
     }
 }
@@ -2058,7 +2093,7 @@
         id=JPEG_APP0+StringToInteger(name+3);
         for (i=0; i < (ssize_t) length; i+=65533L)
            jpeg_write_marker(jpeg_info,id,GetStringInfoDatum(profile)+i,
-             MagickMin(length-i,65533));
+             (unsigned int) MagickMin(length-i,65533));
       }
     if (LocaleCompare(name,"EXIF") == 0)
       {
@@ -2128,7 +2163,8 @@
             custom_profile),(unsigned int) (length+tag_length+roundup));
         }
       }
-    if (LocaleCompare(name,"XMP") == 0)
+   if ((LocaleCompare(name,"XMP") == 0) &&
+       (GetStringInfoLength(profile) <= 65502))
       {
         StringInfo
           *xmp_profile;
@@ -2807,9 +2843,15 @@
   */
   value=GetImageProperty(image,"comment",exception);
   if (value != (char *) NULL)
-    for (i=0; i < (ssize_t) strlen(value); i+=65533L)
-      jpeg_write_marker(&jpeg_info,JPEG_COM,(unsigned char *) value+i,
-        (unsigned int) MagickMin((size_t) strlen(value+i),65533L));
+    {
+      size_t
+        length;
+
+      length=strlen(value);
+      for (i=0; i < (ssize_t) length; i+=65533L)
+        jpeg_write_marker(&jpeg_info,JPEG_COM,(unsigned char *) value+i,
+          (unsigned int) MagickMin((size_t) strlen(value+i),65533L));
+    }
   if (image->profiles != (void *) NULL)
     WriteProfile(&jpeg_info,image,exception);
   /*
diff --git a/coders/jpeg.h b/coders/jpeg.h
index 2357a5d..f7dd41f 100644
--- a/coders/jpeg.h
+++ b/coders/jpeg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/json.c b/coders/json.c
index 1f9bf13..4656099 100644
--- a/coders/json.c
+++ b/coders/json.c
@@ -17,7 +17,7 @@
 %                                January 2014                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1539,10 +1539,6 @@
       (void) FormatLocaleFile(file,"],\n");
       image_info=DestroyImageInfo(image_info);
     }
-  (void) GetImageProperty(image,"exif:*",exception);
-  (void) GetImageProperty(image,"icc:*",exception);
-  (void) GetImageProperty(image,"iptc:*",exception);
-  (void) GetImageProperty(image,"xmp:*",exception);
   ResetImagePropertyIterator(image);
   property=GetNextImageProperty(image);
   if (property != (const char *) NULL)
diff --git a/coders/json.h b/coders/json.h
index c93a44e..1c3810d 100644
--- a/coders/json.h
+++ b/coders/json.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jxl.c b/coders/jxl.c
new file mode 100644
index 0000000..fb0a6cb
--- /dev/null
+++ b/coders/jxl.c
@@ -0,0 +1,326 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%                              JJJ  X   X  L                                  %
+%                               J    X X   L                                  %
+%                               J     X    L                                  %
+%                            J  J    X X   L                                  %
+%                             JJ    X   X  LLLLL                              %
+%                                                                             %
+%                                                                             %
+%               Read/Write JPEG XL Lossless JPEG1 Recompression               %
+%                                                                             %
+%                            The JPEG XL Project                              %
+%                               September 2019                                %
+%                                                                             %
+%                                                                             %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  dedicated to making software imaging solutions freely available.           %
+%                                                                             %
+%  You may not use this file except in compliance with the License.  You may  %
+%  obtain a copy of the License at                                            %
+%                                                                             %
+%    https://imagemagick.org/script/license.php                               %
+%                                                                             %
+%  Unless required by applicable law or agreed to in writing, software        %
+%  distributed under the License is distributed on an "AS IS" BASIS,          %
+%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
+%  See the License for the specific language governing permissions and        %
+%  limitations under the License.                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+*/
+
+/*
+  Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/attribute.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/static.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/module.h"
+#if defined(MAGICKCORE_JXL_DELEGATE)
+#include <brunsli/decode.h>
+#include <brunsli/encode.h>
+
+/*
+  Forward declarations.
+*/
+static MagickBooleanType
+  WriteJXLImage(const ImageInfo *,Image *);
+#endif
+
+#if defined(MAGICKCORE_JXL_DELEGATE)
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e a d J X L I m a g e                                                   %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ReadJXLImage() reads a JXL image file and returns it.  It allocates
+%  the memory necessary for the new Image structure and returns a pointer to
+%  the new image.
+%
+%  The format of the ReadJXLImage method is:
+%
+%      Image *ReadJXLImage(const ImageInfo *image_info,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image_info: the image info.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+/*
+  Typedef declarations.
+*/
+typedef struct OutBuffer
+{
+  unsigned char
+    *data;
+
+  size_t
+    size;
+} OutBuffer;
+
+static size_t AllocOutput(void* data, const uint8_t* buf, size_t count)
+{
+  OutBuffer *buffer=(OutBuffer *) data;
+  buffer->data=ResizeMagickMemory(buffer->data,buffer->size+count);
+  if (!buffer->data) return 0;
+  memcpy(buffer->data+buffer->size, buf, count);
+  buffer->size+=count;
+  return(count);
+}
+
+static Image *ReadJXLImage(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+  Image
+    *temp_image,
+    *result;
+
+  MagickBooleanType
+    status;
+
+  OutBuffer
+    b;
+
+  unsigned char
+    *jxl;
+
+  /*
+    TODO: do we need an Image here? No pixels are needed, but OpenBlob
+    needs an Image.
+  */
+  temp_image=AcquireImage(image_info, exception);
+  status=OpenBlob(image_info,temp_image,ReadBinaryBlobMode,exception);
+  jxl=NULL;
+  size_t jxlsize = 0;
+  if (status == MagickTrue)
+  {
+    jxlsize=(size_t) GetBlobSize(temp_image);
+    jxl=(unsigned char *) AcquireMagickMemory(jxlsize);
+    size_t num_read=ReadBlob(temp_image,jxlsize,jxl);
+    if (num_read != jxlsize) status=MagickFalse;
+  }
+  (void) DestroyImage(temp_image);
+
+  b.data=NULL;
+  b.size=0;
+
+  if (status == MagickTrue)
+  {
+    status=DecodeBrunsli(jxlsize,jxl,&b,AllocOutput) == 1 ?
+        MagickTrue : MagickFalse;
+  }
+  (void) RelinquishMagickMemory(jxl);
+
+  result=NULL;
+
+  if (status == MagickTrue)
+  {
+    ImageInfo* temp_info=AcquireImageInfo();
+    SetImageInfoBlob(temp_info,b.data,b.size);
+    result=BlobToImage(temp_info,b.data,b.size,exception);
+    (void) DestroyImageInfo(temp_info);
+  }
+  (void) RelinquishMagickMemory(b.data);
+
+  return(result);
+}
+#endif
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e g i s t e r J X L I m a g e                                           %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  RegisterJXLImage() adds properties for the JXL image format to
+%  the list of supported formats.  The properties include the image format
+%  tag, a method to read and/or write the format, whether the format
+%  supports the saving of more than one frame to the same file or blob,
+%  whether the format supports native in-memory I/O, and a brief
+%  description of the format.
+%
+%  The format of the RegisterJXLImage method is:
+%
+%      size_t RegisterJXLImage(void)
+%
+*/
+ModuleExport size_t RegisterJXLImage(void)
+{
+  MagickInfo
+    *entry;
+
+  entry=AcquireMagickInfo("JXL", "JXL", "JPEG XL Lossless JPEG1 Recompression");
+#if defined(MAGICKCORE_JXL_DELEGATE)
+  entry->decoder=(DecodeImageHandler *) ReadJXLImage;
+  entry->encoder=(EncodeImageHandler *) WriteJXLImage;
+#endif
+  entry->note=ConstantString(
+    "JPEG1 recompression as specified in https://arxiv.org/pdf/1908.03565.pdf"
+    " page 135. Full JPEG XL support will be implemented in this coder later.");
+  (void) RegisterMagickInfo(entry);
+  return(MagickImageCoderSignature);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   U n r e g i s t e r J X L I m a g e                                       %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  UnregisterJXLImage() removes format registrations made by the
+%  JXL module from the list of supported formats.
+%
+%  The format of the UnregisterJXLImage method is:
+%
+%      UnregisterJXLImage(void)
+%
+*/
+ModuleExport void UnregisterJXLImage(void)
+{
+  (void) UnregisterMagickInfo("JXL");
+}
+
+#if defined(MAGICKCORE_JXL_DELEGATE)
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%  W r i t e J X L I m a g e                                                  %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  WriteJXLImage() writes a JXL image file and returns it.  It
+%  allocates the memory necessary for the new Image structure and returns a
+%  pointer to the new image.
+%
+%  The format of the WriteJXLImage method is:
+%
+%      MagickBooleanType WriteJXLImage(const ImageInfo *image_info,
+%        Image *image)
+%
+%  A description of each parameter follows:
+%
+%    o image_info: the image info.
+%
+%    o image:  The image.
+%
+%
+*/
+static MagickBooleanType WriteJXLImage(const ImageInfo *image_info,
+    Image *image)
+{
+  ExceptionInfo
+    *exception;
+
+  Image
+    *temp_image;
+
+  ImageInfo
+    *temp_info;
+
+  MagickBooleanType
+    status;
+
+  OutBuffer
+    b;
+
+  size_t
+    jpegsize;
+
+  unsigned char
+    *jpeg;
+
+  exception=AcquireExceptionInfo();
+
+  /*
+    TODO: can cloning the image be avoided? The pixels don't need to be cloned,
+    only filename or blob information. ImageToBlob overwrites this information.
+  */
+  temp_image=CloneImage(image, 0, 0, MagickTrue, exception);
+  temp_info=AcquireImageInfo();
+  (void) CopyMagickString(temp_image->magick,"JPG",MaxTextExtent);
+  jpeg=ImageToBlob(temp_info,temp_image,&jpegsize,exception);
+  (void) DestroyImage(temp_image);
+  (void) DestroyImageInfo(temp_info);
+
+  b.data=NULL;
+  b.size=0;
+  status=EncodeBrunsli(jpegsize,jpeg,&b,AllocOutput) == 1 ?
+      MagickTrue : MagickFalse;
+  if (status == MagickTrue)
+  {
+    status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
+  }
+
+  if (status == MagickTrue)
+  {
+    WriteBlob(image,b.size,b.data);
+    CloseBlob(image);
+  }
+  (void) RelinquishMagickMemory(b.data);
+
+  if(exception) exception=DestroyExceptionInfo(exception);
+  return(status);
+}
+#endif
diff --git a/MagickCore/random_-private.h b/coders/jxl.h
similarity index 65%
copy from MagickCore/random_-private.h
copy to coders/jxl.h
index 3dbd383..4c44b06 100644
--- a/MagickCore/random_-private.h
+++ b/coders/jxl.h
@@ -1,35 +1,34 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
-  
+
   You may not use this file except in compliance with the License.  You may
   obtain a copy of the License at
-  
+
     https://imagemagick.org/script/license.php
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-
-  MagickCore private random methods.
 */
-#ifndef MAGICKCORE_RANDOM_PRIVATE_H
-#define MAGICKCORE_RANDOM_PRIVATE_H
+
+#include "coders/coders-private.h"
+
+// The pattern for JXL JPEG1 recompression for now, the main pattern will be
+// added when full decoder support is added.
+#define MagickJXLHeaders \
+  MagickCoderHeader("JXL", 0, "\x0a\x04\x42\xd2\xd5\x4e")
+
+#define MagickJXLAliases
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
 
-extern MagickPrivate MagickBooleanType
-  RandomComponentGenesis(void);
-
-extern MagickPrivate void
-  RandomComponentTerminus(void);
+MagickCoderExports(JXL)
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
-
-#endif
diff --git a/coders/label.c b/coders/label.c
index 3e543a3..366ee56 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -255,9 +255,9 @@
     Draw label.
   */
   (void) FormatLocaleString(geometry,MagickPathExtent,"%+g%+g",
-    draw_info->direction == RightToLeftDirection ? (double) image->columns-
-    metrics.bounds.x2 : 0.0,draw_info->gravity == UndefinedGravity ?
-    MagickMax(metrics.ascent,metrics.bounds.y2) : 0.0);
+    (draw_info->direction == RightToLeftDirection ? (double) image->columns-
+    metrics.bounds.x2 : 0.0),(draw_info->gravity == UndefinedGravity ?
+    MagickMax(metrics.ascent,metrics.bounds.y2) : 0.0));
   (void) CloneString(&draw_info->geometry,geometry);
   status=AnnotateImage(image,draw_info,exception);
   if (image_info->pointsize == 0.0)
diff --git a/coders/label.h b/coders/label.h
index d69d3fe..786a54d 100644
--- a/coders/label.h
+++ b/coders/label.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mac.c b/coders/mac.c
index f96f6d8..a159bb1 100644
--- a/coders/mac.c
+++ b/coders/mac.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mac.h b/coders/mac.h
index 58654a9..899777f 100644
--- a/coders/mac.h
+++ b/coders/mac.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/magick.c b/coders/magick.c
index e113fb5..b485e2e 100644
--- a/coders/magick.c
+++ b/coders/magick.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -13254,24 +13254,26 @@
   if (magick_image == (Image *) NULL)
     ThrowWriterException(ResourceLimitError,exception->reason);
   write_info=CloneImageInfo(image_info);
-
-  /* Set output format */
+  /*
+    Set output format.
+  */
   *write_info->filename='\0';
   value=GetImageOption(image_info,"h:format");
   if (value == (char *) NULL)
     value=GetImageOption(image_info,"magick:format");
-
   if ((value == (char *) NULL) || (IsOptionMember("H",value) != MagickFalse) ||
       (IsOptionMember("MAGICK",value) != MagickFalse))
-    { /* Use default GIF or PNM */
+    {
+      /*
+        Use default GIF or PNM.
+      */
       if (magick_image->storage_class == DirectClass)
         (void) CopyMagickString(write_info->magick,"PNM",MagickPathExtent);
       else
         (void) CopyMagickString(write_info->magick,"GIF",MagickPathExtent);
     }
-  else /* Use the requested format */
-    (void) CopyMagickString(write_info->magick,value,MagickPathExtent);
-
+  else
+    (void) CopyMagickString(write_info->magick,value,MagickPathExtent);  /* use the requested format */
   blob=ImageToBlob(write_info,magick_image,&length,exception);
   magick_image=DestroyImage(magick_image);
   if (blob == (void *) NULL)
@@ -13288,7 +13290,7 @@
     }
   (void) WriteBlobString(image,"/*\n");
   (void) FormatLocaleString(buffer,MagickPathExtent,"  %s (%s).\n",
-    image->filename, write_info->magick);
+    image->filename,write_info->magick);
   (void) DestroyImageInfo(write_info);
   (void) WriteBlobString(image,buffer);
   (void) WriteBlobString(image,"*/\n");
@@ -13299,7 +13301,8 @@
   p=(char *) blob;
   for (i=0; i < (ssize_t) length ; i++)
   {
-    (void) FormatLocaleString(buffer,MagickPathExtent,"0x%02X, ",*p & 0xff);
+    (void) FormatLocaleString(buffer,MagickPathExtent,"0x%02X%s",*p & 0xff,
+      (i+1) < (ssize_t) length ? ", " : "");
     (void) WriteBlobString(image,buffer);
     if (((i+1) % 12) == 0)
       {
diff --git a/coders/magick.h b/coders/magick.h
index 8c4fd93..e766832 100644
--- a/coders/magick.h
+++ b/coders/magick.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/map.c b/coders/map.c
index 6fff231..a279ff7 100644
--- a/coders/map.c
+++ b/coders/map.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/map.h b/coders/map.h
index 168fc1c..ef7a732 100644
--- a/coders/map.h
+++ b/coders/map.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mask.c b/coders/mask.c
index a6fdcd1..59ccb2e 100644
--- a/coders/mask.c
+++ b/coders/mask.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mask.h b/coders/mask.h
index aa601f1..fd8b353 100644
--- a/coders/mask.h
+++ b/coders/mask.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mat.c b/coders/mat.c
index 54eb0e2..2ddeb06 100644
--- a/coders/mat.c
+++ b/coders/mat.c
@@ -74,6 +74,7 @@
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility-private.h"
 #if defined(MAGICKCORE_ZLIB_DELEGATE)
@@ -117,9 +118,14 @@
 }
 MATHeader;
 
-static const char *MonthsTab[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
-static const char *DayOfWTab[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-static const char *OsDesc=
+static const char
+  MonthsTab[12][4] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
+
+static const char
+   DayOfWTab[7][4] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
+
+static const char
+  OsDesc[] =
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
     "PCWIN";
 #else
@@ -495,7 +501,7 @@
     (void) remove_utf8(clone_info->filename);
   }
 
-  cache_block = AcquireQuantumMemory((size_t)(*Size < 16384) ? *Size: 16384,sizeof(unsigned char *));
+  cache_block = AcquireQuantumMemory((size_t)(*Size < MagickMinBufferExtent) ? *Size: MagickMinBufferExtent,sizeof(unsigned char *));
   if(cache_block==NULL) return NULL;
   decompress_block = AcquireQuantumMemory((size_t)(4096),sizeof(unsigned char *));
   if(decompress_block==NULL)
@@ -536,7 +542,7 @@
   zip_info.total_out = 0;
   while(*Size>0 && !EOFBlob(orig))
   {
-    magick_size = ReadBlob(orig, (*Size < 16384) ? *Size : 16384, (unsigned char *) cache_block);
+    magick_size = ReadBlob(orig, (*Size < MagickMinBufferExtent) ? *Size : MagickMinBufferExtent, (unsigned char *) cache_block);
     if (magick_size == 0)
       break;
     zip_info.next_in = (Bytef *) cache_block;
@@ -813,6 +819,9 @@
       Allocate next image structure.
     */
 skip_reading_current:
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
     AcquireNextImage(image_info,image,exception);
     if (GetNextImageInList(image) == (Image *) NULL)
       {
@@ -961,10 +970,10 @@
     }
 
   filepos = TellBlob(image);
-  while(filepos < GetBlobSize(image) && !EOFBlob(image)) /* object parser loop */
+  while(filepos < (MagickOffsetType) GetBlobSize(image) && !EOFBlob(image)) /* object parser loop */
   {
     Frames = 1;
-    if(filepos > GetBlobSize(image) || filepos < 0)
+    if(filepos > (MagickOffsetType) GetBlobSize(image) || filepos < 0)
       break;
     if(SeekBlob(image,filepos,SEEK_SET) != filepos) break;
     /* printf("pos=%X\n",TellBlob(image)); */
@@ -1276,8 +1285,14 @@
           {
             if (logging) (void)LogMagickEvent(CoderEvent,GetMagickModule(),
               "  MAT cannot read scanrow %u from a file.", (unsigned)(MATLAB_HDR.SizeY-i-1));
+           if ((image != image2) && (image2 != (Image *) NULL))
+              image2=DestroyImage(image2);
+            if (clone_info != (ImageInfo *) NULL)
+              clone_info=DestroyImageInfo(clone_info);
+            if (quantum_info != (QuantumInfo *) NULL)
+              quantum_info=DestroyQuantumInfo(quantum_info);
+            BImgBuff=(unsigned char *) RelinquishMagickMemory(BImgBuff);
             ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
-            goto ExitLoop;
           }
         if((CellType==miINT8 || CellType==miUINT8) && (MATLAB_HDR.StructureFlag & FLAG_LOGICAL))
         {
@@ -1310,7 +1325,8 @@
       }
     } while(z-- >= 2);
 ExitLoop:
-
+    if (i != (long) MATLAB_HDR.SizeY)
+      goto END_OF_READING;
 
     /* Read complex part of numbers here */
     if (MATLAB_HDR.StructureFlag & FLAG_COMPLEX)
@@ -1327,6 +1343,8 @@
         for (i = 0; i < (ssize_t) MATLAB_HDR.SizeY; i++)
         {
           ReadBlobDoublesXXX(image2, ldblk, (double *)BImgBuff);
+          if (EOFBlob(image) != MagickFalse)
+            break;
           InsertComplexDoubleRow(image, (double *)BImgBuff, i, MinVal, MaxVal,
             exception);
         }
@@ -1335,6 +1353,8 @@
         for (i = 0; i < (ssize_t) MATLAB_HDR.SizeY; i++)
         {
           ReadBlobFloatsXXX(image2, ldblk, (float *)BImgBuff);
+          if (EOFBlob(image) != MagickFalse)
+            break;
           InsertComplexFloatRow(image,(float *)BImgBuff,i,MinVal,MaxVal,
             exception);
         }
@@ -1384,6 +1404,9 @@
       break;
 
       /* Allocate next image structure. */
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
     AcquireNextImage(image_info,image,exception);
     if (image->next == (Image *) NULL) break;
     image=SyncNextImageInList(image);
@@ -1422,10 +1445,10 @@
       clone_info=DestroyImageInfo(clone_info);
   }
 
+END_OF_READING:
   RelinquishMagickMemory(BImgBuff);
   if (quantum_info != (QuantumInfo *) NULL)
     quantum_info=DestroyQuantumInfo(quantum_info);
-END_OF_READING:
   CloseBlob(image);
 
 
@@ -1582,7 +1605,7 @@
     imageListLength;
 
   struct tm
-    local_time;
+    utc_time;
 
   time_t
     current_time;
@@ -1602,18 +1625,14 @@
     return(MagickFalse);
   image->depth=8;
 
-  current_time=time((time_t *) NULL);
-#if defined(MAGICKCORE_HAVE_LOCALTIME_R)
-  (void) localtime_r(&current_time,&local_time);
-#else
-  (void) memcpy(&local_time,localtime(&current_time),sizeof(local_time));
-#endif
+  current_time=GetMagickTime();
+  GetMagickUTCtime(&current_time,&utc_time);
   (void) memset(MATLAB_HDR,' ',MagickMin(sizeof(MATLAB_HDR),124));
   FormatLocaleString(MATLAB_HDR,sizeof(MATLAB_HDR),
     "MATLAB 5.0 MAT-file, Platform: %s, Created on: %s %s %2d %2d:%2d:%2d %d",
-    OsDesc,DayOfWTab[local_time.tm_wday],MonthsTab[local_time.tm_mon],
-    local_time.tm_mday,local_time.tm_hour,local_time.tm_min,
-    local_time.tm_sec,local_time.tm_year+1900);
+    OsDesc,DayOfWTab[utc_time.tm_wday],MonthsTab[utc_time.tm_mon],
+    utc_time.tm_mday,utc_time.tm_hour,utc_time.tm_min,
+    utc_time.tm_sec,utc_time.tm_year+1900);
   MATLAB_HDR[0x7C]=0;
   MATLAB_HDR[0x7D]=1;
   MATLAB_HDR[0x7E]='I';
@@ -1690,15 +1709,23 @@
       ssize_t
         y;
 
-      for (y=0; y < (ssize_t)image->columns; y++)
+      for (y=0; y < (ssize_t) image->columns; y++)
       {
+        size_t
+          length;
+
         p=GetVirtualPixels(image,y,0,1,image->rows,exception);
         if (p == (const Quantum *) NULL)
           break;
-        (void) ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+        length=ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
           z2qtype[z],pixels,exception);
-        (void) WriteBlob(image,image->rows,pixels);
+        if (length != image->columns)
+          break;
+        if (WriteBlob(image,image->rows,pixels) != (ssize_t) image->rows)
+          break;
       }
+      if (y < (ssize_t) image->columns)
+        break;
       if (SyncAuthenticPixels(image,exception) == MagickFalse)
         break;
     } while (z-- >= 2);
diff --git a/coders/mat.h b/coders/mat.h
index cdfbadd..675c3c2 100644
--- a/coders/mat.h
+++ b/coders/mat.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/matte.c b/coders/matte.c
index 1a10f59..0bf3ce6 100644
--- a/coders/matte.c
+++ b/coders/matte.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/matte.h b/coders/matte.h
index 70dd195..e6ef265 100644
--- a/coders/matte.h
+++ b/coders/matte.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/meta.c b/coders/meta.c
index cbdedde..8045895 100644
--- a/coders/meta.c
+++ b/coders/meta.c
@@ -17,7 +17,7 @@
 %                                 July 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -141,17 +141,15 @@
 %
 */
 
-typedef struct _html_code
+static const struct
 {
-  const short int
+  const unsigned char
     len;
 
   const char
-    *code,
+    code[7],
     val;
-} html_code;
-
-static const html_code html_codes[] = {
+} html_codes[] = {
 #ifdef HANDLE_GT_LT
   { 4,"&lt;",'<' },
   { 4,"&gt;",'>' },
@@ -231,7 +229,7 @@
       *s=value;
       return(o);
     }
-  for (i=0; i < (ssize_t) (sizeof(html_codes)/sizeof(html_code)); i++)
+  for (i=0; i < (ssize_t) (sizeof(html_codes)/sizeof(html_codes[0])); i++)
   {
     if (html_codes[i].len <= (ssize_t) length)
       if (stringnicmp(s,html_codes[i].code,(size_t) (html_codes[i].len)) == 0)
@@ -1148,6 +1146,7 @@
     sizeof(*buffer));
   if (buffer != (unsigned char *) NULL)
     {
+      (void) memset(buffer,0,MagickMaxBufferExtent*sizeof(*buffer));
       i=0;
       while ((length=ReadBlob(source,MagickMaxBufferExtent,buffer)) != 0)
       {
@@ -1392,7 +1391,7 @@
           buff=DestroyImage(buff);
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
         }
-      (void) SetImageProfile(image,"8bim",profile,exception);
+      (void) SetImageProfile(image,"iptc",profile,exception);
       profile=DestroyStringInfo(profile);
       blob=DetachBlob(buff->blob);
       blob=(unsigned char *) RelinquishMagickMemory(blob);
@@ -1911,7 +1910,7 @@
 
   int
     i,
-    tagcount = (int) (sizeof(tags) / sizeof(tag_spec));
+    tagcount = (int) (sizeof(tags) / sizeof(tags[0]));
 
   int
     c;
@@ -2051,7 +2050,7 @@
 
   int
     i,
-    tagcount = (int) (sizeof(tags) / sizeof(tag_spec));
+    tagcount = (int) (sizeof(tags) / sizeof(tags[0]));
 
   int
     c;
diff --git a/coders/meta.h b/coders/meta.h
index d07db12..4be842c 100644
--- a/coders/meta.h
+++ b/coders/meta.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/miff.c b/coders/miff.c
index 0de54fb..da0de1a 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -169,9 +169,8 @@
     extent;
 
   (void) context;
-  if (HeapOverflowSanityCheck(items,size) != MagickFalse)
+  if (HeapOverflowSanityCheckGetSize(items,size,&extent) != MagickFalse)
     return((void *) NULL);
-  extent=items*size;
   if (extent > GetMaxMemoryRequest())
     return((void *) NULL);
   return(AcquireMagickMemory(extent));
@@ -222,6 +221,7 @@
       switch (image->depth)
       {
         case 32:
+        default:
         {
           pixel->index=(MagickRealType) ConstrainColormapIndex(image,(ssize_t)
             (((size_t) *p << 24) | ((size_t) *(p+1) << 16) |
@@ -232,7 +232,7 @@
         case 16:
         {
           pixel->index=(MagickRealType) ConstrainColormapIndex(image,(ssize_t)
-            ((*p << 8) | *(p+1)),exception);
+            (((size_t) *p << 8) | (size_t) *(p+1)),exception);
           p+=2;
           break;
         }
@@ -243,9 +243,6 @@
           p++;
           break;
         }
-        default:
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
       }
       switch (image->depth)
       {
@@ -269,12 +266,13 @@
           if (image->alpha_trait != UndefinedPixelTrait)
             {
               p=PushShortPixel(MSBEndian,p,&quantum);
-              pixel->alpha=(MagickRealType) (quantum >> (image->depth-
+              pixel->alpha=(MagickRealType) ((size_t) quantum >> (image->depth-
                 MAGICKCORE_QUANTUM_DEPTH));
             }
           break;
         }
         case 32:
+        default:
         {
           unsigned int
             quantum;
@@ -282,16 +280,13 @@
           if (image->alpha_trait != UndefinedPixelTrait)
             {
               p=PushLongPixel(MSBEndian,p,&quantum);
-              pixel->alpha=(MagickRealType) (quantum >> (image->depth-
+              pixel->alpha=(MagickRealType) ((size_t) quantum >> (image->depth-
                 MAGICKCORE_QUANTUM_DEPTH));
             }
           break;
         }
-        default:
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
       }
-      *length=(size_t) (*p++)+1;
+      *length=((size_t) *p++)+1;
       return;
     }
   switch (image->depth)
@@ -330,69 +325,67 @@
         quantum;
 
       p=PushShortPixel(MSBEndian,p,&quantum);
-      pixel->red=(MagickRealType) (quantum >> (image->depth-
+      pixel->red=(MagickRealType) ((size_t) quantum >> (image->depth-
         MAGICKCORE_QUANTUM_DEPTH));
       pixel->green=pixel->red;
       pixel->blue=pixel->red;
       if (IsGrayColorspace(image->colorspace) == MagickFalse)
         {
           p=PushShortPixel(MSBEndian,p,&quantum);
-          pixel->green=(MagickRealType) (quantum >> (image->depth-
+          pixel->green=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
           p=PushShortPixel(MSBEndian,p,&quantum);
-          pixel->blue=(MagickRealType) (quantum >> (image->depth-
+          pixel->blue=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       if (image->colorspace == CMYKColorspace)
         {
           p=PushShortPixel(MSBEndian,p,&quantum);
-          pixel->black=(MagickRealType) (quantum >> (image->depth-
+          pixel->black=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       if (image->alpha_trait != UndefinedPixelTrait)
         {
           p=PushShortPixel(MSBEndian,p,&quantum);
-          pixel->alpha=(MagickRealType) (quantum >> (image->depth-
+          pixel->alpha=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       break;
     }
     case 32:
+    default:
     {
       unsigned int
         quantum;
 
       p=PushLongPixel(MSBEndian,p,&quantum);
-      pixel->red=(MagickRealType) (quantum >> (image->depth-
+      pixel->red=(MagickRealType) ((size_t) quantum >> (image->depth-
         MAGICKCORE_QUANTUM_DEPTH));
       pixel->green=pixel->red;
       pixel->blue=pixel->red;
       if (IsGrayColorspace(image->colorspace) == MagickFalse)
         {
           p=PushLongPixel(MSBEndian,p,&quantum);
-          pixel->green=(MagickRealType) (quantum >> (image->depth-
+          pixel->green=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
           p=PushLongPixel(MSBEndian,p,&quantum);
-          pixel->blue=(MagickRealType) (quantum >> (image->depth-
+          pixel->blue=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       if (image->colorspace == CMYKColorspace)
         {
           p=PushLongPixel(MSBEndian,p,&quantum);
-          pixel->black=(MagickRealType) (quantum >> (image->depth-
+          pixel->black=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       if (image->alpha_trait != UndefinedPixelTrait)
         {
           p=PushLongPixel(MSBEndian,p,&quantum);
-          pixel->alpha=(MagickRealType) (quantum >> (image->depth-
+          pixel->alpha=(MagickRealType) ((size_t) quantum >> (image->depth-
             MAGICKCORE_QUANTUM_DEPTH));
         }
       break;
     }
-    default:
-      (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-        "ImageDepthNotSupported","`%s'",image->filename);
   }
   *length=(size_t) (*p++)+1;
 }
@@ -1234,12 +1227,6 @@
             p=colormap;
             switch (image->depth)
             {
-              default:
-              {
-                colormap=(unsigned char *) RelinquishMagickMemory(colormap);
-                ThrowMIFFException(CorruptImageError,"ImageDepthNotSupported");
-                break;
-              }
               case 8:
               {
                 unsigned char
@@ -1279,6 +1266,7 @@
                 break;
               }
               case 32:
+              default:
               {
                 unsigned int
                   long_pixel;
@@ -1604,11 +1592,14 @@
         }
         default:
         {
-          count=ReadBlob(image,packet_size*image->columns,pixels);
+          const void
+            *stream;
+
+          stream=ReadBlobStream(image,packet_size*image->columns,pixels,&count);
           if (count != (ssize_t) (packet_size*image->columns))
             ThrowMIFFException(CorruptImageError,"UnableToReadImageData");
           extent=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-            quantum_type,pixels,exception);
+            quantum_type,(unsigned char *) stream,exception);
           break;
         }
       }
@@ -1841,7 +1832,7 @@
 */
 
 static unsigned char *PopRunlengthPacket(Image *image,unsigned char *pixels,
-  size_t length,PixelInfo *pixel,ExceptionInfo *exception)
+  size_t length,PixelInfo *pixel)
 {
   if (image->storage_class != DirectClass)
     {
@@ -1852,6 +1843,7 @@
       switch (image->depth)
       {
         case 32:
+        default:
         {
           *pixels++=(unsigned char) (value >> 24);
           *pixels++=(unsigned char) (value >> 16);
@@ -1863,13 +1855,11 @@
           *pixels++=(unsigned char) value;
           break;
         }
-        default:
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
       }
       switch (image->depth)
       {
         case 32:
+        default:
         {
           unsigned int
             long_value;
@@ -1906,9 +1896,6 @@
             }
           break;
         }
-        default:
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
       }
       *pixels++=(unsigned char) length;
       return(pixels);
@@ -1916,6 +1903,7 @@
   switch (image->depth)
   {
     case 32:
+    default:
     {
       unsigned int
         value;
@@ -1996,9 +1984,6 @@
         }
       break;
     }
-    default:
-      (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-        "ImageDepthNotSupported","`%s'",image->filename);
   }
   *pixels++=(unsigned char) length;
   return(pixels);
@@ -2092,8 +2077,7 @@
     if ((image->storage_class == PseudoClass) &&
         (image->colors > (size_t) (GetQuantumRange(image->depth)+1)))
       (void) SetImageStorageClass(image,DirectClass,exception);
-    image->depth=image->depth <= 8 ? 8UL : image->depth <= 16 ? 16UL :
-      image->depth <= 32 ? 32UL : 64UL;
+    image->depth=image->depth <= 8 ? 8UL : image->depth <= 16 ? 16UL : 32UL;
     quantum_info=AcquireQuantumInfo(image_info,image);
     if (quantum_info == (QuantumInfo *) NULL)
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -2452,9 +2436,8 @@
         {
           switch (quantum_info->depth)
           {
-            default:
-              ThrowWriterException(CorruptImageError,"ImageDepthNotSupported");
             case 32:
+            default:
             {
               register unsigned int
                 long_pixel;
@@ -2683,13 +2666,13 @@
               length++;
             else
               {
-                q=PopRunlengthPacket(image,q,length,&pixel,exception);
+                q=PopRunlengthPacket(image,q,length,&pixel);
                 length=0;
               }
             GetPixelInfoPixel(image,p,&pixel);
             p+=GetPixelChannels(image);
           }
-          q=PopRunlengthPacket(image,q,length,&pixel,exception);
+          q=PopRunlengthPacket(image,q,length,&pixel);
           (void) WriteBlob(image,(size_t) (q-pixels),pixels);
           break;
         }
diff --git a/coders/miff.h b/coders/miff.h
index 7815305..235be4a 100644
--- a/coders/miff.h
+++ b/coders/miff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mono.c b/coders/mono.c
index a45445b..e823756 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mono.h b/coders/mono.h
index 950a90a..c355b6e 100644
--- a/coders/mono.h
+++ b/coders/mono.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mpc.c b/coders/mpc.c
index 35df8af..7848320 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -109,7 +109,7 @@
 {
   if (length < 14)
     return(MagickFalse);
-  if (LocaleNCompare((const char *) magick,"id=MagickCache",14) == 0)
+  if (LocaleNCompare((const char *) magick,"id=MagickPixelCache",14) == 0)
     return(MagickTrue);
   return(MagickFalse);
 }
@@ -292,7 +292,7 @@
             } while (c != EOF);
             *p='\0';
             p=options;
-            while (isspace((int) ((unsigned char) c)) != 0)
+            while (isspace(c) != 0)
               c=ReadBlobByte(image);
             if (c == (int) '=')
               {
@@ -324,7 +324,7 @@
                         }
                     }
                   if (*options != '{')
-                    if (isspace((int) ((unsigned char) c)) != 0)
+                    if (isspace(c) != 0)
                       break;
                 }
                 if (options == (char *) NULL)
@@ -775,7 +775,7 @@
           }
         else
           c=ReadBlobByte(image);
-      while (isspace((int) ((unsigned char) c)) != 0)
+      while (isspace(c) != 0)
         c=ReadBlobByte(image);
     }
     options=DestroyString(options);
@@ -783,7 +783,7 @@
     /*
       Verify that required image information is defined.
     */
-    if ((LocaleCompare(id,"MagickCache") != 0) ||
+    if ((LocaleCompare(id,"MagickPixelCache") != 0) ||
         (image->storage_class == UndefinedClass) ||
         (image->compression == UndefinedCompression) ||
         (image->columns == 0) || (image->rows == 0) ||
@@ -1177,7 +1177,7 @@
     if ((image->storage_class == PseudoClass) &&
         (image->colors > (size_t) (GetQuantumRange(image->depth)+1)))
       (void) SetImageStorageClass(image,DirectClass,exception);
-    (void) WriteBlobString(image,"id=MagickCache\n");
+    (void) WriteBlobString(image,"id=MagickPixelCache\n");
     (void) FormatLocaleString(buffer,MagickPathExtent,"magick-signature=%u\n",
       GetMagickSignature((const StringInfo *) NULL));
     (void) WriteBlobString(image,buffer);
diff --git a/coders/mpc.h b/coders/mpc.h
index 44403f4..74e7371 100644
--- a/coders/mpc.h
+++ b/coders/mpc.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mpeg.c b/coders/mpeg.c
index e2be04c..260b561 100644
--- a/coders/mpeg.c
+++ b/coders/mpeg.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -268,6 +268,12 @@
   entry->magick=(IsImageFormatHandler *) IsAVI;
   entry->flags^=CoderBlobSupportFlag;
   (void) RegisterMagickInfo(entry);
+  entry=AcquireMagickInfo("MPEG","FLV","Flash Video Stream");
+  entry->decoder=(DecodeImageHandler *) ReadMPEGImage;
+  entry->encoder=(EncodeImageHandler *) WriteMPEGImage;
+  entry->magick=(IsImageFormatHandler *) IsMPEG;
+  entry->flags^=CoderBlobSupportFlag;
+  (void) RegisterMagickInfo(entry);
   entry=AcquireMagickInfo("MPEG","MKV","Multimedia Container");
   entry->decoder=(DecodeImageHandler *) ReadMPEGImage;
   entry->encoder=(EncodeImageHandler *) WriteMPEGImage;
diff --git a/coders/mpeg.h b/coders/mpeg.h
index 9013bcb..9dead74 100644
--- a/coders/mpeg.h
+++ b/coders/mpeg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -24,6 +24,7 @@
   MagickCoderAlias("MPEG", "3GP") \
   MagickCoderAlias("MPEG", "3G2") \
   MagickCoderAlias("MPEG", "AVI") \
+  MagickCoderAlias("MPEG", "FLV") \
   MagickCoderAlias("MPEG", "MKV") \
   MagickCoderAlias("MPEG", "MOV") \
   MagickCoderAlias("MPEG", "MPG") \
diff --git a/coders/mpr.c b/coders/mpr.c
index 0c7bd3e..fcc8e5b 100644
--- a/coders/mpr.c
+++ b/coders/mpr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mpr.h b/coders/mpr.h
index 17d2d40..3473ebf 100644
--- a/coders/mpr.h
+++ b/coders/mpr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/msl.c b/coders/msl.c
index 28ab8f3..af3fcc1 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -19,7 +19,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -63,7 +63,6 @@
 #include "MagickCore/enhance.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
-#include "MagickCore/fx.h"
 #include "MagickCore/geometry.h"
 #include "MagickCore/image.h"
 #include "MagickCore/image-private.h"
@@ -92,6 +91,7 @@
 #include "MagickCore/transform.h"
 #include "MagickCore/threshold.h"
 #include "MagickCore/utility.h"
+#include "MagickCore/visual-effects.h"
 #if defined(MAGICKCORE_XML_DELEGATE)
 #  if defined(MAGICKCORE_WINDOWS_SUPPORT)
 #    if !defined(__MINGW32__)
@@ -544,6 +544,13 @@
   msl_info=(MSLInfo *) context;
   if (msl_info->content != (char *) NULL)
     msl_info->content=DestroyString(msl_info->content);
+#if defined(MAGICKCORE_XML_DELEGATE)
+  if (msl_info->document != (xmlDocPtr) NULL)
+    {
+      xmlFreeDoc(msl_info->document);
+      msl_info->document=(xmlDocPtr) NULL;
+    }
+#endif
 }
 
 static void MSLPushImage(MSLInfo *msl_info,Image *image)
@@ -6157,8 +6164,8 @@
             {
               if (LocaleCompare(keyword, "opacity") == 0)
                 {
-                  ssize_t  opac = OpaqueAlpha,
-                  len = (ssize_t) strlen( value );
+                  Quantum  opac = OpaqueAlpha;
+                  ssize_t len = (ssize_t) strlen( value );
 
                   if (value[len-1] == '%') {
                     char  tmp[100];
@@ -7695,8 +7702,8 @@
   MSLInfo
     *msl_info;
 
-   xmlNodePtr
-     child;
+  xmlNodePtr
+    child;
 
   xmlParserCtxtPtr
     parser;
@@ -7715,7 +7722,9 @@
       xmlTextConcat(child,value,length);
       return;
     }
-  (void) xmlAddChild(parser->node,xmlNewCDataBlock(parser->myDoc,value,length));
+  child=xmlNewCDataBlock(parser->myDoc,value,length);
+  if (xmlAddChild(parser->node,child) == (xmlNodePtr) NULL)
+    xmlFreeNode(child);
 }
 
 static void MSLExternalSubset(void *context,const xmlChar *name,
@@ -7862,6 +7871,7 @@
   *msl_info.image=msl_image;
   if (*image != (Image *) NULL)
     MSLPushImage(&msl_info,*image);
+  xmlInitParser();
   (void) xmlSubstituteEntitiesDefault(1);
   (void) memset(&sax_modules,0,sizeof(sax_modules));
   sax_modules.internalSubset=MSLInternalSubset;
@@ -7911,6 +7921,8 @@
   /*
     Free resources.
   */
+  if (msl_info.parser->myDoc != (xmlDocPtr) NULL)
+    xmlFreeDoc(msl_info.parser->myDoc);
   xmlFreeParserCtxt(msl_info.parser);
   (void) LogMagickEvent(CoderEvent,GetMagickModule(),"end SAX");
   if (*image == (Image *) NULL)
@@ -7987,9 +7999,6 @@
   MagickInfo
     *entry;
 
-#if defined(MAGICKCORE_XML_DELEGATE)
-  xmlInitParser();
-#endif
   entry=AcquireMagickInfo("MSL","MSL","Magick Scripting Language");
 #if defined(MAGICKCORE_XML_DELEGATE)
   entry->decoder=(DecodeImageHandler *) ReadMSLImage;
@@ -8357,7 +8366,6 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   msl_image=CloneImage(image,0,0,MagickTrue,exception);
   status=ProcessMSLScript(image_info,&msl_image,exception);
-  msl_image=DestroyImageList(msl_image);
   return(status);
 }
 #endif
diff --git a/coders/msl.h b/coders/msl.h
index 8e9b0e8..305a473 100644
--- a/coders/msl.h
+++ b/coders/msl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mtv.c b/coders/mtv.c
index 7b4b09a..118a63d 100644
--- a/coders/mtv.c
+++ b/coders/mtv.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mtv.h b/coders/mtv.h
index d04c703..4b4f7fa 100644
--- a/coders/mtv.h
+++ b/coders/mtv.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mvg.c b/coders/mvg.c
index 481c5a4..cfa684b 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -17,7 +17,7 @@
 %                                 April 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mvg.h b/coders/mvg.h
index 9a93b93..0667d3b 100644
--- a/coders/mvg.h
+++ b/coders/mvg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/null.c b/coders/null.c
index aa3ca6c..ff88c63 100644
--- a/coders/null.c
+++ b/coders/null.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -130,11 +130,11 @@
     image->columns=1;
   if (image->rows == 0)
     image->rows=1;
+  image->alpha_trait=BlendPixelTrait;
   status=SetImageExtent(image,image->columns,image->rows,exception);
   if (status == MagickFalse)
     return(DestroyImageList(image));
   ConformPixelInfo(image,&image->background_color,&background,exception);
-  image->alpha_trait=BlendPixelTrait;
   background.alpha=(double) TransparentAlpha;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
@@ -249,6 +249,7 @@
   assert(image != (Image *) NULL);
   assert(image->signature == MagickCoreSignature);
   assert(exception != (ExceptionInfo *) NULL);
+  (void) image_info;
   (void) exception;
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
diff --git a/coders/null.h b/coders/null.h
index 05774f9..474a1b3 100644
--- a/coders/null.h
+++ b/coders/null.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/otb.c b/coders/otb.c
index 7ab2b04..24fb927 100644
--- a/coders/otb.c
+++ b/coders/otb.c
@@ -17,7 +17,7 @@
 %                               January 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/otb.h b/coders/otb.h
index ce28de5..d516541 100644
--- a/coders/otb.h
+++ b/coders/otb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/palm.c b/coders/palm.c
index c8a85d8..737d541 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -771,7 +771,7 @@
   {
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
     count=GetNumberColors(image,NULL,exception);
-    for (bits_per_pixel=1;  (one << bits_per_pixel) < count; bits_per_pixel*=2) ;
+    for (bits_per_pixel=1; (one << bits_per_pixel) < count; bits_per_pixel*=2) ;
     if (bits_per_pixel > 16)
       bits_per_pixel=16;
     else
@@ -876,7 +876,7 @@
     last_row=(unsigned char *) NULL;
     if (image_info->compression == FaxCompression)
       {
-        last_row=(unsigned char *) AcquireQuantumMemory(bytes_per_row,
+        last_row=(unsigned char *) AcquireQuantumMemory(bytes_per_row+256,
           sizeof(*last_row));
         if (last_row == (unsigned char *) NULL)
           {
@@ -884,7 +884,7 @@
             ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
           }
       }
-    one_row=(unsigned char *) AcquireQuantumMemory(bytes_per_row,
+    one_row=(unsigned char *) AcquireQuantumMemory(bytes_per_row+256,
       sizeof(*one_row));
     if (one_row == (unsigned char *) NULL)
       {
@@ -904,10 +904,10 @@
         {
           for (x=0; x < (ssize_t) image->columns; x++)
           {
-            color16=(unsigned short) ((((31*(size_t) GetPixelRed(image,p))/
-              (size_t) QuantumRange) << 11) | (((63*(size_t)
-              GetPixelGreen(image,p))/(size_t) QuantumRange) << 5) |
-              ((31*(size_t) GetPixelBlue(image,p))/(size_t) QuantumRange));
+            color16=(unsigned short) ((((31*(ssize_t) GetPixelRed(image,p))/
+              (ssize_t) QuantumRange) << 11) | (((63*(ssize_t)
+              GetPixelGreen(image,p))/(ssize_t) QuantumRange) << 5) |
+              ((31*(ssize_t) GetPixelBlue(image,p))/(ssize_t) QuantumRange));
             if (GetPixelAlpha(image,p) == (Quantum) TransparentAlpha)
               {
                 transpix.red=(MagickRealType) GetPixelRed(image,p);
diff --git a/coders/palm.h b/coders/palm.h
index 014fcc9..db3a8f2 100644
--- a/coders/palm.h
+++ b/coders/palm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pango.c b/coders/pango.c
index 0fe0be2..ed4460e 100644
--- a/coders/pango.c
+++ b/coders/pango.c
@@ -17,7 +17,7 @@
 %                                 March 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -185,6 +185,8 @@
   assert(exception->signature == MagickCoreSignature);
   image=AcquireImage(image_info,exception);
   (void) ResetImagePage(image,"0x0+0+0");
+  if ((image->columns != 0) && (image->rows != 0))
+    (void) SetImageBackgroundColor(image,exception);
   /*
     Format caption.
   */
@@ -199,8 +201,11 @@
     else
       property=InterpretImageProperties((ImageInfo *) image_info,image,option,
         exception);
-  (void) SetImageProperty(image,"caption",property,exception);
-  property=DestroyString(property);
+  if (property != (char *) NULL)
+    {
+      (void) SetImageProperty(image,"caption",property,exception);
+      property=DestroyString(property);
+    }
   caption=ConstantString(GetImageProperty(image,"caption",exception));
   /*
     Get context.
diff --git a/coders/pango.h b/coders/pango.h
index 3fd75f5..315c91c 100644
--- a/coders/pango.h
+++ b/coders/pango.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pattern.c b/coders/pattern.c
index b1e40dc..846bfdd 100644
--- a/coders/pattern.c
+++ b/coders/pattern.c
@@ -17,7 +17,7 @@
 %                                 May 2003                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -595,7 +595,7 @@
   {
     0x50, 0x34, 0x0A, 0x39, 0x20, 0x39, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xFF,
     0x80, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0xFF,
-    0x80,
+    0x80
   };
 
 /*
@@ -841,21 +841,18 @@
     0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x80
   };
 
-typedef struct _PatternInfo
+static const struct
 {
   char
-    name[MagickPathExtent],
-    magick[MagickPathExtent];
+    name[21],
+    magick[4];
 
   const void
     *blob;
 
   size_t
     extent;
-} PatternInfo;
-
-static const PatternInfo
-  PatternImageList[] =
+} PatternImageList[] =
   {
     { "BRICKS", "PBM", BricksImage, sizeof(BricksImage) },
     { "CHECKERBOARD", "GIF", CheckerboardImage, sizeof(CheckerboardImage) },
@@ -903,19 +900,14 @@
     { "RIGHT30", "PBM", Right30Image, sizeof(Right30Image) },
     { "RIGHT45", "PBM", Right45Image, sizeof(Right45Image) },
     { "RIGHTSHINGLE", "PBM", RightShingleImage, sizeof(RightShingleImage) },
-    { "SMALLFISHSCALES", "PBM", SmallFishScalesImage,
-      sizeof(SmallFishScalesImage) },
+    { "SMALLFISHSCALES", "PBM", SmallFishScalesImage, sizeof(SmallFishScalesImage) },
     { "VERTICAL", "PBM", VerticalImage, sizeof(VerticalImage) },
     { "VERTICAL2", "PBM", Vertical2Image, sizeof(Vertical2Image) },
     { "VERTICAL3", "PBM", Vertical3Image, sizeof(Vertical3Image) },
-    { "VERTICALBRICKS", "PBM", VerticalBricksImage,
-      sizeof(VerticalBricksImage) },
-    { "VERTICALLEFTSHINGLE", "PBM", VerticalLeftShingleImage,
-      sizeof(VerticalLeftShingleImage) },
-    { "VERTICALRIGHTSHINGLE", "PBM", VerticalRightShingleImage,
-      sizeof(VerticalRightShingleImage) },
-    { "VERTICALSAW", "PBM", VerticalSawImage, sizeof(VerticalSawImage) },
-    { "", "", (const void *) NULL, 0 }
+    { "VERTICALBRICKS", "PBM", VerticalBricksImage, sizeof(VerticalBricksImage) },
+    { "VERTICALLEFTSHINGLE", "PBM", VerticalLeftShingleImage, sizeof(VerticalLeftShingleImage) },
+    { "VERTICALRIGHTSHINGLE", "PBM", VerticalRightShingleImage, sizeof(VerticalRightShingleImage) },
+    { "VERTICALSAW", "PBM", VerticalSawImage, sizeof(VerticalSawImage) }
   };
 
 /*
@@ -967,7 +959,7 @@
   image=(Image *) NULL;
   blob=(const void *) NULL;
   extent=0;
-  for (i=0; PatternImageList[i].blob != (const void *) NULL; i++)
+  for (i=0; i < (ssize_t) (sizeof(PatternImageList)/sizeof(PatternImageList[0])); i++)
     if (LocaleCompare(blob_info->filename,PatternImageList[i].name) == 0)
       {
         (void) CopyMagickString(blob_info->magick,PatternImageList[i].magick,
diff --git a/coders/pattern.h b/coders/pattern.h
index ee5ecac..5c2c053 100644
--- a/coders/pattern.h
+++ b/coders/pattern.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcd.c b/coders/pcd.c
index 7e48c13..e18b5b9 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/pcd.h b/coders/pcd.h
index 121df97..50e8a65 100644
--- a/coders/pcd.h
+++ b/coders/pcd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcl.c b/coders/pcl.c
index 5c057be..a200af4 100644
--- a/coders/pcl.c
+++ b/coders/pcl.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -319,7 +319,10 @@
      else
        delegate_info=GetDelegateInfo("pcl:color",(char *) NULL,exception);
   if (delegate_info == (const DelegateInfo *) NULL)
-    return((Image *) NULL);
+    {
+      image=DestroyImage(image);
+      return((Image *) NULL);
+    }
   if ((page.width == 0) || (page.height == 0))
     (void) ParseAbsoluteGeometry(PSPageGeometry,&page);
   if (image_info->page != (char *) NULL)
@@ -331,7 +334,7 @@
   page.width=(size_t) floor(page.width*image->resolution.x/delta.x+0.5);
   page.height=(size_t) floor(page.height*image->resolution.y/delta.y+0.5);
   (void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
-     page.width,(double) page.height);
+    page.width,(double) page.height);
   image=DestroyImage(image);
   read_info=CloneImageInfo(image_info);
   *read_info->magick='\0';
diff --git a/coders/pcl.h b/coders/pcl.h
index 267c093..54f68e2 100644
--- a/coders/pcl.h
+++ b/coders/pcl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcx.c b/coders/pcx.c
index a8cbd57..4332dc0 100644
--- a/coders/pcx.c
+++ b/coders/pcx.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -340,14 +340,12 @@
     /*
       Read PCX raster colormap.
     */
-    image->columns=(size_t) MagickAbsoluteValue((ssize_t) pcx_info.right-
-      pcx_info.left)+1UL;
-    image->rows=(size_t) MagickAbsoluteValue((ssize_t) pcx_info.bottom-
-      pcx_info.top)+1UL;
-    if ((image->columns == 0) || (image->rows == 0) ||
+    if ((pcx_info.right < pcx_info.left) || (pcx_info.bottom < pcx_info.top) ||
         ((pcx_info.bits_per_pixel != 1) && (pcx_info.bits_per_pixel != 2) &&
          (pcx_info.bits_per_pixel != 4) && (pcx_info.bits_per_pixel != 8)))
       ThrowPCXException(CorruptImageError,"ImproperImageHeader");
+    image->columns=(size_t) (pcx_info.right-pcx_info.left)+1UL;
+    image->rows=(size_t) (pcx_info.bottom-pcx_info.top)+1UL;
     image->depth=pcx_info.bits_per_pixel;
     image->units=PixelsPerInchResolution;
     image->resolution.x=(double) pcx_info.horizontal_resolution;
@@ -400,12 +398,10 @@
     /*
       Read image data.
     */
-    if (HeapOverflowSanityCheck(image->rows, (size_t) pcx_info.bytes_per_line) != MagickFalse)
+    if (HeapOverflowSanityCheckGetSize(image->rows,(size_t) pcx_info.bytes_per_line,&pcx_packets) != MagickFalse)
       ThrowPCXException(CorruptImageError,"ImproperImageHeader");
-    pcx_packets=(size_t) image->rows*pcx_info.bytes_per_line;
-    if (HeapOverflowSanityCheck(pcx_packets, (size_t) pcx_info.planes) != MagickFalse)
+    if (HeapOverflowSanityCheckGetSize(pcx_packets,(size_t) pcx_info.planes,&pcx_packets) != MagickFalse)
       ThrowPCXException(CorruptImageError,"ImproperImageHeader");
-    pcx_packets=(size_t) pcx_packets*pcx_info.planes;
     if ((size_t) (pcx_info.bits_per_pixel*pcx_info.planes*image->columns) > (pcx_packets*8U))
       ThrowPCXException(CorruptImageError,"ImproperImageHeader");
     if ((MagickSizeType) (pcx_packets/32+128) > GetBlobSize(image))
@@ -578,13 +574,13 @@
               for (x=0; x < ((ssize_t) image->columns-7); x+=8)
               {
                 for (bit=7; bit >= 0; bit--)
-                  *r++=(unsigned char) ((*p) & (0x01 << bit) ? 0x01 : 0x00);
+                  *r++=(unsigned char) ((*p) & (0x01 << bit) ? 0x00 : 0x01);
                 p++;
               }
               if ((image->columns % 8) != 0)
                 {
                   for (bit=7; bit >= (ssize_t) (8-(image->columns % 8)); bit--)
-                    *r++=(unsigned char) ((*p) & (0x01 << bit) ? 0x01 : 0x00);
+                    *r++=(unsigned char) ((*p) & (0x01 << bit) ? 0x00 : 0x01);
                   p++;
                 }
               break;
@@ -914,8 +910,6 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if ((image->columns > 65535UL) || (image->rows > 65535UL))
-    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   page_table=(MagickOffsetType *) NULL;
   if ((LocaleCompare(image_info->magick,"DCX") == 0) ||
       ((GetNextImageInList(image) != (Image *) NULL) &&
@@ -982,7 +976,8 @@
           pcx_info.planes++;
       }
     length=(((size_t) image->columns*pcx_info.bits_per_pixel+7)/8);
-    if (length > 65535UL)
+    if ((image->columns > 65535UL) || (image->rows > 65535UL) ||
+        (length > 65535UL))
       {
         if (page_table != (MagickOffsetType *) NULL)
           page_table=(MagickOffsetType *) RelinquishMagickMemory(page_table);
@@ -1151,7 +1146,7 @@
               for (x=0; x < (ssize_t) image->columns; x++)
               {
                 byte<<=1;
-                if (GetPixelLuma(image,p) >= (QuantumRange/2.0))
+                if (GetPixelLuma(image,p) < (QuantumRange/2.0))
                   byte|=0x01;
                 bit++;
                 if (bit == 8)
diff --git a/coders/pcx.h b/coders/pcx.h
index fa331d0..a726850 100644
--- a/coders/pcx.h
+++ b/coders/pcx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pdb.c b/coders/pdb.c
index 891d9d8..7be605c 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -64,6 +64,7 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/pixel-accessor.h"
@@ -72,7 +73,8 @@
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
-#include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
+#include "MagickCore/utility.h"
 
 /*
   Typedef declarations.
@@ -739,6 +741,9 @@
 static MagickBooleanType WritePDBImage(const ImageInfo *image_info,Image *image,
   ExceptionInfo *exception)
 {
+  char
+    filename[MagickPathExtent];
+
   const char
     *comment;
 
@@ -807,11 +812,11 @@
   }
   (void) memset(&pdb_info,0,sizeof(pdb_info));
   (void) memset(&pdb_image,0,sizeof(pdb_image));
-  (void) CopyMagickString(pdb_info.name,image_info->filename,
-    sizeof(pdb_info.name));
+  GetPathComponent(image_info->filename,TailPath,filename);
+  (void) CopyMagickString(pdb_info.name,filename,sizeof(pdb_info.name));
   pdb_info.attributes=0;
   pdb_info.version=0;
-  pdb_info.create_time=time(NULL);
+  pdb_info.create_time=GetMagickTime();
   pdb_info.modify_time=pdb_info.create_time;
   pdb_info.archive_time=0;
   pdb_info.modify_number=0;
@@ -857,7 +862,7 @@
     pdb_image.width=(short) (16*(image->columns/16+1));
   pdb_image.height=(short) image->rows;
   packets=((bits_per_pixel*image->columns+7)/8);
-  packet_size=(size_t) (image->depth > 8 ? 2 : 1);
+  packet_size=(size_t) (bits_per_pixel > 8 ? 2 : 1);
   runlength=(unsigned char *) AcquireQuantumMemory(9UL*packets,
     image->rows*sizeof(*runlength));
   buffer=(unsigned char *) AcquireQuantumMemory(512,sizeof(*buffer));
@@ -876,6 +881,7 @@
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
     }
   (void) memset(buffer,0,512*sizeof(*buffer));
+  (void) memset(scanline,0,image->columns*packet_size*sizeof(*scanline));
   if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
   /*
@@ -892,7 +898,7 @@
         scanline=(unsigned char *) RelinquishMagickMemory(scanline);
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
     }
-  status=SetQuantumDepth(image,quantum_info,image->depth > 8 ? 16 : 8);
+  status=SetQuantumDepth(image,quantum_info,bits_per_pixel > 8 ? 16 : 8);
   bits=8/(int) bits_per_pixel-1;  /* start at most significant bits */
   literal=0;
   repeat=0;
diff --git a/coders/pdb.h b/coders/pdb.h
index 6d54791..43ff305 100644
--- a/coders/pdb.h
+++ b/coders/pdb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pdf.c b/coders/pdf.c
index 4ed3975..0b36d0f 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -45,6 +45,7 @@
 #include "MagickCore/blob.h"
 #include "MagickCore/blob-private.h"
 #include "MagickCore/cache.h"
+#include "MagickCore/channel.h"
 #include "MagickCore/color.h"
 #include "MagickCore/color-private.h"
 #include "MagickCore/colorspace.h"
@@ -53,6 +54,7 @@
 #include "MagickCore/constitute.h"
 #include "MagickCore/delegate.h"
 #include "MagickCore/delegate-private.h"
+#include "MagickCore/distort.h"
 #include "MagickCore/draw.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
@@ -62,7 +64,9 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
+#include "MagickCore/montage.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/nt-base-private.h"
 #include "MagickCore/option.h"
@@ -75,11 +79,13 @@
 #include "MagickCore/signature.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
-#include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
 #include "MagickCore/module.h"
+#include "coders/bytebuffer-private.h"
+#include "coders/ghostscript-private.h"
 
 /*
   Define declarations.
@@ -91,205 +97,31 @@
 #endif
 
 /*
+  Typedef declaractions.
+*/
+typedef struct _PDFInfo
+{
+  double
+    angle;
+
+  MagickBooleanType
+    cmyk,
+    cropbox,
+    trimbox;
+
+  SegmentInfo
+    bounds;
+
+  StringInfo
+    *profile;
+} PDFInfo;
+
+/*
   Forward declarations.
 */
 static MagickBooleanType
-  WritePDFImage(const ImageInfo *,Image *,ExceptionInfo *);
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%   I n v o k e P D F D e l e g a t e                                         %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  InvokePDFDelegate() executes the PDF interpreter with the specified command.
-%
-%  The format of the InvokePDFDelegate method is:
-%
-%      MagickBooleanType InvokePDFDelegate(const MagickBooleanType verbose,
-%        const char *command,ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o verbose: A value other than zero displays the command prior to
-%      executing it.
-%
-%    o command: the address of a character string containing the command to
-%      execute.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
-static int MagickDLLCall PDFDelegateMessage(void *handle,const char *message,
-  int length)
-{
-  char
-    **messages;
-
-  ssize_t
-    offset;
-
-  offset=0;
-  messages=(char **) handle;
-  if (*messages == (char *) NULL)
-    *messages=(char *) AcquireQuantumMemory(length+1,sizeof(char *));
-  else
-    {
-      offset=strlen(*messages);
-      *messages=(char *) ResizeQuantumMemory(*messages,offset+length+1,
-        sizeof(char *));
-    }
-  if (*messages == (char *) NULL)
-    return(0);
-  (void) memcpy(*messages+offset,message,length);
-  (*messages)[length+offset] ='\0';
-  return(length);
-}
-#endif
-
-static MagickBooleanType InvokePDFDelegate(const MagickBooleanType verbose,
-  const char *command,char *message,ExceptionInfo *exception)
-{
-  int
-    status;
-
-#define ExecuteGhostscriptCommand(command,status) \
-{ \
-  status=ExternalDelegateCommand(MagickFalse,verbose,command,message, \
-    exception); \
-  if (status == 0) \
-    return(MagickTrue); \
-  if (status < 0) \
-    return(MagickFalse); \
-  (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, \
-    "FailedToExecuteCommand","`%s' (%d)",command,status); \
-  return(MagickFalse); \
-}
-
-#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
-#define SetArgsStart(command,args_start) \
-  if (args_start == (const char *) NULL) \
-    { \
-      if (*command != '"') \
-        args_start=strchr(command,' '); \
-      else \
-        { \
-          args_start=strchr(command+1,'"'); \
-          if (args_start != (const char *) NULL) \
-            args_start++; \
-        } \
-    }
-
-  char
-    **argv,
-    *errors;
-
-  const char
-    *args_start = (const char *) NULL;
-
-  const GhostInfo
-    *ghost_info;
-
-  gs_main_instance
-    *interpreter;
-
-  gsapi_revision_t
-    revision;
-
-  int
-    argc,
-    code;
-
-  register ssize_t
-    i;
-
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
-  ghost_info=NTGhostscriptDLLVectors();
-#else
-  GhostInfo
-    ghost_info_struct;
-
-  ghost_info=(&ghost_info_struct);
-  (void) memset(&ghost_info_struct,0,sizeof(ghost_info_struct));
-  ghost_info_struct.delete_instance=(void (*)(gs_main_instance *))
-    gsapi_delete_instance;
-  ghost_info_struct.exit=(int (*)(gs_main_instance *)) gsapi_exit;
-  ghost_info_struct.new_instance=(int (*)(gs_main_instance **,void *))
-    gsapi_new_instance;
-  ghost_info_struct.init_with_args=(int (*)(gs_main_instance *,int,char **))
-    gsapi_init_with_args;
-  ghost_info_struct.run_string=(int (*)(gs_main_instance *,const char *,int,
-    int *)) gsapi_run_string;
-  ghost_info_struct.set_stdio=(int (*)(gs_main_instance *,int (*)(void *,char *,
-    int),int (*)(void *,const char *,int),int (*)(void *, const char *, int)))
-    gsapi_set_stdio;
-  ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
-#endif
-  if (ghost_info == (GhostInfo *) NULL)
-    ExecuteGhostscriptCommand(command,status);
-  if ((ghost_info->revision)(&revision,sizeof(revision)) != 0)
-    revision.revision=0;
-  if (verbose != MagickFalse)
-    {
-      (void) fprintf(stdout,"[ghostscript library %.2f]",(double)
-        revision.revision/100.0);
-      SetArgsStart(command,args_start);
-      (void) fputs(args_start,stdout);
-    }
-  errors=(char *) NULL;
-  status=(ghost_info->new_instance)(&interpreter,(void *) &errors);
-  if (status < 0)
-    ExecuteGhostscriptCommand(command,status);
-  code=0;
-  argv=StringToArgv(command,&argc);
-  if (argv == (char **) NULL)
-    {
-      (ghost_info->delete_instance)(interpreter);
-      return(MagickFalse);
-    }
-  (void) (ghost_info->set_stdio)(interpreter,(int (MagickDLLCall *)(void *,
-    char *,int)) NULL,PDFDelegateMessage,PDFDelegateMessage);
-  status=(ghost_info->init_with_args)(interpreter,argc-1,argv+1);
-  if (status == 0)
-    status=(ghost_info->run_string)(interpreter,"systemdict /start get exec\n",
-      0,&code);
-  (ghost_info->exit)(interpreter);
-  (ghost_info->delete_instance)(interpreter);
-  for (i=0; i < (ssize_t) argc; i++)
-    argv[i]=DestroyString(argv[i]);
-  argv=(char **) RelinquishMagickMemory(argv);
-  if (status != 0)
-    {
-      SetArgsStart(command,args_start);
-      if (status == -101) /* quit */
-        (void) FormatLocaleString(message,MagickPathExtent,
-          "[ghostscript library %.2f]%s: %s",(double) revision.revision/100.0,
-          args_start,errors);
-      else
-        {
-          (void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
-            "PDFDelegateFailed","`[ghostscript library %.2f]%s': %s",(double)
-            revision.revision/100.0,args_start,errors);
-          if (errors != (char *) NULL)
-            errors=DestroyString(errors);
-          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-            "Ghostscript returns status %d, exit code %d",status,code);
-          return(MagickFalse);
-        }
-    }
-  if (errors != (char *) NULL)
-    errors=DestroyString(errors);
-  return(MagickTrue);
-#else
-  ExecuteGhostscriptCommand(command,status);
-#endif
-}
+  WritePDFImage(const ImageInfo *,Image *,ExceptionInfo *),
+  WritePOCKETMODImage(const ImageInfo *,Image *,ExceptionInfo *);
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -352,39 +184,192 @@
 %
 */
 
-static MagickBooleanType IsPDFRendered(const char *path)
+static void ReadPDFInfo(const ImageInfo *image_info,Image *image,
+  PDFInfo *pdf_info,ExceptionInfo *exception)
 {
-  MagickBooleanType
-    status;
-
-  struct stat
-    attributes;
-
-  if ((path == (const char *) NULL) || (*path == '\0'))
-    return(MagickFalse);
-  status=GetPathAttributes(path,&attributes);
-  if ((status != MagickFalse) && S_ISREG(attributes.st_mode) &&
-      (attributes.st_size > 0))
-    return(MagickTrue);
-  return(MagickFalse);
-}
-
-static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
-{
-#define BeginXMPPacket  "<?xpacket begin="
 #define CMYKProcessColor  "CMYKProcessColor"
 #define CropBox  "CropBox"
 #define DefaultCMYK  "DefaultCMYK"
 #define DeviceCMYK  "DeviceCMYK"
-#define EndXMPPacket  "<?xpacket end="
 #define MediaBox  "MediaBox"
-#define RenderPostscriptText  "Rendering Postscript...  "
 #define PDFRotate  "Rotate"
 #define SpotColor  "Separation"
 #define TrimBox  "TrimBox"
 #define PDFVersion  "PDF-"
 
   char
+    version[MagickPathExtent];
+
+  int
+    c;
+
+  MagickByteBuffer
+    buffer;
+
+  register char
+    *p;
+
+  register ssize_t
+    i;
+
+  SegmentInfo
+    bounds;
+
+  size_t
+    spotcolor;
+
+  ssize_t
+    count;
+
+  (void) memset(&bounds,0,sizeof(bounds));
+  (void) memset(pdf_info,0,sizeof(*pdf_info));
+  pdf_info->cmyk=image_info->colorspace == CMYKColorspace ? MagickTrue :
+    MagickFalse;
+  pdf_info->cropbox=IsStringTrue(GetImageOption(image_info,"pdf:use-cropbox"));
+  pdf_info->trimbox=IsStringTrue(GetImageOption(image_info,"pdf:use-trimbox"));
+  *version='\0';
+  spotcolor=0;
+  (void) memset(&buffer,0,sizeof(buffer));
+  buffer.image=image;
+  for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+  {
+    switch(c)
+    {
+      case '%':
+      {
+        if (*version == '\0')
+          {
+            i=0;
+            for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+            {
+              if ((c == '\r') || (c == '\n') || ((i+1) == MagickPathExtent))
+                break;
+              version[i++]=(char) c;
+            }
+            version[i]='\0';
+          }
+        continue;
+      }
+      case '<':
+      {
+        ReadGhostScriptXMPProfile(&buffer,&pdf_info->profile);
+        continue;
+      }
+      case '/':
+        break;
+      default:
+        continue;
+    }
+    if (CompareMagickByteBuffer(&buffer,PDFRotate,strlen(PDFRotate)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        (void) sscanf(p,PDFRotate" %lf",&pdf_info->angle);
+      }
+    if (pdf_info->cmyk == MagickFalse)
+      {
+        if ((CompareMagickByteBuffer(&buffer,DefaultCMYK,strlen(DefaultCMYK)) != MagickFalse) ||
+            (CompareMagickByteBuffer(&buffer,DeviceCMYK,strlen(DeviceCMYK)) != MagickFalse) ||
+            (CompareMagickByteBuffer(&buffer,CMYKProcessColor,strlen(CMYKProcessColor)) != MagickFalse))
+          {
+            pdf_info->cmyk=MagickTrue;
+            continue;
+          }
+      }
+    if (CompareMagickByteBuffer(&buffer,SpotColor,strlen(SpotColor)) != MagickFalse)
+      {
+        char
+          name[MagickPathExtent],
+          property[MagickPathExtent],
+          *value;
+
+        /*
+          Note spot names.
+        */
+        (void) FormatLocaleString(property,MagickPathExtent,
+          "pdf:SpotColor-%.20g",(double) spotcolor++);
+        i=0;
+        SkipMagickByteBuffer(&buffer,strlen(SpotColor)+1);
+        for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+        {
+          if ((isspace(c) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
+            break;
+          name[i++]=(char) c;
+        }
+        name[i]='\0';
+        value=ConstantString(name);
+        (void) SubstituteString(&value,"#20"," ");
+        if (*value != '\0')
+          (void) SetImageProperty(image,property,value,exception);
+        value=DestroyString(value);
+        continue;
+      }
+    if (image_info->page != (char *) NULL)
+      continue;
+    count=0;
+    if (pdf_info->cropbox != MagickFalse)
+      {
+        if (CompareMagickByteBuffer(&buffer,CropBox,strlen(CropBox)) != MagickFalse)
+          {
+            /*
+              Note region defined by crop box.
+            */
+            p=GetMagickByteBufferDatum(&buffer);
+            count=(ssize_t) sscanf(p,"CropBox [%lf %lf %lf %lf",&bounds.x1,
+              &bounds.y1,&bounds.x2,&bounds.y2);
+            if (count != 4)
+              count=(ssize_t) sscanf(p,"CropBox[%lf %lf %lf %lf",&bounds.x1,
+                &bounds.y1,&bounds.x2,&bounds.y2);
+          }
+      }
+    else
+      if (pdf_info->trimbox != MagickFalse)
+        {
+          if (CompareMagickByteBuffer(&buffer,TrimBox,strlen(TrimBox)) != MagickFalse)
+            {
+              /*
+                Note region defined by trim box.
+              */
+              p=GetMagickByteBufferDatum(&buffer);
+              count=(ssize_t) sscanf(p,"TrimBox [%lf %lf %lf %lf",&bounds.x1,
+                &bounds.y1,&bounds.x2,&bounds.y2);
+              if (count != 4)
+                count=(ssize_t) sscanf(p,"TrimBox[%lf %lf %lf %lf",&bounds.x1,
+                  &bounds.y1,&bounds.x2,&bounds.y2);
+            }
+        }
+      else
+        if (CompareMagickByteBuffer(&buffer,MediaBox,strlen(MediaBox)) != MagickFalse)
+          {
+            /*
+              Note region defined by media box.
+            */
+            p=GetMagickByteBufferDatum(&buffer);
+            count=(ssize_t) sscanf(p,"MediaBox [%lf %lf %lf %lf",&bounds.x1,
+              &bounds.y1,&bounds.x2,&bounds.y2);
+            if (count != 4)
+              count=(ssize_t) sscanf(p,"MediaBox[%lf %lf %lf %lf",&bounds.x1,
+                &bounds.y1,&bounds.x2,&bounds.y2);
+          }
+    if (count != 4)
+      continue;
+    if ((fabs(bounds.x2-bounds.x1) <= fabs(pdf_info->bounds.x2-pdf_info->bounds.x1)) ||
+        (fabs(bounds.y2-bounds.y1) <= fabs(pdf_info->bounds.y2-pdf_info->bounds.y1)))
+      continue;
+    pdf_info->bounds=bounds;
+  }
+  if (version[0] != '\0')
+    (void) SetImageProperty(image,"pdf:Version",version,exception);
+}
+
+static inline void CleanupPDFInfo(PDFInfo *pdf_info)
+{
+  if (pdf_info->profile != (StringInfo *) NULL)
+    pdf_info->profile=DestroyStringInfo(pdf_info->profile);
+}
+
+static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+  char
     command[MagickPathExtent],
     *density,
     filename[MagickPathExtent],
@@ -400,9 +385,6 @@
   const DelegateInfo
     *delegate_info;
 
-  double
-    angle;
-
   GeometryInfo
     geometry_info;
 
@@ -415,43 +397,30 @@
     *read_info;
 
   int
-    c,
     file;
 
   MagickBooleanType
-    cmyk,
-    cropbox,
     fitPage,
     status,
-    stop_on_error,
-    trimbox;
+    stop_on_error;
 
   MagickStatusType
     flags;
 
+  PDFInfo
+    pdf_info;
+
   PointInfo
     delta;
 
   RectangleInfo
-    bounding_box,
     page;
 
-  register char
-    *p;
-
   register ssize_t
     i;
 
-  SegmentInfo
-    bounds,
-    hires_bounds;
-
   size_t
-    scene,
-    spotcolor;
-
-  ssize_t
-    count;
+    scene;
 
   assert(image_info != (const ImageInfo *) NULL);
   assert(image_info->signature == MagickCoreSignature);
@@ -503,143 +472,29 @@
   (void) ParseAbsoluteGeometry(PSPageGeometry,&page);
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
-  page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x)-
-    0.5);
-  page.height=(size_t) ceil((double) (page.height*image->resolution.y/delta.y)-
-    0.5);
+  page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+    image->resolution.x/delta.x)-0.5));
+  page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+    image->resolution.y/delta.y)-0.5));
   /*
     Determine page geometry from the PDF media box.
   */
-  cmyk=image_info->colorspace == CMYKColorspace ? MagickTrue : MagickFalse;
-  cropbox=IsStringTrue(GetImageOption(image_info,"pdf:use-cropbox"));
-  stop_on_error=IsStringTrue(GetImageOption(image_info,"pdf:stop-on-error"));
-  trimbox=IsStringTrue(GetImageOption(image_info,"pdf:use-trimbox"));
-  count=0;
-  spotcolor=0;
-  (void) memset(&bounding_box,0,sizeof(bounding_box));
-  (void) memset(&bounds,0,sizeof(bounds));
-  (void) memset(&hires_bounds,0,sizeof(hires_bounds));
-  (void) memset(command,0,sizeof(command));
-  angle=0.0;
-  p=command;
-  for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
-  {
-    /*
-      Note PDF elements.
-    */
-    if (c == '\n')
-      c=' ';
-    *p++=(char) c;
-    if ((c != (int) '/') && (c != (int) '%') &&
-        ((size_t) (p-command) < (MagickPathExtent-1)))
-      continue;
-    *(--p)='\0';
-    p=command;
-    if (LocaleNCompare(PDFRotate,command,strlen(PDFRotate)) == 0)
-      count=(ssize_t) sscanf(command,"Rotate %lf",&angle);
-    /*
-      Is this a CMYK document?
-    */
-    if (LocaleNCompare(DefaultCMYK,command,strlen(DefaultCMYK)) == 0)
-      cmyk=MagickTrue;
-    if (LocaleNCompare(DeviceCMYK,command,strlen(DeviceCMYK)) == 0)
-      cmyk=MagickTrue;
-    if (LocaleNCompare(CMYKProcessColor,command,strlen(CMYKProcessColor)) == 0)
-      cmyk=MagickTrue;
-    if (LocaleNCompare(SpotColor,command,strlen(SpotColor)) == 0)
-      {
-        char
-          name[MagickPathExtent],
-          property[MagickPathExtent],
-          *value;
-
-        /*
-          Note spot names.
-        */
-        (void) FormatLocaleString(property,MagickPathExtent,
-          "pdf:SpotColor-%.20g",(double) spotcolor++);
-        i=0;
-        for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
-        {
-          if ((isspace(c) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
-            break;
-          name[i++]=(char) c;
-        }
-        name[i]='\0';
-        value=ConstantString(name);
-        (void) SubstituteString(&value,"#20"," ");
-        if (*value != '\0')
-          (void) SetImageProperty(image,property,value,exception);
-        value=DestroyString(value);
-        continue;
-      }
-    if (LocaleNCompare(PDFVersion,command,strlen(PDFVersion)) == 0)
-      (void) SetImageProperty(image,"pdf:Version",command,exception);
-    if (image_info->page != (char *) NULL)
-      continue;
-    count=0;
-    if (cropbox != MagickFalse)
-      {
-        if (LocaleNCompare(CropBox,command,strlen(CropBox)) == 0)
-          {
-            /*
-              Note region defined by crop box.
-            */
-            count=(ssize_t) sscanf(command,"CropBox [%lf %lf %lf %lf",
-              &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-            if (count != 4)
-              count=(ssize_t) sscanf(command,"CropBox[%lf %lf %lf %lf",
-                &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-          }
-      }
-    else
-      if (trimbox != MagickFalse)
-        {
-          if (LocaleNCompare(TrimBox,command,strlen(TrimBox)) == 0)
-            {
-              /*
-                Note region defined by trim box.
-              */
-              count=(ssize_t) sscanf(command,"TrimBox [%lf %lf %lf %lf",
-                &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-              if (count != 4)
-                count=(ssize_t) sscanf(command,"TrimBox[%lf %lf %lf %lf",
-                  &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-            }
-        }
-      else
-        if (LocaleNCompare(MediaBox,command,strlen(MediaBox)) == 0)
-          {
-            /*
-              Note region defined by media box.
-            */
-            count=(ssize_t) sscanf(command,"MediaBox [%lf %lf %lf %lf",
-              &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-            if (count != 4)
-              count=(ssize_t) sscanf(command,"MediaBox[%lf %lf %lf %lf",
-                &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-          }
-    if (count != 4)
-      continue;
-    if ((fabs(bounds.x2-bounds.x1) <= fabs(hires_bounds.x2-hires_bounds.x1)) ||
-        (fabs(bounds.y2-bounds.y1) <= fabs(hires_bounds.y2-hires_bounds.y1)))
-      continue;
-    hires_bounds=bounds;
-  }
-  if ((fabs(hires_bounds.x2-hires_bounds.x1) >= MagickEpsilon) &&
-      (fabs(hires_bounds.y2-hires_bounds.y1) >= MagickEpsilon))
+  ReadPDFInfo(image_info,image,&pdf_info,exception);
+  (void) CloseBlob(image);
+  /*
+    Set PDF render geometry.
+  */
+  if ((fabs(pdf_info.bounds.x2-pdf_info.bounds.x1) >= MagickEpsilon) &&
+      (fabs(pdf_info.bounds.y2-pdf_info.bounds.y1) >= MagickEpsilon))
     {
-      /*
-        Set PDF render geometry.
-      */
       (void) FormatLocaleString(geometry,MagickPathExtent,"%gx%g%+.15g%+.15g",
-        hires_bounds.x2-bounds.x1,hires_bounds.y2-hires_bounds.y1,
-        hires_bounds.x1,hires_bounds.y1);
+        pdf_info.bounds.x2-pdf_info.bounds.x1,pdf_info.bounds.y2-
+        pdf_info.bounds.y1,pdf_info.bounds.x1,pdf_info.bounds.y1);
       (void) SetImageProperty(image,"pdf:HiResBoundingBox",geometry,exception);
-      page.width=(size_t) ceil((double) ((hires_bounds.x2-hires_bounds.x1)*
-        image->resolution.x/delta.x)-0.5);
-      page.height=(size_t) ceil((double) ((hires_bounds.y2-hires_bounds.y1)*
-        image->resolution.y/delta.y)-0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.x2-
+        pdf_info.bounds.x1)*image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.y2-
+        pdf_info.bounds.y1)*image->resolution.y/delta.y)-0.5));
     }
   fitPage=MagickFalse;
   option=GetImageOption(image_info,"pdf:fit-page");
@@ -656,16 +511,17 @@
         {
           (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
             "InvalidGeometry","`%s'",option);
+          CleanupPDFInfo(&pdf_info);
           image=DestroyImage(image);
           return((Image *) NULL);
         }
-      page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x)
-        -0.5);
-      page.height=(size_t) ceil((double) (page.height*image->resolution.y/
-        delta.y) -0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+        image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+        image->resolution.y/delta.y)-0.5));
       fitPage=MagickTrue;
     }
-  if ((fabs(angle) == 90.0) || (fabs(angle) == 270.0))
+  if ((fabs(pdf_info.angle) == 90.0) || (fabs(pdf_info.angle) == 270.0))
     {
       size_t
         swap;
@@ -675,7 +531,8 @@
       page.height=swap;
     }
   if (IssRGBCompatibleColorspace(image_info->colorspace) != MagickFalse)
-    cmyk=MagickFalse;
+    pdf_info.cmyk=MagickFalse;
+  stop_on_error=IsStringTrue(GetImageOption(image_info,"pdf:stop-on-error"));
   /*
     Create Ghostscript control file.
   */
@@ -684,10 +541,18 @@
     {
       ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
         image_info->filename);
+      CleanupPDFInfo(&pdf_info);
       image=DestroyImage(image);
       return((Image *) NULL);
     }
-  count=write(file," ",1);
+  if (write(file," ",1) != 1)
+    {
+      file=close(file)-1;
+      (void) RelinquishUniqueFileResource(postscript_filename);
+      CleanupPDFInfo(&pdf_info);
+      image=DestroyImage(image);
+      return((Image *) NULL);
+    }
   file=close(file)-1;
   /*
     Render Postscript with the Ghostscript delegate.
@@ -695,13 +560,14 @@
   if (image_info->monochrome != MagickFalse)
     delegate_info=GetDelegateInfo("ps:mono",(char *) NULL,exception);
   else
-     if (cmyk != MagickFalse)
+     if (pdf_info.cmyk != MagickFalse)
        delegate_info=GetDelegateInfo("ps:cmyk",(char *) NULL,exception);
      else
        delegate_info=GetDelegateInfo("ps:alpha",(char *) NULL,exception);
   if (delegate_info == (const DelegateInfo *) NULL)
     {
       (void) RelinquishUniqueFileResource(postscript_filename);
+      CleanupPDFInfo(&pdf_info);
       image=DestroyImage(image);
       return((Image *) NULL);
     }
@@ -714,14 +580,14 @@
       page.width,(double) page.height);
   if (fitPage != MagickFalse)
     (void) ConcatenateMagickString(options,"-dPSFitPage ",MagickPathExtent);
-  if (cmyk != MagickFalse)
+  if (pdf_info.cmyk != MagickFalse)
     (void) ConcatenateMagickString(options,"-dUseCIEColor ",MagickPathExtent);
-  if (cropbox != MagickFalse)
+  if (pdf_info.cropbox != MagickFalse)
     (void) ConcatenateMagickString(options,"-dUseCropBox ",MagickPathExtent);
   if (stop_on_error != MagickFalse)
     (void) ConcatenateMagickString(options,"-dPDFSTOPONERROR ",
       MagickPathExtent);
-  if (trimbox != MagickFalse)
+  if (pdf_info.trimbox != MagickFalse)
     (void) ConcatenateMagickString(options,"-dUseTrimBox ",MagickPathExtent);
   option=GetImageOption(image_info,"authenticate");
   if (option != (char *) NULL)
@@ -760,7 +626,8 @@
   options=DestroyString(options);
   density=DestroyString(density);
   *message='\0';
-  status=InvokePDFDelegate(read_info->verbose,command,message,exception);
+  status=InvokeGhostscriptDelegate(read_info->verbose,command,message,
+    exception);
   (void) RelinquishUniqueFileResource(postscript_filename);
   (void) RelinquishUniqueFileResource(input_filename);
   pdf_image=(Image *) NULL;
@@ -769,7 +636,7 @@
     {
       (void) InterpretImageFilename(image_info,image,filename,(int) i,
         read_info->filename,exception);
-      if (IsPDFRendered(read_info->filename) == MagickFalse)
+      if (IsGhostscriptRendered(read_info->filename) == MagickFalse)
         break;
       (void) RelinquishUniqueFileResource(read_info->filename);
     }
@@ -778,7 +645,7 @@
     {
       (void) InterpretImageFilename(image_info,image,filename,(int) i,
         read_info->filename,exception);
-      if (IsPDFRendered(read_info->filename) == MagickFalse)
+      if (IsGhostscriptRendered(read_info->filename) == MagickFalse)
         break;
       read_info->blob=NULL;
       read_info->length=0;
@@ -794,6 +661,7 @@
       if (*message != '\0')
         (void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
           "PDFDelegateFailed","`%s'",message);
+      CleanupPDFInfo(&pdf_info);
       image=DestroyImage(image);
       return((Image *) NULL);
     }
@@ -809,49 +677,17 @@
           pdf_image=cmyk_image;
         }
     }
-  (void) SeekBlob(image,0,SEEK_SET);
-  for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
-  {
-    /*
-      Note document structuring comments.
-    */
-    *p++=(char) c;
-    if ((strchr("\n\r%",c) == (char *) NULL) &&
-        ((size_t) (p-command) < (MagickPathExtent-1)))
-      continue;
-    *p='\0';
-    p=command;
-    if (LocaleNCompare(BeginXMPPacket,command,strlen(BeginXMPPacket)) == 0)
-      {
-        StringInfo
-          *profile;
+  if (pdf_info.profile != (StringInfo *) NULL)
+    {
+      char
+        *profile;
 
-        /*
-          Read XMP profile.
-        */
-        p=command;
-        profile=StringToStringInfo(command);
-        for (i=(ssize_t) GetStringInfoLength(profile)-1; c != EOF; i++)
-        {
-          SetStringInfoLength(profile,(size_t) (i+1));
-          c=ReadBlobByte(image);
-          GetStringInfoDatum(profile)[i]=(unsigned char) c;
-          *p++=(char) c;
-          if ((strchr("\n\r%",c) == (char *) NULL) &&
-              ((size_t) (p-command) < (MagickPathExtent-1)))
-            continue;
-          *p='\0';
-          p=command;
-          if (LocaleNCompare(EndXMPPacket,command,strlen(EndXMPPacket)) == 0)
-            break;
-        }
-        SetStringInfoLength(profile,(size_t) i);
-        (void) SetImageProfile(image,"xmp",profile,exception);
-        profile=DestroyStringInfo(profile);
-        continue;
-      }
-  }
-  (void) CloseBlob(image);
+      (void) SetImageProfile(image,"xmp",pdf_info.profile,exception);
+      profile=(char *) GetStringInfoDatum(pdf_info.profile);
+      if (strstr(profile,"Adobe Illustrator") != (char *) NULL)
+        (void) CopyMagickString(image->magick,"AI",MagickPathExtent);
+    }
+  CleanupPDFInfo(&pdf_info);
   if (image_info->number_scenes != 0)
     {
       Image
@@ -949,6 +785,14 @@
   entry->flags^=CoderBlobSupportFlag;
   entry->mime_type=ConstantString("application/pdf");
   (void) RegisterMagickInfo(entry);
+  entry=AcquireMagickInfo("PDF","POCKETMOD","Pocketmod Personal Organizer");
+  entry->decoder=(DecodeImageHandler *) ReadPDFImage;
+  entry->encoder=(EncodeImageHandler *) WritePOCKETMODImage;
+  entry->format_type=ImplicitFormatType;
+  entry->flags|=CoderDecoderSeekableStreamFlag;
+  entry->flags^=CoderBlobSupportFlag;
+  entry->mime_type=ConstantString("application/pdf");
+  (void) RegisterMagickInfo(entry);
   return(MagickImageCoderSignature);
 }
 
@@ -1182,25 +1026,115 @@
   unsigned char
     *group4;
 
+  group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
+  if (group4_image == (Image *) NULL)
+    return(MagickFalse);
   status=MagickTrue;
   write_info=CloneImageInfo(image_info);
   (void) CopyMagickString(write_info->filename,"GROUP4:",MagickPathExtent);
   (void) CopyMagickString(write_info->magick,"GROUP4",MagickPathExtent);
-  group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
-  if (group4_image == (Image *) NULL)
-    return(MagickFalse);
   group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
     exception);
   group4_image=DestroyImage(group4_image);
+  write_info=DestroyImageInfo(write_info);
   if (group4 == (unsigned char *) NULL)
     return(MagickFalse);
-  write_info=DestroyImageInfo(write_info);
   if (WriteBlob(image,length,group4) != (ssize_t) length)
     status=MagickFalse;
   group4=(unsigned char *) RelinquishMagickMemory(group4);
   return(status);
 }
 
+static MagickBooleanType WritePOCKETMODImage(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+{
+#define PocketPageOrder  "1,2,3,4,0,7,6,5"
+
+  const Image
+    *next;
+
+  Image
+    *pages,
+    *pocket_mod;
+
+  MagickBooleanType
+    status;
+
+  register ssize_t
+    i;
+
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  pocket_mod=NewImageList();
+  pages=NewImageList();
+  i=0;
+  for (next=image; next != (Image *) NULL; next=GetNextImageInList(next))
+  {
+    Image
+      *page;
+
+    if ((i == 0) || (i == 5) || (i == 6) || (i == 7))
+      page=RotateImage(next,180.0,exception);
+    else
+      page=CloneImage(next,0,0,MagickTrue,exception);
+    if (page == (Image *) NULL)
+      break;
+    (void) SetImageAlphaChannel(page,RemoveAlphaChannel,exception);
+    page->scene=i++;
+    AppendImageToList(&pages,page);
+    if ((i == 8) || (GetNextImageInList(next) == (Image *) NULL))
+      {
+        Image
+          *images,
+          *page_layout;
+
+        MontageInfo
+          *montage_info;
+
+        /*
+          Create PocketMod page.
+        */
+        for (i=(ssize_t) GetImageListLength(pages); i < 8; i++)
+        {
+          page=CloneImage(pages,0,0,MagickTrue,exception);
+          (void) QueryColorCompliance("#FFF",AllCompliance,
+            &page->background_color,exception);
+          SetImageBackgroundColor(page,exception);
+          page->scene=i;
+          AppendImageToList(&pages,page);
+        }
+        images=CloneImages(pages,PocketPageOrder,exception);
+        pages=DestroyImageList(pages);
+        if (images == (Image *) NULL)
+          break;
+        montage_info=CloneMontageInfo(image_info,(MontageInfo *) NULL);
+        (void) CloneString(&montage_info->geometry,"877x1240+0+0");
+        (void) CloneString(&montage_info->tile,"4x2");
+        (void) QueryColorCompliance("#000",AllCompliance,
+          &montage_info->border_color,exception);
+        montage_info->border_width=2;
+        page_layout=MontageImages(images,montage_info,exception);
+        montage_info=DestroyMontageInfo(montage_info);
+        images=DestroyImageList(images);
+        if (page_layout == (Image *) NULL)
+          break;
+        AppendImageToList(&pocket_mod,page_layout);
+        i=0;
+      }
+  }
+  if (pocket_mod == (Image *) NULL)
+    return(MagickFalse);
+  status=WritePDFImage(image_info,GetFirstImageInList(pocket_mod),exception);
+  pocket_mod=DestroyImageList(pocket_mod);
+  return(status);
+}
+
 static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image,
   ExceptionInfo *exception)
 {
@@ -1338,7 +1272,7 @@
     y;
 
   struct tm
-    local_time;
+    utc_time;
 
   time_t
     seconds;
@@ -1430,7 +1364,6 @@
         create_date[MagickPathExtent],
         modify_date[MagickPathExtent],
         timestamp[MagickPathExtent],
-        *url,
         xmp_profile[MagickPathExtent];
 
       /*
@@ -1450,7 +1383,7 @@
       value=GetImageProperty(image,"date:create",exception);
       if (value != (const char *) NULL)
         (void) CopyMagickString(create_date,value,MagickPathExtent);
-      (void) FormatMagickTime(time((time_t *) NULL),MagickPathExtent,timestamp);
+      (void) FormatMagickTime(GetMagickTime(),MagickPathExtent,timestamp);
       url=(char *) MagickAuthoritativeURL;
       escape=EscapeParenthesis(basename);
       i=FormatLocaleString(xmp_profile,MagickPathExtent,XMPProfile,
@@ -2158,7 +2091,7 @@
                   break;
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
-                  *q++=(unsigned char) GetPixelIndex(image,p);
+                  *q++=(unsigned char) ((ssize_t) GetPixelIndex(image,p));
                   p+=GetPixelChannels(image);
                 }
                 if (image->previous == (Image *) NULL)
@@ -2200,7 +2133,8 @@
                   break;
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
-                  Ascii85Encode(image,(unsigned char) GetPixelIndex(image,p));
+                  Ascii85Encode(image,(unsigned char) ((ssize_t)
+                    GetPixelIndex(image,p)));
                   p+=GetPixelChannels(image);
                 }
                 if (image->previous == (Image *) NULL)
@@ -2278,7 +2212,7 @@
           *p;
 
         /*
-          Write ICC profile. 
+          Write ICC profile.
         */
         (void) FormatLocaleString(buffer,MagickPathExtent,
           "[/ICCBased %.20g 0 R]\n",(double) object+1);
@@ -2675,7 +2609,7 @@
                   break;
                 for (x=0; x < (ssize_t) tile_image->columns; x++)
                 {
-                  *q++=(unsigned char) GetPixelIndex(tile_image,p);
+                  *q++=(unsigned char) ((ssize_t) GetPixelIndex(tile_image,p));
                   p+=GetPixelChannels(tile_image);
                 }
               }
@@ -2712,7 +2646,7 @@
                 for (x=0; x < (ssize_t) tile_image->columns; x++)
                 {
                   Ascii85Encode(image,(unsigned char)
-                    GetPixelIndex(tile_image,p));
+                    ((ssize_t) GetPixelIndex(tile_image,p)));
                   p+=GetPixelChannels(image);
                 }
               }
@@ -2963,8 +2897,12 @@
   (void) WriteBlobString(image,buffer);
   (void) WriteBlobString(image,"<<\n");
   if (LocaleCompare(image_info->magick,"PDFA") == 0)
-    (void) FormatLocaleString(buffer,MagickPathExtent,"/Title (%s)\n",
-      EscapeParenthesis(basename));
+    {
+      escape=EscapeParenthesis(basename);
+      (void) FormatLocaleString(buffer,MagickPathExtent,"/Title (%s)\n",
+        escape);
+      escape=DestroyString(escape);
+    }
   else
     {
       wchar_t
@@ -2973,24 +2911,44 @@
       utf16=ConvertUTF8ToUTF16((unsigned char *) basename,&length);
       if (utf16 != (wchar_t *) NULL)
         {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"/Title (\xfe\xff");
+          unsigned char
+            hex_digits[16];
+
+          hex_digits[0]='0';
+          hex_digits[1]='1';
+          hex_digits[2]='2';
+          hex_digits[3]='3';
+          hex_digits[4]='4';
+          hex_digits[5]='5';
+          hex_digits[6]='6';
+          hex_digits[7]='7';
+          hex_digits[8]='8';
+          hex_digits[9]='9';
+          hex_digits[10]='A';
+          hex_digits[11]='B';
+          hex_digits[12]='C';
+          hex_digits[13]='D';
+          hex_digits[14]='E';
+          hex_digits[15]='F';
+          (void) FormatLocaleString(buffer,MagickPathExtent,"/Title <FEFF");
           (void) WriteBlobString(image,buffer);
           for (i=0; i < (ssize_t) length; i++)
-            (void) WriteBlobMSBShort(image,(unsigned short) utf16[i]);
-          (void) FormatLocaleString(buffer,MagickPathExtent,")\n");
+          {
+            (void) WriteBlobByte(image,'0');
+            (void) WriteBlobByte(image,'0');
+            (void) WriteBlobByte(image,hex_digits[(utf16[i] >> 4) & 0x0f]);
+            (void) WriteBlobByte(image,hex_digits[utf16[i] & 0x0f]);
+          }
+          (void) FormatLocaleString(buffer,MagickPathExtent,">\n");
           utf16=(wchar_t *) RelinquishMagickMemory(utf16);
         }
     }
   (void) WriteBlobString(image,buffer);
-  seconds=time((time_t *) NULL);
-#if defined(MAGICKCORE_HAVE_LOCALTIME_R)
-  (void) localtime_r(&seconds,&local_time);
-#else
-  (void) memcpy(&local_time,localtime(&seconds),sizeof(local_time));
-#endif
+  seconds=GetMagickTime();
+  GetMagickUTCtime(&seconds,&utc_time);
   (void) FormatLocaleString(date,MagickPathExtent,"D:%04d%02d%02d%02d%02d%02d",
-    local_time.tm_year+1900,local_time.tm_mon+1,local_time.tm_mday,
-    local_time.tm_hour,local_time.tm_min,local_time.tm_sec);
+    utc_time.tm_year+1900,utc_time.tm_mon+1,utc_time.tm_mday,
+    utc_time.tm_hour,utc_time.tm_min,utc_time.tm_sec);
   (void) FormatLocaleString(buffer,MagickPathExtent,"/CreationDate (%s)\n",
     date);
   (void) WriteBlobString(image,buffer);
diff --git a/coders/pdf.h b/coders/pdf.h
index 7ddc245..2df5d9c 100644
--- a/coders/pdf.h
+++ b/coders/pdf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -22,7 +22,8 @@
 #define MagickPDFAliases \
   MagickCoderAlias("PDF", "AI") \
   MagickCoderAlias("PDF", "EPDF") \
-  MagickCoderAlias("PDF", "PDFA")
+  MagickCoderAlias("PDF", "PDFA") \
+  MagickCoderAlias("PDF", "POCKETMOD")
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
diff --git a/coders/pes.c b/coders/pes.c
index af5dc1c..7b58636 100644
--- a/coders/pes.c
+++ b/coders/pes.c
@@ -17,7 +17,7 @@
 %                                 July 2009                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/pes.h b/coders/pes.h
index cbd47d7..6f4adbb 100644
--- a/coders/pes.h
+++ b/coders/pes.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pgx.c b/coders/pgx.c
index 1dead57..e820c77 100644
--- a/coders/pgx.c
+++ b/coders/pgx.c
@@ -17,7 +17,7 @@
 %                                 July 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -137,9 +137,6 @@
     sans[MagickPathExtent],
     sign[MagickPathExtent];
 
-  const unsigned char
-    *pixels;
-
   Image
     *image;
 
@@ -161,6 +158,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -207,20 +207,23 @@
   if (quantum_info == (QuantumInfo *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   length=GetQuantumExtent(image,quantum_info,GrayQuantum);
+  pixels=GetQuantumPixels(quantum_info);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
+    const void
+      *stream;
+
     register Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
-    pixels=(const unsigned char *) ReadBlobStream(image,length,
-      GetQuantumPixels(quantum_info),&count);
+    stream=ReadBlobStream(image,length,pixels,&count);
     if (count != (ssize_t) length)
       break;
     (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-      GrayQuantum,pixels,exception);
+      GrayQuantum,(unsigned char *) stream,exception);
     if (SyncAuthenticPixels(image,exception) == MagickFalse)
       break;
     if (SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,image->rows) == MagickFalse)
diff --git a/coders/pgx.h b/coders/pgx.h
index a16f7f2..cd8f769 100644
--- a/coders/pgx.h
+++ b/coders/pgx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pict.c b/coders/pict.c
index 0ce8ad8..8bcbfe9 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -325,8 +325,9 @@
 %
 */
 
-static const unsigned char *ExpandBuffer(const unsigned char *magick_restrict pixels,
-  const unsigned int bits_per_pixel,MagickSizeType *bytes_per_line)
+static const unsigned char *UnpackScanline(
+  const unsigned char *magick_restrict pixels,const unsigned int bits_per_pixel,
+  unsigned char *scanline,MagickSizeType *bytes_per_line)
 {
   register const unsigned char
     *p;
@@ -337,9 +338,6 @@
   register unsigned char
     *q;
 
-  static unsigned char
-    scanline[8*256];
-
   p=pixels;
   q=scanline;
   switch (bits_per_pixel)
@@ -427,7 +425,8 @@
 
   unsigned char
     *pixels,
-    *scanline;
+    *scanline,
+    unpack_buffer[8*256];
 
   /*
     Determine pixel buffer size.
@@ -482,7 +481,7 @@
             status=MagickFalse;
             break;
           }
-        p=ExpandBuffer(scanline,bits_per_pixel,&number_pixels);
+        p=UnpackScanline(scanline,bits_per_pixel,unpack_buffer,&number_pixels);
         if ((q+number_pixels) > (pixels+(*extent)))
           {
             status=MagickFalse;
@@ -521,7 +520,8 @@
         {
           length=(size_t) ((scanline[j] & 0xff)+1);
           number_pixels=length*bytes_per_pixel;
-          p=ExpandBuffer(scanline+j+1,bits_per_pixel,&number_pixels);
+          p=UnpackScanline(scanline+j+1,bits_per_pixel,unpack_buffer,
+            &number_pixels);
           if ((q-pixels+number_pixels) <= *extent)
             (void) memcpy(q,p,(size_t) number_pixels);
           q+=number_pixels;
@@ -531,7 +531,8 @@
         {
           length=(size_t) (((scanline[j] ^ 0xff) & 0xff)+2);
           number_pixels=bytes_per_pixel;
-          p=ExpandBuffer(scanline+j+1,bits_per_pixel,&number_pixels);
+          p=UnpackScanline(scanline+j+1,bits_per_pixel,unpack_buffer,
+            &number_pixels);
           for (i=0; i < (ssize_t) length; i++)
           {
             if ((q-pixels+number_pixels) <= *extent)
@@ -1763,10 +1764,19 @@
   pixmap.table=0;
   pixmap.reserved=0;
   transfer_mode=0;
-  x_resolution=image->resolution.x != 0.0 ? image->resolution.x :
-    DefaultResolution;
-  y_resolution=image->resolution.y != 0.0 ? image->resolution.y :
-    DefaultResolution;
+  x_resolution=0.0;
+  y_resolution=0.0;
+  if ((image->resolution.x > MagickEpsilon) && 
+      (image->resolution.y > MagickEpsilon))
+    {
+      x_resolution=image->resolution.x;
+      y_resolution=image->resolution.y;
+      if (image->units == PixelsPerCentimeterResolution)
+        {
+          x_resolution*=2.54;
+          y_resolution*=2.54;
+        }
+    }
   storage_class=image->storage_class;
   if (image_info->compression == JPEGCompression)
     storage_class=DirectClass;
@@ -1785,6 +1795,9 @@
   bytes_per_line=image->columns;
   if (storage_class == DirectClass)
     bytes_per_line*=image->alpha_trait != UndefinedPixelTrait ? 4 : 3;
+  if ((bytes_per_line == 0) || (bytes_per_line > 0x7FFFU) ||
+      ((row_bytes+MaxCount*2U) >= 0x7FFFU))
+    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   buffer=(unsigned char *) AcquireQuantumMemory(PictInfoSize,sizeof(*buffer));
   packed_scanline=(unsigned char *) AcquireQuantumMemory((size_t)
    (row_bytes+2*MaxCount),sizeof(*packed_scanline));
diff --git a/coders/pict.h b/coders/pict.h
index 973d701..3644272 100644
--- a/coders/pict.h
+++ b/coders/pict.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pix.c b/coders/pix.c
index c266ba6..bb42bd7 100644
--- a/coders/pix.c
+++ b/coders/pix.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/pix.h b/coders/pix.h
index ee58db4..80db7ba 100644
--- a/coders/pix.h
+++ b/coders/pix.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/plasma.c b/coders/plasma.c
index 4614078..08a4d94 100644
--- a/coders/plasma.c
+++ b/coders/plasma.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -47,12 +47,12 @@
 #include "MagickCore/constitute.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
-#include "MagickCore/fx.h"
 #include "MagickCore/image.h"
 #include "MagickCore/image-private.h"
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/pixel-accessor.h"
@@ -62,7 +62,7 @@
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
-#include "MagickCore/module.h"
+#include "MagickCore/visual-effects.h"
 
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -91,23 +91,24 @@
 %
 */
 
-static inline void PlasmaPixel(Image *image,RandomInfo *random_info,double x,
-  double y,ExceptionInfo *exception)
+static inline MagickBooleanType PlasmaPixel(Image *image,
+  RandomInfo *magick_restrict random_info,const double x,const double y,
+  ExceptionInfo *exception)
 {
   register Quantum
     *q;
 
-  q=GetAuthenticPixels(image,(ssize_t) ceil(x-0.5),(ssize_t) ceil(y-0.5),1,1,
+  q=GetAuthenticPixels(image,(ssize_t) (x+0.5),(ssize_t) (y+0.5),1,1,
     exception);
   if (q == (Quantum *) NULL)
-    return;
-  SetPixelRed(image,ScaleShortToQuantum((unsigned short) (65535.0*
-    GetPseudoRandomValue(random_info)+0.5)),q);
-  SetPixelGreen(image,ScaleShortToQuantum((unsigned short) (65535.0*
-    GetPseudoRandomValue(random_info)+0.5)),q);
-  SetPixelBlue(image,ScaleShortToQuantum((unsigned short) (65535.0*
-    GetPseudoRandomValue(random_info)+0.5)),q);
-  (void) SyncAuthenticPixels(image,exception);
+    return(MagickFalse);
+  SetPixelRed(image,(Quantum) (QuantumRange*
+    GetPseudoRandomValue(random_info)+0.5),q);
+  SetPixelGreen(image,(Quantum) (QuantumRange*
+    GetPseudoRandomValue(random_info)+0.5),q);
+  SetPixelBlue(image,(Quantum) (QuantumRange*
+    GetPseudoRandomValue(random_info)+0.5),q);
+  return(SyncAuthenticPixels(image,exception));
 }
 
 static Image *ReadPlasmaImage(const ImageInfo *image_info,
@@ -180,21 +181,27 @@
       */
       (void) SetImageColorspace(image,sRGBColorspace,exception);
       random_info=AcquireRandomInfo();
-      PlasmaPixel(image,random_info,segment_info.x1,segment_info.y1,exception);
-      PlasmaPixel(image,random_info,segment_info.x1,(segment_info.y1+
+      status=PlasmaPixel(image,random_info,segment_info.x1,segment_info.y1,
+        exception);
+      status&=PlasmaPixel(image,random_info,segment_info.x1,(segment_info.y1+
         segment_info.y2)/2,exception);
-      PlasmaPixel(image,random_info,segment_info.x1,segment_info.y2,exception);
-      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
+      status&=PlasmaPixel(image,random_info,segment_info.x1,segment_info.y2,
+        exception);
+      status&=PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
         segment_info.y1,exception);
-      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
+      status&=PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
         (segment_info.y1+segment_info.y2)/2,exception);
-      PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
+      status&=PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
         segment_info.y2,exception);
-      PlasmaPixel(image,random_info,segment_info.x2,segment_info.y1,exception);
-      PlasmaPixel(image,random_info,segment_info.x2,(segment_info.y1+
+      status&=PlasmaPixel(image,random_info,segment_info.x2,segment_info.y1,
+        exception);
+      status&=PlasmaPixel(image,random_info,segment_info.x2,(segment_info.y1+
         segment_info.y2)/2,exception);
-      PlasmaPixel(image,random_info,segment_info.x2,segment_info.y2,exception);
+      status&=PlasmaPixel(image,random_info,segment_info.x2,segment_info.y2,
+        exception);
       random_info=DestroyRandomInfo(random_info);
+      if (status == MagickFalse)
+        return(image);  
     }
   i=(size_t) MagickMax(image->columns,image->rows)/2;
   for (max_depth=0; i != 0; max_depth++)
diff --git a/coders/plasma.h b/coders/plasma.h
index 5b476d1..00f2247 100644
--- a/coders/plasma.h
+++ b/coders/plasma.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/png.c b/coders/png.c
index 76e3612..3465616 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -18,7 +18,7 @@
 %                               November 1997                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -87,6 +87,7 @@
 #include "MagickCore/statistic.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
 #if defined(MAGICKCORE_PNG_DELEGATE)
@@ -954,7 +955,7 @@
 }
 #endif /* MAGICKCORE_QUANTUM_DEPTH >= 16 */
 
-static const char* PngColorTypeToString(const unsigned int color_type)
+static const char *PngColorTypeToString(const unsigned int color_type)
 {
   const char
     *result = "Unknown";
@@ -1789,9 +1790,11 @@
 
   size_t
     extent,
-    length,
     nibbles;
 
+  ssize_t
+    length;
+
   StringInfo
     *profile;
 
@@ -1805,6 +1808,11 @@
 
   sp=text[ii].text+1;
   extent=text[ii].text_length;
+  if ((sp+extent) < sp)
+    {
+      png_warning(ping,"invalid profile length");
+      return(MagickFalse);
+    }
   /* look for newline */
   while ((*sp != '\n') && extent--)
     sp++;
@@ -2144,13 +2152,6 @@
   Image
     *image;
 
-  char
-    im_vers[32],
-    libpng_runv[32],
-    libpng_vers[32],
-    zlib_runv[32],
-    zlib_vers[32];
-
   int
     intent, /* "PNG Rendering intent", which is ICC intent + 1 */
     num_raw_profiles,
@@ -2220,7 +2221,6 @@
     *volatile quantum_scanline;
 
   ssize_t
-    ping_rowbytes,
     y;
 
   register unsigned char
@@ -2235,6 +2235,7 @@
 
   size_t
     length,
+    ping_rowbytes,
     row_offset;
 
   ssize_t
@@ -2263,50 +2264,52 @@
   };
 #endif
 
-  /* Define these outside of the following "if logging()" block so they will
-   * show in debuggers.
-   */
-  *im_vers='\0';
-  (void) ConcatenateMagickString(im_vers,
-         MagickLibVersionText,32);
-  (void) ConcatenateMagickString(im_vers,
-         MagickLibAddendum,32);
-
-  *libpng_vers='\0';
-  (void) ConcatenateMagickString(libpng_vers,
-         PNG_LIBPNG_VER_STRING,32);
-  *libpng_runv='\0';
-  (void) ConcatenateMagickString(libpng_runv,
-         png_get_libpng_ver(NULL),32);
-
-  *zlib_vers='\0';
-  (void) ConcatenateMagickString(zlib_vers,
-         ZLIB_VERSION,32);
-  *zlib_runv='\0';
-  (void) ConcatenateMagickString(zlib_runv,
-         zlib_version,32);
-
-  logging=LogMagickEvent(CoderEvent,GetMagickModule(),
-       "  Enter ReadOnePNGImage()\n"
-       "    IM version     = %s\n"
-       "    Libpng version = %s",
-       im_vers, libpng_vers);
-
+  logging=IsEventLogging();
   if (logging != MagickFalse)
-  {
-    if (LocaleCompare(libpng_vers,libpng_runv) != 0)
     {
-   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-      "      running with   %s", libpng_runv);
+      char
+        im_vers[32],
+        libpng_runv[32],
+        libpng_vers[32],
+        zlib_runv[32],
+        zlib_vers[32];
+
+      *im_vers='\0';
+      (void) ConcatenateMagickString(im_vers,
+             MagickLibVersionText,32);
+      (void) ConcatenateMagickString(im_vers,
+             MagickLibAddendum,32);
+
+      *libpng_vers='\0';
+      (void) ConcatenateMagickString(libpng_vers,
+             PNG_LIBPNG_VER_STRING,32);
+      *libpng_runv='\0';
+      (void) ConcatenateMagickString(libpng_runv,
+             png_get_libpng_ver(NULL),32);
+
+      *zlib_vers='\0';
+      (void) ConcatenateMagickString(zlib_vers,
+             ZLIB_VERSION,32);
+      *zlib_runv='\0';
+      (void) ConcatenateMagickString(zlib_runv,
+             zlib_version,32);
+
+      LogMagickEvent(CoderEvent,GetMagickModule(),
+         "  Enter ReadOnePNGImage()\n"
+         "    IM version     = %s\n"
+         "    Libpng version = %s",
+         im_vers, libpng_vers);
+
+      if (LocaleCompare(libpng_vers,libpng_runv) != 0)
+        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+          "      running with   %s", libpng_runv);
+      if (LocaleCompare(libpng_vers,zlib_vers) != 0)
+        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+          "    Zlib version   = %s", zlib_vers);
+      if (LocaleCompare(zlib_vers,zlib_runv) != 0)
+        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+          "      running with   %s", zlib_runv);
     }
-    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-        "    Zlib version   = %s", zlib_vers);
-    if (LocaleCompare(zlib_vers,zlib_runv) != 0)
-    {
-    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-        "      running with   %s", zlib_runv);
-    }
-  }
 
 #if (PNG_LIBPNG_VER < 10200)
   if (image_info->verbose)
@@ -2845,7 +2848,7 @@
 
      if (png_get_gAMA(ping,ping_info,&file_gamma))
        {
-         image->gamma=(float) file_gamma;
+         image->gamma=file_gamma;
          if (logging != MagickFalse)
            (void) LogMagickEvent(CoderEvent,GetMagickModule(),
              "    Reading PNG gAMA chunk: gamma: %f",file_gamma);
@@ -3213,7 +3216,6 @@
           /* Set image->rendering_intent to Undefined,
            * image->colorspace to GRAY, and reset image->chromaticity.
            */
-          image->intensity = Rec709LuminancePixelIntensityMethod;
           SetImageColorspace(image,LinearGRAYColorspace,exception);
         }
       else
@@ -3790,7 +3792,8 @@
     {
       png_destroy_read_struct(&ping,&ping_info,&end_info);
       pixel_info=RelinquishVirtualMemory(pixel_info);
-      image->colors=2;
+      if (AcquireImageColormap(image,2,exception) == MagickFalse)
+        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
       (void) SetImageBackgroundColor(image,exception);
 #ifdef IMPNG_SETJMP_NOT_THREAD_SAFE
       UnlockSemaphoreInfo(ping_semaphore);
@@ -4334,7 +4337,7 @@
     }
 
   if ((IssRGBColorspace(image->colorspace) != MagickFalse) &&
-      ((image->gamma < .45) || (image->gamma > .46)) &&
+      (image->gamma > .75) &&
            !(image->chromaticity.red_primary.x>0.6399f &&
            image->chromaticity.red_primary.x<0.6401f &&
            image->chromaticity.red_primary.y>0.3299f &&
@@ -6833,7 +6836,8 @@
         MngBox
           crop_box;
 
-        if (mng_info->magn_methx || mng_info->magn_methy)
+        if (((mng_info->magn_methx > 0) && (mng_info->magn_methx <= 5)) &&
+            ((mng_info->magn_methy > 0) && (mng_info->magn_methy <= 5)))
           {
             png_uint_32
                magnified_height,
@@ -7656,7 +7660,7 @@
 
   image=GetFirstImageInList(image);
 #ifdef MNG_COALESCE_LAYERS
-  if (insert_layers)
+  if (insert_layers && image->next)
     {
       Image
         *next_image,
@@ -7671,11 +7675,9 @@
 
       scene=image->scene;
       next_image=CoalesceImages(image,exception);
-
-      if (next_image == (Image *) NULL)
-        ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-
       image=DestroyImageList(image);
+      if (next_image == (Image *) NULL)
+        return((Image *) NULL);
       image=next_image;
 
       for (next=image; next != (Image *) NULL; next=next_image)
@@ -7852,18 +7854,18 @@
     *entry;
 
   static const char
-    *PNGNote=
+    PNGNote[] =
     {
       "See http://www.libpng.org/ for details about the PNG format."
     },
 
-    *JNGNote=
+    JNGNote[] =
     {
       "See http://www.libpng.org/pub/mng/ for details about the JNG\n"
       "format."
     },
 
-    *MNGNote=
+    MNGNote[] =
     {
       "See http://www.libpng.org/pub/mng/ for details about the MNG\n"
       "format."
@@ -8178,8 +8180,11 @@
    unsigned char
      hex[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
 
-   if (LocaleNCompare((char *) profile_type+1, "ng-chunk-",9) == 0)
-      return;
+   if (length > 1)
+     {
+       if (LocaleNCompare((char *) profile_type+1, "ng-chunk-",9) == 0)
+          return;
+     }
 
    if (image_info->verbose)
      {
@@ -8365,7 +8370,7 @@
   ptime.hour = hour;
   ptime.minute = minute;
   ptime.second = second;
-
+  png_convert_from_time_t(&ptime,GetMagickTime());
   LogMagickEvent(CoderEvent,GetMagickModule(),
       "      png_set_tIME: y=%d, m=%d, d=%d, h=%d, m=%d, s=%d, ah=%d, am=%d",
       ptime.year, ptime.month, ptime.day, ptime.hour, ptime.minute,
@@ -8752,14 +8757,15 @@
 
   if (ping_preserve_colormap == MagickFalse)
     {
-      if (image->storage_class != PseudoClass && image->colormap != NULL)
+      if ((image->storage_class != PseudoClass) &&
+          (image->colormap != (PixelInfo *) NULL))
         {
           /* Free the bogus colormap; it can cause trouble later */
            if (logging != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
               "    Freeing bogus colormap");
-           (void) RelinquishMagickMemory(image->colormap);
-           image->colormap=NULL;
+           image->colormap=(PixelInfo *) RelinquishMagickMemory(
+             image->colormap);
         }
     }
 
@@ -9010,7 +9016,7 @@
          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
              "        i    (red,green,blue,alpha)");
 
-         for (i=0; i < 256; i++)
+         for (i=0; i < (ssize_t) MagickMin(image->colors,256); i++)
          {
                (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                    "        %d    (%d,%d,%d,%d)",
@@ -9164,24 +9170,27 @@
                   (int) image->background_color.green,
                   (int) image->background_color.blue);
             }
-          for (i=0; i<number_opaque; i++)
-          {
-             if (opaque[i].red == image->background_color.red &&
-                 opaque[i].green == image->background_color.green &&
-                 opaque[i].blue == image->background_color.blue)
-               break;
-          }
-          if (number_opaque < 259 && i == number_opaque)
+          if (number_opaque < 259)
             {
-               opaque[i] = image->background_color;
-               ping_background.index = i;
-               number_opaque++;
-               if (logging != MagickFalse)
-                 {
-                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                       "      background_color index is %d",(int) i);
-                 }
+              for (i=0; i<number_opaque; i++)
+              {
+                 if (opaque[i].red == image->background_color.red &&
+                     opaque[i].green == image->background_color.green &&
+                     opaque[i].blue == image->background_color.blue)
+                   break;
+              }
+              if (i == number_opaque)
+                {
+                   opaque[i] = image->background_color;
+                   ping_background.index = i;
+                   number_opaque++;
+                   if (logging != MagickFalse)
+                     {
+                       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+                           "      background_color index is %d",(int) i);
+                     }
 
+                }
             }
           else if (logging != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -11379,11 +11388,13 @@
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
         "    Allocating %.20g bytes of memory for pixels",(double) rowbytes);
     }
-  pixel_info=AcquireVirtualMemory(rowbytes,sizeof(*ping_pixels));
+  pixel_info=AcquireVirtualMemory(rowbytes,GetPixelChannels(image)*
+    sizeof(*ping_pixels));
   if (pixel_info == (MemoryInfo *) NULL)
     png_error(ping,"Allocation of memory for pixels failed");
   ping_pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
-  (void) memset(ping_pixels,0,rowbytes*sizeof(*ping_pixels));
+  (void) memset(ping_pixels,0,rowbytes*GetPixelChannels(image)*
+    sizeof(*ping_pixels));
   /*
     Initialize image scanlines.
   */
@@ -11395,14 +11406,15 @@
   (void) SetQuantumEndian(image,quantum_info,MSBEndian);
   num_passes=png_set_interlace_handling(ping);
 
-  if ((!mng_info->write_png8 && !mng_info->write_png24 &&
-       !mng_info->write_png48 && !mng_info->write_png64 &&
-       !mng_info->write_png32) &&
-       (mng_info->IsPalette ||
-       (image_info->type == BilevelType)) &&
-       image_matte == MagickFalse &&
-       ping_have_non_bw == MagickFalse)
-    {
+  if ((mng_info->write_png_colortype-1 == PNG_COLOR_TYPE_PALETTE) ||
+      ((!mng_info->write_png8 && !mng_info->write_png24 &&
+        !mng_info->write_png48 && !mng_info->write_png64 &&
+        !mng_info->write_png32) &&
+        (mng_info->IsPalette ||
+        (image_info->type == BilevelType)) &&
+        image_matte == MagickFalse &&
+        ping_have_non_bw == MagickFalse))
+     {
       /* Palette, Bilevel, or Opaque Monochrome */
       QuantumType
         quantum_type;
@@ -12515,31 +12527,35 @@
 
   for (source=0; source<8; source++)
   {
-    value = NULL;
+    value = (const char *) NULL;
 
-    if (source == 0)
-      value=GetImageOption(image_info,"png:exclude-chunks");
-
-    if (source == 1)
-      value=GetImageArtifact(image,"png:exclude-chunks");
-
-    if (source == 2)
-      value=GetImageOption(image_info,"png:exclude-chunk");
-
-    if (source == 3)
-      value=GetImageArtifact(image,"png:exclude-chunk");
-
-    if (source == 4)
-      value=GetImageOption(image_info,"png:include-chunks");
-
-    if (source == 5)
-      value=GetImageArtifact(image,"png:include-chunks");
-
-    if (source == 6)
-      value=GetImageOption(image_info,"png:include-chunk");
-
-    if (source == 7)
-      value=GetImageArtifact(image,"png:include-chunk");
+    switch(source)
+    {
+      case 0:
+        value=GetImageOption(image_info,"png:exclude-chunks");
+        break;
+      case 1:
+        value=GetImageArtifact(image,"png:exclude-chunks");
+        break;
+      case 2:
+        value=GetImageOption(image_info,"png:exclude-chunk");
+        break;
+      case 3:
+        value=GetImageArtifact(image,"png:exclude-chunk");
+        break;
+      case 4:
+        value=GetImageOption(image_info,"png:include-chunks");
+        break;
+      case 5:
+        value=GetImageArtifact(image,"png:include-chunks");
+        break;
+      case 6:
+        value=GetImageOption(image_info,"png:include-chunk");
+        break;
+      case 7:
+        value=GetImageArtifact(image,"png:include-chunk");
+        break;
+    }
 
     if (value == NULL)
        continue;
@@ -12786,6 +12802,9 @@
   logging=LogMagickEvent(CoderEvent,GetMagickModule(),
     "  Enter WriteOneJNGImage()");
 
+  if ((image->columns > 65500U) || (image->rows > 65500U))
+    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
+
   blob=(unsigned char *) NULL;
   jpeg_image=(Image *) NULL;
   jpeg_image_info=(ImageInfo *) NULL;
@@ -12924,9 +12943,16 @@
           if (logging != MagickFalse)
             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
               "  Creating blob.");
-          blob=(unsigned char *) ImageToBlob(jpeg_image_info,
-             jpeg_image,&length,
-           exception);
+          blob=(unsigned char *) ImageToBlob(jpeg_image_info,jpeg_image,
+            &length,exception);
+          if (blob == (unsigned char *) NULL)
+            {
+              if (jpeg_image != (Image *)NULL)
+                jpeg_image=DestroyImage(jpeg_image);
+              if (jpeg_image_info != (ImageInfo *)NULL)
+                jpeg_image_info=DestroyImageInfo(jpeg_image_info);
+              return(MagickFalse);
+            }
           jng_alpha_sample_depth=8;
 
           if (logging != MagickFalse)
diff --git a/coders/png.h b/coders/png.h
index a2b183c..dc21593 100644
--- a/coders/png.h
+++ b/coders/png.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pnm.c b/coders/pnm.c
index 7c1aec8..a50de93 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -160,6 +160,7 @@
   /*
     Read comment.
   */
+  (void) exception;
   p=comment_info->comment+strlen(comment_info->comment);
   for (c='#'; (c != EOF) && (c != (int) '\n') && (c != (int) '\r'); p++)
   {
@@ -241,6 +242,9 @@
   CommentInfo
     comment_info;
 
+  const void
+    *stream;
+
   double
     quantum_scale;
 
@@ -269,6 +273,9 @@
     row,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -300,7 +307,7 @@
     if ((count != 1) || (format != 'P'))
       ThrowPNMException(CorruptImageError,"ImproperImageHeader");
     max_value=1;
-    quantum_type=RGBQuantum;
+    quantum_type=UndefinedQuantum;
     quantum_scale=1.0;
     format=(char) ReadBlobByte(image);
     if (format != '7')
@@ -344,7 +351,7 @@
         */
         for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
         {
-          while (isspace((int) ((unsigned char) c)) != 0)
+          while (isspace(c) != 0)
             c=ReadBlobByte(image);
           if (c == '#')
             {
@@ -353,7 +360,7 @@
               */
               c=PNMComment(image,&comment_info,exception);
               c=ReadBlobByte(image);
-              while (isspace((int) ((unsigned char) c)) != 0)
+              while (isspace(c) != 0)
                 c=ReadBlobByte(image);
             }
           p=keyword;
@@ -366,7 +373,7 @@
           *p='\0';
           if (LocaleCompare(keyword,"endhdr") == 0)
             break;
-          while (isspace((int) ((unsigned char) c)) != 0)
+          while (isspace(c) != 0)
             c=ReadBlobByte(image);
           p=value;
           while (isalnum(c) || (c == '_'))
@@ -386,7 +393,8 @@
             image->rows=StringToUnsignedLong(value);
           if (LocaleCompare(keyword,"maxval") == 0)
             max_value=StringToUnsignedLong(value);
-          if (LocaleCompare(keyword,"TUPLTYPE") == 0)
+          if ((quantum_type == UndefinedQuantum) &&
+              (LocaleCompare(keyword,"TUPLTYPE") == 0))
             {
               if (LocaleCompare(value,"BLACKANDWHITE") == 0)
                 {
@@ -431,6 +439,8 @@
             image->columns=StringToUnsignedLong(value);
         }
       }
+    if (quantum_type == UndefinedQuantum)
+      quantum_type=RGBQuantum;
     if ((image->columns == 0) || (image->rows == 0))
       ThrowPNMException(CorruptImageError,"NegativeOrZeroImageSize");
     if ((max_value == 0) || (max_value > 4294967295UL))
@@ -448,7 +458,7 @@
         comment_info.comment=DestroyString(comment_info.comment); \
         return(DestroyImageList(image));
       }
-    (void) SetImageBackgroundColor(image,exception);
+    (void) ResetImagePixels(image,exception);
     /*
       Convert PNM pixels to runextent-encoded MIFF packets.
     */
@@ -602,11 +612,9 @@
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
         SetQuantumMinIsWhite(quantum_info,MagickTrue);
         extent=GetQuantumExtent(image,quantum_info,quantum_type);
+        pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          const unsigned char
-            *pixels;
-
           MagickBooleanType
             sync;
 
@@ -619,8 +627,7 @@
           size_t
             length;
 
-          pixels=(unsigned char *) ReadBlobStream(image,extent,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,extent,pixels,&count);
           if (count != (ssize_t) extent)
             break;
           if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -639,7 +646,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-            quantum_type,pixels,exception);
+            quantum_type,(unsigned char *) stream,exception);
           if (length != extent)
             break;
           sync=SyncAuthenticPixels(image,exception);
@@ -662,11 +669,9 @@
         quantum_info=AcquireQuantumInfo(image_info,image);
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
+        pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          const unsigned char
-            *pixels;
-
           MagickBooleanType
             sync;
 
@@ -682,8 +687,7 @@
           ssize_t
             offset;
 
-          pixels=(unsigned char *) ReadBlobStream(image,extent,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,extent,pixels,&count);
           if (count != (ssize_t) extent)
             break;
           if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -701,7 +705,7 @@
           q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
-          p=pixels;
+          p=(unsigned char *) stream;
           switch (image->depth)
           {
             case 8:
@@ -709,7 +713,7 @@
             case 32:
             {
               (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-                quantum_type,pixels,exception);
+                quantum_type,(unsigned char *) stream,exception);
               break;
             }
             default:
@@ -773,11 +777,9 @@
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
         (void) SetQuantumEndian(image,quantum_info,MSBEndian);
+        pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          const unsigned char
-            *pixels;
-
           MagickBooleanType
             sync;
 
@@ -793,8 +795,7 @@
           ssize_t
             offset;
 
-          pixels=(unsigned char *) ReadBlobStream(image,extent,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,extent,pixels,&count);
           if (count != (ssize_t) extent)
             break;
           if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -812,7 +813,7 @@
           q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
-          p=pixels;
+          p=(unsigned char *) stream;
           switch (image->depth)
           {
             case 8:
@@ -961,11 +962,9 @@
         quantum_info=AcquireQuantumInfo(image_info,image);
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
+        pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          const unsigned char
-            *pixels;
-
           MagickBooleanType
             sync;
 
@@ -981,8 +980,7 @@
           ssize_t
             offset;
 
-          pixels=(unsigned char *) ReadBlobStream(image,extent,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,extent,pixels,&count);
           if (count != (ssize_t) extent)
             break;
           if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -1000,7 +998,7 @@
           q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
-          p=pixels;
+          p=(unsigned char *) stream;
           switch (image->depth)
           {
             case 8:
@@ -1008,7 +1006,7 @@
             case 32:
             {
               (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-                quantum_type,pixels,exception);
+                quantum_type,(unsigned char *) stream,exception);
               break;
             }
             default:
@@ -1287,11 +1285,9 @@
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
         SetQuantumScale(quantum_info,(double) QuantumRange*fabs(quantum_scale));
         extent=GetQuantumExtent(image,quantum_info,quantum_type);
+        pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          const unsigned char
-            *pixels;
-
           MagickBooleanType
             sync;
 
@@ -1304,8 +1300,7 @@
           size_t
             length;
 
-          pixels=(unsigned char *) ReadBlobStream(image,extent,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,extent,pixels,&count);
           if (count != (ssize_t) extent)
             break;
           if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
@@ -1325,7 +1320,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-            quantum_type,pixels,exception);
+            quantum_type,(unsigned char *) stream,exception);
           if (length != extent)
             break;
           sync=SyncAuthenticPixels(image,exception);
@@ -1606,7 +1601,8 @@
       case 'f':
       {
         format='F';
-        if (SetImageGray(image,exception) != MagickFalse)
+        if ((image_info->type != TrueColorType) &&
+            (SetImageGray(image,exception) != MagickFalse))
           format='f';
         break;
       }
@@ -1756,13 +1752,13 @@
           {
             *q++=(unsigned char) (GetPixelLuma(image,p) >= (QuantumRange/2.0) ?
               '0' : '1');
-            *q++=' ';
-            if ((q-pixels+1) >= (ssize_t) sizeof(pixels))
+            if ((q-pixels+2) >= (ssize_t) sizeof(pixels))
               {
                 *q++='\n';
                 (void) WriteBlob(image,q-pixels,pixels);
                 q=pixels;
               }
+            *q++=' ';
             p+=GetPixelChannels(image);
           }
           *q++='\n';
@@ -1824,14 +1820,14 @@
                 count=(ssize_t) FormatLocaleString(buffer,MagickPathExtent,
                   "%u ",ScaleQuantumToLong(index));
             extent=(size_t) count;
-            (void) strncpy((char *) q,buffer,extent);
-            q+=extent;
             if ((q-pixels+extent+1) >= sizeof(pixels))
               {
                 *q++='\n';
                 (void) WriteBlob(image,q-pixels,pixels);
                 q=pixels;
               }
+            (void) strncpy((char *) q,buffer,extent);
+            q+=extent;
             p+=GetPixelChannels(image);
           }
           *q++='\n';
@@ -1899,14 +1895,14 @@
                   ScaleQuantumToLong(GetPixelGreen(image,p)),
                   ScaleQuantumToLong(GetPixelBlue(image,p)));
             extent=(size_t) count;
-            (void) strncpy((char *) q,buffer,extent);
-            q+=extent;
-            if ((q-pixels+extent+1) >= sizeof(pixels))
+            if ((q-pixels+extent+2) >= sizeof(pixels))
               {
                 *q++='\n';
                 (void) WriteBlob(image,q-pixels,pixels);
                 q=pixels;
               }
+            (void) strncpy((char *) q,buffer,extent);
+            q+=extent;
             p+=GetPixelChannels(image);
           }
           *q++='\n';
@@ -1941,7 +1937,6 @@
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
         (void) SetQuantumEndian(image,quantum_info,MSBEndian);
-        quantum_info->min_is_white=MagickTrue;
         pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
@@ -1984,7 +1979,6 @@
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
         (void) SetQuantumEndian(image,quantum_info,MSBEndian);
-        quantum_info->min_is_white=MagickTrue;
         pixels=GetQuantumPixels(quantum_info);
         extent=GetQuantumExtent(image,quantum_info,GrayQuantum);
         for (y=0; y < (ssize_t) image->rows; y++)
diff --git a/coders/pnm.h b/coders/pnm.h
index 45031c2..b89792c 100644
--- a/coders/pnm.h
+++ b/coders/pnm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ps.c b/coders/ps.c
index 4723f2b..8d0c362 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -61,6 +61,7 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/nt-base-private.h"
@@ -72,10 +73,35 @@
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
-#include "MagickCore/module.h"
+#include "MagickCore/string-private.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/transform.h"
 #include "MagickCore/utility.h"
+#include "coders/bytebuffer-private.h"
+#include "coders/ghostscript-private.h"
+
+/*
+  Typedef declaractions.
+*/
+typedef struct _PSInfo
+{
+  MagickBooleanType
+    cmyk;
+
+  SegmentInfo
+    bounds;
+
+  unsigned long
+    columns,
+    rows;
+
+  StringInfo
+    *icc_profile,
+    *photoshop_profile,
+    *xmp_profile;
+
+} PSInfo;
 
 /*
   Forward declarations.
@@ -88,206 +114,6 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   I n v o k e P o s t s r i p t D e l e g a t e                             %
-%                                                                             %
-%                                                                             %
-%                                                                             %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%  InvokePostscriptDelegate() executes the Postscript interpreter with the
-%  specified command.
-%
-%  The format of the InvokePostscriptDelegate method is:
-%
-%      MagickBooleanType InvokePostscriptDelegate(
-%        const MagickBooleanType verbose,const char *command,
-%        ExceptionInfo *exception)
-%
-%  A description of each parameter follows:
-%
-%    o verbose: A value other than zero displays the command prior to
-%      executing it.
-%
-%    o command: the address of a character string containing the command to
-%      execute.
-%
-%    o exception: return any errors or warnings in this structure.
-%
-*/
-#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
-static int MagickDLLCall PostscriptDelegateMessage(void *handle,
-  const char *message,int length)
-{
-  char
-    **messages;
-
-  ssize_t
-    offset;
-
-  offset=0;
-  messages=(char **) handle;
-  if (*messages == (char *) NULL)
-    *messages=(char *) AcquireQuantumMemory(length+1,sizeof(char *));
-  else
-    {
-      offset=strlen(*messages);
-      *messages=(char *) ResizeQuantumMemory(*messages,offset+length+1,
-        sizeof(char *));
-    }
-  if (*messages == (char *) NULL)
-    return(0);
-  (void) memcpy(*messages+offset,message,length);
-  (*messages)[length+offset] ='\0';
-  return(length);
-}
-#endif
-
-static MagickBooleanType InvokePostscriptDelegate(
-  const MagickBooleanType verbose,const char *command,char *message,
-  ExceptionInfo *exception)
-{
-  int
-    status;
-
-#if defined(MAGICKCORE_GS_DELEGATE) || defined(MAGICKCORE_WINDOWS_SUPPORT)
-#define SetArgsStart(command,args_start) \
-  if (args_start == (const char *) NULL) \
-    { \
-      if (*command != '"') \
-        args_start=strchr(command,' '); \
-      else \
-        { \
-          args_start=strchr(command+1,'"'); \
-          if (args_start != (const char *) NULL) \
-            args_start++; \
-        } \
-    }
-
-#define ExecuteGhostscriptCommand(command,status) \
-{ \
-  status=ExternalDelegateCommand(MagickFalse,verbose,command,message, \
-    exception); \
-  if (status == 0) \
-    return(MagickTrue); \
-  if (status < 0) \
-    return(MagickFalse); \
-  (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, \
-    "FailedToExecuteCommand","`%s' (%d)",command,status); \
-  return(MagickFalse); \
-}
-
-  char
-    **argv,
-    *errors;
-
-  const char
-    *args_start = (const char *) NULL;
-
-  const GhostInfo
-    *ghost_info;
-
-  gs_main_instance
-    *interpreter;
-
-  gsapi_revision_t
-    revision;
-
-  int
-    argc,
-    code;
-
-  register ssize_t
-    i;
-
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
-  ghost_info=NTGhostscriptDLLVectors();
-#else
-  GhostInfo
-    ghost_info_struct;
-
-  ghost_info=(&ghost_info_struct);
-  (void) memset(&ghost_info_struct,0,sizeof(ghost_info_struct));
-  ghost_info_struct.delete_instance=(void (*)(gs_main_instance *))
-    gsapi_delete_instance;
-  ghost_info_struct.exit=(int (*)(gs_main_instance *)) gsapi_exit;
-  ghost_info_struct.new_instance=(int (*)(gs_main_instance **,void *))
-    gsapi_new_instance;
-  ghost_info_struct.init_with_args=(int (*)(gs_main_instance *,int,char **))
-    gsapi_init_with_args;
-  ghost_info_struct.run_string=(int (*)(gs_main_instance *,const char *,int,
-    int *)) gsapi_run_string;
-  ghost_info_struct.set_stdio=(int (*)(gs_main_instance *,int (*)(void *,char *,
-    int),int (*)(void *,const char *,int),int (*)(void *, const char *, int)))
-    gsapi_set_stdio;
-  ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
-#endif
-  if (ghost_info == (GhostInfo *) NULL)
-    ExecuteGhostscriptCommand(command,status);
-  if ((ghost_info->revision)(&revision,sizeof(revision)) != 0)
-    revision.revision=0;
-  if (verbose != MagickFalse)
-    {
-      (void) fprintf(stdout,"[ghostscript library %.2f]",(double)
-        revision.revision/100.0);
-      SetArgsStart(command,args_start);
-      (void) fputs(args_start,stdout);
-    }
-  errors=(char *) NULL;
-  status=(ghost_info->new_instance)(&interpreter,(void *) &errors);
-  if (status < 0)
-    ExecuteGhostscriptCommand(command,status);
-  code=0;
-  argv=StringToArgv(command,&argc);
-  if (argv == (char **) NULL)
-    {
-      (ghost_info->delete_instance)(interpreter);
-      return(MagickFalse);
-    }
-  (void) (ghost_info->set_stdio)(interpreter,(int (MagickDLLCall *)(void *,
-    char *,int)) NULL,PostscriptDelegateMessage,PostscriptDelegateMessage);
-  status=(ghost_info->init_with_args)(interpreter,argc-1,argv+1);
-  if (status == 0)
-    status=(ghost_info->run_string)(interpreter,"systemdict /start get exec\n",
-      0,&code);
-  (ghost_info->exit)(interpreter);
-  (ghost_info->delete_instance)(interpreter);
-  for (i=0; i < (ssize_t) argc; i++)
-    argv[i]=DestroyString(argv[i]);
-  argv=(char **) RelinquishMagickMemory(argv);
-  if (status != 0)
-    {
-      SetArgsStart(command,args_start);
-      if (status == -101) /* quit */
-        (void) FormatLocaleString(message,MagickPathExtent,
-          "[ghostscript library %.2f]%s: %s",(double) revision.revision/100.0,
-          args_start,errors);
-      else
-        {
-          (void) ThrowMagickException(exception,GetMagickModule(),
-            DelegateError,"PostscriptDelegateFailed",
-            "`[ghostscript library %.2f]%s': %s",(double) revision.revision/
-            100.0,args_start,errors);
-          if (errors != (char *) NULL)
-            errors=DestroyString(errors);
-          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-            "Ghostscript returns status %d, exit code %d",status,code);
-          return(MagickFalse);
-        }
-    }
-  if (errors != (char *) NULL)
-    errors=DestroyString(errors);
-  return(MagickTrue);
-#else
-  status=ExternalDelegateCommand(MagickFalse,verbose,command,message,exception);
-  return(status == 0 ? MagickTrue : MagickFalse);
-#endif
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%                                                                             %
-%                                                                             %
-%                                                                             %
 %   I s P S                                                                   %
 %                                                                             %
 %                                                                             %
@@ -346,24 +172,7 @@
 %
 */
 
-static MagickBooleanType IsPostscriptRendered(const char *path)
-{
-  MagickBooleanType
-    status;
-
-  struct stat
-    attributes;
-
-  if ((path == (const char *) NULL) || (*path == '\0'))
-    return(MagickFalse);
-  status=GetPathAttributes(path,&attributes);
-  if ((status != MagickFalse) && S_ISREG(attributes.st_mode) &&
-      (attributes.st_size > 0))
-    return(MagickTrue);
-  return(MagickFalse);
-}
-
-static inline int ProfileInteger(Image *image,short int *hex_digits)
+static inline int ProfileInteger(MagickByteBuffer *buffer,short int *hex_digits)
 {
   int
     c,
@@ -377,7 +186,7 @@
   value=0;
   for (i=0; i < 2; )
   {
-    c=ReadBlobByte(image);
+    c=ReadMagickByteBuffer(buffer);
     if ((c == EOF) || ((c == '%') && (l == '%')))
       {
         value=(-1);
@@ -393,31 +202,322 @@
   return(value);
 }
 
-static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
+static void ReadPSInfo(const ImageInfo *image_info,Image *image,
+  PSInfo *ps_info,ExceptionInfo *exception)
 {
-#define BoundingBox  "BoundingBox:"
 #define BeginDocument  "BeginDocument:"
-#define BeginXMPPacket  "<?xpacket begin="
-#define EndXMPPacket  "<?xpacket end="
-#define ICCProfile "BeginICCProfile:"
+#define EndDocument  "EndDocument:"
+#define PostscriptLevel  "PS-"
+#define ImageData  "ImageData:"
+#define DocumentProcessColors  "DocumentProcessColors:"
 #define CMYKCustomColor  "CMYKCustomColor:"
 #define CMYKProcessColor  "CMYKProcessColor:"
-#define DocumentMedia  "DocumentMedia:"
 #define DocumentCustomColors  "DocumentCustomColors:"
-#define DocumentProcessColors  "DocumentProcessColors:"
-#define EndDocument  "EndDocument:"
-#define HiResBoundingBox  "HiResBoundingBox:"
-#define ImageData  "ImageData:"
-#define PageBoundingBox  "PageBoundingBox:"
-#define LanguageLevel  "LanguageLevel:"
-#define PageMedia  "PageMedia:"
-#define Pages  "Pages:"
-#define PhotoshopProfile  "BeginPhotoshop:"
-#define PostscriptLevel  "!PS-"
-#define RenderPostscriptText  "  Rendering Postscript...  "
 #define SpotColor  "+ "
+#define BoundingBox  "BoundingBox:"
+#define DocumentMedia  "DocumentMedia:"
+#define HiResBoundingBox  "HiResBoundingBox:"
+#define PageBoundingBox  "PageBoundingBox:"
+#define PageMedia  "PageMedia:"
+#define ICCProfile "BeginICCProfile:"
+#define PhotoshopProfile  "BeginPhotoshop:"
 
   char
+    version[MagickPathExtent];
+
+  int
+    c;
+
+  MagickBooleanType
+    new_line,
+    skip;
+
+  MagickByteBuffer
+    buffer;
+
+  register char
+    *p;
+
+  register ssize_t
+    i;
+
+  SegmentInfo
+    bounds;
+
+  size_t
+    length;
+
+  ssize_t
+    count,
+    priority;
+
+  short int
+    hex_digits[256];
+
+  unsigned long
+    spotcolor;
+
+  (void) memset(&bounds,0,sizeof(bounds));
+  (void) memset(ps_info,0,sizeof(*ps_info));
+  ps_info->cmyk=image_info->colorspace == CMYKColorspace ? MagickTrue :
+    MagickFalse;
+  /*
+    Initialize hex values.
+  */
+  (void) memset(hex_digits,0,sizeof(hex_digits));
+  hex_digits[(int) '0']=0;
+  hex_digits[(int) '1']=1;
+  hex_digits[(int) '2']=2;
+  hex_digits[(int) '3']=3;
+  hex_digits[(int) '4']=4;
+  hex_digits[(int) '5']=5;
+  hex_digits[(int) '6']=6;
+  hex_digits[(int) '7']=7;
+  hex_digits[(int) '8']=8;
+  hex_digits[(int) '9']=9;
+  hex_digits[(int) 'a']=10;
+  hex_digits[(int) 'b']=11;
+  hex_digits[(int) 'c']=12;
+  hex_digits[(int) 'd']=13;
+  hex_digits[(int) 'e']=14;
+  hex_digits[(int) 'f']=15;
+  hex_digits[(int) 'A']=10;
+  hex_digits[(int) 'B']=11;
+  hex_digits[(int) 'C']=12;
+  hex_digits[(int) 'D']=13;
+  hex_digits[(int) 'E']=14;
+  hex_digits[(int) 'F']=15;
+  priority=0;
+  *version='\0';
+  spotcolor=0;
+  skip=MagickFalse;
+  new_line=MagickTrue;
+  (void) memset(&buffer,0,sizeof(buffer));
+  buffer.image=image;
+  for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+  {
+    switch(c)
+    {
+      case '<':
+      {
+        ReadGhostScriptXMPProfile(&buffer,&ps_info->xmp_profile);
+        continue;
+      }
+      case '\n':
+      case '\r':
+        new_line=MagickTrue;
+        continue;
+      case '%':
+      {
+        if (new_line == MagickFalse)
+          continue;
+        new_line=MagickFalse;
+        c=ReadMagickByteBuffer(&buffer);
+        if ((c == '%') || (c == '!'))
+          break;
+        continue;
+      }
+      default:
+        continue;
+    }
+    /*
+      Skip %%BeginDocument thru %%EndDocument.
+    */
+    if (CompareMagickByteBuffer(&buffer,BeginDocument,strlen(BeginDocument)) != MagickFalse)
+      skip=MagickTrue;
+    if (CompareMagickByteBuffer(&buffer,EndDocument,strlen(EndDocument)) != MagickFalse)
+      skip=MagickFalse;
+    if (skip != MagickFalse)
+      continue;
+    if ((*version == '\0') &&
+        (CompareMagickByteBuffer(&buffer,PostscriptLevel,strlen(PostscriptLevel)) != MagickFalse))
+      {
+        i=0;
+        for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+        {
+          if ((c == '\r') || (c == '\n') || ((i+1) == sizeof(version)))
+            break;
+          version[i++]=(char) c;
+        }
+        version[i]='\0';
+      }
+    if (CompareMagickByteBuffer(&buffer,ImageData,strlen(ImageData)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        (void) sscanf(p,ImageData " %lu %lu",&ps_info->columns,&ps_info->rows);
+      }
+    /*
+      Is this a CMYK document?
+    */
+    length=strlen(DocumentProcessColors);
+    if (CompareMagickByteBuffer(&buffer,DocumentProcessColors,length) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        if ((StringLocateSubstring(p,"Cyan") != (char *) NULL) ||
+            (StringLocateSubstring(p,"Magenta") != (char *) NULL) ||
+            (StringLocateSubstring(p,"Yellow") != (char *) NULL))
+          ps_info->cmyk=MagickTrue;
+      }
+    if (CompareMagickByteBuffer(&buffer,CMYKCustomColor,strlen(CMYKCustomColor)) != MagickFalse)
+      ps_info->cmyk=MagickTrue;
+    if (CompareMagickByteBuffer(&buffer,CMYKProcessColor,strlen(CMYKProcessColor)) != MagickFalse)
+      ps_info->cmyk=MagickTrue;
+    length=strlen(DocumentCustomColors);
+    if ((CompareMagickByteBuffer(&buffer,DocumentCustomColors,length) != MagickFalse) ||
+        (CompareMagickByteBuffer(&buffer,CMYKCustomColor,strlen(CMYKCustomColor)) != MagickFalse) ||
+        (CompareMagickByteBuffer(&buffer,SpotColor,strlen(SpotColor)) != MagickFalse))
+      {
+        char
+          name[MagickPathExtent],
+          property[MagickPathExtent],
+          *value;
+
+        /*
+          Note spot names.
+        */
+        (void) FormatLocaleString(property,MagickPathExtent,
+          "pdf:SpotColor-%.20g",(double) spotcolor++);
+        i=0;
+        for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
+        {
+          if ((isspace(c) != 0) || ((i+1) == sizeof(name)))
+            break;
+          name[i++]=(char) c;
+        }
+        name[i]='\0';
+        value=ConstantString(name);
+        (void) SubstituteString(&value,"(","");
+        (void) SubstituteString(&value,")","");
+        (void) StripString(value);
+        if (*value != '\0')
+          (void) SetImageProperty(image,property,value,exception);
+        value=DestroyString(value);
+        continue;
+      }
+    if ((ps_info->icc_profile == (StringInfo *) NULL) &&
+        (CompareMagickByteBuffer(&buffer,ICCProfile,strlen(ICCProfile)) != MagickFalse))
+      {
+        unsigned char
+          *datum;
+
+        /*
+          Read ICC profile.
+        */
+        ps_info->icc_profile=AcquireStringInfo(MagickPathExtent);
+        datum=GetStringInfoDatum(ps_info->icc_profile);
+        for (i=0; (c=ProfileInteger(&buffer,hex_digits)) != EOF; i++)
+        {
+          if (i >= (ssize_t) GetStringInfoLength(ps_info->icc_profile))
+            {
+              SetStringInfoLength(ps_info->icc_profile,(size_t) i << 1);
+              datum=GetStringInfoDatum(ps_info->icc_profile);
+            }
+          datum[i]=(unsigned char) c;
+        }
+        SetStringInfoLength(ps_info->icc_profile,(size_t) i+1);
+        continue;
+      }
+    if ((ps_info->photoshop_profile == (StringInfo *) NULL) &&
+        (CompareMagickByteBuffer(&buffer,PhotoshopProfile,strlen(PhotoshopProfile)) != MagickFalse))
+      {
+        unsigned char
+          *q;
+
+        unsigned long
+          extent;
+
+        /*
+          Read Photoshop profile.
+        */
+        p=GetMagickByteBufferDatum(&buffer);
+        extent=0;
+        count=(ssize_t) sscanf(p,PhotoshopProfile " %lu",&extent);
+        if ((count != 1) || (extent == 0))
+          continue;
+        if ((MagickSizeType) extent > GetBlobSize(image))
+          continue;
+        length=(size_t) extent;
+        ps_info->photoshop_profile=AcquireStringInfo(length+1U);
+        q=GetStringInfoDatum(ps_info->photoshop_profile);
+        while (extent > 0)
+        {
+          c=ProfileInteger(&buffer,hex_digits);
+          if (c == EOF)
+            break;
+          *q++=(unsigned char) c;
+          extent-=MagickMin(extent,2);
+        }
+        SetStringInfoLength(ps_info->photoshop_profile,length);
+        continue;
+      }
+    if (image_info->page != (char *) NULL)
+      continue;
+    /*
+      Note region defined by bounding box.
+    */
+    count=0;
+    i=0;
+    if (CompareMagickByteBuffer(&buffer,BoundingBox,strlen(BoundingBox)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        count=(ssize_t) sscanf(p,BoundingBox " %lf %lf %lf %lf",
+          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
+        i=2;
+      }
+    if (CompareMagickByteBuffer(&buffer,DocumentMedia,strlen(DocumentMedia)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        count=(ssize_t) sscanf(p,DocumentMedia " %lf %lf %lf %lf",
+          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
+        i=1;
+      }
+    if (CompareMagickByteBuffer(&buffer,HiResBoundingBox,strlen(HiResBoundingBox)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        count=(ssize_t) sscanf(p,HiResBoundingBox " %lf %lf %lf %lf",
+          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
+        i=3;
+      }
+    if (CompareMagickByteBuffer(&buffer,PageBoundingBox,strlen(PageBoundingBox)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        count=(ssize_t) sscanf(p,PageBoundingBox " %lf %lf %lf %lf",
+          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
+        i=1;
+      }
+    if (CompareMagickByteBuffer(&buffer,PageMedia,strlen(PageMedia)) != MagickFalse)
+      {
+        p=GetMagickByteBufferDatum(&buffer);
+        count=(ssize_t) sscanf(p,PageMedia " %lf %lf %lf %lf",
+          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
+        i=1;
+      }
+    if ((count != 4) || (i < (ssize_t) priority))
+      continue;
+    if ((fabs(bounds.x2-bounds.x1) <= fabs(ps_info->bounds.x2-ps_info->bounds.x1)) ||
+        (fabs(bounds.y2-bounds.y1) <= fabs(ps_info->bounds.y2-ps_info->bounds.y1)))
+      if (i ==  (ssize_t) priority)
+        continue;
+    ps_info->bounds=bounds;
+    priority=i;
+  }
+  if (version[0] != '\0')
+    (void) SetImageProperty(image,"ps:Level",version,exception);
+}
+
+static inline void CleanupPSInfo(PSInfo *pdf_info)
+{
+  if (pdf_info->icc_profile != (StringInfo *) NULL)
+    pdf_info->icc_profile=DestroyStringInfo(pdf_info->icc_profile);
+  if (pdf_info->photoshop_profile != (StringInfo *) NULL)
+    pdf_info->photoshop_profile=DestroyStringInfo(pdf_info->photoshop_profile);
+  if (pdf_info->xmp_profile != (StringInfo *) NULL)
+    pdf_info->xmp_profile=DestroyStringInfo(pdf_info->xmp_profile);
+}
+
+static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+  char
     command[MagickPathExtent],
     *density,
     filename[MagickPathExtent],
@@ -445,13 +545,10 @@
     *read_info;
 
   int
-    c,
     file;
 
   MagickBooleanType
-    cmyk,
     fitPage,
-    skip,
     status;
 
   MagickStatusType
@@ -461,40 +558,20 @@
     delta,
     resolution;
 
+  PSInfo
+    info;
+
   RectangleInfo
     page;
 
-  register char
-    *p;
-
   register ssize_t
     i;
 
-  SegmentInfo
-    bounds,
-    hires_bounds;
-
-  short int
-    hex_digits[256];
-
-  size_t
-    length;
-
   ssize_t
-    count,
-    priority;
-
-  StringInfo
-    *profile;
+    count;
 
   unsigned long
-    columns,
-    extent,
-    language_level,
-    pages,
-    rows,
-    scene,
-    spotcolor;
+    scene;
 
   /*
     Open image file.
@@ -522,32 +599,6 @@
       return((Image *) NULL);
     }
   /*
-    Initialize hex values.
-  */
-  (void) memset(hex_digits,0,sizeof(hex_digits));
-  hex_digits[(int) '0']=0;
-  hex_digits[(int) '1']=1;
-  hex_digits[(int) '2']=2;
-  hex_digits[(int) '3']=3;
-  hex_digits[(int) '4']=4;
-  hex_digits[(int) '5']=5;
-  hex_digits[(int) '6']=6;
-  hex_digits[(int) '7']=7;
-  hex_digits[(int) '8']=8;
-  hex_digits[(int) '9']=9;
-  hex_digits[(int) 'a']=10;
-  hex_digits[(int) 'b']=11;
-  hex_digits[(int) 'c']=12;
-  hex_digits[(int) 'd']=13;
-  hex_digits[(int) 'e']=14;
-  hex_digits[(int) 'f']=15;
-  hex_digits[(int) 'A']=10;
-  hex_digits[(int) 'B']=11;
-  hex_digits[(int) 'C']=12;
-  hex_digits[(int) 'D']=13;
-  hex_digits[(int) 'E']=14;
-  hex_digits[(int) 'F']=15;
-  /*
     Set the page density.
   */
   delta.x=DefaultResolution;
@@ -572,161 +623,29 @@
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
   resolution=image->resolution;
-  page.width=(size_t) ceil((double) (page.width*resolution.x/delta.x)-0.5);
-  page.height=(size_t) ceil((double) (page.height*resolution.y/delta.y)-0.5);
+  page.width=(size_t) ((ssize_t) ceil((double) (page.width*resolution.x/
+    delta.x)-0.5));
+  page.height=(size_t) ((ssize_t) ceil((double) (page.height*resolution.y/
+    delta.y)-0.5));
   /*
     Determine page geometry from the Postscript bounding box.
   */
-  (void) memset(&bounds,0,sizeof(bounds));
-  (void) memset(command,0,sizeof(command));
-  cmyk=image_info->colorspace == CMYKColorspace ? MagickTrue : MagickFalse;
-  (void) memset(&hires_bounds,0,sizeof(hires_bounds));
-  columns=0;
-  rows=0;
-  priority=0;
-  rows=0;
-  extent=0;
-  spotcolor=0;
-  language_level=1;
-  pages=(~0UL);
-  skip=MagickFalse;
-  p=command;
-  for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
-  {
-    /*
-      Note document structuring comments.
-    */
-    *p++=(char) c;
-    if ((strchr("\n\r%",c) == (char *) NULL) &&
-        ((size_t) (p-command) < (MagickPathExtent-1)))
-      continue;
-    *p='\0';
-    p=command;
-    /*
-      Skip %%BeginDocument thru %%EndDocument.
-    */
-    if (LocaleNCompare(BeginDocument,command,strlen(BeginDocument)) == 0)
-      skip=MagickTrue;
-    if (LocaleNCompare(EndDocument,command,strlen(EndDocument)) == 0)
-      skip=MagickFalse;
-    if (skip != MagickFalse)
-      continue;
-    if (LocaleNCompare(PostscriptLevel,command,strlen(PostscriptLevel)) == 0)
-      {
-        (void) SetImageProperty(image,"ps:Level",command+4,exception);
-        if (GlobExpression(command,"*EPSF-*",MagickTrue) != MagickFalse)
-          pages=1;
-      }
-    if (LocaleNCompare(LanguageLevel,command,strlen(LanguageLevel)) == 0)
-      (void) sscanf(command,LanguageLevel " %lu",&language_level);
-    if (LocaleNCompare(Pages,command,strlen(Pages)) == 0)
-      (void) sscanf(command,Pages " %lu",&pages);
-    if (LocaleNCompare(ImageData,command,strlen(ImageData)) == 0)
-      (void) sscanf(command,ImageData " %lu %lu",&columns,&rows);
-    /*
-      Is this a CMYK document?
-    */
-    length=strlen(DocumentProcessColors);
-    if (LocaleNCompare(DocumentProcessColors,command,length) == 0)
-      {
-        if ((GlobExpression(command,"*Cyan*",MagickTrue) != MagickFalse) ||
-            (GlobExpression(command,"*Magenta*",MagickTrue) != MagickFalse) ||
-            (GlobExpression(command,"*Yellow*",MagickTrue) != MagickFalse))
-          cmyk=MagickTrue;
-      }
-    if (LocaleNCompare(CMYKCustomColor,command,strlen(CMYKCustomColor)) == 0)
-      cmyk=MagickTrue;
-    if (LocaleNCompare(CMYKProcessColor,command,strlen(CMYKProcessColor)) == 0)
-      cmyk=MagickTrue;
-    length=strlen(DocumentCustomColors);
-    if ((LocaleNCompare(DocumentCustomColors,command,length) == 0) ||
-        (LocaleNCompare(CMYKCustomColor,command,strlen(CMYKCustomColor)) == 0) ||
-        (LocaleNCompare(SpotColor,command,strlen(SpotColor)) == 0))
-      {
-        char
-          property[MagickPathExtent],
-          *value;
-
-        register char
-          *q;
-
-        /*
-          Note spot names.
-        */
-        (void) FormatLocaleString(property,MagickPathExtent,
-          "ps:SpotColor-%.20g",(double) (spotcolor++));
-        for (q=command; *q != '\0'; q++)
-          if (isspace((int) (unsigned char) *q) != 0)
-            break;
-        value=ConstantString(q);
-        (void) SubstituteString(&value,"(","");
-        (void) SubstituteString(&value,")","");
-        (void) StripString(value);
-        if (*value != '\0')
-          (void) SetImageProperty(image,property,value,exception);
-        value=DestroyString(value);
-        continue;
-      }
-    if (image_info->page != (char *) NULL)
-      continue;
-    /*
-      Note region defined by bounding box.
-    */
-    count=0;
-    i=0;
-    if (LocaleNCompare(BoundingBox,command,strlen(BoundingBox)) == 0)
-      {
-        count=(ssize_t) sscanf(command,BoundingBox " %lf %lf %lf %lf",
-          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-        i=2;
-      }
-    if (LocaleNCompare(DocumentMedia,command,strlen(DocumentMedia)) == 0)
-      {
-        count=(ssize_t) sscanf(command,DocumentMedia " %lf %lf %lf %lf",
-          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-        i=1;
-      }
-    if (LocaleNCompare(HiResBoundingBox,command,strlen(HiResBoundingBox)) == 0)
-      {
-        count=(ssize_t) sscanf(command,HiResBoundingBox " %lf %lf %lf %lf",
-          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-        i=3;
-      }
-    if (LocaleNCompare(PageBoundingBox,command,strlen(PageBoundingBox)) == 0)
-      {
-        count=(ssize_t) sscanf(command,PageBoundingBox " %lf %lf %lf %lf",
-          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-        i=1;
-      }
-    if (LocaleNCompare(PageMedia,command,strlen(PageMedia)) == 0)
-      {
-        count=(ssize_t) sscanf(command,PageMedia " %lf %lf %lf %lf",
-          &bounds.x1,&bounds.y1,&bounds.x2,&bounds.y2);
-        i=1;
-      }
-    if ((count != 4) || (i < (ssize_t) priority))
-      continue;
-    if ((fabs(bounds.x2-bounds.x1) <= fabs(hires_bounds.x2-hires_bounds.x1)) ||
-        (fabs(bounds.y2-bounds.y1) <= fabs(hires_bounds.y2-hires_bounds.y1)))
-      if (i ==  (ssize_t) priority)
-        continue;
-    hires_bounds=bounds;
-    priority=(size_t) i;
-  }
-  if ((fabs(hires_bounds.x2-hires_bounds.x1) >= MagickEpsilon) && 
-      (fabs(hires_bounds.y2-hires_bounds.y1) >= MagickEpsilon))
+  ReadPSInfo(image_info,image,&info,exception);
+  (void) CloseBlob(image);
+  /*
+    Set Postscript render geometry.
+  */
+  if ((fabs(info.bounds.x2-info.bounds.x1) >= MagickEpsilon) &&
+      (fabs(info.bounds.y2-info.bounds.y1) >= MagickEpsilon))
     {
-      /*
-        Set Postscript render geometry.
-      */
       (void) FormatLocaleString(geometry,MagickPathExtent,"%gx%g%+.15g%+.15g",
-        hires_bounds.x2-hires_bounds.x1,hires_bounds.y2-hires_bounds.y1,
-        hires_bounds.x1,hires_bounds.y1);
+        info.bounds.x2-info.bounds.x1,info.bounds.y2-info.bounds.y1,
+        info.bounds.x1,info.bounds.y1);
       (void) SetImageProperty(image,"ps:HiResBoundingBox",geometry,exception);
-      page.width=(size_t) ceil((double) ((hires_bounds.x2-hires_bounds.x1)*
-        resolution.x/delta.x)-0.5);
-      page.height=(size_t) ceil((double) ((hires_bounds.y2-hires_bounds.y1)*
-        resolution.y/delta.y)-0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) ((info.bounds.x2-
+        info.bounds.x1)*resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) ((info.bounds.y2-
+        info.bounds.y1)*resolution.y/delta.y)-0.5));
     }
   fitPage=MagickFalse;
   option=GetImageOption(image_info,"eps:fit-page");
@@ -742,18 +661,19 @@
         {
           (void) ThrowMagickException(exception,GetMagickModule(),OptionError,
             "InvalidGeometry","`%s'",option);
+          page_geometry=DestroyString(page_geometry);
           image=DestroyImage(image);
           return((Image *) NULL);
         }
-      page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x)
-        -0.5);
-      page.height=(size_t) ceil((double) (page.height*image->resolution.y/
-        delta.y) -0.5);
+      page.width=(size_t) ((ssize_t) ceil((double) (page.width*
+        image->resolution.x/delta.x)-0.5));
+      page.height=(size_t) ((ssize_t) ceil((double) (page.height*
+        image->resolution.y/delta.y) -0.5));
       page_geometry=DestroyString(page_geometry);
       fitPage=MagickTrue;
     }
   if (IssRGBCompatibleColorspace(image_info->colorspace) != MagickFalse)
-    cmyk=MagickFalse;
+    info.cmyk=MagickFalse;
   /*
     Create Ghostscript control file.
   */
@@ -762,6 +682,7 @@
     {
       ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
         image_info->filename);
+      CleanupPSInfo(&info);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
@@ -775,10 +696,11 @@
         translate_geometry[MagickPathExtent];
 
       (void) FormatLocaleString(translate_geometry,MagickPathExtent,
-        "%g %g translate\n",-bounds.x1,-bounds.y1);
+        "%g %g translate\n",-info.bounds.x1,-info.bounds.y1);
       count=write(file,translate_geometry,(unsigned int)
         strlen(translate_geometry));
     }
+  (void) count;
   file=close(file)-1;
   /*
     Render Postscript with the Ghostscript delegate.
@@ -786,13 +708,14 @@
   if (image_info->monochrome != MagickFalse)
     delegate_info=GetDelegateInfo("ps:mono",(char *) NULL,exception);
   else
-    if (cmyk != MagickFalse)
+    if (info.cmyk != MagickFalse)
       delegate_info=GetDelegateInfo("ps:cmyk",(char *) NULL,exception);
     else
       delegate_info=GetDelegateInfo("ps:alpha",(char *) NULL,exception);
   if (delegate_info == (const DelegateInfo *) NULL)
     {
       (void) RelinquishUniqueFileResource(postscript_filename);
+      CleanupPSInfo(&info);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
@@ -839,14 +762,15 @@
   options=DestroyString(options);
   density=DestroyString(density);
   *message='\0';
-  status=InvokePostscriptDelegate(read_info->verbose,command,message,exception);
+  status=InvokeGhostscriptDelegate(read_info->verbose,command,message,
+    exception);
   (void) InterpretImageFilename(image_info,image,filename,1,
     read_info->filename,exception);
   if ((status == MagickFalse) ||
-      (IsPostscriptRendered(read_info->filename) == MagickFalse))
+      (IsGhostscriptRendered(read_info->filename) == MagickFalse))
     {
       (void) ConcatenateMagickString(command," -c showpage",MagickPathExtent);
-      status=InvokePostscriptDelegate(read_info->verbose,command,message,
+      status=InvokeGhostscriptDelegate(read_info->verbose,command,message,
         exception);
     }
   (void) RelinquishUniqueFileResource(postscript_filename);
@@ -857,7 +781,7 @@
     {
       (void) InterpretImageFilename(image_info,image,filename,(int) i,
         read_info->filename,exception);
-      if (IsPostscriptRendered(read_info->filename) == MagickFalse)
+      if (IsGhostscriptRendered(read_info->filename) == MagickFalse)
         break;
       (void) RelinquishUniqueFileResource(read_info->filename);
     }
@@ -866,7 +790,7 @@
     {
       (void) InterpretImageFilename(image_info,image,filename,(int) i,
         read_info->filename,exception);
-      if (IsPostscriptRendered(read_info->filename) == MagickFalse)
+      if (IsGhostscriptRendered(read_info->filename) == MagickFalse)
         break;
       read_info->blob=NULL;
       read_info->length=0;
@@ -883,6 +807,7 @@
       if (*message != '\0')
         (void) ThrowMagickException(exception,GetMagickModule(),
           DelegateError,"PostscriptDelegateFailed","`%s'",message);
+      CleanupPSInfo(&info);
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
@@ -898,104 +823,13 @@
           postscript_image=cmyk_image;
         }
     }
-  (void) SeekBlob(image,0,SEEK_SET);
-  for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
-  {
-    /*
-      Note document structuring comments.
-    */
-    *p++=(char) c;
-    if ((strchr("\n\r%",c) == (char *) NULL) &&
-        ((size_t) (p-command) < (MagickPathExtent-1)))
-      continue;
-    *p='\0';
-    p=command;
-    /*
-      Skip %%BeginDocument thru %%EndDocument.
-    */
-    if (LocaleNCompare(BeginDocument,command,strlen(BeginDocument)) == 0)
-      skip=MagickTrue;
-    if (LocaleNCompare(EndDocument,command,strlen(EndDocument)) == 0)
-      skip=MagickFalse;
-    if (skip != MagickFalse)
-      continue;
-    if (LocaleNCompare(ICCProfile,command,strlen(ICCProfile)) == 0)
-      {
-        unsigned char
-          *datum;
-
-        /*
-          Read ICC profile.
-        */
-        profile=AcquireStringInfo(MagickPathExtent);
-        datum=GetStringInfoDatum(profile);
-        for (i=0; (c=ProfileInteger(image,hex_digits)) != EOF; i++)
-        {
-          if (i >= (ssize_t) GetStringInfoLength(profile))
-            {
-              SetStringInfoLength(profile,(size_t) i << 1);
-              datum=GetStringInfoDatum(profile);
-            }
-          datum[i]=(unsigned char) c;
-        }
-        SetStringInfoLength(profile,(size_t) i+1);
-        (void) SetImageProfile(image,"icc",profile,exception);
-        profile=DestroyStringInfo(profile);
-        continue;
-      }
-    if (LocaleNCompare(PhotoshopProfile,command,strlen(PhotoshopProfile)) == 0)
-      {
-        unsigned char
-          *q;
-
-        /*
-          Read Photoshop profile.
-        */
-        count=(ssize_t) sscanf(command,PhotoshopProfile " %lu",&extent);
-        if (count != 1)
-          continue;
-        length=extent;
-        if ((MagickSizeType) length > GetBlobSize(image))
-          ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
-        profile=BlobToStringInfo((const void *) NULL,length);
-        if (profile != (StringInfo *) NULL)
-          {
-            q=GetStringInfoDatum(profile);
-            for (i=0; i < (ssize_t) length; i++)
-              *q++=(unsigned char) ProfileInteger(image,hex_digits);
-            (void) SetImageProfile(image,"8bim",profile,exception);
-            profile=DestroyStringInfo(profile);
-          }
-        continue;
-      }
-    if (LocaleNCompare(BeginXMPPacket,command,strlen(BeginXMPPacket)) == 0)
-      {
-        /*
-          Read XMP profile.
-        */
-        p=command;
-        profile=StringToStringInfo(command);
-        for (i=(ssize_t) GetStringInfoLength(profile)-1; c != EOF; i++)
-        {
-          SetStringInfoLength(profile,(size_t) (i+1));
-          c=ReadBlobByte(image);
-          GetStringInfoDatum(profile)[i]=(unsigned char) c;
-          *p++=(char) c;
-          if ((strchr("\n\r%",c) == (char *) NULL) &&
-              ((size_t) (p-command) < (MagickPathExtent-1)))
-            continue;
-          *p='\0';
-          p=command;
-          if (LocaleNCompare(EndXMPPacket,command,strlen(EndXMPPacket)) == 0)
-            break;
-        }
-        SetStringInfoLength(profile,(size_t) i);
-        (void) SetImageProfile(image,"xmp",profile,exception);
-        profile=DestroyStringInfo(profile);
-        continue;
-      }
-  }
-  (void) CloseBlob(image);
+  if (info.icc_profile != (StringInfo *) NULL)
+    (void) SetImageProfile(image,"icc",info.icc_profile,exception);
+  if (info.photoshop_profile != (StringInfo *) NULL)
+    (void) SetImageProfile(image,"8bim",info.photoshop_profile,exception);
+  if (info.xmp_profile != (StringInfo *) NULL)
+    (void) SetImageProfile(image,"xmp",info.xmp_profile,exception);
+  CleanupPSInfo(&info);
   if (image_info->number_scenes != 0)
     {
       Image
@@ -1017,10 +851,10 @@
       MagickPathExtent);
     (void) CopyMagickString(postscript_image->magick,image->magick,
       MagickPathExtent);
-    if (columns != 0)
-      postscript_image->magick_columns=columns;
-    if (rows != 0)
-      postscript_image->magick_rows=rows;
+    if (info.columns != 0)
+      postscript_image->magick_columns=info.columns;
+    if (info.rows != 0)
+      postscript_image->magick_rows=info.rows;
     postscript_image->page=page;
     (void) CloneImageProfiles(postscript_image,image);
     (void) CloneImageProperties(postscript_image,image);
@@ -1174,15 +1008,15 @@
 %
 */
 
-static inline unsigned char *PopHexPixel(const char *const *hex_digits,
+static inline unsigned char *PopHexPixel(const char hex_digits[][3],
   const size_t pixel,unsigned char *pixels)
 {
   register const char
     *hex;
 
   hex=hex_digits[pixel];
-  *pixels++=(unsigned char) (*hex++);
-  *pixels++=(unsigned char) (*hex);
+  *pixels++=(unsigned char) (*hex++ & 0xff);
+  *pixels++=(unsigned char) (*hex & 0xff);
   return(pixels);
 }
 
@@ -1208,7 +1042,7 @@
 }
 
   static const char
-    *const hex_digits[] =
+    hex_digits[][3] =
     {
       "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B",
       "0C", "0D", "0E", "0F", "10", "11", "12", "13", "14", "15", "16", "17",
@@ -1231,263 +1065,257 @@
       "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF", "E0", "E1", "E2", "E3",
       "E4", "E5", "E6", "E7", "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF",
       "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "FA", "FB",
-      "FC", "FD", "FE", "FF",  (const char *) NULL
+      "FC", "FD", "FE", "FF"
     },
-    *const PostscriptProlog[]=
-    {
-      "%%BeginProlog",
-      "%",
-      "% Display a color image.  The image is displayed in color on",
-      "% Postscript viewers or printers that support color, otherwise",
-      "% it is displayed as grayscale.",
-      "%",
-      "/DirectClassPacket",
-      "{",
-      "  %",
-      "  % Get a DirectClass packet.",
-      "  %",
-      "  % Parameters:",
-      "  %   red.",
-      "  %   green.",
-      "  %   blue.",
-      "  %   length: number of pixels minus one of this color (optional).",
-      "  %",
-      "  currentfile color_packet readhexstring pop pop",
-      "  compression 0 eq",
-      "  {",
-      "    /number_pixels 3 def",
-      "  }",
-      "  {",
-      "    currentfile byte readhexstring pop 0 get",
-      "    /number_pixels exch 1 add 3 mul def",
-      "  } ifelse",
-      "  0 3 number_pixels 1 sub",
-      "  {",
-      "    pixels exch color_packet putinterval",
-      "  } for",
-      "  pixels 0 number_pixels getinterval",
-      "} bind def",
-      "",
-      "/DirectClassImage",
-      "{",
-      "  %",
-      "  % Display a DirectClass image.",
-      "  %",
-      "  systemdict /colorimage known",
-      "  {",
-      "    columns rows 8",
-      "    [",
-      "      columns 0 0",
-      "      rows neg 0 rows",
-      "    ]",
-      "    { DirectClassPacket } false 3 colorimage",
-      "  }",
-      "  {",
-      "    %",
-      "    % No colorimage operator;  convert to grayscale.",
-      "    %",
-      "    columns rows 8",
-      "    [",
-      "      columns 0 0",
-      "      rows neg 0 rows",
-      "    ]",
-      "    { GrayDirectClassPacket } image",
-      "  } ifelse",
-      "} bind def",
-      "",
-      "/GrayDirectClassPacket",
-      "{",
-      "  %",
-      "  % Get a DirectClass packet;  convert to grayscale.",
-      "  %",
-      "  % Parameters:",
-      "  %   red",
-      "  %   green",
-      "  %   blue",
-      "  %   length: number of pixels minus one of this color (optional).",
-      "  %",
-      "  currentfile color_packet readhexstring pop pop",
-      "  color_packet 0 get 0.299 mul",
-      "  color_packet 1 get 0.587 mul add",
-      "  color_packet 2 get 0.114 mul add",
-      "  cvi",
-      "  /gray_packet exch def",
-      "  compression 0 eq",
-      "  {",
-      "    /number_pixels 1 def",
-      "  }",
-      "  {",
-      "    currentfile byte readhexstring pop 0 get",
-      "    /number_pixels exch 1 add def",
-      "  } ifelse",
-      "  0 1 number_pixels 1 sub",
-      "  {",
-      "    pixels exch gray_packet put",
-      "  } for",
-      "  pixels 0 number_pixels getinterval",
-      "} bind def",
-      "",
-      "/GrayPseudoClassPacket",
-      "{",
-      "  %",
-      "  % Get a PseudoClass packet;  convert to grayscale.",
-      "  %",
-      "  % Parameters:",
-      "  %   index: index into the colormap.",
-      "  %   length: number of pixels minus one of this color (optional).",
-      "  %",
-      "  currentfile byte readhexstring pop 0 get",
-      "  /offset exch 3 mul def",
-      "  /color_packet colormap offset 3 getinterval def",
-      "  color_packet 0 get 0.299 mul",
-      "  color_packet 1 get 0.587 mul add",
-      "  color_packet 2 get 0.114 mul add",
-      "  cvi",
-      "  /gray_packet exch def",
-      "  compression 0 eq",
-      "  {",
-      "    /number_pixels 1 def",
-      "  }",
-      "  {",
-      "    currentfile byte readhexstring pop 0 get",
-      "    /number_pixels exch 1 add def",
-      "  } ifelse",
-      "  0 1 number_pixels 1 sub",
-      "  {",
-      "    pixels exch gray_packet put",
-      "  } for",
-      "  pixels 0 number_pixels getinterval",
-      "} bind def",
-      "",
-      "/PseudoClassPacket",
-      "{",
-      "  %",
-      "  % Get a PseudoClass packet.",
-      "  %",
-      "  % Parameters:",
-      "  %   index: index into the colormap.",
-      "  %   length: number of pixels minus one of this color (optional).",
-      "  %",
-      "  currentfile byte readhexstring pop 0 get",
-      "  /offset exch 3 mul def",
-      "  /color_packet colormap offset 3 getinterval def",
-      "  compression 0 eq",
-      "  {",
-      "    /number_pixels 3 def",
-      "  }",
-      "  {",
-      "    currentfile byte readhexstring pop 0 get",
-      "    /number_pixels exch 1 add 3 mul def",
-      "  } ifelse",
-      "  0 3 number_pixels 1 sub",
-      "  {",
-      "    pixels exch color_packet putinterval",
-      "  } for",
-      "  pixels 0 number_pixels getinterval",
-      "} bind def",
-      "",
-      "/PseudoClassImage",
-      "{",
-      "  %",
-      "  % Display a PseudoClass image.",
-      "  %",
-      "  % Parameters:",
-      "  %   class: 0-PseudoClass or 1-Grayscale.",
-      "  %",
-      "  currentfile buffer readline pop",
-      "  token pop /class exch def pop",
-      "  class 0 gt",
-      "  {",
-      "    currentfile buffer readline pop",
-      "    token pop /depth exch def pop",
-      "    /grays columns 8 add depth sub depth mul 8 idiv string def",
-      "    columns rows depth",
-      "    [",
-      "      columns 0 0",
-      "      rows neg 0 rows",
-      "    ]",
-      "    { currentfile grays readhexstring pop } image",
-      "  }",
-      "  {",
-      "    %",
-      "    % Parameters:",
-      "    %   colors: number of colors in the colormap.",
-      "    %   colormap: red, green, blue color packets.",
-      "    %",
-      "    currentfile buffer readline pop",
-      "    token pop /colors exch def pop",
-      "    /colors colors 3 mul def",
-      "    /colormap colors string def",
-      "    currentfile colormap readhexstring pop pop",
-      "    systemdict /colorimage known",
-      "    {",
-      "      columns rows 8",
-      "      [",
-      "        columns 0 0",
-      "        rows neg 0 rows",
-      "      ]",
-      "      { PseudoClassPacket } false 3 colorimage",
-      "    }",
-      "    {",
-      "      %",
-      "      % No colorimage operator;  convert to grayscale.",
-      "      %",
-      "      columns rows 8",
-      "      [",
-      "        columns 0 0",
-      "        rows neg 0 rows",
-      "      ]",
-      "      { GrayPseudoClassPacket } image",
-      "    } ifelse",
-      "  } ifelse",
-      "} bind def",
-      "",
-      "/DisplayImage",
-      "{",
-      "  %",
-      "  % Display a DirectClass or PseudoClass image.",
-      "  %",
-      "  % Parameters:",
-      "  %   x & y translation.",
-      "  %   x & y scale.",
-      "  %   label pointsize.",
-      "  %   image label.",
-      "  %   image columns & rows.",
-      "  %   class: 0-DirectClass or 1-PseudoClass.",
-      "  %   compression: 0-none or 1-RunlengthEncoded.",
-      "  %   hex color packets.",
-      "  %",
-      "  gsave",
-      "  /buffer 512 string def",
-      "  /byte 1 string def",
-      "  /color_packet 3 string def",
-      "  /pixels 768 string def",
-      "",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  x y translate",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /pointsize exch def pop",
-      (const char *) NULL
-    },
-    *const PostscriptEpilog[]=
-    {
-      "  x y scale",
-      "  currentfile buffer readline pop",
-      "  token pop /columns exch def",
-      "  token pop /rows exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /class exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /compression exch def pop",
-      "  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse",
-      "  grestore",
-      (const char *) NULL
-    };
+    PostscriptProlog[] =
+      "%%BeginProlog\n"
+      "%\n"
+      "% Display a color image.  The image is displayed in color on\n"
+      "% Postscript viewers or printers that support color, otherwise\n"
+      "% it is displayed as grayscale.\n"
+      "%\n"
+      "/DirectClassPacket\n"
+      "{\n"
+      "  %\n"
+      "  % Get a DirectClass packet.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   red.\n"
+      "  %   green.\n"
+      "  %   blue.\n"
+      "  %   length: number of pixels minus one of this color (optional).\n"
+      "  %\n"
+      "  currentfile color_packet readhexstring pop pop\n"
+      "  compression 0 eq\n"
+      "  {\n"
+      "    /number_pixels 3 def\n"
+      "  }\n"
+      "  {\n"
+      "    currentfile byte readhexstring pop 0 get\n"
+      "    /number_pixels exch 1 add 3 mul def\n"
+      "  } ifelse\n"
+      "  0 3 number_pixels 1 sub\n"
+      "  {\n"
+      "    pixels exch color_packet putinterval\n"
+      "  } for\n"
+      "  pixels 0 number_pixels getinterval\n"
+      "} bind def\n"
+      "\n"
+      "/DirectClassImage\n"
+      "{\n"
+      "  %\n"
+      "  % Display a DirectClass image.\n"
+      "  %\n"
+      "  systemdict /colorimage known\n"
+      "  {\n"
+      "    columns rows 8\n"
+      "    [\n"
+      "      columns 0 0\n"
+      "      rows neg 0 rows\n"
+      "    ]\n"
+      "    { DirectClassPacket } false 3 colorimage\n"
+      "  }\n"
+      "  {\n"
+      "    %\n"
+      "    % No colorimage operator;  convert to grayscale.\n"
+      "    %\n"
+      "    columns rows 8\n"
+      "    [\n"
+      "      columns 0 0\n"
+      "      rows neg 0 rows\n"
+      "    ]\n"
+      "    { GrayDirectClassPacket } image\n"
+      "  } ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/GrayDirectClassPacket\n"
+      "{\n"
+      "  %\n"
+      "  % Get a DirectClass packet;  convert to grayscale.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   red\n"
+      "  %   green\n"
+      "  %   blue\n"
+      "  %   length: number of pixels minus one of this color (optional).\n"
+      "  %\n"
+      "  currentfile color_packet readhexstring pop pop\n"
+      "  color_packet 0 get 0.299 mul\n"
+      "  color_packet 1 get 0.587 mul add\n"
+      "  color_packet 2 get 0.114 mul add\n"
+      "  cvi\n"
+      "  /gray_packet exch def\n"
+      "  compression 0 eq\n"
+      "  {\n"
+      "    /number_pixels 1 def\n"
+      "  }\n"
+      "  {\n"
+      "    currentfile byte readhexstring pop 0 get\n"
+      "    /number_pixels exch 1 add def\n"
+      "  } ifelse\n"
+      "  0 1 number_pixels 1 sub\n"
+      "  {\n"
+      "    pixels exch gray_packet put\n"
+      "  } for\n"
+      "  pixels 0 number_pixels getinterval\n"
+      "} bind def\n"
+      "\n"
+      "/GrayPseudoClassPacket\n"
+      "{\n"
+      "  %\n"
+      "  % Get a PseudoClass packet;  convert to grayscale.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   index: index into the colormap.\n"
+      "  %   length: number of pixels minus one of this color (optional).\n"
+      "  %\n"
+      "  currentfile byte readhexstring pop 0 get\n"
+      "  /offset exch 3 mul def\n"
+      "  /color_packet colormap offset 3 getinterval def\n"
+      "  color_packet 0 get 0.299 mul\n"
+      "  color_packet 1 get 0.587 mul add\n"
+      "  color_packet 2 get 0.114 mul add\n"
+      "  cvi\n"
+      "  /gray_packet exch def\n"
+      "  compression 0 eq\n"
+      "  {\n"
+      "    /number_pixels 1 def\n"
+      "  }\n"
+      "  {\n"
+      "    currentfile byte readhexstring pop 0 get\n"
+      "    /number_pixels exch 1 add def\n"
+      "  } ifelse\n"
+      "  0 1 number_pixels 1 sub\n"
+      "  {\n"
+      "    pixels exch gray_packet put\n"
+      "  } for\n"
+      "  pixels 0 number_pixels getinterval\n"
+      "} bind def\n"
+      "\n"
+      "/PseudoClassPacket\n"
+      "{\n"
+      "  %\n"
+      "  % Get a PseudoClass packet.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   index: index into the colormap.\n"
+      "  %   length: number of pixels minus one of this color (optional).\n"
+      "  %\n"
+      "  currentfile byte readhexstring pop 0 get\n"
+      "  /offset exch 3 mul def\n"
+      "  /color_packet colormap offset 3 getinterval def\n"
+      "  compression 0 eq\n"
+      "  {\n"
+      "    /number_pixels 3 def\n"
+      "  }\n"
+      "  {\n"
+      "    currentfile byte readhexstring pop 0 get\n"
+      "    /number_pixels exch 1 add 3 mul def\n"
+      "  } ifelse\n"
+      "  0 3 number_pixels 1 sub\n"
+      "  {\n"
+      "    pixels exch color_packet putinterval\n"
+      "  } for\n"
+      "  pixels 0 number_pixels getinterval\n"
+      "} bind def\n"
+      "\n"
+      "/PseudoClassImage\n"
+      "{\n"
+      "  %\n"
+      "  % Display a PseudoClass image.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   class: 0-PseudoClass or 1-Grayscale.\n"
+      "  %\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /class exch def pop\n"
+      "  class 0 gt\n"
+      "  {\n"
+      "    currentfile buffer readline pop\n"
+      "    token pop /depth exch def pop\n"
+      "    /grays columns 8 add depth sub depth mul 8 idiv string def\n"
+      "    columns rows depth\n"
+      "    [\n"
+      "      columns 0 0\n"
+      "      rows neg 0 rows\n"
+      "    ]\n"
+      "    { currentfile grays readhexstring pop } image\n"
+      "  }\n"
+      "  {\n"
+      "    %\n"
+      "    % Parameters:\n"
+      "    %   colors: number of colors in the colormap.\n"
+      "    %   colormap: red, green, blue color packets.\n"
+      "    %\n"
+      "    currentfile buffer readline pop\n"
+      "    token pop /colors exch def pop\n"
+      "    /colors colors 3 mul def\n"
+      "    /colormap colors string def\n"
+      "    currentfile colormap readhexstring pop pop\n"
+      "    systemdict /colorimage known\n"
+      "    {\n"
+      "      columns rows 8\n"
+      "      [\n"
+      "        columns 0 0\n"
+      "        rows neg 0 rows\n"
+      "      ]\n"
+      "      { PseudoClassPacket } false 3 colorimage\n"
+      "    }\n"
+      "    {\n"
+      "      %\n"
+      "      % No colorimage operator;  convert to grayscale.\n"
+      "      %\n"
+      "      columns rows 8\n"
+      "      [\n"
+      "        columns 0 0\n"
+      "        rows neg 0 rows\n"
+      "      ]\n"
+      "      { GrayPseudoClassPacket } image\n"
+      "    } ifelse\n"
+      "  } ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/DisplayImage\n"
+      "{\n"
+      "  %\n"
+      "  % Display a DirectClass or PseudoClass image.\n"
+      "  %\n"
+      "  % Parameters:\n"
+      "  %   x & y translation.\n"
+      "  %   x & y scale.\n"
+      "  %   label pointsize.\n"
+      "  %   image label.\n"
+      "  %   image columns & rows.\n"
+      "  %   class: 0-DirectClass or 1-PseudoClass.\n"
+      "  %   compression: 0-none or 1-RunlengthEncoded.\n"
+      "  %   hex color packets.\n"
+      "  %\n"
+      "  gsave\n"
+      "  /buffer 512 string def\n"
+      "  /byte 1 string def\n"
+      "  /color_packet 3 string def\n"
+      "  /pixels 768 string def\n"
+      "\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  x y translate\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /pointsize exch def pop\n",
+    PostscriptEpilog[] =
+      "  x y scale\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /columns exch def\n"
+      "  token pop /rows exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /class exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /compression exch def pop\n"
+      "  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse\n"
+      "  grestore\n";
 
   char
     buffer[MagickPathExtent],
@@ -1499,7 +1327,6 @@
     compression;
 
   const char
-    *const *s,
     *value;
 
   const StringInfo
@@ -1632,13 +1459,14 @@
       else
         if ((image->gravity != UndefinedGravity) &&
             (LocaleCompare(image_info->magick,"PS") == 0))
-          (void) CopyMagickString(page_geometry,PSPageGeometry,MagickPathExtent);
+          (void) CopyMagickString(page_geometry,PSPageGeometry,
+            MagickPathExtent);
     (void) ConcatenateMagickString(page_geometry,">",MagickPathExtent);
     (void) ParseMetaGeometry(page_geometry,&geometry.x,&geometry.y,
       &geometry.width,&geometry.height);
-    scale.x=(double) (geometry.width*delta.x)/resolution.x;
+    scale.x=PerceptibleReciprocal(resolution.x)*geometry.width*delta.x;
     geometry.width=(size_t) floor(scale.x+0.5);
-    scale.y=(double) (geometry.height*delta.y)/resolution.y;
+    scale.y=PerceptibleReciprocal(resolution.y)*geometry.height*delta.y;
     geometry.height=(size_t) floor(scale.y+0.5);
     (void) ParseAbsoluteGeometry(page_geometry,&media_info);
     (void) ParseGravityGeometry(image,page_geometry,&page_info,exception);
@@ -1669,7 +1497,7 @@
         (void) FormatLocaleString(buffer,MagickPathExtent,"%%%%Title: (%s)\n",
           image->filename);
         (void) WriteBlobString(image,buffer);
-        timer=time((time_t *) NULL);
+        timer=GetMagickTime();
         (void) FormatMagickTime(timer,MagickPathExtent,date);
         (void) FormatLocaleString(buffer,MagickPathExtent,
           "%%%%CreationDate: (%s)\n",date);
@@ -1837,11 +1665,8 @@
         /*
           Output Postscript commands.
         */
-        for (s=PostscriptProlog; *s != (char *) NULL; s++)
-        {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"%s\n",*s);
-          (void) WriteBlobString(image,buffer);
-        }
+        (void) WriteBlob(image,sizeof(PostscriptProlog)-1,
+          (const unsigned char *) PostscriptProlog);
         value=GetImageProperty(image,"label",exception);
         if (value != (const char *) NULL)
           {
@@ -1857,11 +1682,8 @@
               (void) WriteBlobString(image,buffer);
             }
           }
-        for (s=PostscriptEpilog; *s != (char *) NULL; s++)
-        {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"%s\n",*s);
-          (void) WriteBlobString(image,buffer);
-        }
+        (void) WriteBlob(image,sizeof(PostscriptEpilog)-1,
+          (const unsigned char *) PostscriptEpilog);
         if (LocaleCompare(image_info->magick,"PS") == 0)
           (void) WriteBlobString(image,"  showpage\n");
         (void) WriteBlobString(image,"} bind def\n");
@@ -1912,7 +1734,7 @@
       }
     (void) memset(&pixel,0,sizeof(pixel));
     pixel.alpha=(MagickRealType) TransparentAlpha;
-    index=0;
+    index=(Quantum) 0;
     x=0;
     if ((image_info->type != TrueColorType) &&
         (SetImageGray(image,exception) != MagickFalse))
@@ -2230,8 +2052,13 @@
                   p+=GetPixelChannels(image);
                 }
                 q=PopHexPixel(hex_digits,(size_t) index,q);
-                q=PopHexPixel(hex_digits,(size_t)
-                  MagickMin(length,0xff),q);
+                q=PopHexPixel(hex_digits,(size_t) MagickMin(length,0xff),q);
+                if ((q-pixels+6) >= 80)
+                  {
+                    *q++='\n';
+                    (void) WriteBlob(image,q-pixels,pixels);
+                    q=pixels;
+                  }
                 if (image->previous == (Image *) NULL)
                   {
                     status=SetImageProgress(image,SaveImageTag,
diff --git a/coders/ps.h b/coders/ps.h
index afa8373..847c04a 100644
--- a/coders/ps.h
+++ b/coders/ps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ps2.c b/coders/ps2.c
index e883f56..98cbc87 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -57,6 +57,7 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/monitor-private.h"
@@ -67,7 +68,7 @@
 #include "MagickCore/resource_.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
-#include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/utility.h"
 
 /*
@@ -203,19 +204,19 @@
   unsigned char
     *group4;
 
-  status=MagickTrue;
-  write_info=CloneImageInfo(image_info);
-  (void) CopyMagickString(write_info->filename,"GROUP4:",MagickPathExtent);
-  (void) CopyMagickString(write_info->magick,"GROUP4",MagickPathExtent);
   group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
   if (group4_image == (Image *) NULL)
     return(MagickFalse);
+  write_info=CloneImageInfo(image_info);
+  (void) CopyMagickString(write_info->filename,"GROUP4:",MagickPathExtent);
+  (void) CopyMagickString(write_info->magick,"GROUP4",MagickPathExtent);
   group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
     exception);
+  write_info=DestroyImageInfo(write_info);
   group4_image=DestroyImage(group4_image);
   if (group4 == (unsigned char *) NULL)
     return(MagickFalse);
-  write_info=DestroyImageInfo(write_info);
+  status=MagickTrue;
   if (WriteBlob(image,length,group4) != (ssize_t) length)
     status=MagickFalse;
   group4=(unsigned char *) RelinquishMagickMemory(group4);
@@ -226,157 +227,151 @@
   ExceptionInfo *exception)
 {
   static const char
-    *const PostscriptProlog[]=
-    {
-      "%%%%BeginProlog",
-      "%%",
-      "%% Display a color image.  The image is displayed in color on",
-      "%% Postscript viewers or printers that support color, otherwise",
-      "%% it is displayed as grayscale.",
-      "%%",
-      "/DirectClassImage",
-      "{",
-      "  %%",
-      "  %% Display a DirectClass image.",
-      "  %%",
-      "  colorspace 0 eq",
-      "  {",
-      "    /DeviceRGB setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /Decode [0 1 0 1 0 1]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      compression 0 gt",
-      "      { /DataSource pixel_stream %s }",
-      "      { /DataSource pixel_stream %s } ifelse",
-      "    >> image",
-      "  }",
-      "  {",
-      "    /DeviceCMYK setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /Decode [1 0 1 0 1 0 1 0]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      compression 0 gt",
-      "      { /DataSource pixel_stream %s }",
-      "      { /DataSource pixel_stream %s } ifelse",
-      "    >> image",
-      "  } ifelse",
-      "} bind def",
-      "",
-      "/PseudoClassImage",
-      "{",
-      "  %%",
-      "  %% Display a PseudoClass image.",
-      "  %%",
-      "  %% Parameters:",
-      "  %%   colors: number of colors in the colormap.",
-      "  %%",
-      "  currentfile buffer readline pop",
-      "  token pop /colors exch def pop",
-      "  colors 0 eq",
-      "  {",
-      "    %%",
-      "    %% Image is grayscale.",
-      "    %%",
-      "    currentfile buffer readline pop",
-      "    token pop /bits exch def pop",
-      "    /DeviceGray setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent bits",
-      "      /Decode [0 1]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      compression 0 gt",
-      "      { /DataSource pixel_stream %s }",
-      "      {",
-      "        /DataSource pixel_stream %s",
-      "        <<",
-      "           /K " CCITTParam,
-      "           /Columns columns",
-      "           /Rows rows",
-      "        >> /CCITTFaxDecode filter",
-      "      } ifelse",
-      "    >> image",
-      "  }",
-      "  {",
-      "    %%",
-      "    %% Parameters:",
-      "    %%   colormap: red, green, blue color packets.",
-      "    %%",
-      "    /colormap colors 3 mul string def",
-      "    currentfile colormap readhexstring pop pop",
-      "    currentfile buffer readline pop",
-      "    [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /Decode [0 255]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      compression 0 gt",
-      "      { /DataSource pixel_stream %s }",
-      "      { /DataSource pixel_stream %s } ifelse",
-      "    >> image",
-      "  } ifelse",
-      "} bind def",
-      "",
-      "/DisplayImage",
-      "{",
-      "  %%",
-      "  %% Display a DirectClass or PseudoClass image.",
-      "  %%",
-      "  %% Parameters:",
-      "  %%   x & y translation.",
-      "  %%   x & y scale.",
-      "  %%   label pointsize.",
-      "  %%   image label.",
-      "  %%   image columns & rows.",
-      "  %%   class: 0-DirectClass or 1-PseudoClass.",
-      "  %%   colorspace: 0-RGB or 1-CMYK.",
-      "  %%   compression: 0-RLECompression or 1-NoCompression.",
-      "  %%   hex color packets.",
-      "  %%",
-      "  gsave",
-      "  /buffer 512 string def",
-      "  /pixel_stream currentfile def",
-      "",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  x y translate",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /pointsize exch def pop",
-      (const char *) NULL
-    },
-    *const PostscriptEpilog[]=
-    {
-      "  x y scale",
-      "  currentfile buffer readline pop",
-      "  token pop /columns exch def",
-      "  token pop /rows exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /class exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /colorspace exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /compression exch def pop",
-      "  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse",
-      "  grestore",
-      (const char *) NULL
-    };
+    PostscriptProlog[] =
+      "%%%%BeginProlog\n"
+      "%%\n"
+      "%% Display a color image.  The image is displayed in color on\n"
+      "%% Postscript viewers or printers that support color, otherwise\n"
+      "%% it is displayed as grayscale.\n"
+      "%%\n"
+      "/DirectClassImage\n"
+      "{\n"
+      "  %%\n"
+      "  %% Display a DirectClass image.\n"
+      "  %%\n"
+      "  colorspace 0 eq\n"
+      "  {\n"
+      "    /DeviceRGB setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /Decode [0 1 0 1 0 1]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      compression 0 gt\n"
+      "      { /DataSource pixel_stream %s }\n"
+      "      { /DataSource pixel_stream %s } ifelse\n"
+      "    >> image\n"
+      "  }\n"
+      "  {\n"
+      "    /DeviceCMYK setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /Decode [1 0 1 0 1 0 1 0]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      compression 0 gt\n"
+      "      { /DataSource pixel_stream %s }\n"
+      "      { /DataSource pixel_stream %s } ifelse\n"
+      "    >> image\n"
+      "  } ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/PseudoClassImage\n"
+      "{\n"
+      "  %%\n"
+      "  %% Display a PseudoClass image.\n"
+      "  %%\n"
+      "  %% Parameters:\n"
+      "  %%   colors: number of colors in the colormap.\n"
+      "  %%\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /colors exch def pop\n"
+      "  colors 0 eq\n"
+      "  {\n"
+      "    %%\n"
+      "    %% Image is grayscale.\n"
+      "    %%\n"
+      "    currentfile buffer readline pop\n"
+      "    token pop /bits exch def pop\n"
+      "    /DeviceGray setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent bits\n"
+      "      /Decode [0 1]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      compression 0 gt\n"
+      "      { /DataSource pixel_stream %s }\n"
+      "      {\n"
+      "        /DataSource pixel_stream %s\n"
+      "        <<\n"
+      "           /K " CCITTParam "\n"
+      "           /Columns columns\n"
+      "           /Rows rows\n"
+      "        >> /CCITTFaxDecode filter\n"
+      "      } ifelse\n"
+      "    >> image\n"
+      "  }\n"
+      "  {\n"
+      "    %%\n"
+      "    %% Parameters:\n"
+      "    %%   colormap: red, green, blue color packets.\n"
+      "    %%\n"
+      "    /colormap colors 3 mul string def\n"
+      "    currentfile colormap readhexstring pop pop\n"
+      "    currentfile buffer readline pop\n"
+      "    [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /Decode [0 255]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      compression 0 gt\n"
+      "      { /DataSource pixel_stream %s }\n"
+      "      { /DataSource pixel_stream %s } ifelse\n"
+      "    >> image\n"
+      "  } ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/DisplayImage\n"
+      "{\n"
+      "  %%\n"
+      "  %% Display a DirectClass or PseudoClass image.\n"
+      "  %%\n"
+      "  %% Parameters:\n"
+      "  %%   x & y translation.\n"
+      "  %%   x & y scale.\n"
+      "  %%   label pointsize.\n"
+      "  %%   image label.\n"
+      "  %%   image columns & rows.\n"
+      "  %%   class: 0-DirectClass or 1-PseudoClass.\n"
+      "  %%   colorspace: 0-RGB or 1-CMYK.\n"
+      "  %%   compression: 0-RLECompression or 1-NoCompression.\n"
+      "  %%   hex color packets.\n"
+      "  %%\n"
+      "  gsave\n"
+      "  /buffer 512 string def\n"
+      "  /pixel_stream currentfile def\n"
+      "\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  x y translate\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /pointsize exch def pop\n",
+    PostscriptEpilog[] =
+      "  x y scale\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /columns exch def\n"
+      "  token pop /rows exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /class exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /colorspace exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /compression exch def pop\n"
+      "  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse\n"
+      "  grestore\n";
 
   char
     buffer[MagickPathExtent],
@@ -388,7 +383,7 @@
     compression;
 
   const char
-    *const *q,
+    *filter,
     *value;
 
   double
@@ -516,8 +511,8 @@
       }
     if (image->units == PixelsPerCentimeterResolution)
       {
-        resolution.x=(size_t) (100.0*2.54*resolution.x+0.5)/100.0;
-        resolution.y=(size_t) (100.0*2.54*resolution.y+0.5)/100.0;
+        resolution.x=(double) (100.0*2.54*resolution.x+0.5)/100.0;
+        resolution.y=(double) (100.0*2.54*resolution.y+0.5)/100.0;
       }
     SetGeometry(image,&geometry);
     (void) FormatLocaleString(page_geometry,MagickPathExtent,"%.20gx%.20g",
@@ -532,13 +527,14 @@
       else
         if ((image->gravity != UndefinedGravity) &&
             (LocaleCompare(image_info->magick,"PS") == 0))
-          (void) CopyMagickString(page_geometry,PSPageGeometry,MagickPathExtent);
+          (void) CopyMagickString(page_geometry,PSPageGeometry,
+            MagickPathExtent);
     (void) ConcatenateMagickString(page_geometry,">",MagickPathExtent);
     (void) ParseMetaGeometry(page_geometry,&geometry.x,&geometry.y,
       &geometry.width,&geometry.height);
-    scale.x=(double) (geometry.width*delta.x)/resolution.x;
+    scale.x=PerceptibleReciprocal(resolution.x)*geometry.width*delta.x;
     geometry.width=(size_t) floor(scale.x+0.5);
-    scale.y=(double) (geometry.height*delta.y)/resolution.y;
+    scale.y=PerceptibleReciprocal(resolution.y)*geometry.height*delta.y;
     geometry.height=(size_t) floor(scale.y+0.5);
     (void) ParseAbsoluteGeometry(page_geometry,&media_info);
     (void) ParseGravityGeometry(image,page_geometry,&page_info,exception);
@@ -569,7 +565,7 @@
         (void) FormatLocaleString(buffer,MagickPathExtent,"%%%%Title: (%s)\n",
           image->filename);
         (void) WriteBlobString(image,buffer);
-        timer=time((time_t *) NULL);
+        timer=GetMagickTime();
         (void) FormatMagickTime(timer,MagickPathExtent,date);
         (void) FormatLocaleString(buffer,MagickPathExtent,
           "%%%%CreationDate: (%s)\n",date);
@@ -620,44 +616,38 @@
         /*
           Output Postscript commands.
         */
-        for (q=PostscriptProlog; *q; q++)
+        switch (compression)
         {
-          switch (compression)
+          case NoCompression:
           {
-            case NoCompression:
-            {
-              (void) FormatLocaleString(buffer,MagickPathExtent,*q,
-                "/ASCII85Decode filter");
-              break;
-            }
-            case JPEGCompression:
-            {
-              (void) FormatLocaleString(buffer,MagickPathExtent,*q,
-                "/DCTDecode filter");
-              break;
-            }
-            case LZWCompression:
-            {
-              (void) FormatLocaleString(buffer,MagickPathExtent,*q,
-                "/LZWDecode filter");
-              break;
-            }
-            case FaxCompression:
-            case Group4Compression:
-            {
-              (void) FormatLocaleString(buffer,MagickPathExtent,*q," ");
-              break;
-            }
-            default:
-            {
-              (void) FormatLocaleString(buffer,MagickPathExtent,*q,
-                "/RunLengthDecode filter");
-              break;
-            }
+            filter="/ASCII85Decode filter";
+            break;
           }
-          (void) WriteBlobString(image,buffer);
-          (void) WriteBlobByte(image,'\n');
+          case JPEGCompression:
+          {
+            filter="/DCTDecode filter";
+            break;
+          }
+          case LZWCompression:
+          {
+            filter="/LZWDecode filter";
+            break;
+          }
+          case FaxCompression:
+          case Group4Compression:
+          {
+            filter=" ";
+            break;
+          }
+          default:
+          {
+            filter="/RunLengthDecode filter";
+            break;
+          }
         }
+        (void) FormatLocaleString(buffer,MagickPathExtent,PostscriptProlog,
+          filter,filter,filter,filter,filter,filter,filter,filter);
+        (void) WriteBlob(image,strlen(buffer),buffer);
         value=GetImageProperty(image,"label",exception);
         if (value != (const char *) NULL)
           {
@@ -673,11 +663,8 @@
               (void) WriteBlobString(image,buffer);
             }
           }
-        for (q=PostscriptEpilog; *q; q++)
-        {
-          (void) FormatLocaleString(buffer,MagickPathExtent,"%s\n",*q);
-          (void) WriteBlobString(image,buffer);
-        }
+        (void) WriteBlob(image,sizeof(PostscriptEpilog)-1,
+          (const unsigned char *) PostscriptEpilog);
         if (LocaleCompare(image_info->magick,"PS2") == 0)
           (void) WriteBlobString(image,"  showpage\n");
         (void) WriteBlobString(image,"} bind def\n");
diff --git a/coders/ps2.h b/coders/ps2.h
index 77e43a6..cc5b75f 100644
--- a/coders/ps2.h
+++ b/coders/ps2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ps3.c b/coders/ps3.c
index 24bccf1..45affdb 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -60,6 +60,7 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/option.h"
@@ -70,9 +71,9 @@
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/module.h"
+#include "MagickCore/timer-private.h"
 #include "MagickCore/token.h"
 #include "MagickCore/utility.h"
-#include "MagickCore/module.h"
 
 /*
   Define declarations.
@@ -218,19 +219,19 @@
   unsigned char
     *group4;
 
+  group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
+  if (group4_image == (Image *) NULL)
+    return(MagickFalse);
   status=MagickTrue;
   write_info=CloneImageInfo(image_info);
   (void) CopyMagickString(write_info->filename,"GROUP4:",MagickPathExtent);
   (void) CopyMagickString(write_info->magick,"GROUP4",MagickPathExtent);
-  group4_image=CloneImage(inject_image,0,0,MagickTrue,exception);
-  if (group4_image == (Image *) NULL)
-    return(MagickFalse);
   group4=(unsigned char *) ImageToBlob(write_info,group4_image,&length,
     exception);
   group4_image=DestroyImage(group4_image);
+  write_info=DestroyImageInfo(write_info);
   if (group4 == (unsigned char *) NULL)
     return(MagickFalse);
-  write_info=DestroyImageInfo(write_info);
   if (WriteBlob(image,length,group4) != (ssize_t) length)
     status=MagickFalse;
   group4=(unsigned char *) RelinquishMagickMemory(group4);
@@ -623,196 +624,191 @@
   ExceptionInfo *exception)
 {
   static const char
-    *const PostscriptProlog[]=
-    {
-      "/ByteStreamDecodeFilter",
-      "{",
-      "  /z exch def",
-      "  /r exch def",
-      "  /c exch def",
-      "  z " PS3_NoCompression " eq { /ASCII85Decode filter } if",
-      "  z " PS3_FaxCompression " eq",
-      "  {",
-      "    <<",
-      "      /K " CCITTParam,
-      "      /Columns c",
-      "      /Rows r",
-      "    >>",
-      "    /CCITTFaxDecode filter",
-      "  } if",
-      "  z " PS3_JPEGCompression " eq { /DCTDecode filter } if",
-      "  z " PS3_LZWCompression " eq { /LZWDecode filter } if",
-      "  z " PS3_RLECompression " eq { /RunLengthDecode filter } if",
-      "  z " PS3_ZipCompression " eq { /FlateDecode filter } if",
-      "} bind def",
-      "",
-      "/DirectClassImageDict",
-      "{",
-      "  colorspace " PS3_RGBColorspace " eq",
-      "  {",
-      "    /DeviceRGB setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /DataSource pixel_stream",
-      "      /MultipleDataSources false",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      /Decode [0 1 0 1 0 1]",
-      "    >>",
-      "  }",
-      "  {",
-      "    /DeviceCMYK setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /DataSource pixel_stream",
-      "      /MultipleDataSources false",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      /Decode",
-      "        compression " PS3_JPEGCompression " eq",
-      "        { [1 0 1 0 1 0 1 0] }",
-      "        { [0 1 0 1 0 1 0 1] }",
-      "        ifelse",
-      "    >>",
-      "  }",
-      "  ifelse",
-      "} bind def",
-      "",
-      "/PseudoClassImageDict",
-      "{",
-      "  % Colors in colormap image.",
-      "  currentfile buffer readline pop",
-      "  token pop /colors exch def pop",
-      "  colors 0 eq",
-      "  {",
-      "    % Depth of grayscale image.",
-      "    currentfile buffer readline pop",
-      "    token pop /bits exch def pop",
-      "    /DeviceGray setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent bits",
-      "      /Decode [0 1]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      /DataSource pixel_stream",
-      "    >>",
-      "  }",
-      "  {",
-      "    % RGB colormap.",
-      "    /colormap colors 3 mul string def",
-      "    compression " PS3_NoCompression " eq",
-      "    { currentfile /ASCII85Decode filter colormap readstring pop pop }",
-      "    { currentfile colormap readstring pop pop }",
-      "    ifelse",
-      "    [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 8",
-      "      /Decode [0 255]",
-      "      /ImageMatrix [columns 0 0 rows neg 0 rows]",
-      "      /DataSource pixel_stream",
-      "    >>",
-      "  }",
-      "  ifelse",
-      "} bind def",
-      "",
-      "/NonMaskedImageDict",
-      "{",
-      "  class " PS3_PseudoClass " eq",
-      "  { PseudoClassImageDict }",
-      "  { DirectClassImageDict }",
-      "  ifelse",
-      "} bind def",
-      "",
-      "/MaskedImageDict",
-      "{",
-      "  <<",
-      "    /ImageType 3",
-      "    /InterleaveType 3",
-      "    /DataDict NonMaskedImageDict",
-      "    /MaskDict",
-      "    <<",
-      "      /ImageType 1",
-      "      /Width columns",
-      "      /Height rows",
-      "      /BitsPerComponent 1",
-      "      /DataSource mask_stream",
-      "      /MultipleDataSources false",
-      "      /ImageMatrix [ columns 0 0 rows neg 0 rows]",
-      "      /Decode [ 0 1 ]",
-      "    >>",
-      "  >>",
-      "} bind def",
-      "",
-      "/ClipImage",
-      "{} def",
-      "",
-      "/DisplayImage",
-      "{",
-      "  gsave",
-      "  /buffer 512 string def",
-      "  % Translation.",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  x y translate",
-      "  % Image size and font size.",
-      "  currentfile buffer readline pop",
-      "  token pop /x exch def",
-      "  token pop /y exch def pop",
-      "  currentfile buffer readline pop",
-      "  token pop /pointsize exch def pop",
-      (const char *) NULL
-    },
-    *const PostscriptEpilog[]=
-    {
-      "  x y scale",
-      "  % Clipping path.",
-      "  currentfile buffer readline pop",
-      "  token pop /clipped exch def pop",
-      "  % Showpage.",
-      "  currentfile buffer readline pop",
-      "  token pop /sp exch def pop",
-      "  % Image pixel size.",
-      "  currentfile buffer readline pop",
-      "  token pop /columns exch def",
-      "  token pop /rows exch def pop",
-      "  % Colorspace (RGB/CMYK).",
-      "  currentfile buffer readline pop",
-      "  token pop /colorspace exch def pop",
-      "  % Transparency.",
-      "  currentfile buffer readline pop",
-      "  token pop /alpha exch def pop",
-      "  % Stencil mask?",
-      "  currentfile buffer readline pop",
-      "  token pop /stencil exch def pop",
-      "  % Image class (direct/pseudo).",
-      "  currentfile buffer readline pop",
-      "  token pop /class exch def pop",
-      "  % Compression type.",
-      "  currentfile buffer readline pop",
-      "  token pop /compression exch def pop",
-      "  % Clip and render.",
-      "  /pixel_stream currentfile columns rows compression ByteStreamDecodeFilter def",
-      "  clipped { ClipImage } if",
-      "  alpha stencil not and",
-      "  { MaskedImageDict mask_stream resetfile }",
-      "  { NonMaskedImageDict }",
-      "  ifelse",
-      "  stencil { 0 setgray imagemask } { image } ifelse",
-      "  grestore",
-      "  sp { showpage } if",
-      "} bind def",
-      (const char *) NULL
-    };
+    PostscriptProlog[] =
+      "/ByteStreamDecodeFilter\n"
+      "{\n"
+      "  /z exch def\n"
+      "  /r exch def\n"
+      "  /c exch def\n"
+      "  z " PS3_NoCompression " eq { /ASCII85Decode filter } if\n"
+      "  z " PS3_FaxCompression " eq\n"
+      "  {\n"
+      "    <<\n"
+      "      /K " CCITTParam "\n"
+      "      /Columns c\n"
+      "      /Rows r\n"
+      "    >>\n"
+      "    /CCITTFaxDecode filter\n"
+      "  } if\n"
+      "  z " PS3_JPEGCompression " eq { /DCTDecode filter } if\n"
+      "  z " PS3_LZWCompression " eq { /LZWDecode filter } if\n"
+      "  z " PS3_RLECompression " eq { /RunLengthDecode filter } if\n"
+      "  z " PS3_ZipCompression " eq { /FlateDecode filter } if\n"
+      "} bind def\n"
+      "\n"
+      "/DirectClassImageDict\n"
+      "{\n"
+      "  colorspace " PS3_RGBColorspace " eq\n"
+      "  {\n"
+      "    /DeviceRGB setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /DataSource pixel_stream\n"
+      "      /MultipleDataSources false\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      /Decode [0 1 0 1 0 1]\n"
+      "    >>\n"
+      "  }\n"
+      "  {\n"
+      "    /DeviceCMYK setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /DataSource pixel_stream\n"
+      "      /MultipleDataSources false\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      /Decode\n"
+      "        compression " PS3_JPEGCompression " eq\n"
+      "        { [1 0 1 0 1 0 1 0] }\n"
+      "        { [0 1 0 1 0 1 0 1] }\n"
+      "        ifelse\n"
+      "    >>\n"
+      "  }\n"
+      "  ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/PseudoClassImageDict\n"
+      "{\n"
+      "  % Colors in colormap image.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /colors exch def pop\n"
+      "  colors 0 eq\n"
+      "  {\n"
+      "    % Depth of grayscale image.\n"
+      "    currentfile buffer readline pop\n"
+      "    token pop /bits exch def pop\n"
+      "    /DeviceGray setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent bits\n"
+      "      /Decode [0 1]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      /DataSource pixel_stream\n"
+      "    >>\n"
+      "  }\n"
+      "  {\n"
+      "    % RGB colormap.\n"
+      "    /colormap colors 3 mul string def\n"
+      "    compression " PS3_NoCompression " eq\n"
+      "    { currentfile /ASCII85Decode filter colormap readstring pop pop }\n"
+      "    { currentfile colormap readstring pop pop }\n"
+      "    ifelse\n"
+      "    [ /Indexed /DeviceRGB colors 1 sub colormap ] setcolorspace\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 8\n"
+      "      /Decode [0 255]\n"
+      "      /ImageMatrix [columns 0 0 rows neg 0 rows]\n"
+      "      /DataSource pixel_stream\n"
+      "    >>\n"
+      "  }\n"
+      "  ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/NonMaskedImageDict\n"
+      "{\n"
+      "  class " PS3_PseudoClass " eq\n"
+      "  { PseudoClassImageDict }\n"
+      "  { DirectClassImageDict }\n"
+      "  ifelse\n"
+      "} bind def\n"
+      "\n"
+      "/MaskedImageDict\n"
+      "{\n"
+      "  <<\n"
+      "    /ImageType 3\n"
+      "    /InterleaveType 3\n"
+      "    /DataDict NonMaskedImageDict\n"
+      "    /MaskDict\n"
+      "    <<\n"
+      "      /ImageType 1\n"
+      "      /Width columns\n"
+      "      /Height rows\n"
+      "      /BitsPerComponent 1\n"
+      "      /DataSource mask_stream\n"
+      "      /MultipleDataSources false\n"
+      "      /ImageMatrix [ columns 0 0 rows neg 0 rows]\n"
+      "      /Decode [ 0 1 ]\n"
+      "    >>\n"
+      "  >>\n"
+      "} bind def\n"
+      "\n"
+      "/ClipImage\n"
+      "{} def\n"
+      "\n"
+      "/DisplayImage\n"
+      "{\n"
+      "  gsave\n"
+      "  /buffer 512 string def\n"
+      "  % Translation.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  x y translate\n"
+      "  % Image size and font size.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /x exch def\n"
+      "  token pop /y exch def pop\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /pointsize exch def pop\n";
+  static const char
+    PostscriptEpilog[] =
+      "  x y scale\n"
+      "  % Clipping path.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /clipped exch def pop\n"
+      "  % Showpage.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /sp exch def pop\n"
+      "  % Image pixel size.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /columns exch def\n"
+      "  token pop /rows exch def pop\n"
+      "  % Colorspace (RGB/CMYK).\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /colorspace exch def pop\n"
+      "  % Transparency.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /alpha exch def pop\n"
+      "  % Stencil mask?\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /stencil exch def pop\n"
+      "  % Image class (direct/pseudo).\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /class exch def pop\n"
+      "  % Compression type.\n"
+      "  currentfile buffer readline pop\n"
+      "  token pop /compression exch def pop\n"
+      "  % Clip and render.\n"
+      "  /pixel_stream currentfile columns rows compression ByteStreamDecodeFilter def\n"
+      "  clipped { ClipImage } if\n"
+      "  alpha stencil not and\n"
+      "  { MaskedImageDict mask_stream resetfile }\n"
+      "  { NonMaskedImageDict }\n"
+      "  ifelse\n"
+      "  stencil { 0 setgray imagemask } { image } ifelse\n"
+      "  grestore\n"
+      "  sp { showpage } if\n"
+      "} bind def\n";
 
   char
     buffer[MagickPathExtent],
@@ -825,7 +821,6 @@
 
   const char
     *option,
-    *const *q,
     *value;
 
   double
@@ -962,8 +957,8 @@
       }
     if (image->units == PixelsPerCentimeterResolution)
       {
-        resolution.x=(size_t) ((100.0*2.54*resolution.x+0.5)/100.0);
-        resolution.y=(size_t) ((100.0*2.54*resolution.y+0.5)/100.0);
+        resolution.x=(100.0*2.54*resolution.x+0.5)/100.0;
+        resolution.y=(100.0*2.54*resolution.y+0.5)/100.0;
       }
     SetGeometry(image,&geometry);
     (void) FormatLocaleString(page_geometry,MagickPathExtent,"%.20gx%.20g",
@@ -978,13 +973,14 @@
       else
         if ((image->gravity != UndefinedGravity) &&
             (LocaleCompare(image_info->magick,"PS") == 0))
-          (void) CopyMagickString(page_geometry,PSPageGeometry,MagickPathExtent);
+          (void) CopyMagickString(page_geometry,PSPageGeometry,
+            MagickPathExtent);
     (void) ConcatenateMagickString(page_geometry,">",MagickPathExtent);
     (void) ParseMetaGeometry(page_geometry,&geometry.x,&geometry.y,
       &geometry.width,&geometry.height);
-    scale.x=(double) (geometry.width*delta.x)/resolution.x;
+    scale.x=PerceptibleReciprocal(resolution.x)*geometry.width*delta.x;
     geometry.width=(size_t) floor(scale.x+0.5);
-    scale.y=(double) (geometry.height*delta.y)/resolution.y;
+    scale.y=PerceptibleReciprocal(resolution.y)*geometry.height*delta.y;
     geometry.height=(size_t) floor(scale.y+0.5);
     (void) ParseAbsoluteGeometry(page_geometry,&media_info);
     (void) ParseGravityGeometry(image,page_geometry,&page_info,exception);
@@ -1018,7 +1014,7 @@
         (void) FormatLocaleString(buffer,MagickPathExtent,"%%%%Title: %s\n",
           image->filename);
         (void) WriteBlobString(image,buffer);
-        timer=time((time_t *) NULL);
+        timer=GetMagickTime();
         (void) FormatMagickTime(timer,MagickPathExtent,date);
         (void) FormatLocaleString(buffer,MagickPathExtent,
           "%%%%CreationDate: %s\n",date);
@@ -1082,19 +1078,15 @@
         /*
           The static postscript procedures prolog.
         */
-        (void)WriteBlobString(image,"%%BeginProlog\n");
-        for (q=PostscriptProlog; *q; q++)
-        {
-          (void) WriteBlobString(image,*q);
-          (void) WriteBlobByte(image,'\n');
-        }
+        (void) WriteBlobString(image,"%%BeginProlog\n");
+        (void) WriteBlob(image,sizeof(PostscriptProlog)-1,PostscriptProlog);
         /*
           One label line for each line in label string.
         */
         value=GetImageProperty(image,"label",exception);
         if (value != (const char *) NULL)
           {
-              (void) WriteBlobString(image,"\n  %% Labels.\n  /Helvetica "
+            (void) WriteBlobString(image,"\n  %% Labels.\n  /Helvetica "
               " findfont pointsize scalefont setfont\n");
             for (i=(ssize_t) MultilineCensus(value)-1; i >= 0; i--)
             {
@@ -1108,12 +1100,8 @@
         /*
           The static postscript procedures epilog.
         */
-        for (q=PostscriptEpilog; *q; q++)
-        {
-          (void) WriteBlobString(image,*q);
-          (void) WriteBlobByte(image,'\n');
-        }
-        (void)WriteBlobString(image,"%%EndProlog\n");
+        (void) WriteBlob(image,sizeof(PostscriptEpilog)-1,PostscriptEpilog);
+        (void) WriteBlobString(image,"%%EndProlog\n");
       }
     (void) FormatLocaleString(buffer,MagickPathExtent,"%%%%Page: 1 %.20g\n",
       (double) page);
diff --git a/coders/ps3.h b/coders/ps3.h
index 66d8211..1b2a10f 100644
--- a/coders/ps3.h
+++ b/coders/ps3.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/psd-private.h b/coders/psd-private.h
index 84ca9c6..617e726 100644
--- a/coders/psd-private.h
+++ b/coders/psd-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -27,6 +27,9 @@
   char
     signature[4];
 
+  MagickBooleanType
+    has_merged_image;
+
   size_t
     rows,
     columns;
diff --git a/coders/psd.c b/coders/psd.c
index 9e6a1ab..bb48e9b 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -20,7 +20,7 @@
 %                                December 2013                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -312,7 +312,8 @@
   ssize_t
     y;
 
-  if (image->alpha_trait != BlendPixelTrait || image->colorspace != sRGBColorspace)
+  if ((image->alpha_trait != BlendPixelTrait) ||
+      (image->colorspace != sRGBColorspace))
     return(MagickTrue);
   option=GetImageOption(image_info,"psd:alpha-unblend");
   if (IsStringFalse(option) != MagickFalse)
@@ -334,10 +335,10 @@
       continue;
     q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
-    {
-      status=MagickFalse;
-      continue;
-    }
+      {
+        status=MagickFalse;
+        continue;
+      }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
       double
@@ -533,7 +534,7 @@
   random_info=AcquireRandomInfo();
   key_info=GetRandomKey(random_info,2+1);
   key=(char *) GetStringInfoDatum(key_info);
-  key[8]=(char ) layer_info->mask.background;
+  key[8]=(char) layer_info->mask.background;
   key[9]='\0';
   layer_info->mask.image->page.x+=layer_info->page.x;
   layer_info->mask.image->page.y+=layer_info->page.y;
@@ -755,9 +756,8 @@
   return(status);
 }
 
-static StringInfo *ParseImageResourceBlocks(Image *image,
-  const unsigned char *blocks,size_t length,
-  MagickBooleanType *has_merged_image,ExceptionInfo *exception)
+static StringInfo *ParseImageResourceBlocks(PSDInfo *psd_info,Image *image,
+  const unsigned char *blocks,size_t length,ExceptionInfo *exception)
 {
   const unsigned char
     *p;
@@ -836,7 +836,7 @@
       case 0x0421:
       {
         if ((offset > 4) && (*(p+4) == 0))
-          *has_merged_image=MagickFalse;
+          psd_info->has_merged_image=MagickFalse;
         p+=offset;
         break;
       }
@@ -931,18 +931,21 @@
       PixelInfo
         *color;
 
+      Quantum
+        index;
+
+      index=pixel;
+      if (packet_size == 1)
+        index=(Quantum) ScaleQuantumToChar(index);
+      index=(Quantum) ConstrainColormapIndex(image,(ssize_t) index,
+        exception);
+
       if (type == 0)
-        {
-          if (packet_size == 1)
-            SetPixelIndex(image,ScaleQuantumToChar(pixel),q);
-          else
-            SetPixelIndex(image,ScaleQuantumToShort(pixel),q);
-        }
-      color=image->colormap+(ssize_t) ConstrainColormapIndex(image,
-        (ssize_t) GetPixelIndex(image,q),exception);
+        SetPixelIndex(image,index,q);
       if ((type == 0) && (channels > 1))
         return;
-      else
+      color=image->colormap+(ssize_t) GetPixelIndex(image,q);
+      if (type != 0)
         color->alpha=(MagickRealType) pixel;
       SetPixelViaPixelInfo(image,color,q);
       return;
@@ -1021,22 +1024,23 @@
   {
     if (packet_size == 1)
       pixel=ScaleCharToQuantum(*p++);
-    else if (packet_size == 2)
-      {
-        unsigned short
-          nibble;
-
-        p=PushShortPixel(MSBEndian,p,&nibble);
-        pixel=ScaleShortToQuantum(nibble);
-      }
     else
-      {
-        MagickFloatType
-          nibble;
+      if (packet_size == 2)
+        {
+          unsigned short
+            nibble;
 
-        p=PushFloatPixel(MSBEndian,p,&nibble);
-        pixel=ClampToQuantum((MagickRealType)QuantumRange*nibble);
-      }
+          p=PushShortPixel(MSBEndian,p,&nibble);
+          pixel=ScaleShortToQuantum(nibble);
+        }
+      else
+        {
+          MagickFloatType
+            nibble;
+
+          p=PushFloatPixel(MSBEndian,p,&nibble);
+          pixel=ClampToQuantum((MagickRealType) (QuantumRange*nibble));
+        }
     if (image->depth > 1)
       {
         SetPSDPixel(image,channels,type,packet_size,pixel,q,exception);
@@ -1091,6 +1095,7 @@
   if (pixels == (unsigned char *) NULL)
     ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
       image->filename);
+  (void) memset(pixels,0,row_size*sizeof(*pixels));
 
   status=MagickTrue;
   for (y=0; y < (ssize_t) image->rows; y++)
@@ -1383,6 +1388,7 @@
         layer_info->mask.page.height,MagickFalse,exception);
       if (mask != (Image *) NULL)
         {
+          (void) ResetImagePixels(mask,exception);
           (void) SetImageType(mask,GrayscaleType,exception);
           channel_image=mask;
         }
@@ -1566,6 +1572,8 @@
       type;
 
     type=layer_info->channel_info[i].type;
+    if ((i == 0) && (psd_info->mode == IndexedMode) && (type != 0))
+      return(MagickFalse);
     if (type == -1)
       {
         channel_type|=AlphaChannel;
@@ -1627,9 +1635,11 @@
   layer_info=(LayerInfo *) RelinquishMagickMemory(layer_info);
 }
 
-static inline MagickBooleanType PSDSkipImage(const ImageInfo *image_info,
-  const size_t index)
+static inline MagickBooleanType PSDSkipImage(const PSDInfo *psd_info,
+  const ImageInfo *image_info,const size_t index)
 {
+  if (psd_info->has_merged_image == MagickFalse)
+      return(MagickFalse);
   if (image_info->number_scenes == 0)
     return(MagickFalse);
   if (index < image_info->scene)
@@ -1660,6 +1670,7 @@
 
   ssize_t
     count,
+    index,
     j,
     number_layers;
 
@@ -1977,10 +1988,11 @@
       return(MagickTrue);
     }
   status=MagickTrue;
+  index=0;
   for (i=0; i < number_layers; i++)
   {
     if ((layer_info[i].image == (Image *) NULL) ||
-        (PSDSkipImage(image_info,i) != MagickFalse))
+        (PSDSkipImage(psd_info, image_info,++index) != MagickFalse))
       {
         for (j=0; j < (ssize_t) layer_info[i].channels; j++)
         {
@@ -2112,7 +2124,6 @@
     *image;
 
   MagickBooleanType
-    has_merged_image,
     skip_layers;
 
   MagickOffsetType
@@ -2212,22 +2223,26 @@
       psd_info.min_channels=4;
       (void) SetImageColorspace(image,CMYKColorspace,exception);
     }
-  else if ((psd_info.mode == BitmapMode) || (psd_info.mode == GrayscaleMode) ||
-           (psd_info.mode == DuotoneMode))
-    {
-      if (psd_info.depth != 32)
-        {
-          status=AcquireImageColormap(image,(size_t) (psd_info.depth < 16 ?
-            256 : 65536),exception);
-          if (status == MagickFalse)
-            ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-          if (image->debug != MagickFalse)
-            (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-              "  Image colormap allocated");
-        }
-      psd_info.min_channels=1;
-      (void) SetImageColorspace(image,GRAYColorspace,exception);
-    }
+  else
+    if ((psd_info.mode == BitmapMode) || (psd_info.mode == GrayscaleMode) ||
+        (psd_info.mode == DuotoneMode))
+      {
+        if (psd_info.depth != 32)
+          {
+            status=AcquireImageColormap(image,MagickMin((size_t)
+              (psd_info.depth < 16 ? 256 : 65536), MaxColormapSize),exception);
+            if (status == MagickFalse)
+              ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+            if (image->debug != MagickFalse)
+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+                "  Image colormap allocated");
+          }
+        psd_info.min_channels=1;
+        (void) SetImageColorspace(image,GRAYColorspace,exception);
+      }
+    else
+      if (psd_info.mode == IndexedMode)
+        psd_info.min_channels=1;
   if (psd_info.channels < psd_info.min_channels)
     ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   /*
@@ -2276,7 +2291,7 @@
     }
   if ((image->depth == 1) && (image->storage_class != PseudoClass))
     ThrowReaderException(CorruptImageError, "ImproperImageHeader");
-  has_merged_image=MagickTrue;
+  psd_info.has_merged_image=MagickTrue;
   profile=(StringInfo *) NULL;
   length=ReadBlobMSBLong(image);
   if (length != 0)
@@ -2304,8 +2319,8 @@
           blocks=(unsigned char *) RelinquishMagickMemory(blocks);
           ThrowReaderException(CorruptImageError,"ImproperImageHeader");
         }
-      profile=ParseImageResourceBlocks(image,blocks,(size_t) length,
-        &has_merged_image,exception);
+      profile=ParseImageResourceBlocks(&psd_info,image,blocks,(size_t) length,
+        exception);
       blocks=(unsigned char *) RelinquishMagickMemory(blocks);
     }
   /*
@@ -2320,7 +2335,7 @@
   offset=TellBlob(image);
   skip_layers=MagickFalse;
   if ((image_info->number_scenes == 1) && (image_info->scene == 0) &&
-      (has_merged_image != MagickFalse))
+      (psd_info.has_merged_image != MagickFalse))
     {
       if (image->debug != MagickFalse)
         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -2373,10 +2388,10 @@
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
       "  reading the precombined layer");
   imageListLength=GetImageListLength(image);
-  if ((has_merged_image != MagickFalse) || (imageListLength == 1))
-    has_merged_image=(MagickBooleanType) ReadPSDMergedImage(image_info,image,
-      &psd_info,exception);
-  if ((has_merged_image == MagickFalse) && (imageListLength == 1) &&
+  if ((psd_info.has_merged_image != MagickFalse) || (imageListLength == 1))
+    psd_info.has_merged_image=(MagickBooleanType) ReadPSDMergedImage(
+      image_info,image,&psd_info,exception);
+  if ((psd_info.has_merged_image == MagickFalse) && (imageListLength == 1) &&
       (length != 0))
     {
       (void) SeekBlob(image,offset,SEEK_SET);
@@ -2391,7 +2406,7 @@
           return((Image *) NULL);
         }
     }
-  if (has_merged_image == MagickFalse)
+  if (psd_info.has_merged_image == MagickFalse)
     {
       Image
         *merged;
@@ -2417,7 +2432,7 @@
       next=image;
       while (next != (Image *) NULL)
       {
-        if (PSDSkipImage(image_info,i++) == MagickFalse)
+        if (PSDSkipImage(&psd_info,image_info,i++) == MagickFalse)
           (void) SetImageProfile(next,GetStringInfoName(profile),profile,
             exception);
         next=next->next;
@@ -2745,8 +2760,6 @@
 
 #ifdef MAGICKCORE_ZLIB_DELEGATE
 
-#define CHUNK 16384
-
   int
     flush,
     level;
@@ -2777,8 +2790,8 @@
 #ifdef MAGICKCORE_ZLIB_DELEGATE
   if (compression == ZipCompression)
     {
-      compressed_pixels=(unsigned char *) AcquireQuantumMemory(CHUNK,
-        sizeof(*compressed_pixels));
+      compressed_pixels=(unsigned char *) AcquireQuantumMemory(
+        MagickMinBufferExtent,sizeof(*compressed_pixels));
       if (compressed_pixels == (unsigned char *) NULL)
         {
           quantum_info=DestroyQuantumInfo(quantum_info);
@@ -2823,11 +2836,11 @@
         if (y == (ssize_t) next_image->rows-1)
           flush=Z_FINISH;
         do {
-            stream.avail_out=(uInt) CHUNK;
+            stream.avail_out=(uInt) MagickMinBufferExtent;
             stream.next_out=(Bytef *) compressed_pixels;
             if (deflate(&stream,flush) == Z_STREAM_ERROR)
               break;
-            length=(size_t) CHUNK-stream.avail_out;
+            length=(size_t) MagickMinBufferExtent-stream.avail_out;
             if (length > 0)
               count+=WriteBlob(image,length,compressed_pixels);
         } while (stream.avail_out == 0);
@@ -2907,7 +2920,8 @@
   channels=1;
   if (separate == MagickFalse)
     {
-      if (next_image->storage_class != PseudoClass)
+      if ((next_image->storage_class != PseudoClass) ||
+          (IsImageGray(next_image) != MagickFalse))
         {
           if (IsImageGray(next_image) == MagickFalse)
             channels=(size_t) (next_image->colorspace == CMYKColorspace ? 4 :
@@ -2921,7 +2935,8 @@
       offset_length=(next_image->rows*(psd_info->version == 1 ? 2 : 4));
     }
   size_offset+=2;
-  if (next_image->storage_class == PseudoClass)
+  if ((next_image->storage_class == PseudoClass) &&
+      (IsImageGray(next_image) == MagickFalse))
     {
       length=WritePSDChannel(psd_info,image_info,image,next_image,
         IndexQuantum,compact_pixels,rows_offset,separate,compression,
@@ -3731,10 +3746,10 @@
         compression;
 
       compression=image->compression;
-      if (image->compression == ZipCompression)
-        image->compression=RLECompression;
       if (image_info->compression != UndefinedCompression)
         image->compression=image_info->compression;
+      if (image->compression == ZipCompression)
+        image->compression=RLECompression;
       if (WritePSDChannels(&psd_info,image_info,image,image,0,MagickFalse,
           exception) == 0)
         status=MagickFalse;
diff --git a/coders/psd.h b/coders/psd.h
index 5275d90..dcd31ce 100644
--- a/coders/psd.h
+++ b/coders/psd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pwp.c b/coders/pwp.c
index 0874e07..d09fbbc 100644
--- a/coders/pwp.c
+++ b/coders/pwp.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/pwp.h b/coders/pwp.h
index bee0a5b..b25bd51 100644
--- a/coders/pwp.h
+++ b/coders/pwp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/raw.c b/coders/raw.c
index 519dea6..cfef622 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -96,8 +96,8 @@
 */
 static Image *ReadRAWImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -122,6 +122,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -163,7 +166,7 @@
       canvas_image=DestroyImage(canvas_image);
       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -174,8 +177,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -184,6 +186,7 @@
   count=0;
   length=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -198,8 +201,7 @@
     if (scene == 0)
       {
         length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -225,7 +227,7 @@
       if (q == (Quantum *) NULL)
         break;
       length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,quantum_info,
-        quantum_type,pixels,exception);
+        quantum_type,(unsigned char *) stream,exception);
       if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
         break;
       if (((y-image->extract_info.y) >= 0) && 
@@ -255,8 +257,7 @@
           if (status == MagickFalse)
             break;
         }
-      pixels=(const unsigned char *) ReadBlobStream(image,length,
-        GetQuantumPixels(quantum_info),&count);
+      stream=ReadBlobStream(image,length,pixels,&count);
       if (count != (ssize_t) length)
         break;
     }
diff --git a/coders/raw.h b/coders/raw.h
index 5424a51..063413f 100644
--- a/coders/raw.h
+++ b/coders/raw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rgb.c b/coders/rgb.c
index 15759f9..324d048 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -99,8 +99,8 @@
 */
 static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -128,6 +128,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -181,7 +184,7 @@
       image->alpha_trait=BlendPixelTrait;
       canvas_image->alpha_trait=BlendPixelTrait;
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -192,8 +195,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -202,6 +204,7 @@
   length=0;
   scene=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -224,8 +227,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -250,10 +252,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,quantum_type,pixels,exception);
+            quantum_info,quantum_type,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -283,8 +285,7 @@
               if (status == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         break;
       }
@@ -307,8 +308,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -336,10 +336,10 @@
             if (q == (Quantum *) NULL)
               break;
             length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-              quantum_info,quantum_type,pixels,exception);
+              quantum_info,quantum_type,(unsigned char *) stream,exception);
             if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
               break;
-            if (((y-image->extract_info.y) >= 0) && 
+            if (((y-image->extract_info.y) >= 0) &&
                 ((y-image->extract_info.y) < (ssize_t) image->rows))
               {
                 p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
@@ -386,8 +386,7 @@
                 if (SyncAuthenticPixels(image,exception) == MagickFalse)
                   break;
               }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
           if (image->previous == (Image *) NULL)
             {
@@ -407,8 +406,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -433,10 +431,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -454,8 +452,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -486,10 +483,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -507,8 +504,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -539,10 +535,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -560,8 +556,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -594,10 +589,10 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,AlphaQuantum,pixels,exception);
+                quantum_info,AlphaQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
-              if (((y-image->extract_info.y) >= 0) && 
+              if (((y-image->extract_info.y) >= 0) &&
                   ((y-image->extract_info.y) < (ssize_t) image->rows))
                 {
                   p=GetVirtualPixels(canvas_image,
@@ -616,8 +611,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                 }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -646,8 +640,8 @@
         if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse)
           {
             status=MagickFalse;
-            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
-              image->filename);
+            ThrowFileException(exception,CorruptImageError,
+              "UnexpectedEndOfFile",image->filename);
             break;
           }
         length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
@@ -655,16 +649,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -688,10 +680,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -709,8 +701,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -728,16 +719,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -761,10 +750,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -782,8 +771,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -800,17 +788,15 @@
         for (i=0; i < (ssize_t) scene; i++)
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
-          {     
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+          {
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -834,10 +820,10 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
-          if (((y-image->extract_info.y) >= 0) && 
+          if (((y-image->extract_info.y) >= 0) &&
               ((y-image->extract_info.y) < (ssize_t) image->rows))
             {
               p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
@@ -855,8 +841,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -876,16 +861,14 @@
             {
               for (y=0; y < (ssize_t) image->extract_info.height; y++)
               {
-                pixels=(const unsigned char *) ReadBlobStream(image,length,
-                  GetQuantumPixels(quantum_info),&count);
+                stream=ReadBlobStream(image,length,pixels,&count);
                 if (count != (ssize_t) length)
                   break;
               }
               if (count != (ssize_t) length)
                 break;
             }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
               register const Quantum
@@ -909,10 +892,10 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,BlueQuantum,pixels,exception);
+                quantum_info,BlueQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
-              if (((y-image->extract_info.y) >= 0) && 
+              if (((y-image->extract_info.y) >= 0) &&
                   ((y-image->extract_info.y) < (ssize_t) image->rows))
                 {
                   p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
@@ -930,8 +913,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -991,6 +973,242 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   R e a d R G B 5 6 5 I m a g e                                             %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ReadGRAYImage() reads an image of raw RGB 5-6-5 samples and returns it.  It
+%  allocates the memory necessary for the new Image structure and returns a
+%  pointer to the new image.
+%
+%  The format of the ReadGRAYImage method is:
+%
+%      Image *ReadGRAYImage(const ImageInfo *image_info,
+%        ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image_info: the image info.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+static Image *ReadRGB565Image(const ImageInfo *image_info,
+  ExceptionInfo *exception)
+{
+  const void
+    *stream;
+
+  Image
+    *canvas_image,
+    *image;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    scene;
+
+  QuantumInfo
+    *quantum_info;
+
+  QuantumType
+    quantum_type;
+
+  size_t
+    length;
+
+  ssize_t
+    count,
+    y;
+
+  unsigned char
+    *pixels;
+
+  /*
+    Open image file.
+  */
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  if (image_info->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      image_info->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  image=AcquireImage(image_info,exception);
+  if ((image->columns == 0) || (image->rows == 0))
+    ThrowReaderException(OptionError,"MustSpecifyImageSize");
+  image->depth=16;
+  if (image_info->interlace != PartitionInterlace)
+    {
+      status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+      if (status == MagickFalse)
+        {
+          image=DestroyImageList(image);
+          return((Image *) NULL);
+        }
+      if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse)
+        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+          image->filename);
+    }
+  /*
+    Create virtual canvas to support cropping (i.e. image.rgb[100x100+10+20]).
+  */
+  canvas_image=CloneImage(image,image->extract_info.width,1,MagickFalse,
+    exception);
+  if(canvas_image == (Image *) NULL)
+    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+  (void) SetImageVirtualPixelMethod(canvas_image,BlackVirtualPixelMethod,
+    exception);
+  quantum_info=AcquireQuantumInfo(image_info,canvas_image);
+  if (quantum_info == (QuantumInfo *) NULL)
+    {
+      canvas_image=DestroyImage(canvas_image);
+      ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+    }
+  quantum_type=GrayQuantum;
+  pixels=GetQuantumPixels(quantum_info);
+  if (image_info->number_scenes != 0)
+    while (image->scene < image_info->scene)
+    {
+      /*
+        Skip to next image.
+      */
+      image->scene++;
+      length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
+      for (y=0; y < (ssize_t) image->rows; y++)
+      {
+        stream=ReadBlobStream(image,length,pixels,&count);
+        if (count != (ssize_t) length)
+          break;
+      }
+    }
+  count=0;
+  length=0;
+  scene=0;
+  status=MagickTrue;
+  stream=NULL;
+  do
+  {
+    /*
+      Read pixels to virtual canvas image then push to image.
+    */
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    status=SetImageExtent(image,image->columns,image->rows,exception);
+    if (status == MagickFalse)
+      break;
+    /*
+      No interlacing:  GGG...
+    */
+    if (scene == 0)
+      {
+        length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
+        stream=ReadBlobStream(image,length,pixels,&count);
+      }
+    for (y=0; y < (ssize_t) image->extract_info.height; y++)
+    {
+      register const Quantum
+        *magick_restrict p;
+
+      register Quantum
+        *magick_restrict q;
+
+      register ssize_t
+        x;
+
+      if (count != (ssize_t) length)
+        {
+          status=MagickFalse;
+          ThrowFileException(exception,CorruptImageError,
+            "UnexpectedEndOfFile",image->filename);
+          break;
+        }
+      q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,exception);
+      if (q == (Quantum *) NULL)
+        break;
+      length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+        quantum_info,quantum_type,(unsigned char *) stream,exception);
+      if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+        break;
+      if (((y-image->extract_info.y) >= 0) &&
+          ((y-image->extract_info.y) < (ssize_t) image->rows))
+        {
+          p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+            canvas_image->columns,1,exception);
+          q=QueueAuthenticPixels(image,0,y-image->extract_info.y,
+            image->columns,1,exception);
+          if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+            break;
+          for (x=0; x < (ssize_t) image->columns; x++)
+          {
+            unsigned short
+              pixel;
+
+            pixel=(unsigned short) ScaleQuantumToShort(GetPixelGray(
+              canvas_image,p));
+            SetPixelRed(image,(Quantum) (((pixel >> 11) & 0x1f) << 11),q);
+            SetPixelGreen(image,(Quantum) (((pixel >> 5) & 0x3f) << 10),q);
+            SetPixelBlue(image,(Quantum) ((pixel & 0x1f) << 11),q);
+            p+=GetPixelChannels(canvas_image);
+            q+=GetPixelChannels(image);
+          }
+          if (SyncAuthenticPixels(image,exception) == MagickFalse)
+            break;
+        }
+      if (image->previous == (Image *) NULL)
+        {
+          status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+            image->rows);
+          if (status == MagickFalse)
+            break;
+        }
+      stream=ReadBlobStream(image,length,pixels,&count);
+    }
+    if (status == MagickFalse)
+      break;
+    SetQuantumImageType(image,quantum_type);
+    /*
+      Proceed to next image.
+    */
+    if (image_info->number_scenes != 0)
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    if (count == (ssize_t) length)
+      {
+        /*
+          Allocate next image structure.
+        */
+        AcquireNextImage(image_info,image,exception);
+        if (GetNextImageInList(image) == (Image *) NULL)
+          {
+            status=MagickFalse;
+            break;
+          }
+        image=SyncNextImageInList(image);
+        status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
+          GetBlobSize(image));
+        if (status == MagickFalse)
+          break;
+      }
+    scene++;
+  } while (count == (ssize_t) length);
+  quantum_info=DestroyQuantumInfo(quantum_info);
+  canvas_image=DestroyImage(canvas_image);
+  (void) CloseBlob(image);
+  if (status == MagickFalse)
+    return(DestroyImageList(image));
+  return(GetFirstImageInList(image));
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   R e g i s t e r R G B I m a g e                                           %
 %                                                                             %
 %                                                                             %
@@ -1035,6 +1253,12 @@
   entry->flags|=CoderRawSupportFlag;
   entry->flags|=CoderEndianSupportFlag;
   (void) RegisterMagickInfo(entry);
+  entry=AcquireMagickInfo("RGB","RGB565",
+    "Raw red, green, blue samples in 565 format");
+  entry->decoder=(DecodeImageHandler *) ReadRGB565Image;
+  entry->flags|=CoderRawSupportFlag;
+  entry->flags|=CoderEndianSupportFlag;
+  (void) RegisterMagickInfo(entry);
   return(MagickImageCoderSignature);
 }
 
diff --git a/coders/rgb.h b/coders/rgb.h
index 04ac30a..d8a5d41 100644
--- a/coders/rgb.h
+++ b/coders/rgb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -20,7 +20,8 @@
 
 #define MagickRGBAliases \
   MagickCoderAlias("RGB", "RGBA") \
-  MagickCoderAlias("RGB", "RGBO")
+  MagickCoderAlias("RGB", "RGBO") \
+  MagickCoderAlias("RGB", "RGB565")
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -30,4 +31,4 @@
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
-#endif
\ No newline at end of file
+#endif
diff --git a/coders/rgf.c b/coders/rgf.c
index 97a19e5..61708a4 100644
--- a/coders/rgf.c
+++ b/coders/rgf.c
@@ -17,7 +17,7 @@
 %                               August 2013                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/rgf.h b/coders/rgf.h
index cc5824e..7483213 100644
--- a/coders/rgf.h
+++ b/coders/rgf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rla.c b/coders/rla.c
index f111407..d2a4f0f 100644
--- a/coders/rla.c
+++ b/coders/rla.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -293,7 +293,6 @@
   /*
     Read image data.
   */
-  x=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     offset=SeekBlob(image,scanlines[image->rows-y-1],SEEK_SET);
@@ -302,6 +301,7 @@
         scanlines=(MagickOffsetType *) RelinquishMagickMemory(scanlines);
         ThrowReaderException(CorruptImageError,"ImproperImageHeader");
       }
+    x=0;
     for (channel=0; channel < (int) rla_info.number_channels; channel++)
     {
       length=ReadBlobMSBSignedShort(image);
@@ -318,8 +318,8 @@
           {
             while (runlength < 0)
             {
-              q=GetAuthenticPixels(image,(ssize_t) (x % image->columns),
-                (ssize_t) (y % image->rows),1,1,exception);
+              q=GetAuthenticPixels(image,(ssize_t) (x % image->columns),y,1,1,
+                exception);
               if (q == (Quantum *) NULL)
                 break;
               byte=(unsigned char) ReadBlobByte(image);
@@ -360,8 +360,8 @@
         runlength++;
         do
         {
-          q=GetAuthenticPixels(image,(ssize_t) (x % image->columns),
-            (ssize_t) (y % image->rows),1,1,exception);
+          q=GetAuthenticPixels(image,(ssize_t) (x % image->columns),y,1,1,
+            exception);
           if (q == (Quantum *) NULL)
             break;
           switch (channel)
@@ -396,6 +396,11 @@
         while (runlength > 0);
       }
     }
+    if ((x/(ssize_t) rla_info.number_channels) > (ssize_t) image->columns)
+      {
+        scanlines=(MagickOffsetType *) RelinquishMagickMemory(scanlines);
+        ThrowReaderException(CorruptImageError,"CorruptImage");
+      }
     if (EOFBlob(image) != MagickFalse)
       break;
     status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
diff --git a/coders/rla.h b/coders/rla.h
index d3b7674..89d4467 100644
--- a/coders/rla.h
+++ b/coders/rla.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rle.c b/coders/rle.c
index 5abca54..1d40860 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/rle.h b/coders/rle.h
index 492856b..c08f1d7 100644
--- a/coders/rle.h
+++ b/coders/rle.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/scr.c b/coders/scr.c
index 3f18a73..c62c1a1 100644
--- a/coders/scr.c
+++ b/coders/scr.c
@@ -17,7 +17,7 @@
 %                               October 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/scr.h b/coders/scr.h
index dac9e43..928d876 100644
--- a/coders/scr.h
+++ b/coders/scr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/screenshot.c b/coders/screenshot.c
index 42b7905..b0f60c4 100644
--- a/coders/screenshot.c
+++ b/coders/screenshot.c
@@ -17,7 +17,7 @@
 %                                 April 2014                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/screenshot.h b/coders/screenshot.h
index be1088b..a414a4b 100644
--- a/coders/screenshot.h
+++ b/coders/screenshot.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sct.c b/coders/sct.c
index 4975d78..47ff9a9 100644
--- a/coders/sct.c
+++ b/coders/sct.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/sct.h b/coders/sct.h
index f632a0f..ce7f12d 100644
--- a/coders/sct.h
+++ b/coders/sct.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sfw.c b/coders/sfw.c
index 345dcb0..7923fd7 100644
--- a/coders/sfw.c
+++ b/coders/sfw.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -155,7 +155,7 @@
 
 static Image *ReadSFWImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
-  static unsigned char
+  static const unsigned char
     HuffmanTable[] =
     {
       0xFF, 0xC4, 0x01, 0xA2, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 0x01,
diff --git a/coders/sfw.h b/coders/sfw.h
index 77d5e92..81aa889 100644
--- a/coders/sfw.h
+++ b/coders/sfw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sgi.c b/coders/sgi.c
index 236bf4c..4eabb5b 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -953,8 +953,6 @@
   assert(image->signature == MagickCoreSignature);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
-  if ((image->columns > 65535UL) || (image->rows > 65535UL))
-    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickCoreSignature);
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
@@ -967,6 +965,8 @@
     /*
       Initialize SGI raster file header.
     */
+    if ((image->columns > 65535UL) || (image->rows > 65535UL))
+      ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
     (void) memset(&iris_info,0,sizeof(iris_info));
     iris_info.magic=0x01DA;
diff --git a/coders/sgi.h b/coders/sgi.h
index bd7b73c..69be640 100644
--- a/coders/sgi.h
+++ b/coders/sgi.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sixel.c b/coders/sixel.c
index ae32db8..186a246 100644
--- a/coders/sixel.c
+++ b/coders/sixel.c
@@ -18,7 +18,7 @@
 %                    Based on kmiya's sixel (2014-03-28)                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -203,7 +203,8 @@
         }
         if (isdigit((int) ((unsigned char) *p))) {
             for (n = 0; isdigit((int) ((unsigned char) *p)); p++) {
-                n = (int) ((ssize_t) n * 10 + (*p - '0'));
+                if (n <= (INT_MAX/10))
+                  n = (int) ((ssize_t) n * 10 + (*p - '0'));
             }
             if (*len < 10) {
                 param[(*len)++] = n;
@@ -1054,10 +1055,12 @@
   /*
     Decode SIXEL
   */
+  sixel_pixels=(unsigned char *) NULL;
   if (sixel_decode(image,(unsigned char *) sixel_buffer,&sixel_pixels,&image->columns,&image->rows,&sixel_palette,&image->colors,exception) == MagickFalse)
     {
       sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
-      sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+      if (sixel_pixels != (unsigned char *) NULL)
+        sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
       ThrowReaderException(CorruptImageError,"CorruptImage");
     }
   sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
diff --git a/coders/sixel.h b/coders/sixel.h
index 43f5a47..1de3333 100644
--- a/coders/sixel.h
+++ b/coders/sixel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/stegano.c b/coders/stegano.c
index e1a9a6b..0b87fec 100644
--- a/coders/stegano.c
+++ b/coders/stegano.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/stegano.h b/coders/stegano.h
index 995fc41..f4c82be 100644
--- a/coders/stegano.h
+++ b/coders/stegano.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sun.c b/coders/sun.c
index 6a1553a..2071986 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -57,7 +57,6 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/pixel-accessor.h"
@@ -434,9 +433,8 @@
     if ((sun_info.type != RT_ENCODED) &&
         ((number_pixels*sun_info.depth) > (8UL*sun_info.length)))
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-    if (HeapOverflowSanityCheck(sun_info.width,sun_info.depth) != MagickFalse)
+    if (HeapOverflowSanityCheckGetSize(sun_info.width,sun_info.depth,&bytes_per_line) != MagickFalse)
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-    bytes_per_line=sun_info.width*sun_info.depth;
     if (sun_info.length > GetBlobSize(image))
       ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
     sun_data=(unsigned char *) AcquireQuantumMemory(sun_info.length,
@@ -465,12 +463,11 @@
         ThrowReaderException(ResourceLimitError,"ImproperImageHeader");
       }
     bytes_per_line>>=4;
-    if (HeapOverflowSanityCheck(height,bytes_per_line) != MagickFalse)
+    if (HeapOverflowSanityCheckGetSize(height,bytes_per_line,&pixels_length) != MagickFalse)
       {
         sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
         ThrowReaderException(ResourceLimitError,"ImproperImageHeader");
       }
-    pixels_length=height*bytes_per_line;
     sun_pixels=(unsigned char *) AcquireQuantumMemory(pixels_length+image->rows,
       sizeof(*sun_pixels));
     if (sun_pixels == (unsigned char *) NULL)
diff --git a/coders/sun.h b/coders/sun.h
index 9695545..21661bb 100644
--- a/coders/sun.h
+++ b/coders/sun.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/svg.c b/coders/svg.c
index d78172a..63cf8ed 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -18,7 +18,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -65,9 +65,10 @@
 #include "MagickCore/module.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
-#include "MagickCore/quantum-private.h"
+#include "MagickCore/option.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/property.h"
+#include "MagickCore/quantum-private.h"
 #include "MagickCore/resource_.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
@@ -169,7 +170,7 @@
 
   BoundingBox
     bounds,
-    center,
+    text_offset,
     view_box;
 
   PointInfo
@@ -399,7 +400,7 @@
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",string);
   assert(string != (const char *) NULL);
   p=(const char *) string;
-  GetNextToken(p,&p,MagickPathExtent,token);
+  (void) GetNextToken(p,&p,MagickPathExtent,token);
   value=StringToDouble(token,&next_token);
   if (strchr(token,'%') != (char *) NULL)
     {
@@ -423,7 +424,7 @@
       beta=value-svg_info->view_box.height;
       return(hypot(alpha,beta)/sqrt(2.0)/100.0);
     }
-  GetNextToken(p,&p,MagickPathExtent,token);
+  (void) GetNextToken(p,&p,MagickPathExtent,token);
   if (LocaleNCompare(token,"cm",2) == 0)
     return(DefaultSVGDensity*svg_info->scale[0]/2.54*value);
   if (LocaleNCompare(token,"em",2) == 0)
@@ -1376,9 +1377,7 @@
         {
           if (LocaleCompare(keyword,"x") == 0)
             {
-              if (LocaleCompare((char *) name,"tspan") != 0)
-                svg_info->bounds.x=GetUserSpaceCoordinateValue(svg_info,1,
-                  value)-svg_info->center.x;
+              svg_info->bounds.x=GetUserSpaceCoordinateValue(svg_info,1,value);
               break;
             }
           if (LocaleCompare(keyword,"x1") == 0)
@@ -1400,9 +1399,7 @@
         {
           if (LocaleCompare(keyword,"y") == 0)
             {
-              if (LocaleCompare((char *) name,"tspan") != 0)
-                svg_info->bounds.y=GetUserSpaceCoordinateValue(svg_info,-1,
-                  value)-svg_info->center.y;
+              svg_info->bounds.y=GetUserSpaceCoordinateValue(svg_info,-1,value);
               break;
             }
           if (LocaleCompare(keyword,"y1") == 0)
@@ -1605,10 +1602,8 @@
         {
           PushGraphicContext(id);
           (void) FormatLocaleFile(svg_info->file,"class \"text\"\n");
-          (void) FormatLocaleFile(svg_info->file,"translate %g,%g\n",
-            svg_info->bounds.x,svg_info->bounds.y);
-          svg_info->center.x=svg_info->bounds.x;
-          svg_info->center.y=svg_info->bounds.y;
+          svg_info->text_offset.x=svg_info->bounds.x;
+          svg_info->text_offset.y=svg_info->bounds.y;
           svg_info->bounds.x=0.0;
           svg_info->bounds.y=0.0;
           svg_info->bounds.width=0.0;
@@ -1622,10 +1617,9 @@
               char
                 *text;
 
-              text=EscapeString(svg_info->text,'\'');
+              text=EscapeString(svg_info->text,'\"');
               (void) FormatLocaleFile(svg_info->file,"text %g,%g \"%s\"\n",
-                svg_info->bounds.x-svg_info->center.x,svg_info->bounds.y-
-                svg_info->center.y,text);
+                svg_info->text_offset.x,svg_info->text_offset.y,text);
               text=DestroyString(text);
               *svg_info->text='\0';
             }
@@ -1675,18 +1669,14 @@
               const char
                 *p;
 
-              for (p=value; ; )
-              {
-                GetNextToken(p,&p,MagickPathExtent,token);
-                if (*token == ',')
-                  GetNextToken(p,&p,MagickPathExtent,token);
-                if (*token != '\0')
-                  {
-                    (void) FormatLocaleFile(svg_info->file,"class \"%s\"\n",
-                      value);
-                    break;
-                  }
-              }
+              p=value;
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
+              if (*token == ',')
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
+              if (*token != '\0')
+                (void) FormatLocaleFile(svg_info->file,"class \"%s\"\n",value);
+              else
+                (void) FormatLocaleFile(svg_info->file,"class \"none\"\n");
               break;
             }
           if (LocaleCompare(keyword,"clip-path") == 0)
@@ -1742,6 +1732,7 @@
 
               dx=GetUserSpaceCoordinateValue(svg_info,1,value);
               svg_info->bounds.x+=dx;
+              svg_info->text_offset.x+=dx;
               if (LocaleCompare((char *) name,"text") == 0)
                 (void) FormatLocaleFile(svg_info->file,"translate %g,0.0\n",dx);
               break;
@@ -1753,6 +1744,7 @@
 
               dy=GetUserSpaceCoordinateValue(svg_info,-1,value);
               svg_info->bounds.y+=dy;
+              svg_info->text_offset.y+=dy;
               if (LocaleCompare((char *) name,"text") == 0)
                 (void) FormatLocaleFile(svg_info->file,"translate 0.0,%g\n",dy);
               break;
@@ -1871,27 +1863,27 @@
                     if (LocaleCompare(keyword,"matrix") == 0)
                       {
                         p=(const char *) value;
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.sx=StringToDouble(value,(char **) NULL);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.rx=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.ry=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.sy=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.tx=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.ty=StringToDouble(token,&next_token);
                         break;
                       }
@@ -2269,27 +2261,27 @@
                     if (LocaleCompare(keyword,"matrix") == 0)
                       {
                         p=(const char *) value;
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.sx=StringToDouble(value,(char **) NULL);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.rx=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.ry=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.sy=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.tx=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         affine.ty=StringToDouble(token,&next_token);
                         break;
                       }
@@ -2306,19 +2298,19 @@
                           y;
 
                         p=(const char *) value;
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         angle=StringToDouble(value,(char **) NULL);
                         affine.sx=cos(DegreesToRadians(fmod(angle,360.0)));
                         affine.rx=sin(DegreesToRadians(fmod(angle,360.0)));
                         affine.ry=(-sin(DegreesToRadians(fmod(angle,360.0))));
                         affine.sy=cos(DegreesToRadians(fmod(angle,360.0)));
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         x=StringToDouble(token,&next_token);
-                        GetNextToken(p,&p,MagickPathExtent,token);
+                        (void) GetNextToken(p,&p,MagickPathExtent,token);
                         if (*token == ',')
-                          GetNextToken(p,&p,MagickPathExtent,token);
+                          (void) GetNextToken(p,&p,MagickPathExtent,token);
                         y=StringToDouble(token,&next_token);
                         affine.tx=svg_info->bounds.x+x*
                           cos(DegreesToRadians(fmod(angle,360.0)))+y*
@@ -2326,8 +2318,8 @@
                         affine.ty=svg_info->bounds.y-x*
                           sin(DegreesToRadians(fmod(angle,360.0)))+y*
                           cos(DegreesToRadians(fmod(angle,360.0)));
-                        affine.tx-=x/2.0;
-                        affine.ty-=y/2.0;
+                        affine.tx-=x;
+                        affine.ty-=y;
                         break;
                       }
                     break;
@@ -2420,22 +2412,22 @@
           if (LocaleCompare(keyword,"viewBox") == 0)
             {
               p=(const char *) value;
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               svg_info->view_box.x=StringToDouble(token,&next_token);
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               svg_info->view_box.y=StringToDouble(token,&next_token);
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               svg_info->view_box.width=StringToDouble(token,
                 (char **) NULL);
               if (svg_info->bounds.width == 0)
                 svg_info->bounds.width=svg_info->view_box.width;
-              GetNextToken(p,&p,MagickPathExtent,token);
+              (void) GetNextToken(p,&p,MagickPathExtent,token);
               if (*token == ',')
-                GetNextToken(p,&p,MagickPathExtent,token);
+                (void) GetNextToken(p,&p,MagickPathExtent,token);
               svg_info->view_box.height=StringToDouble(token,
                 (char **) NULL);
               if (svg_info->bounds.height == 0)
@@ -2532,8 +2524,8 @@
             svg_info->height=(size_t) floor(svg_info->bounds.height+0.5);
           (void) FormatLocaleFile(svg_info->file,"viewbox 0 0 %.20g %.20g\n",
             (double) svg_info->width,(double) svg_info->height);
-          sx=(double) svg_info->width/svg_info->view_box.width;
-          sy=(double) svg_info->height/svg_info->view_box.height;
+          sx=PerceptibleReciprocal(svg_info->view_box.width)*svg_info->width;
+          sy=PerceptibleReciprocal(svg_info->view_box.height)*svg_info->height;
           tx=svg_info->view_box.x != 0.0 ? (double) -sx*svg_info->view_box.x :
             0.0;
           ty=svg_info->view_box.y != 0.0 ? (double) -sy*svg_info->view_box.y :
@@ -2821,6 +2813,9 @@
             SVGProcessStyleElement(context,name,value);
             (void) FormatLocaleFile(svg_info->file,"pop class\n");
           }
+          for (j=0; tokens[j] != (char *) NULL; j++)
+            tokens[j]=DestroyString(tokens[j]);
+          tokens=(char **) RelinquishMagickMemory(tokens);
           break;
         }
       if (LocaleCompare((const char *) name,"svg") == 0)
@@ -2847,12 +2842,11 @@
                 *text;
 
               SVGStripString(MagickTrue,svg_info->text);
-              text=EscapeString(svg_info->text,'\'');
-              (void) FormatLocaleFile(svg_info->file,"text 0,0 \"%s\"\n",text);
+              text=EscapeString(svg_info->text,'\"');
+              (void) FormatLocaleFile(svg_info->file,"text %g,%g \"%s\"\n",
+                svg_info->text_offset.x,svg_info->text_offset.y,text);
               text=DestroyString(text);
               *svg_info->text='\0';
-              svg_info->center.x=0.0;
-              svg_info->center.y=0.0;
             }
           (void) FormatLocaleFile(svg_info->file,"pop graphic-context\n");
           break;
@@ -2865,10 +2859,9 @@
                 *text;
 
               (void) FormatLocaleFile(svg_info->file,"class \"tspan\"\n");
-              text=EscapeString(svg_info->text,'\'');
+              text=EscapeString(svg_info->text,'\"');
               (void) FormatLocaleFile(svg_info->file,"text %g,%g \"%s\"\n",
-                svg_info->bounds.x-svg_info->center.x,svg_info->bounds.y-
-                svg_info->center.y,text);
+                svg_info->bounds.x,svg_info->bounds.y,text);
               text=DestroyString(text);
               *svg_info->text='\0';
             }
@@ -3091,8 +3084,8 @@
   SVGInfo
     *svg_info;
 
-   xmlNodePtr
-     child;
+  xmlNodePtr
+    child;
 
   xmlParserCtxtPtr
     parser;
@@ -3110,7 +3103,9 @@
       xmlTextConcat(child,value,length);
       return;
     }
-  (void) xmlAddChild(parser->node,xmlNewCDataBlock(parser->myDoc,value,length));
+  child=xmlNewCDataBlock(parser->myDoc,value,length);
+  if (xmlAddChild(parser->node,child) == (xmlNodePtr) NULL)
+    xmlFreeNode(child);
 }
 
 static void SVGExternalSubset(void *context,const xmlChar *name,
@@ -3548,6 +3543,7 @@
     (void) CloneString(&svg_info->size,image_info->size);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),"begin SAX");
+  xmlInitParser();
   (void) xmlSubstituteEntitiesDefault(1);
   (void) memset(&sax_modules,0,sizeof(sax_modules));
   sax_modules.internalSubset=SVGInternalSubset;
@@ -3582,9 +3578,14 @@
   message[n]='\0';
   if (n > 0)
     {
+      const char
+        *value;
+
       svg_info->parser=xmlCreatePushParserCtxt(sax_handler,svg_info,(char *)
         message,n,image->filename);
-      (void) xmlCtxtUseOptions(svg_info->parser,XML_PARSE_HUGE);
+      value=GetImageOption(image_info,"svg:xml-parse-huge");
+      if ((value != (char *) NULL) && (IsStringTrue(value) != MagickFalse))
+        (void) xmlCtxtUseOptions(svg_info->parser,XML_PARSE_HUGE);
       while ((n=ReadBlob(image,MagickPathExtent-1,message)) != 0)
       {
         message[n]='\0';
@@ -3595,6 +3596,8 @@
     }
   (void) xmlParseChunk(svg_info->parser,(char *) message,0,1);
   SVGEndDocument(svg_info);
+  if (svg_info->parser->myDoc != (xmlDocPtr) NULL)
+    xmlFreeDoc(svg_info->parser->myDoc);
   xmlFreeParserCtxt(svg_info->parser);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),"end SAX");
@@ -3735,9 +3738,6 @@
 #if !GLIB_CHECK_VERSION(2,35,0)
   g_type_init();
 #endif
-#if defined(MAGICKCORE_XML_DELEGATE)
-  xmlInitParser();
-#endif
   (void) FormatLocaleString(version,MagickPathExtent,"RSVG %d.%d.%d",
     LIBRSVG_MAJOR_VERSION,LIBRSVG_MINOR_VERSION,LIBRSVG_MICRO_VERSION);
 #endif
@@ -3985,14 +3985,21 @@
   {
     char
       *base64,
+      filename[MagickPathExtent],
       message[MagickPathExtent];
 
+    const DelegateInfo
+      *delegate_info;
+
     Image
       *clone_image;
 
     ImageInfo
       *image_info;
 
+    MagickBooleanType
+      status;
+
     register char
       *p;
 
@@ -4006,6 +4013,21 @@
     unsigned char
       *blob;
 
+    delegate_info=GetDelegateInfo((char *) NULL,"TRACE",exception);
+    if (delegate_info != (DelegateInfo *) NULL)
+      {
+        /*
+          Trace SVG with tracing delegate.
+        */
+        image_info=AcquireImageInfo();
+        (void) CopyMagickString(image_info->magick,"TRACE",MagickPathExtent);
+        (void) FormatLocaleString(filename,MagickPathExtent,"trace:%s",
+          image_info->filename);
+        (void) CopyMagickString(image_info->filename,filename,MagickPathExtent);
+        status=WriteImage(image_info,image,exception);
+        image_info=DestroyImageInfo(image_info);
+        return(status);
+      }
     (void) WriteBlobString(image,
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
     (void) WriteBlobString(image,
@@ -4170,7 +4192,7 @@
     /*
       Interpret graphic primitive.
     */
-    GetNextToken(q,&q,MagickPathExtent,keyword);
+    (void) GetNextToken(q,&q,MagickPathExtent,keyword);
     if (*keyword == '\0')
       break;
     if (*keyword == '#')
@@ -4206,27 +4228,27 @@
       {
         if (LocaleCompare("affine",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ry=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,&next_token);
             break;
           }
@@ -4237,7 +4259,7 @@
           }
         if (LocaleCompare("angle",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.rx=StringToDouble(token,&next_token);
             affine.ry=StringToDouble(token,&next_token);
             break;
@@ -4266,7 +4288,7 @@
       {
         if (LocaleCompare("clip-path",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "clip-path:url(#%s);",token);
             (void) WriteBlobString(image,message);
@@ -4274,7 +4296,7 @@
           }
         if (LocaleCompare("clip-rule",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"clip-rule:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -4282,7 +4304,7 @@
           }
         if (LocaleCompare("clip-units",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "clipPathUnits=%s;",token);
             (void) WriteBlobString(image,message);
@@ -4306,7 +4328,7 @@
       {
         if (LocaleCompare("decorate",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-decoration:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4331,7 +4353,7 @@
       {
         if (LocaleCompare("fill",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"fill:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -4339,7 +4361,7 @@
           }
         if (LocaleCompare("fill-rule",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "fill-rule:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4347,7 +4369,7 @@
           }
         if (LocaleCompare("fill-opacity",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "fill-opacity:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4355,7 +4377,7 @@
           }
         if (LocaleCompare("font-family",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-family:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4363,7 +4385,7 @@
           }
         if (LocaleCompare("font-stretch",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-stretch:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4371,7 +4393,7 @@
           }
         if (LocaleCompare("font-style",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-style:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4379,7 +4401,7 @@
           }
         if (LocaleCompare("font-size",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-size:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4387,7 +4409,7 @@
           }
         if (LocaleCompare("font-weight",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "font-weight:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4401,12 +4423,12 @@
       {
         if (LocaleCompare("gradient-units",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             break;
           }
         if (LocaleCompare("text-align",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-align %s ",token);
             (void) WriteBlobString(image,message);
@@ -4414,7 +4436,7 @@
           }
         if (LocaleCompare("text-anchor",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-anchor %s ",token);
             (void) WriteBlobString(image,message);
@@ -4428,7 +4450,7 @@
       {
         if (LocaleCompare("image",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             primitive_type=ImagePrimitive;
             break;
           }
@@ -4440,7 +4462,7 @@
       {
         if (LocaleCompare("kerning",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"kerning:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -4452,7 +4474,7 @@
       {
         if (LocaleCompare("letter-spacing",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "letter-spacing:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4471,7 +4493,7 @@
       {
         if (LocaleCompare("opacity",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"opacity %s ",
               token);
             (void) WriteBlobString(image,message);
@@ -4505,7 +4527,7 @@
           }
         if (LocaleCompare("pop",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               {
                 (void) WriteBlobString(image,"</clipPath>\n");
@@ -4548,10 +4570,10 @@
           }
         if (LocaleCompare("push",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (LocaleCompare("clip-path",token) == 0)
               {
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) FormatLocaleString(message,MagickPathExtent,
                   "<clipPath id=\"%s\">\n",token);
                 (void) WriteBlobString(image,message);
@@ -4564,27 +4586,27 @@
               }
             if (LocaleCompare("gradient",token) == 0)
               {
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(type,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 svg_info.segment.x1=StringToDouble(token,&next_token);
                 svg_info.element.cx=StringToDouble(token,&next_token);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.segment.y1=StringToDouble(token,&next_token);
                 svg_info.element.cy=StringToDouble(token,&next_token);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.segment.x2=StringToDouble(token,&next_token);
                 svg_info.element.major=StringToDouble(token,
                   (char **) NULL);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.segment.y2=StringToDouble(token,&next_token);
                 svg_info.element.minor=StringToDouble(token,
                   (char **) NULL);
@@ -4594,9 +4616,9 @@
                   svg_info.segment.y1,svg_info.segment.x2,svg_info.segment.y2);
                 if (LocaleCompare(type,"radial") == 0)
                   {
-                    GetNextToken(q,&q,extent,token);
+                    (void) GetNextToken(q,&q,extent,token);
                     if (*token == ',')
-                      GetNextToken(q,&q,extent,token);
+                      (void) GetNextToken(q,&q,extent,token);
                     svg_info.element.angle=StringToDouble(token,
                       (char **) NULL);
                     (void) FormatLocaleString(message,MagickPathExtent,
@@ -4622,22 +4644,22 @@
               }
             if (LocaleCompare("pattern",token) == 0)
               {
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 svg_info.bounds.x=StringToDouble(token,&next_token);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.bounds.y=StringToDouble(token,&next_token);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.bounds.width=StringToDouble(token,
                   (char **) NULL);
-                GetNextToken(q,&q,extent,token);
+                (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                 svg_info.bounds.height=StringToDouble(token,(char **) NULL);
                 (void) FormatLocaleString(message,MagickPathExtent,
                   "<pattern id=\"%s\" x=\"%g\" y=\"%g\" width=\"%g\" "
@@ -4671,7 +4693,7 @@
           }
         if (LocaleCompare("rotate",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"rotate(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4685,17 +4707,17 @@
       {
         if (LocaleCompare("scale",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.sx=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.sy=StringToDouble(token,&next_token);
             break;
           }
         if (LocaleCompare("skewX",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"skewX(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4703,7 +4725,7 @@
           }
         if (LocaleCompare("skewY",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"skewY(%s) ",
               token);
             (void) WriteBlobString(image,message);
@@ -4714,9 +4736,9 @@
             char
               color[MagickPathExtent];
 
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) CopyMagickString(color,token,MagickPathExtent);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "  <stop offset=\"%s\" stop-color=\"%s\" />\n",token,color);
             (void) WriteBlobString(image,message);
@@ -4724,7 +4746,7 @@
           }
         if (LocaleCompare("stroke",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,"stroke:%s;",
               token);
             (void) WriteBlobString(image,message);
@@ -4732,7 +4754,7 @@
           }
         if (LocaleCompare("stroke-antialias",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-antialias:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4746,13 +4768,13 @@
                   k;
 
                 p=q;
-                GetNextToken(p,&p,extent,token);
+                (void) GetNextToken(p,&p,extent,token);
                 for (k=0; IsPoint(token); k++)
-                  GetNextToken(p,&p,extent,token);
+                  (void) GetNextToken(p,&p,extent,token);
                 (void) WriteBlobString(image,"stroke-dasharray:");
                 for (j=0; j < k; j++)
                 {
-                  GetNextToken(q,&q,extent,token);
+                  (void) GetNextToken(q,&q,extent,token);
                   (void) FormatLocaleString(message,MagickPathExtent,"%s ",
                     token);
                   (void) WriteBlobString(image,message);
@@ -4760,7 +4782,7 @@
                 (void) WriteBlobString(image,";");
                 break;
               }
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-dasharray:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4768,7 +4790,7 @@
           }
         if (LocaleCompare("stroke-dashoffset",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-dashoffset:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4776,7 +4798,7 @@
           }
         if (LocaleCompare("stroke-linecap",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-linecap:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4784,7 +4806,7 @@
           }
         if (LocaleCompare("stroke-linejoin",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-linejoin:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4792,7 +4814,7 @@
           }
         if (LocaleCompare("stroke-miterlimit",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-miterlimit:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4800,7 +4822,7 @@
           }
         if (LocaleCompare("stroke-opacity",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-opacity:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4808,7 +4830,7 @@
           }
         if (LocaleCompare("stroke-width",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "stroke-width:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4827,7 +4849,7 @@
           }
         if (LocaleCompare("text-antialias",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             (void) FormatLocaleString(message,MagickPathExtent,
               "text-antialias:%s;",token);
             (void) WriteBlobString(image,message);
@@ -4840,11 +4862,11 @@
           }
         if (LocaleCompare("translate",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             affine.tx=StringToDouble(token,&next_token);
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
             affine.ty=StringToDouble(token,&next_token);
             break;
           }
@@ -4856,16 +4878,16 @@
       {
         if (LocaleCompare("viewbox",keyword) == 0)
           {
-            GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
-            GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
-            GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
-              GetNextToken(q,&q,extent,token);
-            GetNextToken(q,&q,extent,token);
+              (void) GetNextToken(q,&q,extent,token);
+            (void) GetNextToken(q,&q,extent,token);
             break;
           }
         status=MagickFalse;
@@ -4893,15 +4915,15 @@
       */
       if (IsPoint(q) == MagickFalse)
         break;
-      GetNextToken(q,&q,extent,token);
+      (void) GetNextToken(q,&q,extent,token);
       point.x=StringToDouble(token,&next_token);
-      GetNextToken(q,&q,extent,token);
+      (void) GetNextToken(q,&q,extent,token);
       if (*token == ',')
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
       point.y=StringToDouble(token,&next_token);
-      GetNextToken(q,(const char **) NULL,extent,token);
+      (void) GetNextToken(q,(const char **) NULL,extent,token);
       if (*token == ',')
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
       primitive_info[i].primitive=primitive_type;
       primitive_info[i].point=point;
       primitive_info[i].coordinates=0;
@@ -5067,7 +5089,8 @@
         primitive_info[i].coordinates=0;
         primitive_info[j].coordinates++;
         i++;
-        (void) CopyMagickString(message,"  <polygon points=\"",MagickPathExtent);
+        (void) CopyMagickString(message,"  <polygon points=\"",
+          MagickPathExtent);
         (void) WriteBlobString(image,message);
         length=strlen(message);
         for ( ; j < i; j++)
@@ -5099,10 +5122,10 @@
         int
           number_attributes;
 
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         number_attributes=1;
         for (p=token; *p != '\0'; p++)
-          if (isalpha((int) *p))
+          if (isalpha((int) ((unsigned char) *p)) != 0)
             number_attributes++;
         if (i > (ssize_t) (number_points-6*BezierQuantum*number_attributes-1))
           {
@@ -5130,7 +5153,7 @@
             status=MagickFalse;
             break;
           }
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         if (LocaleCompare("point",token) == 0)
           primitive_info[j].method=PointMethod;
         if (LocaleCompare("replace",token) == 0)
@@ -5153,7 +5176,7 @@
             status=MagickFalse;
             break;
           }
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         (void) FormatLocaleString(message,MagickPathExtent,
           "  <text x=\"%g\" y=\"%g\">",primitive_info[j].point.x,
           primitive_info[j].point.y);
@@ -5176,7 +5199,7 @@
             status=MagickFalse;
             break;
           }
-        GetNextToken(q,&q,extent,token);
+        (void) GetNextToken(q,&q,extent,token);
         (void) FormatLocaleString(message,MagickPathExtent,
           "  <image x=\"%g\" y=\"%g\" width=\"%g\" height=\"%g\" "
           "href=\"%s\"/>\n",primitive_info[j].point.x,
diff --git a/coders/svg.h b/coders/svg.h
index 79a2826..9ba5387 100644
--- a/coders/svg.h
+++ b/coders/svg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tga.c b/coders/tga.c
index 87c6f0a..f74819d 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -167,7 +167,6 @@
     base,
     flag,
     offset,
-    real,
     skip;
 
   ssize_t
@@ -239,9 +238,13 @@
   */
   image->columns=tga_info.width;
   image->rows=tga_info.height;
-  alpha_bits=(tga_info.attributes & 0x0FU);
-  image->alpha_trait=(alpha_bits > 0) || (tga_info.bits_per_pixel == 32) ||
-    (tga_info.colormap_size == 32) ?  BlendPixelTrait : UndefinedPixelTrait;
+  if ((tga_info.image_type != TGAMonochrome) &&
+      (tga_info.image_type != TGARLEMonochrome))
+    {
+      alpha_bits=(tga_info.attributes & 0x0FU);
+      image->alpha_trait=(alpha_bits > 0) || (tga_info.bits_per_pixel == 32) ||
+        (tga_info.colormap_size == 32) ?  BlendPixelTrait : UndefinedPixelTrait;
+    }
   if ((tga_info.image_type != TGAColormap) &&
       (tga_info.image_type != TGARLEColormap))
     image->depth=(size_t) ((tga_info.bits_per_pixel <= 8) ? 8 :
@@ -250,10 +253,14 @@
     image->depth=(size_t) ((tga_info.colormap_size <= 8) ? 8 :
       (tga_info.colormap_size <= 16) ? 5 : 8);
   if ((tga_info.image_type == TGAColormap) ||
-      (tga_info.image_type == TGAMonochrome) ||
-      (tga_info.image_type == TGARLEColormap) ||
-      (tga_info.image_type == TGARLEMonochrome))
+      (tga_info.image_type == TGARLEColormap))
     image->storage_class=PseudoClass;
+  if ((tga_info.image_type == TGAMonochrome) ||
+      (tga_info.image_type == TGARLEMonochrome))
+    {
+      image->type=GrayscaleType;
+      image->colorspace=GRAYColorspace;
+    }
   image->compression=NoCompression;
   if ((tga_info.image_type == TGARLEColormap) ||
       (tga_info.image_type == TGARLEMonochrome) ||
@@ -303,19 +310,20 @@
         }
       comment=DestroyString(comment);
     }
-  if (tga_info.attributes & (1UL << 4))
+  image->orientation=BottomLeftOrientation;
+  if ((tga_info.attributes & (1UL << 4)) == 0)
     {
-      if (tga_info.attributes & (1UL << 5))
-        image->orientation=TopRightOrientation;
+      if ((tga_info.attributes & (1UL << 5)) == 0)
+        image->orientation=BottomLeftOrientation;
       else
-        image->orientation=BottomRightOrientation;
+        image->orientation=TopLeftOrientation;
     }
   else
     {
-      if (tga_info.attributes & (1UL << 5))
-        image->orientation=TopLeftOrientation;
+      if ((tga_info.attributes & (1UL << 5)) == 0)
+        image->orientation=BottomRightOrientation;
       else
-        image->orientation=BottomLeftOrientation;
+        image->orientation=TopRightOrientation;
     }
   if (image_info->ping != MagickFalse)
     {
@@ -411,16 +419,12 @@
   base=0;
   flag=0;
   skip=MagickFalse;
-  real=0;
   index=0;
   runlength=0;
   offset=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    real=offset;
-    if (((unsigned char) (tga_info.attributes & 0x20) >> 5) == 0)
-      real=image->rows-real-1;
-    q=QueueAuthenticPixels(image,0,(ssize_t) real,image->columns,1,exception);
+    q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
@@ -535,15 +539,10 @@
         SetPixelAlpha(image,ClampToQuantum(pixel.alpha),q);
       q+=GetPixelChannels(image);
     }
-    /*
-      if (((unsigned char) (tga_info.attributes & 0xc0) >> 6) == 4)
-        offset+=4;
-      else
-    */
-      if (((unsigned char) (tga_info.attributes & 0xc0) >> 6) == 2)
-        offset+=2;
-      else
-        offset++;
+    if (((unsigned char) (tga_info.attributes & 0xc0) >> 6) == 2)
+      offset+=2;
+    else
+      offset++;
     if (offset >= image->rows)
       {
         base++;
@@ -751,7 +750,9 @@
     channels;
 
   ssize_t
+    base,
     count,
+    offset,
     y;
 
   TGAInfo
@@ -843,6 +844,7 @@
       (image->orientation == TopRightOrientation))
     tga_info.attributes|=(1UL << 4);
   if ((image->orientation == TopLeftOrientation) ||
+      (image->orientation == UndefinedOrientation) ||
       (image->orientation == TopRightOrientation))
     tga_info.attributes|=(1UL << 5);
   if ((image->columns > 65535) || (image->rows > 65535))
@@ -906,10 +908,12 @@
   /*
     Convert MIFF to TGA raster pixels.
   */
+  base=0;
+  offset=0;
   channels=GetPixelChannels(image);
-  for (y=(ssize_t) (image->rows-1); y >= 0; y--)
+  for (y=0; y < (ssize_t) image->rows; y++)
   {
-    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+    p=GetVirtualPixels(image,0,offset,image->columns,1,exception);
     if (p == (const Quantum *) NULL)
       break;
     if (compression == RLECompression)
@@ -928,26 +932,27 @@
                     GetPixelIndex(image,p+((i-1)*channels)))
                   break;
               }
-            else if (tga_info.image_type == TGARLEMonochrome)
-              {
-                if (GetPixelLuma(image,p+(i*channels)) !=
-                    GetPixelLuma(image,p+((i-1)*channels)))
-                  break;
-              }
             else
-              {
-                if ((GetPixelBlue(image,p+(i*channels)) !=
-                     GetPixelBlue(image,p+((i-1)*channels))) ||
-                    (GetPixelGreen(image,p+(i*channels)) !=
-                     GetPixelGreen(image,p+((i-1)*channels))) ||
-                    (GetPixelRed(image,p+(i*channels)) !=
-                     GetPixelRed(image,p+((i-1)*channels))))
-                  break;
-                if ((image->alpha_trait != UndefinedPixelTrait) &&
-                    (GetPixelAlpha(image,p+(i*channels)) !=
-                     GetPixelAlpha(image,p+(i-1)*channels)))
-                  break;
-              }
+              if (tga_info.image_type == TGARLEMonochrome)
+                {
+                  if (GetPixelLuma(image,p+(i*channels)) !=
+                      GetPixelLuma(image,p+((i-1)*channels)))
+                    break;
+                }
+              else
+                {
+                  if ((GetPixelBlue(image,p+(i*channels)) !=
+                       GetPixelBlue(image,p+((i-1)*channels))) ||
+                      (GetPixelGreen(image,p+(i*channels)) !=
+                       GetPixelGreen(image,p+((i-1)*channels))) ||
+                      (GetPixelRed(image,p+(i*channels)) !=
+                       GetPixelRed(image,p+((i-1)*channels))))
+                    break;
+                  if ((image->alpha_trait != UndefinedPixelTrait) &&
+                      (GetPixelAlpha(image,p+(i*channels)) !=
+                       GetPixelAlpha(image,p+(i-1)*channels)))
+                    break;
+                }
             i++;
           }
           if (i < 3)
@@ -980,13 +985,20 @@
         }
       }
     else
+      for (x=0; x < (ssize_t) image->columns; x++)
       {
-        for (x=0; x < (ssize_t) image->columns; x++)
-          {
-            WriteTGAPixel(image,tga_info.image_type,p,range,midpoint);
-            p+=channels;
-          }
+        WriteTGAPixel(image,tga_info.image_type,p,range,midpoint);
+        p+=channels;
       }
+     if (((unsigned char) (tga_info.attributes & 0xc0) >> 6) == 2)
+       offset+=2;
+     else
+       offset++;
+      if (offset >= image->rows)
+        {
+          base++;
+          offset=base;
+        }
     if (image->previous == (Image *) NULL)
       {
         status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
diff --git a/coders/tga.h b/coders/tga.h
index c0bee86..3e1a931 100644
--- a/coders/tga.h
+++ b/coders/tga.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index da2a86e..1f7900a 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/thumbnail.h b/coders/thumbnail.h
index 843c4f9..8dd3479 100644
--- a/coders/thumbnail.h
+++ b/coders/thumbnail.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tiff.c b/coders/tiff.c
index 6f37a1e..211d82f 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -121,6 +121,7 @@
   ReadYCCKMethod,
   ReadStripMethod,
   ReadTileMethod,
+  ReadRGBATileMethod,
   ReadGenericMethod
 } TIFFMethodType;
 
@@ -188,7 +189,7 @@
     { EXIFTAG_FOCALPLANEXRESOLUTION, TIFF_RATIONAL, 0, "exif:FocalPlaneXResolution" },
     { EXIFTAG_FOCALPLANEYRESOLUTION, TIFF_RATIONAL, 0, "exif:FocalPlaneYResolution" },
     { EXIFTAG_FOCALPLANERESOLUTIONUNIT, TIFF_SHORT, 0, "exif:FocalPlaneResolutionUnit" },
-    { EXIFTAG_SUBJECTLOCATION, TIFF_SHORT, 0, "exif:SubjectLocation" },
+    { EXIFTAG_SUBJECTLOCATION, TIFF_SHORT, 2, "exif:SubjectLocation" },
     { EXIFTAG_EXPOSUREINDEX, TIFF_RATIONAL, 0, "exif:ExposureIndex" },
     { EXIFTAG_SENSINGMETHOD, TIFF_SHORT, 0, "exif:SensingMethod" },
     { EXIFTAG_FILESOURCE, TIFF_NOTYPE, 0, "exif:FileSource" },
@@ -257,6 +258,12 @@
     }
     case SEEK_CUR:
     {
+      if (((offset > 0) && (profile->offset > (SSIZE_MAX-offset))) ||
+          ((offset < 0) && (profile->offset < (-SSIZE_MAX-offset))))
+        {
+          errno=EOVERFLOW;
+          return(-1);
+        }
       if ((profile->offset+offset) < 0)
         return(-1);
       profile->offset+=offset;
@@ -285,12 +292,14 @@
 
 static void InitPSDInfo(const Image *image,PSDInfo *info)
 {
+  (void) memset(info,0,sizeof(*info));
   info->version=1;
   info->columns=image->columns;
   info->rows=image->rows;
   info->mode=10; /* Set the mode to a value that won't change the colorspace */
   info->channels=1U;
   info->min_channels=1U;
+  info->has_merged_image=MagickFalse;
   if (image->storage_class == PseudoClass)
     info->mode=2; /* indexed mode */
   else
@@ -448,9 +457,9 @@
     ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
   length=fwrite("\376\000\003\000\001\000\000\000\000\000\000\000",1,12,file);
   length=fwrite("\000\001\004\000\001\000\000\000",1,8,file);
-  length=WriteLSBLong(file,image->columns);
+  length=WriteLSBLong(file,(unsigned int) image->columns);
   length=fwrite("\001\001\004\000\001\000\000\000",1,8,file);
-  length=WriteLSBLong(file,image->rows);
+  length=WriteLSBLong(file,(unsigned int) image->rows);
   length=fwrite("\002\001\003\000\001\000\000\000\001\000\000\000",1,12,file);
   length=fwrite("\003\001\003\000\001\000\000\000\004\000\000\000",1,12,file);
   length=fwrite("\006\001\003\000\001\000\000\000\000\000\000\000",1,12,file);
@@ -461,7 +470,7 @@
   length=WriteLSBLong(file,(unsigned int) image_info->orientation);
   length=fwrite("\025\001\003\000\001\000\000\000\001\000\000\000",1,12,file);
   length=fwrite("\026\001\004\000\001\000\000\000",1,8,file);
-  length=WriteLSBLong(file,image->rows);
+  length=WriteLSBLong(file,(unsigned int) image->rows);
   length=fwrite("\027\001\004\000\001\000\000\000\000\000\000\000",1,12,file);
   offset=(ssize_t) ftell(file)-4;
   length=fwrite("\032\001\005\000\001\000\000\000",1,8,file);
@@ -693,7 +702,22 @@
 #if defined(TIFFTAG_XMLPACKET)
   if ((TIFFGetField(tiff,TIFFTAG_XMLPACKET,&length,&profile) == 1) &&
       (profile != (unsigned char *) NULL))
-    (void) ReadProfile(image,"xmp",profile,(ssize_t) length,exception);
+    {
+      StringInfo
+        *dng;
+
+      (void) ReadProfile(image,"xmp",profile,(ssize_t) length,exception);
+      dng=BlobToStringInfo(profile,length);
+      if (dng != (StringInfo *) NULL)
+        {
+          const char
+            *target = "dc:format=\"image/dng\"";
+
+          if (strstr((char *) GetStringInfoDatum(dng),target) != (char *) NULL)
+            (void) CopyMagickString(image->magick,"DNG",MagickPathExtent);
+          dng=DestroyStringInfo(dng);
+        }
+    }
 #endif
   if ((TIFFGetField(tiff,34118,&length,&profile) == 1) &&
       (profile != (unsigned char *) NULL))
@@ -712,7 +736,6 @@
 
   uint32
     count,
-    length,
     type;
 
   if ((TIFFGetField(tiff,TIFFTAG_ARTIST,&text) == 1) &&
@@ -853,6 +876,16 @@
             if (TIFFGetField(tiff,exif_info[i].tag,&shorty,sans) == 1)
               (void) FormatLocaleString(value,MagickPathExtent,"%d",shorty);
           }
+        else if (exif_info[i].variable_length == 2)
+        {
+          uint16
+            *shorty;
+
+          shorty=0;
+          if ((TIFFGetField(tiff,exif_info[i].tag,&shorty,sans) == 1) &&
+              (shorty != (uint16 *) NULL))
+            (void) FormatLocaleString(value,MagickPathExtent,"%d",*shorty);
+        }
         else
           {
             int
@@ -1097,7 +1130,7 @@
   size_t
     total;
 
-  ssize_t
+  MagickOffsetType
     remaining;
 
   if (count == 0)
@@ -1227,8 +1260,8 @@
 {
 #define ThrowTIFFException(severity,message) \
 { \
-  if (tiff_pixels != (unsigned char *) NULL) \
-    tiff_pixels=(unsigned char *) RelinquishMagickMemory(tiff_pixels); \
+  if (pixel_info != (MemoryInfo *) NULL) \
+    pixel_info=RelinquishVirtualMemory(pixel_info); \
   if (quantum_info != (QuantumInfo *) NULL) \
     quantum_info=DestroyQuantumInfo(quantum_info); \
   TIFFClose(tiff); \
@@ -1258,6 +1291,9 @@
   MagickSizeType
     number_pixels;
 
+  MemoryInfo
+    *pixel_info = (MemoryInfo *) NULL;
+
   QuantumInfo
     *quantum_info;
 
@@ -1302,7 +1338,10 @@
     width;
 
   unsigned char
-    *tiff_pixels;
+    *pixels;
+
+  void
+    *sans[2] = { NULL, NULL };
 
   /*
     Open image.
@@ -1330,6 +1369,12 @@
       image=DestroyImageList(image);
       return((Image *) NULL);
     }
+  if (exception->severity > ErrorException)
+    {
+      TIFFClose(tiff);
+      image=DestroyImageList(image);
+      return((Image *) NULL);
+    }
   if (image_info->number_scenes != 0)
     {
       /*
@@ -1369,20 +1414,20 @@
     photometric=PHOTOMETRIC_RGB;
     if ((TIFFGetField(tiff,TIFFTAG_IMAGEWIDTH,&width) != 1) ||
         (TIFFGetField(tiff,TIFFTAG_IMAGELENGTH,&height) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_PHOTOMETRIC,&photometric) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_COMPRESSION,&compress_tag) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_FILLORDER,&endian) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_PLANARCONFIG,&interlace) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLESPERPIXEL,&samples_per_pixel) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,&bits_per_sample) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLEFORMAT,&sample_format) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_MINSAMPLEVALUE,&min_sample_value) != 1) ||
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_MAXSAMPLEVALUE,&max_sample_value) != 1))
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_PHOTOMETRIC,&photometric,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_COMPRESSION,&compress_tag,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_FILLORDER,&endian,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_PLANARCONFIG,&interlace,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLESPERPIXEL,&samples_per_pixel,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,&bits_per_sample,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLEFORMAT,&sample_format,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_MINSAMPLEVALUE,&min_sample_value,sans) != 1) ||
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_MAXSAMPLEVALUE,&max_sample_value,sans) != 1))
       {
         TIFFClose(tiff);
         ThrowReaderException(CorruptImageError,"ImproperImageHeader");
       }
-    if (((sample_format != SAMPLEFORMAT_IEEEFP) || (bits_per_sample == 64)) &&
+    if (((sample_format != SAMPLEFORMAT_IEEEFP) || (bits_per_sample != 64)) &&
         ((bits_per_sample <= 0) || (bits_per_sample > 32)))
       {
         TIFFClose(tiff);
@@ -1503,28 +1548,26 @@
     option=GetImageOption(image_info,"tiff:exif-properties");
     if (IsStringFalse(option) == MagickFalse) /* enabled by default */
       TIFFGetEXIFProperties(tiff,image,exception);
-    (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLESPERPIXEL,
-      &samples_per_pixel);
-    if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XRESOLUTION,&x_resolution) == 1) &&
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_YRESOLUTION,&y_resolution) == 1))
+    if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XRESOLUTION,&x_resolution,sans) == 1) &&
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_YRESOLUTION,&y_resolution,sans) == 1))
       {
         image->resolution.x=x_resolution;
         image->resolution.y=y_resolution;
       }
-    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_RESOLUTIONUNIT,&units) == 1)
+    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_RESOLUTIONUNIT,&units,sans) == 1)
       {
         if (units == RESUNIT_INCH)
           image->units=PixelsPerInchResolution;
         if (units == RESUNIT_CENTIMETER)
           image->units=PixelsPerCentimeterResolution;
       }
-    if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XPOSITION,&x_position) == 1) &&
-        (TIFFGetFieldDefaulted(tiff,TIFFTAG_YPOSITION,&y_position) == 1))
+    if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XPOSITION,&x_position,sans) == 1) &&
+        (TIFFGetFieldDefaulted(tiff,TIFFTAG_YPOSITION,&y_position,sans) == 1))
       {
         image->page.x=(ssize_t) ceil(x_position*image->resolution.x-0.5);
         image->page.y=(ssize_t) ceil(y_position*image->resolution.y-0.5);
       }
-    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_ORIENTATION,&orientation) == 1)
+    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_ORIENTATION,&orientation,sans) == 1)
       image->orientation=(OrientationType) orientation;
     if (TIFFGetField(tiff,TIFFTAG_WHITEPOINT,&chromaticity) == 1)
       {
@@ -1616,7 +1659,7 @@
           }
       }
     value=(unsigned short) image->scene;
-    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_PAGENUMBER,&value,&pages) == 1)
+    if (TIFFGetFieldDefaulted(tiff,TIFFTAG_PAGENUMBER,&value,&pages,sans) == 1)
       image->scene=value;
     if (image->storage_class == PseudoClass)
       {
@@ -1681,7 +1724,6 @@
     /*
       Allocate memory for the image and pixel buffer.
     */
-    tiff_pixels=(unsigned char *) NULL;
     quantum_info=AcquireQuantumInfo(image_info,image);
     if (quantum_info == (QuantumInfo *) NULL)
       ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1710,7 +1752,7 @@
         break;
     }
     tiff_status=TIFFGetFieldDefaulted(tiff,TIFFTAG_EXTRASAMPLES,&extra_samples,
-      &sample_info);
+      &sample_info,sans);
     if (tiff_status == 1)
       {
         (void) SetImageProperty(image,"tiff:alpha","unspecified",exception);
@@ -1780,20 +1822,25 @@
     if (compress_tag == COMPRESSION_JBIG)
       method=ReadStripMethod;
     if (TIFFIsTiled(tiff) != MagickFalse)
-      method=ReadTileMethod;
+      {
+        method=ReadRGBATileMethod;
+        if (samples_per_pixel == 1)
+          method=ReadTileMethod;
+      }
     quantum_info->endian=LSBEndian;
     quantum_type=RGBQuantum;
     if (TIFFScanlineSize(tiff) <= 0)
       ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
-    if (((MagickSizeType) TIFFScanlineSize(tiff)) > (2*GetBlobSize(image)))
+    if ((1.0*TIFFScanlineSize(tiff)) > (2.1*GetBlobSize(image)))
       ThrowTIFFException(CorruptImageError,"InsufficientImageDataInFile");
     number_pixels=MagickMax(TIFFScanlineSize(tiff),MagickMax((ssize_t)
       image->columns*samples_per_pixel*pow(2.0,ceil(log(bits_per_sample)/
-      log(2.0))),image->columns*rows_per_strip)*sizeof(uint32));
-    tiff_pixels=(unsigned char *) AcquireMagickMemory(number_pixels);
-    if (tiff_pixels == (unsigned char *) NULL)
+      log(2.0))),image->columns*rows_per_strip));
+    pixel_info=AcquireVirtualMemory(number_pixels,sizeof(uint32));
+    if (pixel_info == (MemoryInfo *) NULL)
       ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
-    (void) memset(tiff_pixels,0,number_pixels);
+    pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
+    (void) memset(pixels,0,number_pixels*sizeof(uint32));
     switch (method)
     {
       case ReadSingleSampleMethod:
@@ -1832,14 +1879,14 @@
           register Quantum
             *magick_restrict q;
 
-          tiff_status=TIFFReadPixels(tiff,0,y,(char *) tiff_pixels);
+          tiff_status=TIFFReadPixels(tiff,0,y,(char *) pixels);
           if (tiff_status == -1)
             break;
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
           (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-            quantum_type,tiff_pixels,exception);
+            quantum_type,pixels,exception);
           if (SyncAuthenticPixels(image,exception) == MagickFalse)
             break;
           if (image->previous == (Image *) NULL)
@@ -1882,14 +1929,14 @@
           register Quantum
             *magick_restrict q;
 
-          tiff_status=TIFFReadPixels(tiff,0,y,(char *) tiff_pixels);
+          tiff_status=TIFFReadPixels(tiff,0,y,(char *) pixels);
           if (tiff_status == -1)
             break;
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
           (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-            quantum_type,tiff_pixels,exception);
+            quantum_type,pixels,exception);
           if (SyncAuthenticPixels(image,exception) == MagickFalse)
             break;
           if (image->previous == (Image *) NULL)
@@ -1915,7 +1962,7 @@
               *magick_restrict q;
 
             tiff_status=TIFFReadPixels(tiff,(tsample_t) i,y,(char *)
-              tiff_pixels);
+              pixels);
             if (tiff_status == -1)
               break;
             q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -1941,7 +1988,7 @@
                 default: quantum_type=UndefinedQuantum; break;
               }
             (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-              quantum_type,tiff_pixels,exception);
+              quantum_type,pixels,exception);
             if (SyncAuthenticPixels(image,exception) == MagickFalse)
               break;
           }
@@ -1968,13 +2015,13 @@
           unsigned char
             *p;
 
-          tiff_status=TIFFReadPixels(tiff,0,y,(char *) tiff_pixels);
+          tiff_status=TIFFReadPixels(tiff,0,y,(char *) pixels);
           if (tiff_status == -1)
             break;
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
           if (q == (Quantum *) NULL)
             break;
-          p=tiff_pixels;
+          p=pixels;
           for (x=0; x < (ssize_t) image->columns; x++)
           {
             SetPixelCyan(image,ScaleCharToQuantum(ClampYCC((double) *p+
@@ -2024,13 +2071,13 @@
             break;
           if (i == 0)
             {
-              if (TIFFReadRGBAStrip(tiff,(tstrip_t) y,(uint32 *) tiff_pixels) == 0)
+              if (TIFFReadRGBAStrip(tiff,(tstrip_t) y,(uint32 *) pixels) == 0)
                 break;
               i=(ssize_t) MagickMin((ssize_t) rows_per_strip,(ssize_t)
                 image->rows-y);
             }
           i--;
-          p=((uint32 *) tiff_pixels)+image->columns*i;
+          p=((uint32 *) pixels)+image->columns*i;
           for (x=0; x < (ssize_t) image->columns; x++)
           {
             SetPixelRed(image,ScaleCharToQuantum((unsigned char)
@@ -2059,6 +2106,111 @@
       }
       case ReadTileMethod:
       {
+        register unsigned char
+          *p;
+
+        uint32
+          columns,
+          rows;
+
+        unsigned char
+          *tile_pixels;
+
+        /*
+          Convert tiled TIFF image to DirectClass MIFF image.
+        */
+        quantum_type=IndexQuantum;
+        pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
+        if (image->alpha_trait != UndefinedPixelTrait)
+          {
+            if (image->storage_class != PseudoClass)
+              {
+                quantum_type=samples_per_pixel == 1 ? AlphaQuantum :
+                  GrayAlphaQuantum;
+                pad=(size_t) MagickMax((ssize_t) samples_per_pixel-2,0);
+              }
+            else
+              {
+                quantum_type=IndexAlphaQuantum;
+                pad=(size_t) MagickMax((ssize_t) samples_per_pixel-2,0);
+              }
+          }
+        else
+          if (image->storage_class != PseudoClass)
+            {
+              quantum_type=GrayQuantum;
+              pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
+            }
+        status=SetQuantumPad(image,quantum_info,pad*pow(2,ceil(log(
+          bits_per_sample)/log(2))));
+        if (status == MagickFalse)
+          ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
+        if ((TIFFGetField(tiff,TIFFTAG_TILEWIDTH,&columns) != 1) ||
+            (TIFFGetField(tiff,TIFFTAG_TILELENGTH,&rows) != 1))
+          ThrowTIFFException(CoderError,"ImageIsNotTiled");
+        if ((AcquireMagickResource(WidthResource,columns) == MagickFalse) ||
+            (AcquireMagickResource(HeightResource,rows) == MagickFalse))
+          ThrowTIFFException(ImageError,"WidthOrHeightExceedsLimit");
+        (void) SetImageStorageClass(image,DirectClass,exception);
+        number_pixels=(MagickSizeType) columns*rows;
+        if (HeapOverflowSanityCheck(rows,sizeof(*tile_pixels)) != MagickFalse)
+          ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
+        tile_pixels=(unsigned char *) AcquireQuantumMemory(TIFFTileSize(tiff)+
+          sizeof(uint32),sizeof(*tile_pixels));
+        if (tile_pixels == (unsigned char *) NULL)
+          ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
+        (void) memset(tile_pixels,0,TIFFTileSize(tiff)*sizeof(*tile_pixels));
+        for (y=0; y < (ssize_t) image->rows; y+=rows)
+        {
+          register ssize_t
+            x;
+
+          size_t
+            rows_remaining;
+
+          rows_remaining=image->rows-y;
+          if ((ssize_t) (y+rows) < (ssize_t) image->rows)
+            rows_remaining=rows;
+          for (x=0; x < (ssize_t) image->columns; x+=columns)
+          {
+            size_t
+              columns_remaining,
+              row;
+
+            columns_remaining=image->columns-x;
+            if ((ssize_t) (x+columns) < (ssize_t) image->columns)
+              columns_remaining=columns;
+            if (TIFFReadTile(tiff,tile_pixels,(uint32) x,(uint32) y,0,0) == 0)
+              break;
+            p=tile_pixels;
+            for (row=0; row < rows_remaining; row++)
+            {
+              register Quantum
+                *magick_restrict q;
+
+              q=GetAuthenticPixels(image,x,y+row,columns_remaining,1,exception);
+              if (q == (Quantum *) NULL)
+                break;
+              (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+                quantum_type,p,exception);
+              p+=TIFFTileRowSize(tiff);
+              if (SyncAuthenticPixels(image,exception) == MagickFalse)
+                break;
+            }
+          }
+          if (image->previous == (Image *) NULL)
+            {
+              status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+                image->rows);
+              if (status == MagickFalse)
+                break;
+            }
+        }
+        tile_pixels=(unsigned char *) RelinquishMagickMemory(tile_pixels);
+        break;
+      }
+      case ReadRGBATileMethod:
+      {
         register uint32
           *p;
 
@@ -2167,7 +2319,7 @@
       default:
       {
         MemoryInfo
-          *pixel_info;
+          *generic_info = (MemoryInfo * ) NULL;
 
         register uint32
           *p;
@@ -2179,14 +2331,13 @@
           Convert TIFF image to DirectClass MIFF image.
         */
         (void) SetImageStorageClass(image,DirectClass,exception);
-        number_pixels=(MagickSizeType) image->columns*image->rows;
         if (HeapOverflowSanityCheck(image->rows,sizeof(*pixels)) != MagickFalse)
           ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
-        pixel_info=AcquireVirtualMemory(image->columns,image->rows*
-          sizeof(uint32));
-        if (pixel_info == (MemoryInfo *) NULL)
+        number_pixels=(MagickSizeType) image->columns*image->rows;
+        generic_info=AcquireVirtualMemory(number_pixels,sizeof(uint32));
+        if (generic_info == (MemoryInfo *) NULL)
           ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
-        pixels=(uint32 *) GetVirtualMemoryBlob(pixel_info);
+        pixels=(uint32 *) GetVirtualMemoryBlob(generic_info);
         (void) TIFFReadRGBAImage(tiff,(uint32) image->columns,(uint32)
           image->rows,(uint32 *) pixels,0);
         /*
@@ -2229,11 +2380,11 @@
                 break;
             }
         }
-        pixel_info=RelinquishVirtualMemory(pixel_info);
+        generic_info=RelinquishVirtualMemory(generic_info);
         break;
       }
     }
-    tiff_pixels=(unsigned char *) RelinquishMagickMemory(tiff_pixels);
+    pixel_info=RelinquishVirtualMemory(pixel_info);
     SetQuantumImageType(image,quantum_type);
   next_tiff_frame:
     if (quantum_info != (QuantumInfo *) NULL)
@@ -2364,8 +2515,10 @@
   ignore=(TIFFFieldInfo *) AcquireQuantumMemory(count,sizeof(*ignore));
   if (ignore == (TIFFFieldInfo *) NULL)
     return;
-  /* This also sets field_bit to 0 (FIELD_IGNORE) */
-  memset(ignore,0,count*sizeof(*ignore));
+  /*
+    This also sets field_bit to 0 (FIELD_IGNORE).
+  */
+  (void) memset(ignore,0,count*sizeof(*ignore));
   while (*p != '\0')
   {
     while ((isspace((int) ((unsigned char) *p)) != 0))
@@ -2511,7 +2664,6 @@
   entry->flags|=CoderEndianSupportFlag;
   entry->flags|=CoderDecoderSeekableStreamFlag;
   entry->flags|=CoderEncoderSeekableStreamFlag;
-  entry->flags^=CoderAdjoinFlag;
   entry->flags^=CoderUseExtensionFlag;
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -2965,12 +3117,13 @@
       uint32
         rows_per_strip;
 
+      rows_per_strip=0;  /* use default */
       option=GetImageOption(image_info,"tiff:rows-per-strip");
       if (option != (const char *) NULL)
         rows_per_strip=(size_t) strtol(option,(char **) NULL,10);
-      else
+     else
         if (TIFFGetField(tiff,TIFFTAG_IMAGELENGTH,&rows_per_strip) == 0)
-          rows_per_strip=0;  /* use default */
+          rows_per_strip=0;
       rows_per_strip=TIFFDefaultStripSize(tiff,rows_per_strip);
       (void) TIFFSetField(tiff,TIFFTAG_ROWSPERSTRIP,rows_per_strip);
       return(MagickTrue);
@@ -3467,6 +3620,9 @@
   unsigned char
     *pixels;
 
+  void
+    *sans[2] = { NULL, NULL };
+
   /*
     Open TIFF file.
   */
@@ -3501,6 +3657,11 @@
     TIFFUnmapBlob);
   if (tiff == (TIFF *) NULL)
     return(MagickFalse);
+  if (exception->severity > ErrorException)
+    {
+      TIFFClose(tiff);
+      return(MagickFalse);
+    }
   (void) DeleteImageProfile(image,"tiff:37724");
   scene=0;
   debug=IsEventLogging();
@@ -3733,7 +3894,7 @@
                 }
           }
       }
-    (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_FILLORDER,&endian);
+    (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_FILLORDER,&endian,sans);
     if ((compress_tag == COMPRESSION_CCITTFAX3) ||
         (compress_tag == COMPRESSION_CCITTFAX4))
       {
@@ -3777,7 +3938,7 @@
                 sample_info[0]=EXTRASAMPLE_UNSPECIFIED;
           }
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLESPERPIXEL,
-          &samples_per_pixel);
+          &samples_per_pixel,sans);
         (void) TIFFSetField(tiff,TIFFTAG_SAMPLESPERPIXEL,samples_per_pixel+1);
         (void) TIFFSetField(tiff,TIFFTAG_EXTRASAMPLES,extra_samples,
           &sample_info);
@@ -3860,7 +4021,7 @@
                 }
           }
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,
-          &bits_per_sample);
+          &bits_per_sample,sans);
         if (bits_per_sample == 12)
           (void) TIFFSetField(tiff,TIFFTAG_JPEGTABLESMODE,JPEGTABLESMODE_QUANT);
 #endif
@@ -3869,7 +4030,7 @@
       case COMPRESSION_ADOBE_DEFLATE:
       {
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,
-          &bits_per_sample);
+          &bits_per_sample,sans);
         if (((photometric == PHOTOMETRIC_RGB) ||
              (photometric == PHOTOMETRIC_SEPARATED) ||
              (photometric == PHOTOMETRIC_MINISBLACK)) &&
@@ -3907,7 +4068,7 @@
       case COMPRESSION_LZW:
       {
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,
-          &bits_per_sample);
+          &bits_per_sample,sans);
         if (((photometric == PHOTOMETRIC_RGB) ||
              (photometric == PHOTOMETRIC_SEPARATED) ||
              (photometric == PHOTOMETRIC_MINISBLACK)) &&
@@ -3919,7 +4080,7 @@
       case COMPRESSION_WEBP:
       {
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,
-          &bits_per_sample);
+          &bits_per_sample,sans);
         if (((photometric == PHOTOMETRIC_RGB) ||
              (photometric == PHOTOMETRIC_SEPARATED) ||
              (photometric == PHOTOMETRIC_MINISBLACK)) &&
@@ -3935,7 +4096,7 @@
       case COMPRESSION_ZSTD:
       {
         (void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,
-          &bits_per_sample);
+          &bits_per_sample,sans);
         if (((photometric == PHOTOMETRIC_RGB) ||
              (photometric == PHOTOMETRIC_SEPARATED) ||
              (photometric == PHOTOMETRIC_MINISBLACK)) &&
@@ -4301,7 +4462,11 @@
     if (0 && (image_info->verbose != MagickFalse))
 RestoreMSCWarning
       TIFFPrintDirectory(tiff,stdout,MagickFalse);
-    (void) TIFFWriteDirectory(tiff);
+    if (TIFFWriteDirectory(tiff) == 0)
+      {
+        status=MagickFalse;
+        break;
+      }
     image=SyncNextImageInList(image);
     if (image == (Image *) NULL)
       break;
@@ -4310,6 +4475,6 @@
       break;
   } while (adjoin != MagickFalse);
   TIFFClose(tiff);
-  return(MagickTrue);
+  return(status);
 }
 #endif
diff --git a/coders/tiff.h b/coders/tiff.h
index ce2d79d..4fd0514 100644
--- a/coders/tiff.h
+++ b/coders/tiff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tile.c b/coders/tile.c
index 6f5483b..8909890 100644
--- a/coders/tile.c
+++ b/coders/tile.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/tile.h b/coders/tile.h
index 4dd45cd..e05155f 100644
--- a/coders/tile.h
+++ b/coders/tile.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tim.c b/coders/tim.c
index c3dcee5..1bf3435 100644
--- a/coders/tim.c
+++ b/coders/tim.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/tim.h b/coders/tim.h
index 49259cd..e284c39 100644
--- a/coders/tim.h
+++ b/coders/tim.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tim2.c b/coders/tim2.c
new file mode 100644
index 0000000..84decc5
--- /dev/null
+++ b/coders/tim2.c
@@ -0,0 +1,852 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%                          TTTTT  IIIII  M   M   222                          %
+%                            T      I    MM MM  2   2                         %
+%                            T      I    M M M     2                          %
+%                            T      I    M   M    2                           %
+%                            T    IIIII  M   M  22222                         %
+%                                                                             %
+%                                                                             %
+%                          Read PSX TIM2 Image Format                         %
+%                                                                             %
+%                               Software Design                               %
+%                             Ramiro Balado Ordax                             %
+%                                   May 2019                                  %
+%                                                                             %
+%                                                                             %
+%  Copyright 2019-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  dedicated to making software imaging solutions freely available.           %
+%                                                                             %
+%  You may not use this file except in compliance with the License.  You may  %
+%  obtain a copy of the License at                                            %
+%                                                                             %
+%    https://imagemagick.org/script/license.php                               %
+%                                                                             %
+%  Unless required by applicable law or agreed to in writing, software        %
+%  distributed under the License is distributed on an "AS IS" BASIS,          %
+%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   %
+%  See the License for the specific language governing permissions and        %
+%  limitations under the License.                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+*/
+
+
+/*
+  Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/colormap.h"
+#include "MagickCore/channel.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/static.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/module.h"
+
+
+/*
+ Typedef declarations
+*/
+typedef struct _TIM2FileHeader
+{
+  unsigned int
+    magic_num;
+
+  unsigned char
+    format_vers,
+    format_type;
+
+  unsigned short
+    image_count;
+
+  char
+    reserved[8];
+} TIM2FileHeader;
+
+typedef struct _TIM2ImageHeader
+{
+  unsigned int
+    total_size,
+    clut_size,
+    image_size;
+
+  unsigned short
+    header_size,
+    clut_color_count;
+
+  unsigned char
+    img_format,
+    mipmap_count,
+    clut_type,
+    bpp_type;
+
+  unsigned short
+    width,
+    height;
+
+  MagickSizeType
+    GsTex0,
+    GsTex1;
+
+  unsigned int
+    GsRegs,
+    GsTexClut;
+} TIM2ImageHeader;
+
+typedef enum
+{
+  CSM1=0,
+  CSM2=1,
+} CSM;
+
+typedef enum
+{
+  RGBA32=0,
+  RGB24=1,
+  RGBA16=2,
+} TIM2ColorEncoding;
+
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%  R e a d T I M 2 I m a g e                                                  %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  ReadTIM2Image() reads a PS2 TIM image file and returns it.  It
+%  allocates the memory necessary for the new Image structure and returns a
+%  pointer to the new image.
+%
+%  The format of the ReadTIM2Image method is:
+%
+%      Image *ReadTIM2Image(const ImageInfo *image_info,ExceptionInfo *exception)
+%
+%  A description of each parameter follows:
+%
+%    o image_info: the image info.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+static inline void ReadTIM2ImageHeader(Image *image,TIM2ImageHeader *header)
+{
+  header->total_size=ReadBlobLSBLong(image);
+  header->clut_size=ReadBlobLSBLong(image);
+  header->image_size=ReadBlobLSBLong(image);
+  header->header_size=ReadBlobLSBShort(image);
+
+  header->clut_color_count=ReadBlobLSBShort(image);
+  header->img_format=(unsigned char) ReadBlobByte(image);
+  header->mipmap_count=(unsigned char) ReadBlobByte(image);
+  header->clut_type=(unsigned char) ReadBlobByte(image);
+  header->bpp_type=(unsigned char) ReadBlobByte(image);
+
+  header->width=ReadBlobLSBShort(image);
+  header->height=ReadBlobLSBShort(image);
+
+  header->GsTex0=ReadBlobMSBLongLong(image);
+  header->GsTex1=ReadBlobMSBLongLong(image);
+  header->GsRegs=ReadBlobMSBLong(image);
+  header->GsTexClut=ReadBlobMSBLong(image);
+}
+
+static inline Quantum GetChannelValue(unsigned int word,unsigned char channel,
+  TIM2ColorEncoding ce)
+{
+  switch(ce)
+  {
+    case RGBA16:
+      /* Documentation specifies padding with zeros for converting from 5 to 8 bits. */
+      return ScaleCharToQuantum((word>>channel*5 & ~(~0x0U<<5))<<3);
+    case RGB24:
+    case RGBA32:
+      return ScaleCharToQuantum(word>>channel*8 & ~(~0x0U<<8));
+    default:
+      return -1;
+  }
+}
+
+static inline Quantum GetAlpha(unsigned int word,TIM2ColorEncoding ce)
+{
+  switch(ce)
+  {
+    case RGBA16:
+      return ScaleCharToQuantum((word>>3*5&0x1F)==0?0:0xFF);
+    case RGBA32:
+      /* 0x80 -> 1.0 alpha. Multiply by 2 and clamp to 0xFF */
+      return ScaleCharToQuantum(MagickMin((word>>3*8&0xFF)<<1,0xFF));
+    default:
+      return 0xFF;
+  }
+}
+
+static inline void deshufflePalette(Image *image,PixelInfo* oldColormap)
+{
+  const size_t
+    pages=image->colors/32,  /* Pages per CLUT */
+    blocks=4,  /* Blocks per page */
+    colors=8;  /* Colors per block */
+
+  int
+    page;
+
+  size_t
+    i=0;
+
+  (void) memcpy(oldColormap,image->colormap,(size_t)image->colors*
+    sizeof(*oldColormap));
+
+  /*
+   * Swap the 2nd and 3rd block in each page
+   */
+  for (page=0; page < (ssize_t) pages; page++)
+  {
+    memcpy(&(image->colormap[i+1*colors]),&(oldColormap[i+2*colors]),colors*
+      sizeof(PixelInfo));
+    memcpy(&(image->colormap[i+2*colors]),&(oldColormap[i+1*colors]),colors*
+      sizeof(PixelInfo));
+
+    i+=blocks*colors;
+  }
+}
+
+static MagickBooleanType ReadTIM2ImageData(const ImageInfo *image_info,
+  Image *image,TIM2ImageHeader *header,char clut_depth,char bits_per_pixel,
+  ExceptionInfo *exception)
+{
+  MagickBooleanType
+    status;
+
+  register ssize_t
+    x;
+
+  register Quantum
+    *q;
+
+  register unsigned char
+    *p;
+
+  size_t
+    bits_per_line,
+    bytes_per_line;
+
+  ssize_t
+    count,
+    y;
+
+  unsigned char
+    *row_data;
+
+  unsigned int
+    word;
+
+  status=SetImageExtent(image,image->columns,image->rows,exception);
+  if (status == MagickFalse)
+    return(MagickFalse);
+  /*
+   * User data
+   */
+  status=DiscardBlobBytes(image,header->header_size-48);
+  if (status == MagickFalse)
+    return(MagickFalse);
+  /*
+   * Image data
+   */
+  bits_per_line=image->columns*bits_per_pixel;
+  bytes_per_line=bits_per_line/8 + ((bits_per_line%8==0) ? 0 : 1);
+  row_data=(unsigned char*) AcquireMagickMemory(bytes_per_line);
+  if (row_data == (unsigned char *) NULL)
+    ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+      image_info->filename);
+  if (clut_depth != 0)
+    {
+      image->colors=header->clut_color_count;
+      if (AcquireImageColormap(image,image->colors,exception) == MagickFalse)
+        {
+          row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+          ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+            image_info->filename);
+        }
+      switch (bits_per_pixel)
+      {
+        case 4:
+        {
+          for (y=0; y<(ssize_t) image->rows; y++)
+          {
+            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+            if (q == (Quantum *) NULL)
+              break;
+            count=ReadBlob(image,bytes_per_line,row_data);
+            if (count != (ssize_t) bytes_per_line)
+              {
+                row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+                ThrowBinaryException(CorruptImageError,
+                  "InsufficientImageDataInFile",image_info->filename);
+              }
+            p=row_data;
+            for (x=0; x < ((ssize_t) image->columns-1); x+=2)
+            {
+              SetPixelIndex(image,(*p >> 0) & 0x0F,q);
+              q+=GetPixelChannels(image);
+              SetPixelIndex(image,(*p >> 4) & 0x0F,q);
+              p++;
+              q+=GetPixelChannels(image);
+            }
+            if ((image->columns % 2) != 0)
+              {
+                SetPixelIndex(image,(*p >> 4) & 0x0F,q);
+                p++;
+                q+=GetPixelChannels(image);
+              }
+            if (SyncAuthenticPixels(image,exception) == MagickFalse)
+              break;
+            if (image->previous == (Image *) NULL)
+              {
+                status=SetImageProgress(image,LoadImageTag,
+                  (MagickOffsetType) y,image->rows);
+                if (status == MagickFalse)
+                  break;
+              }
+          }
+          break;
+        }
+        case 8:
+        {
+          for (y=0;y<(ssize_t) image->rows; y++)
+          {
+            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+            if (q == (Quantum *) NULL)
+              break;
+            count=ReadBlob(image,bytes_per_line,row_data);
+            if (count != (ssize_t) bytes_per_line)
+              {
+                row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+                ThrowBinaryException(CorruptImageError,
+                  "InsufficientImageDataInFile",image_info->filename);
+              }
+            p=row_data;
+            for (x=0; x < (ssize_t) image->columns; x++)
+            {
+              SetPixelIndex(image,*p,q);
+              p++;
+              q+=GetPixelChannels(image);
+            }
+            if (SyncAuthenticPixels(image,exception) == MagickFalse)
+              break;
+            if (image->previous == (Image *) NULL)
+              {
+                status=SetImageProgress(image,LoadImageTag,
+                  (MagickOffsetType) y,image->rows);
+                if (status == MagickFalse)
+                  break;
+              }
+          }
+          break;
+        }
+        default:
+        {
+          row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+          ThrowBinaryException(CorruptImageError,"ImproperImageHeader",
+            image_info->filename);
+        }
+      }
+    }
+  else  /* has_clut==false */
+    {
+      switch (bits_per_pixel)
+      {
+        case 16:
+        {
+          for (y=0; y<(ssize_t) image->rows; y++)
+          {
+            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+            if (q == (Quantum *) NULL)
+              break;
+            count=ReadBlob(image,bytes_per_line,row_data);
+            if (count != (ssize_t) bytes_per_line)
+              {
+                row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+                ThrowBinaryException(CorruptImageError,
+                  "InsufficientImageDataInFile",image_info->filename);
+              }
+            p=row_data;
+            for (x=0; x < (ssize_t) image->columns; x++)
+            {
+              word = ((unsigned int)* p   )<<0*8 |
+                      ((unsigned int)*(p+1))<<1*8;
+
+              SetPixelRed(image,GetChannelValue(word,0,RGBA16),q);
+              SetPixelGreen(image,GetChannelValue(word,1,RGBA16),q);
+              SetPixelBlue(image,GetChannelValue(word,2,RGBA16),q);
+              SetPixelAlpha(image,GetAlpha(word,RGBA16),q);
+              q+=GetPixelChannels(image);
+              p+=sizeof(unsigned short);
+            }
+            if (SyncAuthenticPixels(image,exception) == MagickFalse)
+              break;
+            if (image->previous == (Image *) NULL)
+              {
+                status=SetImageProgress(image,LoadImageTag,
+                  (MagickOffsetType) y,image->rows);
+                if (status == MagickFalse)
+                  break;
+              }
+          }
+          break;
+        }
+        case 24:
+        {
+          for (y = 0; y<(ssize_t) image->rows; y++)
+          {
+            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+            if (q == (Quantum *) NULL)
+              break;
+            count=ReadBlob(image,bytes_per_line,row_data);
+            if (count != (ssize_t) bytes_per_line)
+              {
+                row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+                ThrowBinaryException(CorruptImageError,
+                  "InsufficientImageDataInFile",image_info->filename);
+              }
+            p=row_data;
+            for (x=0; x < (ssize_t) image->columns; x++)
+            {
+              word = (unsigned int)(* p   )<<0*8 |
+                      (unsigned int)(*(p+1))<<1*8 |
+                      (unsigned int)(*(p+2))<<2*8;
+
+              SetPixelRed(image,GetChannelValue(word,0,RGB24),q);
+              SetPixelGreen(image,GetChannelValue(word,1,RGB24),q);
+              SetPixelBlue(image,GetChannelValue(word,2,RGB24),q);
+              q+=GetPixelChannels(image);
+              p+=3;
+            }
+            if (SyncAuthenticPixels(image,exception) == MagickFalse)
+              break;
+            if (image->previous == (Image *) NULL)
+              {
+                status=SetImageProgress(image,LoadImageTag,
+                  (MagickOffsetType) y,image->rows);
+                if (status == MagickFalse)
+                  break;
+              }
+          }
+          break;
+        }
+        case 32:
+        {  
+          for (y = 0; y<(ssize_t) image->rows; y++)
+          {
+            q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+            if (q == (Quantum *) NULL)
+              break;
+            count=ReadBlob(image,bytes_per_line,row_data);
+            if (count != (ssize_t) bytes_per_line)
+              {
+                row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+                ThrowBinaryException(CorruptImageError,
+                  "InsufficientImageDataInFile",image_info->filename);
+              }
+            p=row_data;
+            for (x=0; x < (ssize_t) image->columns; x++)
+            {
+              word = ((unsigned int)* p   )<<0*8 |
+                      ((unsigned int)*(p+1))<<1*8 |
+                      ((unsigned int)*(p+2))<<2*8 |
+                      ((unsigned int)*(p+3))<<3*8;
+
+              SetPixelRed(image,GetChannelValue(word,0,RGBA32),q);
+              SetPixelGreen(image,GetChannelValue(word,1,RGBA32),q);
+              SetPixelBlue(image,GetChannelValue(word,2,RGBA32),q);
+              SetPixelAlpha(image,GetAlpha(word,RGBA32),q);
+              q+=GetPixelChannels(image);
+              p+=4;
+            }
+            if (SyncAuthenticPixels(image,exception) == MagickFalse)
+              break;
+            if (image->previous == (Image *) NULL)
+              {
+                status=SetImageProgress(image,LoadImageTag,
+                  (MagickOffsetType) y,image->rows);
+                if (status == MagickFalse)
+                  break;
+              }
+          }
+          break;
+        }
+        default:
+        {
+          row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+          ThrowBinaryException(CorruptImageError,"ImproperImageHeader",
+            image_info->filename);
+        }
+      }
+    }
+  row_data=(unsigned char *) RelinquishMagickMemory(row_data);
+  if ((status != MagickFalse) && (clut_depth != 0))
+  {
+    CSM
+      csm;
+
+    register ssize_t
+      i;
+
+    unsigned char
+      *clut_data;
+
+    /*
+      * ### Read CLUT Data ###
+      */
+    clut_data=(unsigned char *) AcquireMagickMemory(header->clut_size);
+    if (clut_data == (unsigned char *) NULL)
+      ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+        image_info->filename);
+    count=ReadBlob(image,header->clut_size,clut_data);
+    if (count != (ssize_t) (header->clut_size))
+      {
+        clut_data=(unsigned char *) RelinquishMagickMemory(clut_data);
+        ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
+          image_info->filename);
+      }
+    /*
+      * ### Process CLUT Data ###
+      */
+    p=clut_data;
+    switch(clut_depth)
+    {
+      case 16:
+      {
+        for (i=0; i < (ssize_t) image->colors; i++)
+        {
+          word = ((unsigned short)* p   )<<0*8 |
+                  ((unsigned short)*(p+1))<<1*8;
+
+          image->colormap[i].red=GetChannelValue(word,0,RGBA16);
+          image->colormap[i].green=GetChannelValue(word,1,RGBA16);
+          image->colormap[i].blue=GetChannelValue(word,2,RGBA16);
+          image->colormap[i].alpha=GetAlpha(word,RGBA16);
+          p+=2;
+        }
+        break;
+      }
+      case 24:
+      {
+        for (i=0; i < (ssize_t) image->colors; i++)
+        {
+          word = ((unsigned int)* p   )<<0*8 |
+                  ((unsigned int)*(p+1))<<1*8 |
+                  ((unsigned int)*(p+2))<<2*8;
+
+          image->colormap[i].red=GetChannelValue(word,0,RGB24);
+          image->colormap[i].green=GetChannelValue(word,1,RGB24);
+          image->colormap[i].blue=GetChannelValue(word,2,RGB24);
+          p+=3;
+        }
+        break;
+      }
+      case 32:
+      {
+        for (i=0; i < (ssize_t) image->colors; i++)
+        {
+          word = ((unsigned int)* p   )<<0*8 |
+                  ((unsigned int)*(p+1))<<1*8 |
+                  ((unsigned int)*(p+2))<<2*8 |
+                  ((unsigned int)*(p+3))<<3*8;
+
+          image->colormap[i].red=GetChannelValue(word,0,RGBA32);
+          image->colormap[i].green=GetChannelValue(word,1,RGBA32);
+          image->colormap[i].blue=GetChannelValue(word,2,RGBA32);
+          image->colormap[i].alpha=GetAlpha(word,RGBA32);
+          p+=4;
+        }
+        break;
+      }
+    }
+    clut_data=(unsigned char *) RelinquishMagickMemory(clut_data);
+    /* CSM: CLUT Storage Mode */
+    switch ((int) header->clut_type>>4)  /* High 4 bits */
+    {
+      case 0:
+        csm=CSM1;
+        break;
+      case 1:
+        csm=CSM2;
+        break;
+      default:
+        ThrowBinaryException(CorruptImageError,"ImproperImageHeader",
+          image_info->filename);
+        break;
+    }
+    if (csm==CSM1)
+      {
+        PixelInfo
+          *oldColormap;
+
+        oldColormap=(PixelInfo *) AcquireQuantumMemory((size_t)(image->colors)+1,
+          sizeof(*image->colormap));
+        if (oldColormap == (PixelInfo *) NULL)
+          ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
+            image_info->filename);
+        deshufflePalette(image,oldColormap);
+        RelinquishMagickMemory(oldColormap);
+      }
+  }
+  return(status);
+}
+
+static Image *ReadTIM2Image(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+  Image
+    *image;
+
+  MagickBooleanType
+    status;
+
+  ssize_t
+    str_read;
+
+  TIM2FileHeader
+    file_header;
+
+  /*
+   * Open image file.
+   */
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+
+  if (image_info->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      image_info->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  image=AcquireImage(image_info,exception);
+  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+  if (status == MagickFalse)
+    {
+      image=DestroyImageList(image);
+      return((Image *) NULL);
+    }
+  /*
+   * Verify TIM2 magic number.
+   */
+  file_header.magic_num=ReadBlobMSBLong(image);
+  if (file_header.magic_num != 0x54494D32) /* "TIM2" */
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  /*
+   * #### Read File Header ####
+   */
+  file_header.format_vers=ReadBlobByte(image);
+  if (file_header.format_vers != 0x04)
+    ThrowReaderException(CoderError,"ImageTypeNotSupported");
+  file_header.format_type=ReadBlobByte(image);
+  file_header.image_count=ReadBlobLSBShort(image);
+  ReadBlobStream(image,8,&(file_header.reserved),&str_read);
+  /*
+   * Jump to first image header
+   */
+  switch(file_header.format_type)
+  {
+    case 0x00:
+      if (DiscardBlobBytes(image,16) == MagickFalse)
+        ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+      break;
+    case 0x01:
+      if (DiscardBlobBytes(image,128) == MagickFalse)
+        ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+      break;
+    default:
+      ThrowReaderException(CoderError,"ImageTypeNotSupported");
+  }
+  /*
+   * Process each image. Only one image supported for now
+   */
+  if (file_header.image_count != 1)
+    ThrowReaderException(CoderError,"NumberOfImagesIsNotSupported");
+  for (int i=0; i < file_header.image_count; ++i)
+  {
+    char
+      clut_depth,
+      bits_per_pixel;
+
+    TIM2ImageHeader
+      image_header;
+
+    ReadTIM2ImageHeader(image,&image_header);
+    if (image_header.mipmap_count != 1)
+      ThrowReaderException(CoderError,"NumberOfImagesIsNotSupported");
+    if (image_header.header_size < 48)
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+    if ((MagickSizeType) image_header.image_size > GetBlobSize(image))
+      ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+    if ((MagickSizeType) image_header.clut_size > GetBlobSize(image))
+      ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
+    image->columns=image_header.width;
+    image->rows=image_header.height;
+    clut_depth=0;
+    if (image_header.clut_type !=0)
+      {
+        switch((int) image_header.clut_type&0x0F)  /* Low 4 bits */
+        {
+          case 1:
+            clut_depth=16;
+            break;
+          case 2:
+            clut_depth=24;
+            break;
+          case 3:
+            clut_depth=32;
+            break;
+          default:
+            ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+            break;
+        }
+      }
+    switch ((int) image_header.bpp_type)
+    {
+      case 1:
+        bits_per_pixel=16;
+        break;
+      case 2:
+        bits_per_pixel=24;
+        break;
+      case 3:
+        bits_per_pixel=32;
+        break;
+      case 4:
+        bits_per_pixel=4;  /* Implies CLUT */
+        break;
+      case 5:
+        bits_per_pixel=8;  /* Implies CLUT */
+        break;
+      default:
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+        break;
+    }
+    image->depth=(clut_depth != 0) ? clut_depth : bits_per_pixel;
+    if ((image->depth == 16) || (image->depth == 32))
+      image->alpha_trait=BlendPixelTrait;
+    if (image->ping != MagickFalse)
+      {
+        status=ReadTIM2ImageData(image_info,image,&image_header,clut_depth,
+          bits_per_pixel,exception);
+        if (status==MagickFalse)
+          break;
+      }
+    if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    if ((image->storage_class == PseudoClass) && (EOFBlob(image) != MagickFalse))
+      {
+        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+          image->filename);
+        break;
+      }
+    /*
+      Proceed to next image.
+    */
+    if (image_info->number_scenes != 0)
+      if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+        break;
+    /*
+      Allocate next image structure.
+    */
+    AcquireNextImage(image_info,image,exception);
+    if (GetNextImageInList(image) == (Image *) NULL)
+      {
+        status=MagickFalse;
+        break;
+      }
+    image=SyncNextImageInList(image);
+    status=SetImageProgress(image,LoadImagesTag,image->scene-1,
+      image->scene);
+    if (status == MagickFalse)
+      break;
+  }
+  (void) CloseBlob(image);
+  if (status == MagickFalse)
+    return(DestroyImageList(image));
+  return(GetFirstImageInList(image));
+}
+
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e g i s t e r T I M 2 I m a g e                                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  RegisterTIM2Image() adds attributes for the TIM2 image format to
+%  the list of supported formats.  The attributes include the image format
+%  tag, a method to read and/or write the format, whether the format
+%  supports the saving of more than one frame to the same file or blob,
+%  whether the format supports native in-memory I/O, and a brief
+%  description of the format.
+%
+%  The format of the RegisterTIM2Image method is:
+%
+%      size_t RegisterTIM2Image(void)
+%
+*/
+ModuleExport size_t RegisterTIM2Image(void)
+{
+  MagickInfo
+    *entry;
+
+  entry=AcquireMagickInfo("TIM2","TM2","PS2 TIM2");
+  entry->decoder=(DecodeImageHandler *) ReadTIM2Image;
+  (void) RegisterMagickInfo(entry);
+  return(MagickImageCoderSignature);
+}
+
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   U n r e g i s t e r T I M 2 I m a g e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  UnregisterTIM2Image() removes format registrations made by the
+%  TIM2 module from the list of supported formats.
+%
+%  The format of the UnregisterTIM2Image method is:
+%
+%      UnregisterTIM2Image(void)
+%
+*/
+ModuleExport void UnregisterTIM2Image(void)
+{
+  (void) UnregisterMagickInfo("TM2");
+}
diff --git a/MagickCore/random_-private.h b/coders/tim2.h
similarity index 68%
rename from MagickCore/random_-private.h
rename to coders/tim2.h
index 3dbd383..85625d2 100644
--- a/MagickCore/random_-private.h
+++ b/coders/tim2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -12,24 +12,22 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-
-  MagickCore private random methods.
 */
-#ifndef MAGICKCORE_RANDOM_PRIVATE_H
-#define MAGICKCORE_RANDOM_PRIVATE_H
+
+#include "coders/coders-private.h"
+
+#define MagickTIM2Headers \
+  MagickCoderHeader("TM2", 0, "TIM2")
+
+#define MagickTIM2Aliases \
+  MagickCoderAlias("TIM2","TM2")
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
 #endif
 
-extern MagickPrivate MagickBooleanType
-  RandomComponentGenesis(void);
-
-extern MagickPrivate void
-  RandomComponentTerminus(void);
+MagickCoderExports(TIM2)
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif
-
-#endif
diff --git a/coders/ttf.c b/coders/ttf.c
index 57779a8..271d04a 100644
--- a/coders/ttf.c
+++ b/coders/ttf.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -172,7 +172,7 @@
     *text;
 
   const char
-    *Text = (char *)
+    Text[] =
       "abcdefghijklmnopqrstuvwxyz\n"
       "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"
       "0123456789.:,;(*!?}^)#${%^&-+@\n";
diff --git a/coders/ttf.h b/coders/ttf.h
index 6133076..c138336 100644
--- a/coders/ttf.h
+++ b/coders/ttf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/txt.c b/coders/txt.c
index 010e3d6..eb0c1d3 100644
--- a/coders/txt.c
+++ b/coders/txt.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -387,6 +387,7 @@
     text[MagickPathExtent];
 
   double
+    max_value,
     x_offset,
     y_offset;
 
@@ -417,7 +418,6 @@
   unsigned long
     depth,
     height,
-    max_value,
     width;
 
   /*
@@ -447,17 +447,17 @@
   {
     width=0;
     height=0;
-    max_value=0;
+    max_value=0.0;
     *colorspace='\0';
-    count=(ssize_t) sscanf(text+32,"%lu,%lu,%lu,%32s",&width,&height,&max_value,
+    count=(ssize_t) sscanf(text+32,"%lu,%lu,%lf,%32s",&width,&height,&max_value,
       colorspace);
-    if ((count != 4) || (width == 0) || (height == 0) || (max_value == 0))
+    if ((count != 4) || (width == 0) || (height == 0) || (max_value == 0.0))
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     image->columns=width;
     image->rows=height;
-    if ((max_value == 0) || (max_value > 4294967295UL))
+    if ((max_value == 0.0) || (max_value > 18446744073709551615.0))
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-    for (depth=1; (GetQuantumRange(depth)+1) < max_value; depth++) ;
+    for (depth=1; (GetQuantumRange(depth)+1.0) < max_value; depth++) ;
     image->depth=depth;
     status=SetImageExtent(image,image->columns,image->rows,exception);
     if (status != MagickFalse)
@@ -563,16 +563,16 @@
             green+=(range+1)/2.0;
             blue+=(range+1)/2.0;
           }
-        pixel.red=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (red+0.5),
-          range);
-        pixel.green=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (green+0.5),
-          range);
-        pixel.blue=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (blue+0.5),
-          range);
-        pixel.black=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (black+0.5),
-          range);
-        pixel.alpha=(MagickRealType) ScaleAnyToQuantum((QuantumAny) (alpha+0.5),
-          range);
+        pixel.red=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+          MagickMax(red+0.5,0.0),range);
+        pixel.green=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+          MagickMax(green+0.5,0.0),range);
+        pixel.blue=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+          MagickMax(blue+0.5,0.0),range);
+        pixel.black=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+          MagickMax(black+0.5,0.0),range);
+        pixel.alpha=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
+          MagickMax(alpha+0.5,0.0),range);
         q=GetAuthenticPixels(image,(ssize_t) x_offset,(ssize_t) y_offset,1,1,
           exception);
         if (q == (Quantum *) NULL)
@@ -784,8 +784,8 @@
           MAGICKCORE_QUANTUM_DEPTH;
         (void) FormatLocaleString(buffer,MagickPathExtent,
           "# ImageMagick pixel enumeration: %.20g,%.20g,%.20g,%s\n",(double)
-          image->columns,(double) image->rows,(double) ((MagickOffsetType)
-          GetQuantumRange(depth)),colorspace);
+          image->columns,(double) image->rows,(double) GetQuantumRange(depth),
+          colorspace);
         (void) WriteBlobString(image,buffer);
       }
     GetPixelInfo(image,&pixel);
@@ -797,11 +797,6 @@
       for (x=0; x < (ssize_t) image->columns; x++)
       {
         GetPixelInfoPixel(image,p,&pixel);
-        if (pixel.colorspace == LabColorspace)
-          {
-            pixel.green-=(QuantumRange+1)/2.0;
-            pixel.blue-=(QuantumRange+1)/2.0;
-          }
         if (LocaleCompare(image_info->magick,"SPARSE-COLOR") == 0)
           {
             /*
diff --git a/coders/txt.h b/coders/txt.h
index 68a3d39..994acfb 100644
--- a/coders/txt.h
+++ b/coders/txt.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/uil.c b/coders/uil.c
index c9bcbfb..6804fd2 100644
--- a/coders/uil.c
+++ b/coders/uil.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/uil.h b/coders/uil.h
index 5009d62..1f8f839 100644
--- a/coders/uil.h
+++ b/coders/uil.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/url.c b/coders/url.c
index 22414c2..19b586c 100644
--- a/coders/url.c
+++ b/coders/url.c
@@ -18,7 +18,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -139,7 +139,9 @@
     *file;
 
   Image
-    *image;
+    *image,
+    *images,
+    *next;
 
   ImageInfo
     *read_info;
@@ -147,16 +149,47 @@
   int
     unique_file;
 
+  images=(Image *) NULL;
+  image=AcquireImage(image_info,exception);
   read_info=CloneImageInfo(image_info);
   SetImageInfoBlob(read_info,(void *) NULL,0);
+#if !defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__MINGW32__)
+  if (LocaleCompare(read_info->magick,"https") == 0)
+    {
+      MagickBooleanType
+        status;
+
+      /*
+        Leverage delegate to read HTTPS link.
+      */
+      status=InvokeDelegate(read_info,image,"https:decode",(char *) NULL,
+        exception);
+      if (status != MagickFalse)
+        {
+          (void) FormatLocaleString(read_info->filename,MagickPathExtent,
+            "%s.dat",read_info->unique);
+          *read_info->magick='\0';
+          images=ReadImage(read_info,exception);
+          (void) RelinquishUniqueFileResource(read_info->filename);
+          if (images != (Image *) NULL)
+            for (next=images; next != (Image *) NULL; next=next->next)
+              (void) CopyMagickString(next->filename,image->filename,
+                MagickPathExtent);
+        }
+      read_info=DestroyImageInfo(read_info);
+      image=DestroyImage(image);
+      return(images);
+    }
+#endif
   if (LocaleCompare(read_info->magick,"file") == 0)
     {
       (void) CopyMagickString(read_info->filename,image_info->filename+2,
         MagickPathExtent);
       *read_info->magick='\0';
-      image=ReadImage(read_info,exception);
+      images=ReadImage(read_info,exception);
       read_info=DestroyImageInfo(read_info);
-      return(GetFirstImageInList(image));
+      image=DestroyImage(image);
+      return(GetFirstImageInList(images));
     }
   file=(FILE *) NULL;
   unique_file=AcquireUniqueFileResource(read_info->filename);
@@ -167,6 +200,7 @@
       ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
         read_info->filename);
       read_info=DestroyImageInfo(read_info);
+      image=DestroyImage(image);
       return((Image *) NULL);
     }
   (void) CopyMagickString(filename,image_info->magick,MagickPathExtent);
@@ -174,8 +208,7 @@
   LocaleLower(filename);
   (void) ConcatenateMagickString(filename,image_info->filename,
     MagickPathExtent);
-#if defined(MAGICKCORE_WINDOWS_SUPPORT) && \
-    !defined(__MINGW32__)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__MINGW32__)
   (void) fclose(file);
   if (URLDownloadToFile(NULL,filename,read_info->filename,0,NULL) != S_OK)
     {
@@ -183,6 +216,7 @@
         filename);
       (void) RelinquishUniqueFileResource(read_info->filename);
       read_info=DestroyImageInfo(read_info);
+      image=DestroyImage(image);
       return((Image *) NULL);
     }
 #else
@@ -236,18 +270,22 @@
   (void) fclose(file);
 #endif
   *read_info->magick='\0';
-  image=ReadImage(read_info,exception);
+  images=ReadImage(read_info,exception);
   (void) RelinquishUniqueFileResource(read_info->filename);
+  if (images != (Image *) NULL)
+    for (next=images; next != (Image *) NULL; next=next->next)
+      (void) CopyMagickString(next->filename,image->filename,MagickPathExtent);
   read_info=DestroyImageInfo(read_info);
-  if (image != (Image *) NULL)
-    GetPathComponent(image_info->filename,TailPath,image->filename);
+  image=DestroyImage(image);
+  if (images != (Image *) NULL)
+    GetPathComponent(image_info->filename,TailPath,images->filename);
   else
     {
       (void) ThrowMagickException(exception,GetMagickModule(),CoderError,
         "NoDataReturned","`%s'",filename);
       return((Image *) NULL);
     }
-  return(GetFirstImageInList(image));
+  return(GetFirstImageInList(images));
 }
 
 /*
@@ -287,10 +325,7 @@
   entry->format_type=ImplicitFormatType;
   (void) RegisterMagickInfo(entry);
   entry=AcquireMagickInfo("URL","HTTPS","Uniform Resource Locator (https://)");
-#if defined(MAGICKCORE_WINDOWS_SUPPORT) && \
-    !defined(__MINGW32__)
   entry->decoder=(DecodeImageHandler *) ReadURLImage;
-#endif
   entry->format_type=ImplicitFormatType;
   (void) RegisterMagickInfo(entry);
   entry=AcquireMagickInfo("URL","FTP","Uniform Resource Locator (ftp://)");
diff --git a/coders/url.h b/coders/url.h
index 054aec9..67da234 100644
--- a/coders/url.h
+++ b/coders/url.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/uyvy.c b/coders/uyvy.c
index 379ed8a..ce52698 100644
--- a/coders/uyvy.c
+++ b/coders/uyvy.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/uyvy.h b/coders/uyvy.h
index dccb711..0df87f9 100644
--- a/coders/uyvy.h
+++ b/coders/uyvy.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vicar.c b/coders/vicar.c
index 1d9c4bc..212648f 100644
--- a/coders/vicar.c
+++ b/coders/vicar.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -149,9 +149,6 @@
     keyword[MagickPathExtent],
     value[MagickPathExtent];
 
-  const unsigned char
-    *pixels;
-
   Image
     *image;
 
@@ -178,6 +175,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -233,7 +233,7 @@
         } while (isalnum(c) || (c == '_'));
         *p='\0';
         value_expected=MagickFalse;
-        while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
+        while ((isspace(c) != 0) || (c == '='))
         {
           if (c == '=')
             value_expected=MagickTrue;
@@ -267,7 +267,7 @@
         if (LocaleCompare(keyword,"NL") == 0)
           image->rows=StringToUnsignedLong(value);
       }
-    while (isspace((int) ((unsigned char) c)) != 0)
+    while (isspace(c) != 0)
     {
       c=ReadBlobByte(image);
       count++;
@@ -300,17 +300,20 @@
   if (quantum_info == (QuantumInfo *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   length=GetQuantumExtent(image,quantum_info,quantum_type);
+  pixels=GetQuantumPixels(quantum_info);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
+    const void
+      *stream;
+
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
     if (q == (Quantum *) NULL)
       break;
-    pixels=(const unsigned char *) ReadBlobStream(image,length,
-      GetQuantumPixels(quantum_info),&count);
+    stream=ReadBlobStream(image,length,pixels,&count);
     if (count != (ssize_t) length)
       break;
     (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
-      quantum_type,pixels,exception);
+      quantum_type,(unsigned char *) stream,exception);
     if (SyncAuthenticPixels(image,exception) == MagickFalse)
       break;
     status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
diff --git a/coders/vicar.h b/coders/vicar.h
index b1da3bb..1ba2f7b 100644
--- a/coders/vicar.h
+++ b/coders/vicar.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vid.c b/coders/vid.c
index 5aa4b09..cab4dc2 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -176,8 +176,11 @@
       break;
     label=InterpretImageProperties((ImageInfo *) image_info,next_image,
       DefaultTileLabel,exception);
-    (void) SetImageProperty(next_image,"label",label,exception);
-    label=DestroyString(label);
+    if (label != (char *) NULL)
+      {
+        (void) SetImageProperty(next_image,"label",label,exception);
+        label=DestroyString(label);
+      }
     if (image_info->debug != MagickFalse)
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
         "geometry: %.20gx%.20g",(double) next_image->columns,(double)
diff --git a/coders/vid.h b/coders/vid.h
index 246f63f..2d91825 100644
--- a/coders/vid.h
+++ b/coders/vid.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/viff.c b/coders/viff.c
index 5f89ad1..d0e5719 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -57,7 +57,6 @@
 #include "MagickCore/list.h"
 #include "MagickCore/magick.h"
 #include "MagickCore/memory_.h"
-#include "MagickCore/memory-private.h"
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/pixel-accessor.h"
@@ -515,15 +514,13 @@
     }
     if (viff_info.data_storage_type == VFF_TYP_BIT)
       {
-        if (HeapOverflowSanityCheck((image->columns+7UL) >> 3UL,image->rows) != MagickFalse)
+        if (HeapOverflowSanityCheckGetSize((image->columns+7UL) >> 3UL,image->rows,&max_packets) != MagickFalse)
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-        max_packets=((image->columns+7UL) >> 3UL)*image->rows;
       }
     else
       {
-        if (HeapOverflowSanityCheck((size_t) number_pixels,viff_info.number_data_bands) != MagickFalse)
+        if (HeapOverflowSanityCheckGetSize((size_t) number_pixels,viff_info.number_data_bands,&max_packets) != MagickFalse)
           ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
-        max_packets=(size_t) (number_pixels*viff_info.number_data_bands);
       }
     if ((MagickSizeType) (bytes_per_pixel*max_packets) > GetBlobSize(image))
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
@@ -773,8 +770,8 @@
         AcquireNextImage(image_info,image,exception);
         if (GetNextImageInList(image) == (Image *) NULL)
           {
-            image=DestroyImageList(image);
-            return((Image *) NULL);
+            status=MagickFalse;
+            break;
           }
         image=SyncNextImageInList(image);
         status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
diff --git a/coders/viff.h b/coders/viff.h
index 439559a..0e0d5ce 100644
--- a/coders/viff.h
+++ b/coders/viff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vips.c b/coders/vips.c
index 48e0a63..4c019ab 100644
--- a/coders/vips.c
+++ b/coders/vips.c
@@ -17,7 +17,7 @@
 %                                 April 2014                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/vips.h b/coders/vips.h
index 9d86b19..9cdc0ba 100644
--- a/coders/vips.h
+++ b/coders/vips.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wbmp.c b/coders/wbmp.c
index 6eeed17..440b181 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -17,7 +17,7 @@
 %                               January 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/wbmp.h b/coders/wbmp.h
index 907e751..28ade8d 100644
--- a/coders/wbmp.h
+++ b/coders/wbmp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/webp.c b/coders/webp.c
index cf2e554..d4b704c 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -17,7 +17,7 @@
 %                                 March 2011                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -58,6 +58,7 @@
 #include "MagickCore/option.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/profile.h"
+#include "MagickCore/property.h"
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
@@ -71,6 +72,7 @@
 #include <webp/encode.h>
 #if defined(MAGICKCORE_WEBPMUX_DELEGATE)
 #include <webp/mux.h>
+#include <webp/demux.h>
 #endif
 #endif
 
@@ -175,7 +177,7 @@
 #define CHUNK_HEADER_SIZE  8
 #define MAX_CHUNK_PAYLOAD  (~0U-CHUNK_HEADER_SIZE-1)
 
-  ssize_t
+  size_t
     offset;
 
   /*
@@ -189,7 +191,7 @@
     Read extended header.
   */
   offset=RIFF_HEADER_SIZE+TAG_SIZE+CHUNK_SIZE_BYTES+VP8X_CHUNK_SIZE;
-  while (offset+TAG_SIZE <= (ssize_t) (length-TAG_SIZE))
+  while (offset <= (length-TAG_SIZE-TAG_SIZE-4))
   {
     uint32_t
       chunk_size,
@@ -207,6 +209,260 @@
   return(MagickFalse);
 }
 
+static int FillBasicWEBPInfo(Image *image,const uint8_t *stream,size_t length,
+  WebPDecoderConfig *configure)
+{
+  WebPBitstreamFeatures
+    *magick_restrict features = &configure->input;
+
+  int
+    webp_status;
+
+  webp_status=WebPGetFeatures(stream,length,features);
+
+  if (webp_status != VP8_STATUS_OK)
+    return(webp_status);
+
+  image->columns=(size_t) features->width;
+  image->rows=(size_t) features->height;
+  image->depth=8;
+  image->alpha_trait=features->has_alpha != 0 ? BlendPixelTrait :
+        UndefinedPixelTrait;
+
+  return(webp_status);
+}
+
+static int ReadSingleWEBPImage(Image *image,const uint8_t *stream,
+  size_t length,WebPDecoderConfig *configure,ExceptionInfo *exception,
+  MagickBooleanType is_first)
+{
+  int
+    webp_status;
+
+  register unsigned char
+    *p;
+
+  size_t
+    canvas_width,
+    canvas_height,
+    image_width,
+    image_height;
+
+  ssize_t
+    x_offset,
+    y_offset,
+    y;
+
+  WebPDecBuffer
+    *magick_restrict webp_image = &configure->output;
+
+  MagickBooleanType
+    status;
+
+  if (is_first)
+    {
+      canvas_width=image->columns;
+      canvas_height=image->rows;
+      x_offset=image->page.x;
+      y_offset=image->page.y;
+      image->page.x=0;
+      image->page.y=0;
+    }
+  else
+    {
+      x_offset=0;
+      y_offset=0;
+    }
+  webp_status=FillBasicWEBPInfo(image,stream,length,configure);
+  image_width=image->columns;
+  image_height=image->rows;
+  if (is_first)
+    {
+      image->columns=canvas_width;
+      image->rows=canvas_height;
+    }
+
+  if (webp_status != VP8_STATUS_OK)
+    return(webp_status);
+
+  if (IsWEBPImageLossless(stream,length) != MagickFalse)
+    image->quality=100;
+
+  webp_status=WebPDecode(stream,length,configure);
+  if (webp_status != VP8_STATUS_OK)
+    return(webp_status);
+
+  p=(unsigned char *) webp_image->u.RGBA.rgba;
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    register Quantum
+      *q;
+
+    register ssize_t
+      x;
+
+    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
+    if (q == (Quantum *) NULL)
+      break;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      if ((x >= x_offset && x < x_offset + image_width) &&
+          (y >= y_offset && y < y_offset + image_height))
+        {
+          SetPixelRed(image,ScaleCharToQuantum(*p++),q);
+          SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
+          SetPixelBlue(image,ScaleCharToQuantum(*p++),q);
+          SetPixelAlpha(image,ScaleCharToQuantum(*p++),q);
+        }
+      else
+        {
+          SetPixelRed(image,0,q);
+          SetPixelGreen(image,0,q);
+          SetPixelBlue(image,0,q);
+          SetPixelAlpha(image,0,q);
+        }
+      q+=GetPixelChannels(image);
+    }
+    if (SyncAuthenticPixels(image,exception) == MagickFalse)
+      break;
+    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+      image->rows);
+    if (status == MagickFalse)
+      break;
+  }
+  WebPFreeDecBuffer(webp_image);
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
+  {
+    StringInfo
+      *profile;
+
+    uint32_t
+      webp_flags = 0;
+
+    WebPData
+     chunk,
+     content;
+
+    WebPMux
+      *mux;
+
+    /*
+      Extract any profiles.
+    */
+    content.bytes=stream;
+    content.size=length;
+    mux=WebPMuxCreate(&content,0);
+    (void) memset(&chunk,0,sizeof(chunk));
+    WebPMuxGetFeatures(mux,&webp_flags);
+    if (webp_flags & ICCP_FLAG)
+      {
+        WebPMuxGetChunk(mux,"ICCP",&chunk);
+        profile=BlobToStringInfo(chunk.bytes,chunk.size);
+        if (profile != (StringInfo *) NULL)
+          {
+            SetImageProfile(image,"ICC",profile,exception);
+            profile=DestroyStringInfo(profile);
+          }
+      }
+    if (webp_flags & EXIF_FLAG)
+      {
+        WebPMuxGetChunk(mux,"EXIF",&chunk);
+        profile=BlobToStringInfo(chunk.bytes,chunk.size);
+        if (profile != (StringInfo *) NULL)
+          {
+            SetImageProfile(image,"EXIF",profile,exception);
+            profile=DestroyStringInfo(profile);
+          }
+      }
+    if (webp_flags & XMP_FLAG)
+      {
+        WebPMuxGetChunk(mux,"XMP",&chunk);
+        profile=BlobToStringInfo(chunk.bytes,chunk.size);
+        if (profile != (StringInfo *) NULL)
+          {
+            SetImageProfile(image,"XMP",profile,exception);
+            profile=DestroyStringInfo(profile);
+          }
+      }
+    WebPMuxDelete(mux);
+  }
+#endif
+  return(webp_status);
+}
+
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
+static int ReadAnimatedWEBPImage(const ImageInfo *image_info,Image *image,
+  uint8_t *stream,size_t length,WebPDecoderConfig *configure,
+  ExceptionInfo *exception)
+{
+  Image
+    *original_image;
+
+  int
+    image_count,
+    webp_status;
+
+  size_t
+    canvas_width,
+    canvas_height;
+
+  WebPData
+    data;
+
+  WebPDemuxer
+    *demux;
+
+  WebPIterator
+    iter;
+
+  image_count=0;
+  webp_status=0;
+  original_image=image;
+  webp_status=FillBasicWEBPInfo(image,stream,length,configure);
+  canvas_width=image->columns;
+  canvas_height=image->rows;
+  data.bytes=stream;
+  data.size=length;
+  demux=WebPDemux(&data);
+  if (WebPDemuxGetFrame(demux,1,&iter)) {
+    do {
+      if (image_count != 0)
+        {
+          AcquireNextImage(image_info,image,exception);
+          if (GetNextImageInList(image) == (Image *) NULL)
+            break;
+          image=SyncNextImageInList(image);
+          CloneImageProperties(image,original_image);
+          image->page.x=iter.x_offset;
+          image->page.y=iter.y_offset;
+          webp_status=ReadSingleWEBPImage(image,iter.fragment.bytes,
+            iter.fragment.size,configure,exception,MagickFalse);
+        }
+      else
+        {
+          image->page.x=iter.x_offset;
+          image->page.y=iter.y_offset;
+          webp_status=ReadSingleWEBPImage(image,iter.fragment.bytes,
+            iter.fragment.size,configure,exception,MagickTrue);
+        }
+      if (webp_status != VP8_STATUS_OK)
+        break;
+
+      image->page.width=canvas_width;
+      image->page.height=canvas_height;
+      image->ticks_per_second=100;
+      image->delay=iter.duration/10;
+      if (iter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND)
+        image->dispose=BackgroundDispose;
+      image_count++;
+    } while (WebPDemuxNextFrame(&iter));
+    WebPDemuxReleaseIterator(&iter);
+  }
+  WebPDemuxDelete(demux);
+  return(webp_status);
+}
+#endif
+
 static Image *ReadWEBPImage(const ImageInfo *image_info,
   ExceptionInfo *exception)
 {
@@ -228,15 +484,11 @@
   MagickBooleanType
     status;
 
-  register unsigned char
-    *p;
-
   size_t
     length;
 
   ssize_t
-    count,
-    y;
+    count;
 
   unsigned char
     header[12],
@@ -248,9 +500,6 @@
   WebPDecBuffer
     *magick_restrict webp_image = &configure.output;
 
-  WebPBitstreamFeatures
-    *magick_restrict features = &configure.input;
-
   /*
     Open image file.
   */
@@ -290,31 +539,21 @@
   count=ReadBlob(image,length-12,stream+12);
   if (count != (ssize_t) (length-12))
     ThrowWEBPException(CorruptImageError,"InsufficientImageDataInFile");
-  webp_status=WebPGetFeatures(stream,length,features);
-  if (webp_status == VP8_STATUS_OK)
-    {
-      image->columns=(size_t) features->width;
-      image->rows=(size_t) features->height;
-      image->depth=8;
-      image->alpha_trait=features->has_alpha != 0 ? BlendPixelTrait :
-        UndefinedPixelTrait;
-      if (image_info->ping != MagickFalse)
-        {
-          stream=(unsigned char*) RelinquishMagickMemory(stream);
-          (void) CloseBlob(image);
-          return(GetFirstImageInList(image));
-        }
-      status=SetImageExtent(image,image->columns,image->rows,exception);
-      if (status == MagickFalse)
-        {
-          stream=(unsigned char*) RelinquishMagickMemory(stream);
-          (void) CloseBlob(image);
-          return(DestroyImageList(image));
-        }
-      if (IsWEBPImageLossless(stream,length) != MagickFalse)
-        image->quality=100;
-      webp_status=WebPDecode(stream,length,&configure);
+
+  webp_status=FillBasicWEBPInfo(image,stream,length,&configure);
+  if (webp_status == VP8_STATUS_OK) {
+    if (configure.input.has_animation) {
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
+      webp_status=ReadAnimatedWEBPImage(image_info,image,stream,length,
+        &configure,exception);
+#else
+      webp_status=VP8_STATUS_UNSUPPORTED_FEATURE;
+#endif
+    } else {
+      webp_status=ReadSingleWEBPImage(image,stream,length,&configure,exception,MagickFalse);
     }
+  }
+
   if (webp_status != VP8_STATUS_OK)
     switch (webp_status)
     {
@@ -356,88 +595,7 @@
       default:
         ThrowWEBPException(CorruptImageError,"CorruptImage");
     }
-  p=(unsigned char *) webp_image->u.RGBA.rgba;
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    register Quantum
-      *q;
 
-    register ssize_t
-      x;
-
-    q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
-    if (q == (Quantum *) NULL)
-      break;
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      SetPixelRed(image,ScaleCharToQuantum(*p++),q);
-      SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
-      SetPixelBlue(image,ScaleCharToQuantum(*p++),q);
-      SetPixelAlpha(image,ScaleCharToQuantum(*p++),q);
-      q+=GetPixelChannels(image);
-    }
-    if (SyncAuthenticPixels(image,exception) == MagickFalse)
-      break;
-    status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
-      image->rows);
-    if (status == MagickFalse)
-      break;
-  }
-  WebPFreeDecBuffer(webp_image);
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
-  {
-    StringInfo
-      *profile;
-
-    uint32_t
-      webp_flags = 0;
-
-    WebPData
-     chunk,
-     content = { stream, length };
-
-    WebPMux
-      *mux;
-
-    /*
-      Extract any profiles.
-    */
-    mux=WebPMuxCreate(&content,0);
-    (void) memset(&chunk,0,sizeof(chunk));
-    WebPMuxGetFeatures(mux,&webp_flags);
-    if (webp_flags & ICCP_FLAG)
-      {
-        WebPMuxGetChunk(mux,"ICCP",&chunk);
-        profile=BlobToStringInfo(chunk.bytes,chunk.size);
-        if (profile != (StringInfo *) NULL)
-          {
-            SetImageProfile(image,"ICC",profile,exception);
-            profile=DestroyStringInfo(profile);
-          }
-      }
-    if (webp_flags & EXIF_FLAG)
-      {
-        WebPMuxGetChunk(mux,"EXIF",&chunk);
-        profile=BlobToStringInfo(chunk.bytes,chunk.size);
-        if (profile != (StringInfo *) NULL)
-          {
-            SetImageProfile(image,"EXIF",profile,exception);
-            profile=DestroyStringInfo(profile);
-          }
-      }
-    if (webp_flags & XMP_FLAG)
-      {
-        WebPMuxGetChunk(mux,"XMP",&chunk);
-        profile=BlobToStringInfo(chunk.bytes,chunk.size);
-        if (profile != (StringInfo *) NULL)
-          {
-            SetImageProfile(image,"XMP",profile,exception);
-            profile=DestroyStringInfo(profile);
-          }
-      }
-    WebPMuxDelete(mux);
-  }
-#endif
   stream=(unsigned char*) RelinquishMagickMemory(stream);
   (void) CloseBlob(image);
   return(image);
@@ -487,7 +645,7 @@
 #endif
   entry->mime_type=ConstantString("image/webp");
   entry->flags|=CoderDecoderSeekableStreamFlag;
-  entry->flags^=CoderAdjoinFlag;
+  entry->flags|=CoderAdjoinFlag;
   entry->magick=(IsImageFormatHandler *) IsWEBP;
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -575,8 +733,159 @@
 }
 #endif
 
+typedef struct PictureMemory {
+  MemoryInfo *pixel_info;
+  struct PictureMemory *next;
+} PictureMemory;
+
+static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
+  Image *image,WebPPicture *picture,PictureMemory *picture_memory,
+  ExceptionInfo *exception)
+{
+  MagickBooleanType
+    status = MagickFalse;
+
+  register uint32_t
+    *magick_restrict q;
+
+  ssize_t
+    y;
+
+#if WEBP_ENCODER_ABI_VERSION >= 0x0100
+  picture->progress_hook=WebPEncodeProgress;
+  picture->user_data=(void *) image;
+#endif
+  picture->width=(int) image->columns;
+  picture->height=(int) image->rows;
+  picture->argb_stride=(int) image->columns;
+  picture->use_argb=1;
+
+  /*
+    Allocate memory for pixels.
+  */
+  (void) TransformImageColorspace(image,sRGBColorspace,exception);
+  picture_memory->pixel_info=AcquireVirtualMemory(image->columns,image->rows*
+    sizeof(*(picture->argb)));
+
+  if (picture_memory->pixel_info == (MemoryInfo *) NULL)
+    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+  picture->argb=(uint32_t *) GetVirtualMemoryBlob(picture_memory->pixel_info);
+  /*
+    Convert image to WebP raster pixels.
+  */
+  q=picture->argb;
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    register const Quantum
+      *magick_restrict p;
+
+    register ssize_t
+      x;
+
+    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+    if (p == (const Quantum *) NULL)
+      break;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      *q++=(uint32_t) (image->alpha_trait != UndefinedPixelTrait ? (uint32_t)
+        ScaleQuantumToChar(GetPixelAlpha(image,p)) << 24 : 0xff000000) |
+        ((uint32_t) ScaleQuantumToChar(GetPixelRed(image,p)) << 16) |
+        ((uint32_t) ScaleQuantumToChar(GetPixelGreen(image,p)) << 8) |
+        ((uint32_t) ScaleQuantumToChar(GetPixelBlue(image,p)));
+      p+=GetPixelChannels(image);
+    }
+    status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+      image->rows);
+    if (status == MagickFalse)
+      break;
+  }
+  return status;
+}
+
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
+static void FreePictureMemoryList (PictureMemory* head) {
+  PictureMemory* next;
+  while(head != NULL) {
+    next = head->next;
+    if(head->pixel_info != NULL)
+      RelinquishVirtualMemory(head->pixel_info);
+    free(head);
+    head = next;
+  }
+}
+
+static MagickBooleanType WriteAnimatedWEBPImage(const ImageInfo *image_info,
+  Image *image,WebPConfig *configure,WebPMemoryWriter *writer_info,
+  ExceptionInfo *exception)
+{
+  Image
+    *first_image;
+
+  PictureMemory
+    *current,
+    *head;
+
+  size_t
+    effective_delta = 0,
+    frame_timestamp = 0;
+
+  WebPAnimEncoder
+    *enc;
+
+  WebPAnimEncoderOptions
+    enc_options;
+
+  WebPData
+    webp_data;
+
+  WebPPicture
+    picture;
+
+  WebPAnimEncoderOptionsInit(&enc_options);
+  if (image_info->verbose)
+    enc_options.verbose = 1;
+
+  image=CoalesceImages(image, exception);
+  first_image=image;
+  enc=WebPAnimEncoderNew((int) image->page.width,(int) image->page.height,
+    &enc_options);
+
+  head=(PictureMemory *) calloc(sizeof(*head),1);
+  current=head;
+
+  while (image != NULL)
+  {
+    if (WebPPictureInit(&picture) == 0)
+      ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+
+    WriteSingleWEBPImage(image_info, image, &picture, current, exception);
+
+    effective_delta = image->delay*1000/image->ticks_per_second;
+    if (effective_delta < 10)
+      effective_delta = 100; /* Consistent with gif2webp */
+    frame_timestamp+=effective_delta;
+
+    WebPAnimEncoderAdd(enc,&picture,(int) frame_timestamp,configure);
+
+    image = GetNextImageInList(image);
+    current->next=(PictureMemory *) calloc(sizeof(*head), 1);
+    current = current->next;
+  }
+  webp_data.bytes=writer_info->mem;
+  webp_data.size=writer_info->size;
+  WebPAnimEncoderAssemble(enc, &webp_data);
+  WebPMemoryWriterClear(writer_info);
+  writer_info->size=webp_data.size;
+  writer_info->mem=(unsigned char *) webp_data.bytes;
+  WebPAnimEncoderDelete(enc);
+  DestroyImageList(first_image);
+  FreePictureMemoryList(head);
+  return(MagickTrue);
+}
+#endif
+
 static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
-  Image *image,ExceptionInfo *exception)
+  Image *image,ExceptionInfo * exception)
 {
   const char
     *value;
@@ -587,15 +896,6 @@
   MagickBooleanType
     status;
 
-  MemoryInfo
-    *pixel_info;
-
-  register uint32_t
-    *magick_restrict q;
-
-  ssize_t
-    y;
-
   WebPAuxStats
     statistics;
 
@@ -610,6 +910,9 @@
   WebPPicture
     picture;
 
+  PictureMemory
+    memory = {0};
+
   /*
     Open output image file.
   */
@@ -624,7 +927,9 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if ((WebPPictureInit(&picture) == 0) || (WebPConfigInit(&configure) == 0))
+  if (WebPConfigInit(&configure) == 0)
+    ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+  if (WebPPictureInit(&picture) == 0)
     ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
 #if !defined(MAGICKCORE_WEBPMUX_DELEGATE)
   picture.writer=WebPEncodeWriter;
@@ -634,15 +939,7 @@
   picture.writer=WebPMemoryWrite;
   picture.custom_ptr=(&writer_info);
 #endif
-#if WEBP_ENCODER_ABI_VERSION >= 0x0100
-  picture.progress_hook=WebPEncodeProgress;
-  picture.user_data=(void *) image;
-#endif
   picture.stats=(&statistics);
-  picture.width=(int) image->columns;
-  picture.height=(int) image->rows;
-  picture.argb_stride=(int) image->columns;
-  picture.use_argb=1;
   if (image->quality != UndefinedCompressionQuality)
     configure.quality=(float) image->quality;
   if (image->quality >= 100)
@@ -737,44 +1034,17 @@
 #endif
   if (WebPValidateConfig(&configure) == 0)
     ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-  /*
-    Allocate memory for pixels.
-  */
-  (void) TransformImageColorspace(image,sRGBColorspace,exception);
-  pixel_info=AcquireVirtualMemory(image->columns,image->rows*
-    sizeof(*picture.argb));
-  if (pixel_info == (MemoryInfo *) NULL)
-    ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
-  picture.argb=(uint32_t *) GetVirtualMemoryBlob(pixel_info);
-  /*
-    Convert image to WebP raster pixels.
-  */
-  q=picture.argb;
-  for (y=0; y < (ssize_t) image->rows; y++)
-  {
-    register const Quantum
-      *magick_restrict p;
 
-    register ssize_t
-      x;
+  WriteSingleWEBPImage(image_info,image,&picture,&memory,exception);
 
-    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
-    if (p == (const Quantum *) NULL)
-      break;
-    for (x=0; x < (ssize_t) image->columns; x++)
-    {
-      *q++=(uint32_t) (image->alpha_trait != UndefinedPixelTrait ? (uint32_t)
-        ScaleQuantumToChar(GetPixelAlpha(image,p)) << 24 : 0xff000000) |
-        ((uint32_t) ScaleQuantumToChar(GetPixelRed(image,p)) << 16) |
-        ((uint32_t) ScaleQuantumToChar(GetPixelGreen(image,p)) << 8) |
-        ((uint32_t) ScaleQuantumToChar(GetPixelBlue(image,p)));
-      p+=GetPixelChannels(image);
-    }
-    status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
-      image->rows);
-    if (status == MagickFalse)
-      break;
-  }
+#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
+  if ((image_info->adjoin != MagickFalse) &&
+      (GetPreviousImageInList(image) == (Image *) NULL) &&
+      (GetNextImageInList(image) != (Image *) NULL) &&
+      (image->iterations != 1))
+    WriteAnimatedWEBPImage(image_info,image,&configure,&writer_info,exception);
+#endif
+
   webp_status=WebPEncode(&configure,&picture);
   if (webp_status == 0)
     {
@@ -851,7 +1121,7 @@
 
     WebPData
       chunk,
-      image_chunk = { writer_info.mem, writer_info.size };
+      image_chunk;
 
     WebPMux
       *mux;
@@ -862,6 +1132,8 @@
     /*
       Set image profiles (if any).
     */
+    image_chunk.bytes=writer_info.mem;
+    image_chunk.size=writer_info.size;
     mux_error=WEBP_MUX_OK;
     (void) memset(&chunk,0,sizeof(chunk));
     mux=WebPMuxNew();
@@ -892,11 +1164,13 @@
     if (chunk.size != 0)
       {
         WebPData
-          picture_profiles = { writer_info.mem, writer_info.size };
+          picture_profiles;
 
         /*
           Replace original container with image profile (if any).
         */
+        picture_profiles.bytes=writer_info.mem;
+        picture_profiles.size=writer_info.size;
         WebPMuxSetImage(mux,&image_chunk,1);
         mux_error=WebPMuxAssemble(mux,&picture_profiles);
         WebPMemoryWriterClear(&writer_info);
@@ -912,8 +1186,8 @@
 #if defined(MAGICKCORE_WEBPMUX_DELEGATE)
   WebPMemoryWriterClear(&writer_info);
 #endif
-  pixel_info=RelinquishVirtualMemory(pixel_info);
   (void) CloseBlob(image);
+  RelinquishVirtualMemory(memory.pixel_info);
   return(webp_status == 0 ? MagickFalse : MagickTrue);
 }
 #endif
diff --git a/coders/webp.h b/coders/webp.h
index 25c0b2b..66ef821 100644
--- a/coders/webp.h
+++ b/coders/webp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wmf.c b/coders/wmf.c
index 5e9db73..9e36ed5 100644
--- a/coders/wmf.c
+++ b/coders/wmf.c
@@ -17,7 +17,7 @@
 %                               December 2000                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -441,9 +441,6 @@
 static void         ipa_udata_set(wmfAPI * API, wmfUserData_t * userdata);
 static int          magick_progress_callback(void* wand,float quantum);
 static void         util_draw_arc(wmfAPI * API, wmfDrawArc_t * draw_arc,magick_arc_t finish);
-#if defined(MAGICKCORE_WMF_DELEGATE)
-/*static int          util_font_weight( const char* font );*/
-#endif
 static double       util_pointsize( wmfAPI* API, wmfFont* font, char* str, double font_height, ExceptionInfo *);
 static void         util_set_brush(wmfAPI * API, wmfDC * dc, const BrushApply brush_apply);
 static void         util_set_pen(wmfAPI * API, wmfDC * dc);
@@ -831,8 +828,7 @@
 static void ipa_device_begin(wmfAPI * API)
 {
   char
-    comment[MagickPathExtent],
-    *url;
+    comment[MagickPathExtent];
 
   wmf_magick_t
     *ddata = WMF_MAGICK_GetData(API);
@@ -842,10 +838,8 @@
 
   DrawSetViewbox(WmfDrawingWand,0,0,ddata->image->columns,ddata->image->rows);
 
-  url=GetMagickHomeURL();
-  (void) FormatLocaleString(comment,MagickPathExtent,
-    "Created by ImageMagick %s",url);
-  url=DestroyString(url);
+  (void) FormatLocaleString(comment,MagickPathExtent,"Created by %s",
+    GetMagickVersion((unsigned long *) NULL));
   DrawComment(WmfDrawingWand,comment);
 
   /* Scale width and height to image */
@@ -1440,8 +1434,6 @@
 {
   double
     angle = 0,      /* text rotation angle */
-    bbox_height,    /* bounding box height */
-    bbox_width,      /* bounding box width */
     pointsize = 0;    /* pointsize to output font with desired height */
 
   ExceptionInfo
@@ -1450,11 +1442,17 @@
   TypeMetric
     metrics;
 
+#if !defined(MAGICKCORE_WMF_DELEGATE)
+  double
+    bbox_height,    /* bounding box height */
+    bbox_width;      /* bounding box width */
+
   wmfD_Coord
     BL,        /* bottom left of bounding box */
     BR,        /* bottom right of bounding box */
     TL,        /* top left of bounding box */
     TR;        /* top right of bounding box */
+#endif
 
   wmfD_Coord
     point;      /* text placement point */
@@ -1468,6 +1466,7 @@
   point = draw_text->pt;
 
   /* Choose bounding box and calculate its width and height */
+#if !defined(MAGICKCORE_WMF_DELEGATE)
   {
     double dx,
       dy;
@@ -1495,6 +1494,7 @@
     dy = ((BL.y - TL.y) + (BR.y - TR.y)) / 2;
     bbox_height = hypot(dx,dy);
   }
+#endif
 
   font = WMF_DC_FONT(draw_text->dc);
 
@@ -1505,8 +1505,6 @@
   /* Save graphic wand */
   (void) PushDrawingWand(WmfDrawingWand);
 
-  (void) bbox_width;
-  (void) bbox_height;
 #if 0
   printf("\nipa_draw_text\n");
   printf("Text                    = \"%s\"\n", draw_text->str);
@@ -2169,17 +2167,17 @@
       if (strlen(str) == 1)
         {
           pointsize = (font_height *
-                       ( font_height / (metrics.ascent + fabs(metrics.descent))));
+                       ( font_height * PerceptibleReciprocal(metrics.ascent + fabs(metrics.descent))));
           draw_info->pointsize = pointsize;
           if (GetTypeMetrics(image, draw_info, &metrics, exception) != MagickFalse)
-            pointsize *= (font_height / ( metrics.ascent + fabs(metrics.descent)));
+            pointsize *= (font_height * PerceptibleReciprocal( metrics.ascent + fabs(metrics.descent)));
         }
       else
         {
-          pointsize = (font_height * (font_height / (metrics.height)));
+          pointsize = (font_height * (font_height * PerceptibleReciprocal(metrics.height)));
           draw_info->pointsize = pointsize;
           if (GetTypeMetrics(image, draw_info, &metrics, exception) != MagickFalse)
-            pointsize *= (font_height / metrics.height);
+            pointsize *= (font_height * PerceptibleReciprocal((double) metrics.height));
 
         }
 #if 0
@@ -2208,38 +2206,6 @@
 }
 
 #if defined(MAGICKCORE_WMF_DELEGATE)
-/* Estimate weight based on font name */
-/*
-static int util_font_weight( const char* font )
-{
-  int
-    weight;
-
-  weight = 400;
-  if ((strstr(font,"Normal") || strstr(font,"Regular")))
-    weight = 400;
-  else if ( strstr(font,"Bold") )
-    {
-      weight = 700;
-      if ((strstr(font,"Semi") || strstr(font,"Demi")))
-        weight = 600;
-      if ( (strstr(font,"Extra") || strstr(font,"Ultra")))
-        weight = 800;
-    }
-  else if ( strstr(font,"Light") )
-    {
-      weight = 300;
-      if ( (strstr(font,"Extra") || strstr(font,"Ultra")))
-        weight = 200;
-    }
-  else if ((strstr(font,"Heavy") || strstr(font,"Black")))
-    weight = 900;
-  else if ( strstr(font,"Thin") )
-    weight = 100;
-  return weight;
-}
-*/
-
 /*
  * Returns width of string in points, assuming (unstretched) font size of 1pt
  * (similar to wmf_ipa_font_stringwidth)
@@ -2408,7 +2374,7 @@
   exception=ddata->exception;
   type_info_base=GetTypeInfo("*",exception);
   if (type_info_base == 0)
-     return;
+    return;
 
   /* Certain short-hand font names are not the proper Windows names
      and should be promoted to the proper names */
@@ -2423,11 +2389,16 @@
       int
         target_weight;
 
+      StyleType 
+        style = AnyStyle;
+
       if (WMF_FONT_WEIGHT(font) == 0)
         target_weight = 400;
       else
         target_weight = WMF_FONT_WEIGHT(font);
-      type_info=GetTypeInfoByFamily(wmf_font_name,AnyStyle,AnyStretch,
+      if (WMF_FONT_ITALIC(font)) 
+        style=ItalicStyle;
+      type_info=GetTypeInfoByFamily(wmf_font_name,style,AnyStretch,
         target_weight,exception);
       if (type_info == (const TypeInfo *) NULL)
         type_info=GetTypeInfoByFamily(wmf_font_name,AnyStyle,AnyStretch,0,
@@ -2436,6 +2407,14 @@
         CloneString(&magick_font->ps_name,type_info->name);
     }
 
+  /* Look for exact full match */
+  if(!magick_font->ps_name)
+    {
+      type_info=GetTypeInfo(wmf_font_name,exception);
+      if (type_info != (const TypeInfo *) NULL)
+        CloneString(&magick_font->ps_name,type_info->name);
+    }
+
   /* Now let's try simple substitution mappings from WMFFontMap */
   if (!magick_font->ps_name)
     {
@@ -2728,12 +2707,13 @@
           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
             "leave ReadWMFImage()");
         }
+      ipa_device_close(API);
       wmf_api_destroy(API);
       ThrowReaderException(DelegateError,"FailedToComputeOutputSize");
     }
 
   /* Obtain (or guess) metafile units */
-  if ((API)->File->placeable)
+  if ((API)->File->placeable && (API)->File->pmh->Inch)
     units_per_inch=(API)->File->pmh->Inch;
   else if ( (wmf_width*wmf_height) < 1024*1024)
     units_per_inch=POINTS_PER_INCH;  /* MM_TEXT */
@@ -2758,7 +2738,12 @@
 
   bounding_width  = bbox.BR.x - bbox.TL.x;
   bounding_height = bbox.BR.y - bbox.TL.y;
-
+  if ((bounding_width == 0) || (bounding_height == 0))
+    {
+      ipa_device_close(API);
+      (void) wmf_api_destroy(API);
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+    }
   ddata->scale_x = image_width/bounding_width;
   ddata->translate_x = 0-bbox.TL.x;
   ddata->rotate = 0;
@@ -2856,6 +2841,7 @@
 
   if (image_info->ping != MagickFalse)
     {
+      ipa_device_close(API);
       wmf_api_destroy(API);
       (void) CloseBlob(image);
       if (image->debug != MagickFalse)
@@ -2899,6 +2885,7 @@
           (void) LogMagickEvent(CoderEvent,GetMagickModule(),
             "leave ReadWMFImage()");
         }
+      ipa_device_close(API);
       wmf_api_destroy(API);
       ThrowReaderException(DelegateError,"FailedToRenderFile");
     }
@@ -2953,7 +2940,7 @@
   MagickInfo
     *entry;
 
-  entry = AcquireMagickInfo("WMF","WMZ","Compressed Windows Meta File");
+  entry=AcquireMagickInfo("WMF","WMZ","Compressed Windows Meta File");
 #if defined(MAGICKCORE_SANS_DELEGATE) || defined(MAGICKCORE_WMF_DELEGATE)
   entry->decoder=ReadWMFImage;
 #endif
diff --git a/coders/wmf.h b/coders/wmf.h
index 9245fc8..051d14a 100644
--- a/coders/wmf.h
+++ b/coders/wmf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wpg.c b/coders/wpg.c
index 6994ca0..11623a7 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -16,7 +16,7 @@
 %                                 June 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1334,6 +1334,10 @@
                 }
 
               /* Allocate next image structure. */
+              if ((image_info->ping != MagickFalse) &&
+                  (image_info->number_scenes != 0))
+                if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+                  goto Finish;
               AcquireNextImage(image_info,image,exception);
               image->depth=8;
               if (image->next == (Image *) NULL)
@@ -1537,6 +1541,10 @@
 
 
               /* Allocate next image structure. */
+              if ((image_info->ping != MagickFalse) &&
+                  (image_info->number_scenes != 0))
+                if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+                  goto Finish;
               AcquireNextImage(image_info,image,exception);
               image->depth=8;
               if (image->next == (Image *) NULL)
diff --git a/coders/wpg.h b/coders/wpg.h
index 2e65421..100530c 100644
--- a/coders/wpg.h
+++ b/coders/wpg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/x.c b/coders/x.c
index 471edd0..f13297b 100644
--- a/coders/x.c
+++ b/coders/x.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/x.h b/coders/x.h
index 697c97b..308cd54 100644
--- a/coders/x.h
+++ b/coders/x.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xbm.c b/coders/xbm.c
index ab8b657..7570d0c 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -158,7 +158,7 @@
       {
         value*=16;
         c&=0xff;
-        if (value <= (unsigned int) (INT_MAX-hex_digits[c]))
+        if (value <= (unsigned int) ((INT_MAX-1)-hex_digits[c]))
           value+=hex_digits[c];
       }
     c=ReadBlobByte(image);
@@ -573,7 +573,7 @@
     for (x=0; x < (ssize_t) image->columns; x++)
     {
       byte>>=1;
-      if (GetPixelLuma(image,p) < (QuantumRange/2))
+      if (GetPixelLuma(image,p) > (QuantumRange/2))
         byte|=0x80;
       bit++;
       if (bit == 8)
@@ -594,8 +594,8 @@
           bit=0;
           byte=0;
         }
-        p+=GetPixelChannels(image);
-      }
+      p+=GetPixelChannels(image);
+    }
     if (bit != 0)
       {
         /*
diff --git a/coders/xbm.h b/coders/xbm.h
index 6f19630..2a11c9b 100644
--- a/coders/xbm.h
+++ b/coders/xbm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xc.c b/coders/xc.c
index a3594be..b81993e 100644
--- a/coders/xc.c
+++ b/coders/xc.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/xc.h b/coders/xc.h
index 289777a..ef44b49 100644
--- a/coders/xc.h
+++ b/coders/xc.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xcf.c b/coders/xcf.c
index a4b06bd..f17857b 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -17,7 +17,7 @@
 %                               November 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -716,8 +716,14 @@
     and we can simply return.
   */
   offset=GetXCFOffset(image,inDocInfo);
+  if (EOFBlob(image) != MagickFalse)
+    ThrowBinaryException(CorruptImageError,"UnexpectedEndOfFile",
+      image->filename);
   if (offset == 0)
-    return(MagickTrue);
+    {
+      (void) SetImageBackgroundColor(image,exception);
+      return(MagickTrue);
+    }
   /*
     Initialise the reference for the in-memory tile-compression
   */
@@ -1055,8 +1061,8 @@
   /* read in the hierarchy */
   offset=SeekBlob(image, hierarchy_offset, SEEK_SET);
   if (offset != hierarchy_offset)
-    (void) ThrowMagickException(exception,GetMagickModule(),
-      CorruptImageError,"InvalidImageHeader","`%s'",image->filename);
+    ThrowBinaryException(CorruptImageError,"InvalidImageHeader",
+      image->filename);
   if (load_hierarchy (image, inDocInfo, outLayer, exception) == 0)
     return(MagickFalse);
 
diff --git a/coders/xcf.h b/coders/xcf.h
index a36dd39..dd66cd8 100644
--- a/coders/xcf.h
+++ b/coders/xcf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xpm.c b/coders/xpm.c
index 232ff2d..f393ead 100644
--- a/coders/xpm.c
+++ b/coders/xpm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -72,6 +72,12 @@
 #include "MagickCore/utility.h"
 
 /*
+  Global declarations.
+*/
+static SplayTreeInfo
+  *xpm_symbolic = (SplayTreeInfo *) NULL;
+
+/*
   Forward declarations.
 */
 static MagickBooleanType
@@ -158,7 +164,11 @@
 
   p=source;
   while (length-- && (*p != '\0'))
+  {
+    if (*p == '"')
+      break;
     *destination++=(*p++);
+  }
   if (length != 0)
     *destination='\0';
   return((ssize_t) (p-source));
@@ -256,12 +266,12 @@
     *p,
     *q;
 
-  register ssize_t
-    x;
-
   register Quantum
     *r;
 
+  register ssize_t
+    x;
+
   size_t
     length;
 
@@ -362,6 +372,11 @@
       *q++=(*p);
   }
   *q='\0';
+  if (active != MagickFalse)
+    {
+      xpm_buffer=DestroyString(xpm_buffer);
+      ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
+    }
   /*
     Initialize image structure.
   */
@@ -380,6 +395,9 @@
   next=NextXPMLine(xpm_buffer);
   for (j=0; (j < (ssize_t) image->colors) && (next != (char *) NULL); j++)
   {
+    char
+      symbolic[MagickPathExtent];
+
     p=next;
     next=NextXPMLine(p);
     if (next == (char *) NULL)
@@ -395,6 +413,7 @@
     q=(char *) NULL;
     if (strlen(p) > width)
       q=ParseXPMColor(p+width,MagickTrue);
+    *symbolic='\0';
     if (q != (char *) NULL)
       {
         while ((isspace((int) ((unsigned char) *q)) == 0) && (*q != '\0'))
@@ -402,12 +421,17 @@
         if ((next-q) < 0)
           break;
         (void) CopyXPMColor(target,q,MagickMin((size_t) (next-q),
-            MagickPathExtent-1));
+          MagickPathExtent-1));
         q=ParseXPMColor(target,MagickFalse);
+        (void) CopyXPMColor(symbolic,q,MagickMin((size_t) (next-q),
+          MagickPathExtent-1));
         if (q != (char *) NULL)
           *q='\0';
       }
     StripString(target);
+    if (*symbolic != '\0')
+      (void) AddValueToSplayTree(xpm_symbolic,ConstantString(target),
+        ConstantString(symbolic));
     grey=strstr(target,"grey");
     if (grey != (char *) NULL)
       grey[2]='a';
@@ -452,7 +476,10 @@
           break;
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          ssize_t count=CopyXPMColor(key,p,MagickMin(width,MagickPathExtent-1));
+          ssize_t
+            count;
+
+          count=CopyXPMColor(key,p,MagickMin(width,MagickPathExtent-1));
           if (count != (ssize_t) width)
             break;
           j=(ssize_t) GetValueFromSplayTree(xpm_colors,key);
@@ -511,6 +538,9 @@
   MagickInfo
     *entry;
 
+  if (xpm_symbolic == (SplayTreeInfo *) NULL)
+    xpm_symbolic=NewSplayTree(CompareSplayTreeString,RelinquishMagickMemory,
+      RelinquishMagickMemory);
   entry=AcquireMagickInfo("XPM","PICON","Personal Icon");
   entry->decoder=(DecodeImageHandler *) ReadXPMImage;
   entry->encoder=(EncodeImageHandler *) WritePICONImage;
@@ -555,6 +585,8 @@
   (void) UnregisterMagickInfo("PICON");
   (void) UnregisterMagickInfo("PM");
   (void) UnregisterMagickInfo("XPM");
+  if (xpm_symbolic != (SplayTreeInfo *) NULL)
+    xpm_symbolic=DestroySplayTree(xpm_symbolic);
 }
 
 /*
@@ -756,9 +788,9 @@
         picon->colormap,(size_t) colors,sizeof(*picon->colormap));
       if (picon->colormap == (PixelInfo *) NULL)
         ThrowWriterException(ResourceLimitError,"MemoryAllocationError");
-      picon->colormap[colors-1].red=0;
-      picon->colormap[colors-1].green=0;
-      picon->colormap[colors-1].blue=0;
+      picon->colormap[colors-1].red=0.0;
+      picon->colormap[colors-1].green=0.0;
+      picon->colormap[colors-1].blue=0.0;
       picon->colormap[colors-1].alpha=TransparentAlpha;
       for (y=0; y < (ssize_t) picon->rows; y++)
       {
@@ -1033,6 +1065,9 @@
   GetPixelInfo(image,&pixel);
   for (i=0; i < (ssize_t) image->colors; i++)
   {
+    const char
+      *symbolic;
+
     /*
       Define XPM color.
     */
@@ -1054,8 +1089,13 @@
       symbol[j]=Cixel[k];
     }
     symbol[j]='\0';
-    (void) FormatLocaleString(buffer,MagickPathExtent,
-      "\"%.1024s c %.1024s\",\n",symbol,name);
+    symbolic=(const char *) GetValueFromSplayTree(xpm_symbolic,name);
+    if (symbolic == (const char *) NULL)
+      (void) FormatLocaleString(buffer,MagickPathExtent,
+        "\"%.1024s c %.1024s\",\n",symbol,name);
+    else
+      (void) FormatLocaleString(buffer,MagickPathExtent,
+        "\"%.1024s c %.1024s %.1024s\",\n",symbol,name,symbolic);
     (void) WriteBlobString(image,buffer);
   }
   /*
diff --git a/coders/xpm.h b/coders/xpm.h
index 98df5cd..3425066 100644
--- a/coders/xpm.h
+++ b/coders/xpm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xps.c b/coders/xps.c
index 83d89df..0fdfbd2 100644
--- a/coders/xps.c
+++ b/coders/xps.c
@@ -17,7 +17,7 @@
 %                               January 2008                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/xps.h b/coders/xps.h
index c4fbb13..0241455 100644
--- a/coders/xps.h
+++ b/coders/xps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xtrn.c b/coders/xtrn.c
index d4dc0e0..d909b92 100644
--- a/coders/xtrn.c
+++ b/coders/xtrn.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/xtrn.h b/coders/xtrn.h
index c30f922..09557dc 100644
--- a/coders/xtrn.h
+++ b/coders/xtrn.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xwd.c b/coders/xwd.c
index b51410c..fbb297e 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -40,6 +40,7 @@
   Include declarations.
 */
 #include "MagickCore/studio.h"
+#include "MagickCore/attribute.h"
 #include "MagickCore/blob.h"
 #include "MagickCore/blob-private.h"
 #include "MagickCore/cache.h"
@@ -236,27 +237,92 @@
   if (header.file_version != XWD_FILE_VERSION)
     ThrowReaderException(CorruptImageError,"FileFormatVersionMismatch");
   if (header.header_size < sz_XWDheader)
-    ThrowReaderException(CorruptImageError,"CorruptImage");
-  switch (header.visual_class) {
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  if (header.xoffset >= header.pixmap_width)
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  switch (header.visual_class)
+  {
     case StaticGray:
     case GrayScale:
+    {
+      if (header.bits_per_pixel != 1)
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      break;
+    }
     case StaticColor:
     case PseudoColor:
+    {
+      if ((header.bits_per_pixel < 1) || (header.bits_per_pixel > 15) ||
+          (header.colormap_entries == 0))
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      break;
+    }
     case TrueColor:
     case DirectColor:
+    {
+      if ((header.bits_per_pixel != 16) && (header.bits_per_pixel != 24) &&
+          (header.bits_per_pixel != 32))
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
       break;
-    default:
-      ThrowReaderException(CorruptImageError,"CorruptImage");
     }
-  switch (header.pixmap_format) {
+    default:
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  }
+  switch (header.pixmap_format)
+  {
     case XYBitmap:
+    {
+      if (header.pixmap_depth != 1)
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      break;
+    }
     case XYPixmap:
     case ZPixmap:
+    {
+      if ((header.pixmap_depth < 1) || (header.pixmap_depth > 32))
+        ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      switch (header.bitmap_pad)
+      {
+        case 8:
+        case 16:
+        case 32:
+          break;
+        default:
+          ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      }
+      break;
+    }
+    default:
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  }
+  switch (header.bitmap_unit)
+  {
+    case 8:
+    case 16:
+    case 32:
       break;
     default:
-      ThrowReaderException(CorruptImageError,"CorruptImage");
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
   }
-  length=(size_t) header.header_size-sz_XWDheader;
+  switch (header.byte_order)
+  {
+    case LSBFirst:
+    case MSBFirst:
+      break;
+    default:
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  }
+  switch (header.bitmap_bit_order)
+  {
+    case LSBFirst:
+    case MSBFirst:
+      break;
+    default:
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  }
+  if (((header.bitmap_pad % 8) != 0) || (header.bitmap_pad > 32))
+    ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+  length=(size_t) (header.header_size-sz_XWDheader);
   comment=(char *) AcquireQuantumMemory(length+1,sizeof(*comment));
   if (comment == (char *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -287,10 +353,11 @@
   ximage->red_mask=header.red_mask;
   ximage->green_mask=header.green_mask;
   ximage->blue_mask=header.blue_mask;
-  if ((ximage->width < 0) || (ximage->height < 0) || (ximage->depth < 0) ||    
-      (ximage->format < 0) || (ximage->byte_order < 0) || 
-      (ximage->bitmap_bit_order < 0) || (ximage->bitmap_pad < 0) || 
-      (ximage->bytes_per_line < 0))
+  if ((ximage->depth < 0) || (ximage->format < 0) || (ximage->xoffset < 0) ||
+      (ximage->width < 0) || (ximage->height < 0) || (ximage->bitmap_pad < 0) ||
+      (ximage->bytes_per_line < 0) || (ximage->byte_order < 0) ||
+      (ximage->bitmap_unit < 0) || (ximage->bitmap_bit_order < 0) ||
+      (ximage->bits_per_pixel < 0))
     {
       ximage=(XImage *) RelinquishMagickMemory(ximage);
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
@@ -477,18 +544,18 @@
             for (x=0; x < (ssize_t) image->columns; x++)
             {
               pixel=XGetPixel(ximage,(int) x,(int) y);
-              index=(Quantum) ((pixel >> red_shift) & red_mask);
-              if (index < header.ncolors)
-                SetPixelRed(image,ScaleShortToQuantum(
-                  colors[(ssize_t) index].red),q);
-              index=(Quantum) ((pixel >> green_shift) & green_mask);
-              if (index < header.ncolors)
-                SetPixelGreen(image,ScaleShortToQuantum(
-                  colors[(ssize_t) index].green),q);
-              index=(Quantum) ((pixel >> blue_shift) & blue_mask);
-              if (index < header.ncolors)
-                SetPixelBlue(image,ScaleShortToQuantum(
-                  colors[(ssize_t) index].blue),q);
+              index=(Quantum) ConstrainColormapIndex(image,(ssize_t) (pixel >>
+                red_shift) & red_mask,exception);
+              SetPixelRed(image,ScaleShortToQuantum(
+                colors[(ssize_t) index].red),q);
+              index=(Quantum) ConstrainColormapIndex(image,(ssize_t) (pixel >>
+                green_shift) & green_mask,exception);
+              SetPixelGreen(image,ScaleShortToQuantum(
+                colors[(ssize_t) index].green),q);
+              index=(Quantum) ConstrainColormapIndex(image,(ssize_t) (pixel >>
+                blue_shift) & blue_mask,exception);
+              SetPixelBlue(image,ScaleShortToQuantum(
+                colors[(ssize_t) index].blue),q);
               q+=GetPixelChannels(image);
             }
             if (SyncAuthenticPixels(image,exception) == MagickFalse)
@@ -560,8 +627,8 @@
             break;
           for (x=0; x < (ssize_t) image->columns; x++)
           {
-            index=ConstrainColormapIndex(image,XGetPixel(ximage,(int) x,
-              (int) y),exception);
+            index=(Quantum) ConstrainColormapIndex(image,(ssize_t)
+              XGetPixel(ximage,(int) x,(int) y),exception);
             SetPixelIndex(image,index,q);
             SetPixelViaPixelInfo(image,image->colormap+(ssize_t) index,q);
             q+=GetPixelChannels(image);
@@ -708,6 +775,7 @@
     scanline_pad;
 
   ssize_t
+    count,
     y;
 
   unsigned char
@@ -733,6 +801,11 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
+  if ((image->columns != (CARD32) image->columns) ||
+      (image->rows != (CARD32) image->rows))
+    ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
+  if ((image->storage_class == PseudoClass) && (image->colors > 256))
+    (void) SetImageType(image,TrueColorType,exception);
   (void) TransformImageColorspace(image,sRGBColorspace,exception);
   /*
     Initialize XWD file header.
@@ -820,8 +893,8 @@
           {
             MSBOrderLong((unsigned char *) &colors[i].pixel,
               sizeof(colors[i].pixel));
-            MSBOrderShort((unsigned char *) &colors[i].red,
-              3*sizeof(colors[i].red));
+            MSBOrderShort((unsigned char *) &colors[i].red,3*
+              sizeof(colors[i].red));
           }
       }
       for (i=0; i < (ssize_t) image->colors; i++)
@@ -831,7 +904,9 @@
         color.green=colors[i].green;
         color.blue=colors[i].blue;
         color.flags=(CARD8) colors[i].flags;
-        (void) WriteBlob(image,sz_XWDColor,(unsigned char *) &color);
+        count=WriteBlob(image,sz_XWDColor,(unsigned char *) &color);
+        if (count != (ssize_t) sz_XWDColor)
+          break;
       }
       colors=(XColor *) RelinquishMagickMemory(colors);
     }
@@ -873,7 +948,10 @@
       }
     for (x=0; x < (ssize_t) scanline_pad; x++)
       *q++='\0';
-    (void) WriteBlob(image,(size_t) (q-pixels),pixels);
+    length=(size_t) (q-pixels);
+    count=WriteBlob(image,length,pixels);
+    if (count != (ssize_t) length)
+      break;
     status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
       image->rows);
     if (status == MagickFalse)
@@ -881,6 +959,6 @@
   }
   pixels=(unsigned char *) RelinquishMagickMemory(pixels);
   (void) CloseBlob(image);
-  return(MagickTrue);
+  return(y < (ssize_t) image->rows ? MagickFalse :  MagickTrue);
 }
 #endif
diff --git a/coders/xwd.h b/coders/xwd.h
index 494f631..c3b7139 100644
--- a/coders/xwd.h
+++ b/coders/xwd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ycbcr.c b/coders/ycbcr.c
index 212c2fb..85c49d5 100644
--- a/coders/ycbcr.c
+++ b/coders/ycbcr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -99,8 +99,8 @@
 static Image *ReadYCBCRImage(const ImageInfo *image_info,
   ExceptionInfo *exception)
 {
-  const unsigned char
-    *pixels;
+  const void
+    *stream;
 
   Image
     *canvas_image,
@@ -128,6 +128,9 @@
     count,
     y;
 
+  unsigned char
+    *pixels;
+
   /*
     Open image file.
   */
@@ -178,7 +181,7 @@
       quantum_type=RGBAQuantum;
       image->alpha_trait=BlendPixelTrait;
     }
-  pixels=(const unsigned char *) NULL;
+  pixels=GetQuantumPixels(quantum_info);
   if (image_info->number_scenes != 0)
     while (image->scene < image_info->scene)
     {
@@ -189,8 +192,7 @@
       length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         if (count != (ssize_t) length)
           break;
       }
@@ -199,6 +201,7 @@
   length=0;
   scene=0;
   status=MagickTrue;
+  stream=NULL;
   do
   {
     /*
@@ -223,8 +226,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -249,7 +251,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,quantum_type,pixels,exception);
+            quantum_info,quantum_type,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -282,8 +284,7 @@
               if (status == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         break;
       }
@@ -304,8 +305,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -333,7 +333,7 @@
             if (q == (Quantum *) NULL)
               break;
             length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-              quantum_info,quantum_type,pixels,exception);
+              quantum_info,quantum_type,(unsigned char *) stream,exception);
             if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
               break;
             if (((y-image->extract_info.y) >= 0) && 
@@ -379,8 +379,7 @@
                 if (SyncAuthenticPixels(image,exception) == MagickFalse)
                   break;
               }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
           if (image->previous == (Image *) NULL)
             {
@@ -400,8 +399,7 @@
         if (scene == 0)
           {
             length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
@@ -426,7 +424,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -448,8 +446,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -480,7 +477,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -501,9 +498,8 @@
               }
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
-           }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+            }
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -534,7 +530,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -556,8 +552,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -590,7 +585,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,AlphaQuantum,pixels,exception);
+                quantum_info,AlphaQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -613,8 +608,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                 }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
@@ -643,8 +637,8 @@
         if (DiscardBlobBytes(image,(MagickSizeType) image->offset) == MagickFalse)
           {
             status=MagickFalse;
-            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
-              image->filename);
+            ThrowFileException(exception,CorruptImageError,
+              "UnexpectedEndOfFile",image->filename);
             break;
           }
         length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
@@ -652,16 +646,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -685,7 +677,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,RedQuantum,pixels,exception);
+            quantum_info,RedQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -707,8 +699,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
             }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -726,16 +717,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -759,7 +748,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,GreenQuantum,pixels,exception);
+            quantum_info,GreenQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -781,8 +770,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -800,16 +788,14 @@
         {
           for (y=0; y < (ssize_t) image->extract_info.height; y++)
           {
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             if (count != (ssize_t) length)
               break;
           }
           if (count != (ssize_t) length)
             break;
         }
-        pixels=(const unsigned char *) ReadBlobStream(image,length,
-          GetQuantumPixels(quantum_info),&count);
+        stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
           register const Quantum
@@ -833,7 +819,7 @@
           if (q == (Quantum *) NULL)
             break;
           length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-            quantum_info,BlueQuantum,pixels,exception);
+            quantum_info,BlueQuantum,(unsigned char *) stream,exception);
           if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
             break;
           if (((y-image->extract_info.y) >= 0) && 
@@ -855,8 +841,7 @@
               if (SyncAuthenticPixels(image,exception) == MagickFalse)
                 break;
            }
-          pixels=(const unsigned char *) ReadBlobStream(image,length,
-            GetQuantumPixels(quantum_info),&count);
+          stream=ReadBlobStream(image,length,pixels,&count);
         }
         if (image->previous == (Image *) NULL)
           {
@@ -876,16 +861,14 @@
             {
               for (y=0; y < (ssize_t) image->extract_info.height; y++)
               {
-                pixels=(const unsigned char *) ReadBlobStream(image,length,
-                  GetQuantumPixels(quantum_info),&count);
+                stream=ReadBlobStream(image,length,pixels,&count);
                 if (count != (ssize_t) length)
                   break;
               }
               if (count != (ssize_t) length)
                 break;
             }
-            pixels=(const unsigned char *) ReadBlobStream(image,length,
-              GetQuantumPixels(quantum_info),&count);
+            stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
               register const Quantum
@@ -909,7 +892,7 @@
               if (q == (Quantum *) NULL)
                 break;
               length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
-                quantum_info,BlueQuantum,pixels,exception);
+                quantum_info,BlueQuantum,(unsigned char *) stream,exception);
               if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
                 break;
               if (((y-image->extract_info.y) >= 0) && 
@@ -932,8 +915,7 @@
                   if (SyncAuthenticPixels(image,exception) == MagickFalse)
                     break;
                }
-              pixels=(const unsigned char *) ReadBlobStream(image,length,
-                GetQuantumPixels(quantum_info),&count);
+              stream=ReadBlobStream(image,length,pixels,&count);
             }
             if (image->previous == (Image *) NULL)
               {
diff --git a/coders/ycbcr.h b/coders/ycbcr.h
index 5d77dbf..3e7a331 100644
--- a/coders/ycbcr.h
+++ b/coders/ycbcr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/yuv.c b/coders/yuv.c
index b454a01..145f01b 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/yuv.h b/coders/yuv.h
index b9ec59d..606aae7 100644
--- a/coders/yuv.h
+++ b/coders/yuv.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/common.shi.in b/common.shi.in
index 884dc32..e4fc65d 100644
--- a/common.shi.in
+++ b/common.shi.in
@@ -1,5 +1,5 @@
 # -*- shell-script -*-
-# Copyright 1999-2019 ImageMagick Studio LLC
+# Copyright 1999-2020 ImageMagick Studio LLC
 # Definitions of optional features and configuration values for this build.
 # Intended for use by test scripts.
 MAGICK_FEATURES='@MAGICK_FEATURES@'
@@ -22,5 +22,6 @@
 MAGICK_CODER_MODULE_PATH="@abs_top_builddir@/coders"
 MAGICK_CONFIGURE_PATH="@abs_top_builddir@/config:@abs_top_srcdir@/config"
 MAGICK_FILTER_MODULE_PATH="@abs_top_builddir@/filters"
+MAGICK_FONT="@abs_top_srcdir@/PerlMagick/demo/Generic.ttf"
 PATH="@abs_top_builddir@/utilities:@abs_top_builddir@/tests:${PATH}"
 set +a
diff --git a/config/Makefile.am b/config/Makefile.am
index 8e66ec7..b226467 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -18,55 +18,56 @@
 # (share/ImageMagick-version)
 configsharedir = $(SHARE_PATH)
 configshare_DATA = \
-	config/english.xml \
-	config/francais.xml \
-	config/locale.xml
+  config/english.xml \
+  config/francais.xml \
+  config/locale.xml
 
 # Where architecture-dependent configuration files get installed
 # (share/arch/ImageMagick-version)
 configsharearchdir = $(SHAREARCH_PATH)
 configsharearch_DATA = \
-	config/configure.xml
+  config/configure.xml
 
 # Where architecture-dependent configuration files get installed
 # (share/ImageMagick-version)
 configlibdir =  $(CONFIGURE_PATH)
 configlib_DATA = \
-	config/colors.xml \
-	config/delegates.xml \
-	config/log.xml \
-	config/mime.xml \
-	config/policy.xml \
-	config/quantization-table.xml \
-	config/thresholds.xml \
-	config/type.xml \
-	config/type-apple.xml \
-	config/type-dejavu.xml \
-	config/type-ghostscript.xml \
-	config/type-urw-base35.xml \
-	config/type-windows.xml
+  config/colors.xml \
+  config/delegates.xml \
+  config/log.xml \
+  config/mime.xml \
+  config/policy.xml \
+  config/quantization-table.xml \
+  config/thresholds.xml \
+  config/type.xml \
+  config/type-apple.xml \
+  config/type-dejavu.xml \
+  config/type-ghostscript.xml \
+  config/type-urw-base35.xml \
+  config/type-windows.xml
 
 CONFIG_EXTRA_DIST = \
-	config/cmyk.icm \
-	config/colors.xml \
-	config/config.h.in \
-	config/delegates.xml.in \
-	config/english.xml \
-	config/francais.xml \
-	config/ImageMagick.rc \
-	config/ImageMagick.rdf.in \
-	config/lndir.sh \
-	config/locale.md \
-	config/locale.xml \
-	config/log.xml \
-	config/mime.xml \
-	config/policy.xml \
-	config/quantization-table.xml \
-	config/sRGB.icm \
-	config/thresholds.xml \
-	config/type-apple.xml.in \
-	config/type-dejavu.xml.in \
-	config/type-ghostscript.xml.in \
-	config/type-urw-base35.xml.in \
-	config/type-windows.xml.in \
-	config/type.xml.in
+  config/cmyk.icm \
+  config/colors.xml \
+  config/config.h.in \
+  config/delegates.xml.in \
+  config/english.xml \
+  config/francais.xml \
+  config/ImageMagick.rc \
+  config/ImageMagick.rdf.in \
+  config/install-sh \
+  config/lndir.sh \
+  config/locale.md \
+  config/locale.xml \
+  config/log.xml \
+  config/mime.xml \
+  config/policy.xml \
+  config/quantization-table.xml \
+  config/sRGB.icm \
+  config/thresholds.xml \
+  config/type-apple.xml.in \
+  config/type-dejavu.xml.in \
+  config/type-ghostscript.xml.in \
+  config/type-urw-base35.xml.in \
+  config/type-windows.xml.in \
+  config/type.xml.in
diff --git a/config/config.guess b/config/config.guess
index 256083a..b33c9e8 100755
--- a/config/config.guess
+++ b/config/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-03-08'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -84,8 +84,6 @@
   exit 1
 fi
 
-trap 'exit 1' 1 2 15
-
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
 # temporary files to be created and, as you can see below, it is a
@@ -96,34 +94,39 @@
 
 # Portable tmp directory creation inspired by the Autoconf team.
 
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > "$dummy.c" ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
+trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+
+set_cc_for_build() {
+    : "${TMPDIR=/tmp}"
+    # shellcheck disable=SC2039
+    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+	{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+	{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+	{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+    dummy=$tmp/dummy
+    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+	,,)    echo "int x;" > "$dummy.c"
+	       for driver in cc gcc c89 c99 ; do
+		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+		       CC_FOR_BUILD="$driver"
+		       break
+		   fi
+	       done
+	       if test x"$CC_FOR_BUILD" = x ; then
+		   CC_FOR_BUILD=no_compiler_found
+	       fi
+	       ;;
+	,,*)   CC_FOR_BUILD=$CC ;;
+	,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+    esac
+}
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
 	PATH=$PATH:/.attbin ; export PATH
 fi
 
@@ -138,7 +141,7 @@
 	# We could probably try harder.
 	LIBC=gnu
 
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	cat <<-EOF > "$dummy.c"
 	#include <features.h>
 	#if defined(__UCLIBC__)
@@ -199,7 +202,7 @@
 		os=netbsdelf
 		;;
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval "$set_cc_for_build"
+		set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 			| grep -q __ELF__
 		then
@@ -237,7 +240,7 @@
 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "$machine-${os}${release}${abi}"
+	echo "$machine-${os}${release}${abi-}"
 	exit ;;
     *:Bitrig:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -389,20 +392,15 @@
 	echo i386-pc-auroraux"$UNAME_RELEASE"
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	eval "$set_cc_for_build"
-	SUN_ARCH=i386
-	# If there is a compiler, see if it is configured for 64-bit objects.
-	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
-	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_64BIT_ARCH >/dev/null
-	    then
-		SUN_ARCH=x86_64
-	    fi
-	fi
-	echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+	UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+	case `isainfo -b` in
+	    32)
+		echo i386-pc-solaris2"$UNAME_REL"
+		;;
+	    64)
+		echo x86_64-pc-solaris2"$UNAME_REL"
+		;;
+	esac
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -482,7 +480,7 @@
 	echo clipper-intergraph-clix"$UNAME_RELEASE"
 	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	sed 's/^	//' << EOF > "$dummy.c"
 #ifdef __cplusplus
 #include <stdio.h>  /* for printf() prototype */
@@ -579,7 +577,7 @@
 	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval "$set_cc_for_build"
+		set_cc_for_build
 		sed 's/^		//' << EOF > "$dummy.c"
 		#include <sys/systemcfg.h>
 
@@ -660,7 +658,7 @@
 		    esac
 		fi
 		if [ "$HP_ARCH" = "" ]; then
-		    eval "$set_cc_for_build"
+		    set_cc_for_build
 		    sed 's/^		//' << EOF > "$dummy.c"
 
 		#define _HPUX_SOURCE
@@ -700,7 +698,7 @@
 	esac
 	if [ "$HP_ARCH" = hppa2.0w ]
 	then
-	    eval "$set_cc_for_build"
+	    set_cc_for_build
 
 	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
 	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
@@ -726,7 +724,7 @@
 	echo ia64-hp-hpux"$HPUX_REV"
 	exit ;;
     3050*:HI-UX:*:*)
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	sed 's/^	//' << EOF > "$dummy.c"
 	#include <unistd.h>
 	int
@@ -840,6 +838,17 @@
     *:BSD/OS:*:*)
 	echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
 	exit ;;
+    arm:FreeBSD:*:*)
+	UNAME_PROCESSOR=`uname -p`
+	set_cc_for_build
+	if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_PCS_VFP
+	then
+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+	else
+	    echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+	fi
+	exit ;;
     *:FreeBSD:*:*)
 	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	case "$UNAME_PROCESSOR" in
@@ -894,8 +903,8 @@
 	# other systems with GNU libc and userland
 	echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
 	exit ;;
-    i*86:Minix:*:*)
-	echo "$UNAME_MACHINE"-pc-minix
+    *:Minix:*:*)
+	echo "$UNAME_MACHINE"-unknown-minix
 	exit ;;
     aarch64:Linux:*:*)
 	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -922,7 +931,7 @@
 	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     arm*:Linux:*:*)
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
@@ -971,7 +980,7 @@
 	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	sed 's/^	//' << EOF > "$dummy.c"
 	#undef CPU
 	#undef ${UNAME_MACHINE}
@@ -1285,7 +1294,7 @@
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	eval "$set_cc_for_build"
+	set_cc_for_build
 	if test "$UNAME_PROCESSOR" = unknown ; then
 	    UNAME_PROCESSOR=powerpc
 	fi
@@ -1358,6 +1367,7 @@
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
+	# shellcheck disable=SC2154
 	if test "$cputype" = 386; then
 	    UNAME_MACHINE=i386
 	else
diff --git a/config/config.h.in b/config/config.h.in
index a6c03ca..ca34a48 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -109,7 +109,7 @@
 /* Define to 1 if you have the `clock_getres' function. */
 #undef HAVE_CLOCK_GETRES
 
-/* Define to 1 if you have clock_gettime. */
+/* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
 /* Define to 1 if clock_gettime supports CLOCK_REALTIME. */
@@ -164,9 +164,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 #undef HAVE_DOPRNT
 
-/* Define to 1 if the system has the type `double_t'. */
-#undef HAVE_DOUBLE_T
-
 /* Define to 1 if you have the `erf' function. */
 #undef HAVE_ERF
 
@@ -182,9 +179,6 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if the system has the type `float_t'. */
-#undef HAVE_FLOAT_T
-
 /* Define to 1 if you have the `floor' function. */
 #undef HAVE_FLOOR
 
@@ -218,6 +212,9 @@
 /* Define to 1 if you have the `getpid' function. */
 #undef HAVE_GETPID
 
+/* Define to 1 if you have the `getpwnam_r' function. */
+#undef HAVE_GETPWNAM_R
+
 /* Define to 1 if you have the `getrlimit' function. */
 #undef HAVE_GETRLIMIT
 
@@ -272,19 +269,9 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
-/* Define to 1 if the system has the type `locale_t'. */
-#undef HAVE_LOCALE_T
-
 /* Define to 1 if you have the `localtime_r' function. */
 #undef HAVE_LOCALTIME_R
 
-/* Define to 1 if the system has the type `long double'. */
-#undef HAVE_LONG_DOUBLE
-
-/* Define to 1 if the type `long double' works and has more range or precision
-   than `double'. */
-#undef HAVE_LONG_DOUBLE_WIDER
-
 /* Define to 1 if the system has the type `long long int'. */
 #undef HAVE_LONG_LONG_INT
 
@@ -456,6 +443,9 @@
 /* Define to 1 if you have the `strcasecmp' function. */
 #undef HAVE_STRCASECMP
 
+/* Define to 1 if you have the `strcasestr' function. */
+#undef HAVE_STRCASESTR
+
 /* Define to 1 if you have the `strchr' function. */
 #undef HAVE_STRCHR
 
@@ -575,6 +565,9 @@
 /* Define to 1 if you have the <sys/wait.h> header file. */
 #undef HAVE_SYS_WAIT_H
 
+/* Define if you have the tcmalloc memory allocation library */
+#undef HAVE_TCMALLOC
+
 /* Define to 1 if you have the `telldir' function. */
 #undef HAVE_TELLDIR
 
@@ -628,6 +621,9 @@
 /* Define to 1 if you have the `ulltostr' function. */
 #undef HAVE_ULLTOSTR
 
+/* Define if you have umem memory allocation library */
+#undef HAVE_UMEM
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
@@ -724,9 +720,6 @@
 /* Define if you have jemalloc memory allocation library */
 #undef HasJEMALLOC
 
-/* Define if you have umem memory allocation library */
-#undef HasUMEM
-
 /* Directory where ImageMagick architecture headers live. */
 #undef INCLUDEARCH_PATH
 
@@ -742,6 +735,9 @@
 /* Define if you have JPEG library */
 #undef JPEG_DELEGATE
 
+/* Define if you have brunsli library */
+#undef JXL_DELEGATE
+
 /* Define if you have LCMS library */
 #undef LCMS_DELEGATE
 
@@ -854,9 +850,6 @@
 /* Define if you have LIBRAW library */
 #undef RAW_R_DELEGATE
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
 /* Define if you have RSVG library */
 #undef RSVG_DELEGATE
 
@@ -897,41 +890,11 @@
 /* The size of `long double', as computed by sizeof. */
 #undef SIZEOF_LONG_DOUBLE
 
-/* The size of `off_t', as computed by sizeof. */
-#undef SIZEOF_OFF_T
-
-/* The size of `signed int', as computed by sizeof. */
-#undef SIZEOF_SIGNED_INT
-
-/* The size of `signed long', as computed by sizeof. */
-#undef SIZEOF_SIGNED_LONG
-
-/* The size of `signed long long', as computed by sizeof. */
-#undef SIZEOF_SIGNED_LONG_LONG
-
-/* The size of `signed short', as computed by sizeof. */
-#undef SIZEOF_SIGNED_SHORT
-
-/* The size of `size_t', as computed by sizeof. */
-#undef SIZEOF_SIZE_T
-
-/* The size of `ssize_t', as computed by sizeof. */
-#undef SIZEOF_SSIZE_T
-
-/* The size of `unsigned int', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The size of `unsigned int*', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_INTP
-
-/* The size of `unsigned long', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_LONG
-
 /* The size of `unsigned long long', as computed by sizeof. */
 #undef SIZEOF_UNSIGNED_LONG_LONG
 
-/* The size of `unsigned short', as computed by sizeof. */
-#undef SIZEOF_UNSIGNED_SHORT
+/* The size of `void *', as computed by sizeof. */
+#undef SIZEOF_VOID_P
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
 #undef STAT_MACROS_BROKEN
@@ -1077,7 +1040,7 @@
 # undef __CHAR_UNSIGNED__
 #endif
 
-/* Define to appropriate substitue if compiler does not have __func__ */
+/* Define to appropriate substitute if compiler does not have __func__ */
 #undef __func__
 
 /* Define to empty if `const' does not conform to ANSI C. */
diff --git a/config/config.sub b/config/config.sub
index 20f7cf2..b51fb8c 100755
--- a/config/config.sub
+++ b/config/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-05'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -110,16 +110,20 @@
     exit 1;;
 esac
 
-# Spilt fields of configuration type
+# Split fields of configuration type
 IFS="-" read -r field1 field2 field3 field4 <<EOF
 $1
 EOF
 
 # Separate into logical components for further validation
 case $1 in
+	*-*-*-*-*)
+		echo Invalid configuration \`"$1"\': more than four components >&2
+		exit 1
+		;;
 	*-*-*-*)
 		basic_machine=$field1-$field2
-		os=-$field3-$field4
+		os=$field3-$field4
 		;;
 	*-*-*)
 		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
@@ -132,1227 +136,1133 @@
 			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
 			| storm-chaos* | os2-emx* | rtmk-nova*)
 				basic_machine=$field1
-				os=-$maybe_os
+				os=$maybe_os
 				;;
 			android-linux)
 				basic_machine=$field1-unknown
-				os=-linux-android
+				os=linux-android
 				;;
 			*)
 				basic_machine=$field1-$field2
-				os=-$field3
+				os=$field3
 				;;
 		esac
 		;;
 	*-*)
-		basic_machine=$field1
-		os=-$field2
+		# A lone config we happen to match not fitting any patern
+		case $field1-$field2 in
+			decstation-3100)
+				basic_machine=mips-dec
+				os=
+				;;
+			*-*)
+				# Second component is usually, but not always the OS
+				case $field2 in
+					# Prevent following clause from handling this valid os
+					sun*os*)
+						basic_machine=$field1
+						os=$field2
+						;;
+					# Manufacturers
+					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
+					| convergent* | ncr* | news | 32* | 3600* | 3100* \
+					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+					| ultra | tti* | harris | dolphin | highlevel | gould \
+					| cbm | ns | masscomp | apple | axis | knuth | cray \
+					| microblaze* | sim | cisco \
+					| oki | wec | wrs | winbond)
+						basic_machine=$field1-$field2
+						os=
+						;;
+					*)
+						basic_machine=$field1
+						os=$field2
+						;;
+				esac
+			;;
+		esac
 		;;
 	*)
-		basic_machine=$1
-		os=
+		# Convert single-component short-hands not valid as part of
+		# multi-component configurations.
+		case $field1 in
+			386bsd)
+				basic_machine=i386-pc
+				os=bsd
+				;;
+			a29khif)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			adobe68k)
+				basic_machine=m68010-adobe
+				os=scout
+				;;
+			alliant)
+				basic_machine=fx80-alliant
+				os=
+				;;
+			altos | altos3068)
+				basic_machine=m68k-altos
+				os=
+				;;
+			am29k)
+				basic_machine=a29k-none
+				os=bsd
+				;;
+			amdahl)
+				basic_machine=580-amdahl
+				os=sysv
+				;;
+			amiga)
+				basic_machine=m68k-unknown
+				os=
+				;;
+			amigaos | amigados)
+				basic_machine=m68k-unknown
+				os=amigaos
+				;;
+			amigaunix | amix)
+				basic_machine=m68k-unknown
+				os=sysv4
+				;;
+			apollo68)
+				basic_machine=m68k-apollo
+				os=sysv
+				;;
+			apollo68bsd)
+				basic_machine=m68k-apollo
+				os=bsd
+				;;
+			aros)
+				basic_machine=i386-pc
+				os=aros
+				;;
+			aux)
+				basic_machine=m68k-apple
+				os=aux
+				;;
+			balance)
+				basic_machine=ns32k-sequent
+				os=dynix
+				;;
+			blackfin)
+				basic_machine=bfin-unknown
+				os=linux
+				;;
+			cegcc)
+				basic_machine=arm-unknown
+				os=cegcc
+				;;
+			convex-c1)
+				basic_machine=c1-convex
+				os=bsd
+				;;
+			convex-c2)
+				basic_machine=c2-convex
+				os=bsd
+				;;
+			convex-c32)
+				basic_machine=c32-convex
+				os=bsd
+				;;
+			convex-c34)
+				basic_machine=c34-convex
+				os=bsd
+				;;
+			convex-c38)
+				basic_machine=c38-convex
+				os=bsd
+				;;
+			cray)
+				basic_machine=j90-cray
+				os=unicos
+				;;
+			crds | unos)
+				basic_machine=m68k-crds
+				os=
+				;;
+			da30)
+				basic_machine=m68k-da30
+				os=
+				;;
+			decstation | pmax | pmin | dec3100 | decstatn)
+				basic_machine=mips-dec
+				os=
+				;;
+			delta88)
+				basic_machine=m88k-motorola
+				os=sysv3
+				;;
+			dicos)
+				basic_machine=i686-pc
+				os=dicos
+				;;
+			djgpp)
+				basic_machine=i586-pc
+				os=msdosdjgpp
+				;;
+			ebmon29k)
+				basic_machine=a29k-amd
+				os=ebmon
+				;;
+			es1800 | OSE68k | ose68k | ose | OSE)
+				basic_machine=m68k-ericsson
+				os=ose
+				;;
+			gmicro)
+				basic_machine=tron-gmicro
+				os=sysv
+				;;
+			go32)
+				basic_machine=i386-pc
+				os=go32
+				;;
+			h8300hms)
+				basic_machine=h8300-hitachi
+				os=hms
+				;;
+			h8300xray)
+				basic_machine=h8300-hitachi
+				os=xray
+				;;
+			h8500hms)
+				basic_machine=h8500-hitachi
+				os=hms
+				;;
+			harris)
+				basic_machine=m88k-harris
+				os=sysv3
+				;;
+			hp300)
+				basic_machine=m68k-hp
+				;;
+			hp300bsd)
+				basic_machine=m68k-hp
+				os=bsd
+				;;
+			hp300hpux)
+				basic_machine=m68k-hp
+				os=hpux
+				;;
+			hppaosf)
+				basic_machine=hppa1.1-hp
+				os=osf
+				;;
+			hppro)
+				basic_machine=hppa1.1-hp
+				os=proelf
+				;;
+			i386mach)
+				basic_machine=i386-mach
+				os=mach
+				;;
+			vsta)
+				basic_machine=i386-pc
+				os=vsta
+				;;
+			isi68 | isi)
+				basic_machine=m68k-isi
+				os=sysv
+				;;
+			m68knommu)
+				basic_machine=m68k-unknown
+				os=linux
+				;;
+			magnum | m3230)
+				basic_machine=mips-mips
+				os=sysv
+				;;
+			merlin)
+				basic_machine=ns32k-utek
+				os=sysv
+				;;
+			mingw64)
+				basic_machine=x86_64-pc
+				os=mingw64
+				;;
+			mingw32)
+				basic_machine=i686-pc
+				os=mingw32
+				;;
+			mingw32ce)
+				basic_machine=arm-unknown
+				os=mingw32ce
+				;;
+			monitor)
+				basic_machine=m68k-rom68k
+				os=coff
+				;;
+			morphos)
+				basic_machine=powerpc-unknown
+				os=morphos
+				;;
+			moxiebox)
+				basic_machine=moxie-unknown
+				os=moxiebox
+				;;
+			msdos)
+				basic_machine=i386-pc
+				os=msdos
+				;;
+			msys)
+				basic_machine=i686-pc
+				os=msys
+				;;
+			mvs)
+				basic_machine=i370-ibm
+				os=mvs
+				;;
+			nacl)
+				basic_machine=le32-unknown
+				os=nacl
+				;;
+			ncr3000)
+				basic_machine=i486-ncr
+				os=sysv4
+				;;
+			netbsd386)
+				basic_machine=i386-pc
+				os=netbsd
+				;;
+			netwinder)
+				basic_machine=armv4l-rebel
+				os=linux
+				;;
+			news | news700 | news800 | news900)
+				basic_machine=m68k-sony
+				os=newsos
+				;;
+			news1000)
+				basic_machine=m68030-sony
+				os=newsos
+				;;
+			necv70)
+				basic_machine=v70-nec
+				os=sysv
+				;;
+			nh3000)
+				basic_machine=m68k-harris
+				os=cxux
+				;;
+			nh[45]000)
+				basic_machine=m88k-harris
+				os=cxux
+				;;
+			nindy960)
+				basic_machine=i960-intel
+				os=nindy
+				;;
+			mon960)
+				basic_machine=i960-intel
+				os=mon960
+				;;
+			nonstopux)
+				basic_machine=mips-compaq
+				os=nonstopux
+				;;
+			os400)
+				basic_machine=powerpc-ibm
+				os=os400
+				;;
+			OSE68000 | ose68000)
+				basic_machine=m68000-ericsson
+				os=ose
+				;;
+			os68k)
+				basic_machine=m68k-none
+				os=os68k
+				;;
+			paragon)
+				basic_machine=i860-intel
+				os=osf
+				;;
+			parisc)
+				basic_machine=hppa-unknown
+				os=linux
+				;;
+			pw32)
+				basic_machine=i586-unknown
+				os=pw32
+				;;
+			rdos | rdos64)
+				basic_machine=x86_64-pc
+				os=rdos
+				;;
+			rdos32)
+				basic_machine=i386-pc
+				os=rdos
+				;;
+			rom68k)
+				basic_machine=m68k-rom68k
+				os=coff
+				;;
+			sa29200)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			sei)
+				basic_machine=mips-sei
+				os=seiux
+				;;
+			sequent)
+				basic_machine=i386-sequent
+				os=
+				;;
+			sps7)
+				basic_machine=m68k-bull
+				os=sysv2
+				;;
+			st2000)
+				basic_machine=m68k-tandem
+				os=
+				;;
+			stratus)
+				basic_machine=i860-stratus
+				os=sysv4
+				;;
+			sun2)
+				basic_machine=m68000-sun
+				os=
+				;;
+			sun2os3)
+				basic_machine=m68000-sun
+				os=sunos3
+				;;
+			sun2os4)
+				basic_machine=m68000-sun
+				os=sunos4
+				;;
+			sun3)
+				basic_machine=m68k-sun
+				os=
+				;;
+			sun3os3)
+				basic_machine=m68k-sun
+				os=sunos3
+				;;
+			sun3os4)
+				basic_machine=m68k-sun
+				os=sunos4
+				;;
+			sun4)
+				basic_machine=sparc-sun
+				os=
+				;;
+			sun4os3)
+				basic_machine=sparc-sun
+				os=sunos3
+				;;
+			sun4os4)
+				basic_machine=sparc-sun
+				os=sunos4
+				;;
+			sun4sol2)
+				basic_machine=sparc-sun
+				os=solaris2
+				;;
+			sun386 | sun386i | roadrunner)
+				basic_machine=i386-sun
+				os=
+				;;
+			sv1)
+				basic_machine=sv1-cray
+				os=unicos
+				;;
+			symmetry)
+				basic_machine=i386-sequent
+				os=dynix
+				;;
+			t3e)
+				basic_machine=alphaev5-cray
+				os=unicos
+				;;
+			t90)
+				basic_machine=t90-cray
+				os=unicos
+				;;
+			toad1)
+				basic_machine=pdp10-xkl
+				os=tops20
+				;;
+			tpf)
+				basic_machine=s390x-ibm
+				os=tpf
+				;;
+			udi29k)
+				basic_machine=a29k-amd
+				os=udi
+				;;
+			ultra3)
+				basic_machine=a29k-nyu
+				os=sym1
+				;;
+			v810 | necv810)
+				basic_machine=v810-nec
+				os=none
+				;;
+			vaxv)
+				basic_machine=vax-dec
+				os=sysv
+				;;
+			vms)
+				basic_machine=vax-dec
+				os=vms
+				;;
+			vxworks960)
+				basic_machine=i960-wrs
+				os=vxworks
+				;;
+			vxworks68)
+				basic_machine=m68k-wrs
+				os=vxworks
+				;;
+			vxworks29k)
+				basic_machine=a29k-wrs
+				os=vxworks
+				;;
+			xbox)
+				basic_machine=i686-pc
+				os=mingw32
+				;;
+			ymp)
+				basic_machine=ymp-cray
+				os=unicos
+				;;
+			*)
+				basic_machine=$1
+				os=
+				;;
+		esac
 		;;
 esac
 
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze*)
-		os=
-		basic_machine=$1
-		;;
-	-bluegene*)
-		os=-cnk
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
-	-chorusrdb)
-		os=-chorusrdb
-		basic_machine=$1
-		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco6)
-		os=-sco5v6
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5v6*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*178)
-		os=-lynxos178
-		;;
-	-lynx*5)
-		os=-lynxos5
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| aarch64 | aarch64_be \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arceb \
-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
-	| avr | avr32 \
-	| ba \
-	| be32 | be64 \
-	| bfin \
-	| c4x | c8051 | clipper | csky \
-	| d10v | d30v | dlx | dsp16xx \
-	| e2k | epiphany \
-	| fido | fr30 | frv | ft32 \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| hexagon \
-	| i370 | i860 | i960 | ia16 | ia64 \
-	| ip2k | iq2000 \
-	| k1om \
-	| le32 | le64 \
-	| lm32 \
-	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64octeon | mips64octeonel \
-	| mips64orion | mips64orionel \
-	| mips64r5900 | mips64r5900el \
-	| mips64vr | mips64vrel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mips64vr5900 | mips64vr5900el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa32r6 | mipsisa32r6el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64r6 | mipsisa64r6el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipsr5900 | mipsr5900el \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| moxie \
-	| mt \
-	| msp430 \
-	| nds32 | nds32le | nds32be \
-	| nfp \
-	| nios | nios2 | nios2eb | nios2el \
-	| ns16k | ns32k \
-	| open8 | or1k | or1knd | or32 \
-	| pdp10 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle \
-	| pru \
-	| pyramid \
-	| riscv32 | riscv64 \
-	| rl78 | rx \
-	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| spu \
-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-	| ubicom32 \
-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-	| visium \
-	| wasm32 \
-	| x86 | xc16x | xstormy16 | xtensa \
-	| z8k | z80)
-		basic_machine=$basic_machine-unknown
+	# Here we handle the default manufacturer of certain CPU types.  It is in
+	# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		cpu=hppa1.1
+		vendor=winbond
 		;;
-	c54x)
-		basic_machine=tic54x-unknown
+	op50n)
+		cpu=hppa1.1
+		vendor=oki
 		;;
-	c55x)
-		basic_machine=tic55x-unknown
+	op60c)
+		cpu=hppa1.1
+		vendor=oki
 		;;
-	c6x)
-		basic_machine=tic6x-unknown
+	ibm*)
+		cpu=i370
+		vendor=ibm
+		;;
+	orion105)
+		cpu=clipper
+		vendor=highlevel
+		;;
+	mac | mpw | mac-mpw)
+		cpu=m68k
+		vendor=apple
+		;;
+	pmac | pmac-mpw)
+		cpu=powerpc
+		vendor=apple
+		;;
+
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		cpu=m68000
+		vendor=att
+		;;
+	3b*)
+		cpu=we32k
+		vendor=att
+		;;
+	bluegene*)
+		cpu=powerpc
+		vendor=ibm
+		os=cnk
+		;;
+	decsystem10* | dec10*)
+		cpu=pdp10
+		vendor=dec
+		os=tops10
+		;;
+	decsystem20* | dec20*)
+		cpu=pdp10
+		vendor=dec
+		os=tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		cpu=m68k
+		vendor=motorola
+		;;
+	dpx2*)
+		cpu=m68k
+		vendor=bull
+		os=sysv3
+		;;
+	encore | umax | mmax)
+		cpu=ns32k
+		vendor=encore
+		;;
+	elxsi)
+		cpu=elxsi
+		vendor=elxsi
+		os=${os:-bsd}
+		;;
+	fx2800)
+		cpu=i860
+		vendor=alliant
+		;;
+	genix)
+		cpu=ns32k
+		vendor=ns
+		;;
+	h3050r* | hiux*)
+		cpu=hppa1.1
+		vendor=hitachi
+		os=hiuxwe2
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		cpu=hppa1.0
+		vendor=hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		cpu=m68000
+		vendor=hp
+		;;
+	hp9k3[2-9][0-9])
+		cpu=m68k
+		vendor=hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		cpu=hppa1.0
+		vendor=hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		cpu=hppa1.1
+		vendor=hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		cpu=hppa1.1
+		vendor=hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		cpu=hppa1.1
+		vendor=hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		cpu=hppa1.1
+		vendor=hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		cpu=hppa1.0
+		vendor=hp
+		;;
+	i*86v32)
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv32
+		;;
+	i*86v4*)
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv4
+		;;
+	i*86v)
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=sysv
+		;;
+	i*86sol2)
+		cpu=`echo "$1" | sed -e 's/86.*/86/'`
+		vendor=pc
+		os=solaris2
+		;;
+	j90 | j90-cray)
+		cpu=j90
+		vendor=cray
+		os=${os:-unicos}
+		;;
+	iris | iris4d)
+		cpu=mips
+		vendor=sgi
+		case $os in
+		    irix*)
+			;;
+		    *)
+			os=irix4
+			;;
+		esac
+		;;
+	miniframe)
+		cpu=m68000
+		vendor=convergent
+		;;
+	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		cpu=m68k
+		vendor=atari
+		os=mint
+		;;
+	news-3600 | risc-news)
+		cpu=mips
+		vendor=sony
+		os=newsos
+		;;
+	next | m*-next)
+		cpu=m68k
+		vendor=next
+		case $os in
+		    nextstep* )
+			;;
+		    ns2*)
+		      os=nextstep2
+			;;
+		    *)
+		      os=nextstep3
+			;;
+		esac
+		;;
+	np1)
+		cpu=np1
+		vendor=gould
+		;;
+	op50n-* | op60c-*)
+		cpu=hppa1.1
+		vendor=oki
+		os=proelf
+		;;
+	pa-hitachi)
+		cpu=hppa1.1
+		vendor=hitachi
+		os=hiuxwe2
+		;;
+	pbd)
+		cpu=sparc
+		vendor=tti
+		;;
+	pbb)
+		cpu=m68k
+		vendor=tti
+		;;
+	pc532)
+		cpu=ns32k
+		vendor=pc532
+		;;
+	pn)
+		cpu=pn
+		vendor=gould
+		;;
+	power)
+		cpu=power
+		vendor=ibm
+		;;
+	ps2)
+		cpu=i386
+		vendor=ibm
+		;;
+	rm[46]00)
+		cpu=mips
+		vendor=siemens
+		;;
+	rtpc | rtpc-*)
+		cpu=romp
+		vendor=ibm
+		;;
+	sde)
+		cpu=mipsisa32
+		vendor=sde
+		os=${os:-elf}
+		;;
+	simso-wrs)
+		cpu=sparclite
+		vendor=wrs
+		os=vxworks
+		;;
+	tower | tower-32)
+		cpu=m68k
+		vendor=ncr
+		;;
+	vpp*|vx|vx-*)
+		cpu=f301
+		vendor=fujitsu
+		;;
+	w65)
+		cpu=w65
+		vendor=wdc
+		;;
+	w89k-*)
+		cpu=hppa1.1
+		vendor=winbond
+		os=proelf
+		;;
+	none)
+		cpu=none
+		vendor=none
 		;;
 	leon|leon[3-9])
-		basic_machine=sparc-$basic_machine
+		cpu=sparc
+		vendor=$basic_machine
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
-		;;
-	m9s12z | m68hcs12z | hcs12z | s12z)
-		basic_machine=s12z-unknown
-		os=-none
-		;;
-	ms1)
-		basic_machine=mt-unknown
+	leon-*|leon[3-9]-*)
+		cpu=sparc
+		vendor=`echo "$basic_machine" | sed 's/-.*//'`
 		;;
 
-	strongarm | thumb | xscale)
-		basic_machine=arm-unknown
+	*-*)
+		IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
 		;;
-	xgate)
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	xscaleeb)
-		basic_machine=armeb-unknown
-		;;
-
-	xscaleel)
-		basic_machine=armel-unknown
-		;;
-
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
 	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
-		exit 1
+		cpu=$basic_machine
+		vendor=pc
 		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| aarch64-* | aarch64_be-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* | avr32-* \
-	| ba-* \
-	| be32-* | be64-* \
-	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| e2k-* | elxsi-* \
-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| k1om-* \
-	| le32-* | le64-* \
-	| lm32-* \
-	| m32c-* | m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-	| microblaze-* | microblazeel-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64octeon-* | mips64octeonel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64r5900-* | mips64r5900el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mips64vr5900-* | mips64vr5900el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa32r6-* | mipsisa32r6el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64r6-* | mipsisa64r6el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipsr5900-* | mipsr5900el-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| mt-* \
-	| msp430-* \
-	| nds32-* | nds32le-* | nds32be-* \
-	| nfp-* \
-	| nios-* | nios2-* | nios2eb-* | nios2el-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| open8-* \
-	| or1k*-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-	| pru-* \
-	| pyramid-* \
-	| riscv32-* | riscv64-* \
-	| rl78-* | romp-* | rs6000-* | rx-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
-	| tahoe-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile*-* \
-	| tron-* \
-	| ubicom32-* \
-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-	| vax-* \
-	| visium-* \
-	| wasm32-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xc16x-* | xps100-* \
-	| xstormy16-* | xtensa*-* \
-	| ymp-* \
-	| z8k-* | z80-*)
-		;;
-	# Recognize the basic CPU types without company name, with glob match.
-	xtensa*)
-		basic_machine=$basic_machine-unknown
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-pc
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aros)
-		basic_machine=i386-pc
-		os=-aros
-		;;
-	asmjs)
-		basic_machine=asmjs-unknown
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	blackfin)
-		basic_machine=bfin-unknown
-		os=-linux
-		;;
-	blackfin-*)
-		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	bluegene*)
-		basic_machine=powerpc-ibm
-		os=-cnk
-		;;
-	c54x-*)
-		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	c55x-*)
-		basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	c6x-*)
-		basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	cegcc)
-		basic_machine=arm-unknown
-		os=-cegcc
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16 | cr16-*)
-		basic_machine=cr16-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dicos)
-		basic_machine=i686-pc
-		os=-dicos
-		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2*)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	e500v[12])
-		basic_machine=powerpc-unknown
-		os=$os"spe"
-		;;
-	e500v[12]-*)
-		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=$os"spe"
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-	i*86v32)
-		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	leon-*|leon[3-9]-*)
-		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
-		;;
-	m68knommu)
-		basic_machine=m68k-unknown
-		os=-linux
-		;;
-	m68knommu-*)
-		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	microblaze*)
-		basic_machine=microblaze-xilinx
-		;;
-	mingw64)
-		basic_machine=x86_64-pc
-		os=-mingw64
-		;;
-	mingw32)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	mingw32ce)
-		basic_machine=arm-unknown
-		os=-mingw32ce
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	moxiebox)
-		basic_machine=moxie-unknown
-		os=-moxiebox
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	ms1-*)
-		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
-		;;
-	msys)
-		basic_machine=i686-pc
-		os=-msys
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	nacl)
-		basic_machine=le32-unknown
-		os=-nacl
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next)
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	neo-tandem)
-		basic_machine=neo-tandem
-		;;
-	nse-tandem)
-		basic_machine=nse-tandem
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	nsv-tandem)
-		basic_machine=nsv-tandem
-		;;
-	nsx-tandem)
-		basic_machine=nsx-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	openrisc | openrisc-*)
-		basic_machine=or32-unknown
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	parisc)
-		basic_machine=hppa-unknown
-		os=-linux
-		;;
-	parisc-*)
-		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
+	# These rules are duplicated from below for sake of the special case above;
+	# i.e. things that normalized to x86 arches should also default to "pc"
 	pc98)
-		basic_machine=i386-pc
+		cpu=i386
+		vendor=pc
 		;;
-	pc98-*)
-		basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	x64 | amd64)
+		cpu=x86_64
+		vendor=pc
 		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
+	# Recognize the basic CPU types without company name.
+	*)
+		cpu=$basic_machine
+		vendor=unknown
 		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+	# Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
+	# some cases the only manufacturer, in others, it is the most popular.
+	craynv-unknown)
+		vendor=cray
+		os=${os:-unicosmp}
 		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
+	c90-unknown | c90-cray)
+		vendor=cray
+		os=${os:-unicos}
 		;;
-	pentium4)
-		basic_machine=i786-pc
+	fx80-unknown)
+		vendor=alliant
 		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	romp-unknown)
+		vendor=ibm
 		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	mmix-unknown)
+		vendor=knuth
 		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	microblaze-unknown | microblazeel-unknown)
+		vendor=xilinx
 		;;
-	pentium4-*)
-		basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	rs6000-unknown)
+		vendor=ibm
 		;;
-	pn)
-		basic_machine=pn-gould
+	vax-unknown)
+		vendor=dec
 		;;
-	power)	basic_machine=power-ibm
+	pdp11-unknown)
+		vendor=dec
 		;;
-	ppc | ppcbe)	basic_machine=powerpc-unknown
+	we32k-unknown)
+		vendor=att
 		;;
-	ppc-* | ppcbe-*)
-		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	cydra-unknown)
+		vendor=cydrome
 		;;
-	ppcle | powerpclittle)
-		basic_machine=powerpcle-unknown
+	i370-ibm*)
+		vendor=ibm
 		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+	orion-unknown)
+		vendor=highlevel
 		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rdos | rdos64)
-		basic_machine=x86_64-pc
-		os=-rdos
-		;;
-	rdos32)
-		basic_machine=i386-pc
-		os=-rdos
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sde)
-		basic_machine=mipsisa32-sde
-		os=-elf
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh5el)
-		basic_machine=sh5le-unknown
-		;;
-	simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	strongarm-* | thumb-*)
-		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tile*)
-		basic_machine=$basic_machine-unknown
-		os=-linux-gnu
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	x64)
-		basic_machine=x86_64-pc
-		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	xscale-* | xscalee[bl]-*)
-		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
+	xps-unknown | xps100-unknown)
+		cpu=xps100
+		vendor=honeywell
 		;;
 
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
+	# Here we normalize CPU types with a missing or matching vendor
+	dpx20-unknown | dpx20-bull)
+		cpu=rs6000
+		vendor=bull
+		os=${os:-bosx}
 		;;
-	op50n)
-		basic_machine=hppa1.1-oki
+
+	# Here we normalize CPU types irrespective of the vendor
+	amd64-*)
+		cpu=x86_64
 		;;
-	op60c)
-		basic_machine=hppa1.1-oki
+	blackfin-*)
+		cpu=bfin
+		os=linux
 		;;
-	romp)
-		basic_machine=romp-ibm
+	c54x-*)
+		cpu=tic54x
 		;;
-	mmix)
-		basic_machine=mmix-knuth
+	c55x-*)
+		cpu=tic55x
 		;;
-	rs6000)
-		basic_machine=rs6000-ibm
+	c6x-*)
+		cpu=tic6x
 		;;
-	vax)
-		basic_machine=vax-dec
+	e500v[12]-*)
+		cpu=powerpc
+		os=$os"spe"
 		;;
-	pdp11)
-		basic_machine=pdp11-dec
+	mips3*-*)
+		cpu=mips64
 		;;
-	we32k)
-		basic_machine=we32k-att
+	ms1-*)
+		cpu=mt
 		;;
-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
+	m68knommu-*)
+		cpu=m68k
+		os=linux
 		;;
-	cydra)
-		basic_machine=cydra-cydrome
+	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+		cpu=s12z
 		;;
-	orion)
-		basic_machine=orion-highlevel
+	openrisc-*)
+		cpu=or32
 		;;
-	orion105)
-		basic_machine=clipper-highlevel
+	parisc-*)
+		cpu=hppa
+		os=linux
 		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		cpu=i586
 		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
+	pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+		cpu=i686
 		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		cpu=i686
 		;;
+	pentium4-*)
+		cpu=i786
+		;;
+	pc98-*)
+		cpu=i386
+		;;
+	ppc-* | ppcbe-*)
+		cpu=powerpc
+		;;
+	ppcle-* | powerpclittle-*)
+		cpu=powerpcle
+		;;
+	ppc64-*)
+		cpu=powerpc64
+		;;
+	ppc64le-* | powerpc64little-*)
+		cpu=powerpc64le
+		;;
+	sb1-*)
+		cpu=mipsisa64sb1
+		;;
+	sb1el-*)
+		cpu=mipsisa64sb1el
+		;;
+	sh5e[lb]-*)
+		cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+		;;
+	spur-*)
+		cpu=spur
+		;;
+	strongarm-* | thumb-*)
+		cpu=arm
+		;;
+	tx39-*)
+		cpu=mipstx39
+		;;
+	tx39el-*)
+		cpu=mipstx39el
+		;;
+	x64-*)
+		cpu=x86_64
+		;;
+	xscale-* | xscalee[bl]-*)
+		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+		;;
+
+	# Recognize the cannonical CPU Types that limit and/or modify the
+	# company names they are paired with.
+	cr16-*)
+		os=${os:-elf}
+		;;
+	crisv32-* | etraxfs*-*)
+		cpu=crisv32
+		vendor=axis
+		;;
+	cris-* | etrax*-*)
+		cpu=cris
+		vendor=axis
+		;;
+	crx-*)
+		os=${os:-elf}
+		;;
+	neo-tandem)
+		cpu=neo
+		vendor=tandem
+		;;
+	nse-tandem)
+		cpu=nse
+		vendor=tandem
+		;;
+	nsr-tandem)
+		cpu=nsr
+		vendor=tandem
+		;;
+	nsv-tandem)
+		cpu=nsv
+		vendor=tandem
+		;;
+	nsx-tandem)
+		cpu=nsx
+		vendor=tandem
+		;;
+	s390-*)
+		cpu=s390
+		vendor=ibm
+		;;
+	s390x-*)
+		cpu=s390x
+		vendor=ibm
+		;;
+	tile*-*)
+		os=${os:-linux-gnu}
+		;;
+
 	*)
-		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
-		exit 1
+		# Recognize the cannonical CPU types that are allowed with any
+		# company name.
+		case $cpu in
+			1750a | 580 \
+			| a29k \
+			| aarch64 | aarch64_be \
+			| abacus \
+			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+			| alphapca5[67] | alpha64pca5[67] \
+			| am33_2.0 \
+			| arc | arceb \
+			| arm  | arm[lb]e | arme[lb] | armv* \
+			| avr | avr32 \
+			| asmjs \
+			| ba \
+			| be32 | be64 \
+			| bfin | bs2000 \
+			| c[123]* | c30 | [cjt]90 | c4x \
+			| c8051 | clipper | craynv | csky | cydra \
+			| d10v | d30v | dlx | dsp16xx \
+			| e2k | elxsi | epiphany \
+			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+			| h8300 | h8500 \
+			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+			| hexagon \
+			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
+			| ip2k | iq2000 \
+			| k1om \
+			| le32 | le64 \
+			| lm32 \
+			| m32c | m32r | m32rle \
+			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+			| m88110 | m88k | maxq | mb | mcore | mep | metag \
+			| microblaze | microblazeel \
+			| mips | mipsbe | mipseb | mipsel | mipsle \
+			| mips16 \
+			| mips64 | mips64el \
+			| mips64octeon | mips64octeonel \
+			| mips64orion | mips64orionel \
+			| mips64r5900 | mips64r5900el \
+			| mips64vr | mips64vrel \
+			| mips64vr4100 | mips64vr4100el \
+			| mips64vr4300 | mips64vr4300el \
+			| mips64vr5000 | mips64vr5000el \
+			| mips64vr5900 | mips64vr5900el \
+			| mipsisa32 | mipsisa32el \
+			| mipsisa32r2 | mipsisa32r2el \
+			| mipsisa32r6 | mipsisa32r6el \
+			| mipsisa64 | mipsisa64el \
+			| mipsisa64r2 | mipsisa64r2el \
+			| mipsisa64r6 | mipsisa64r6el \
+			| mipsisa64sb1 | mipsisa64sb1el \
+			| mipsisa64sr71k | mipsisa64sr71kel \
+			| mipsr5900 | mipsr5900el \
+			| mipstx39 | mipstx39el \
+			| mmix \
+			| mn10200 | mn10300 \
+			| moxie \
+			| mt \
+			| msp430 \
+			| nds32 | nds32le | nds32be \
+			| nfp \
+			| nios | nios2 | nios2eb | nios2el \
+			| none | np1 | ns16k | ns32k \
+			| open8 \
+			| or1k* \
+			| or32 \
+			| orion \
+			| pdp10 | pdp11 | pj | pjl | pn | power \
+			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+			| pru \
+			| pyramid \
+			| riscv | riscv32 | riscv64 \
+			| rl78 | romp | rs6000 | rx \
+			| score \
+			| sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+			| sparclite \
+			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+			| spu \
+			| tahoe \
+			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+			| tron \
+			| ubicom32 \
+			| v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+			| vax \
+			| visium \
+			| wasm32 \
+			| we32k \
+			| x86 | x86_64 | xc16x | xgate | xps100 \
+			| xstormy16 | xtensa* \
+			| ymp \
+			| z8k | z80)
+				;;
+
+			*)
+				echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+				exit 1
+				;;
+		esac
 		;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+	digital*)
+		vendor=dec
 		;;
-	*-commodore*)
-		basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+	commodore*)
+		vendor=cbm
 		;;
 	*)
 		;;
@@ -1365,200 +1275,240 @@
 case $os in
 	# First match some system type aliases that might get confused
 	# with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-auroraux)
-		os=-auroraux
+	# solaris* is a basic system type, with this one exception.
+	auroraux)
+		os=auroraux
 		;;
-	-solaris1 | -solaris1.*)
+	bluegene*)
+		os=cnk
+		;;
+	solaris1 | solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
-	-solaris)
-		os=-solaris2
+	solaris)
+		os=solaris2
 		;;
-	-unixware*)
-		os=-sysv4.2uw
+	unixware*)
+		os=sysv4.2uw
 		;;
-	-gnu/linux*)
+	gnu/linux*)
 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
 		;;
 	# es1800 is here to avoid being matched by es* (a different OS)
-	-es1800*)
-		os=-ose
+	es1800*)
+		os=ose
+		;;
+	# Some version numbers need modification
+	chorusos*)
+		os=chorusos
+		;;
+	isc)
+		os=isc2.2
+		;;
+	sco6)
+		os=sco5v6
+		;;
+	sco5)
+		os=sco3.2v5
+		;;
+	sco4)
+		os=sco3.2v4
+		;;
+	sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		;;
+	sco3.2v[4-9]* | sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		;;
+	scout)
+		# Don't match below
+		;;
+	sco*)
+		os=sco3.2v2
+		;;
+	psos*)
+		os=psos
 		;;
 	# Now accept the basic system types.
 	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* | -plan9* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* | -cloudabi* | -sortix* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
-	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
-	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
-	      | -midnightbsd*)
+	# sysv* is not here because it comes later, after sysvr4.
+	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+	     | sym* | kopensolaris* | plan9* \
+	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+	     | aos* | aros* | cloudabi* | sortix* \
+	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+	     | knetbsd* | mirbsd* | netbsd* \
+	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
+	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+	     | chorusrdb* | cegcc* | glidix* \
+	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+	     | linux-newlib* | linux-musl* | linux-uclibc* \
+	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+	     | interix* | uwin* | mks* | rhapsody* | darwin* \
+	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
+	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
+	     | os2* | vos* | palmos* | uclinux* | nucleus* \
+	     | morphos* | superux* | rtmk* | windiss* \
+	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+	     | midnightbsd*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
+	qnx*)
+		case $cpu in
+		    x86 | i*86)
 			;;
 		    *)
-			os=-nto$os
+			os=nto-$os
 			;;
 		esac
 		;;
-	-nto-qnx*)
+	hiux*)
+		os=hiuxwe2
 		;;
-	-nto*)
+	nto-qnx*)
+		;;
+	nto*)
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
-	-sim | -xray | -os68k* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+	sim | xray | os68k* | v88r* \
+	    | windows* | osx | abug | netware* | os9* \
+	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
 		;;
-	-mac*)
-		os=`echo "$os" | sed -e 's|mac|macos|'`
+	linux-dietlibc)
+		os=linux-dietlibc
 		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
-	-linux*)
+	linux*)
 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
-	-sunos5*)
+	lynx*178)
+		os=lynxos178
+		;;
+	lynx*5)
+		os=lynxos5
+		;;
+	lynx*)
+		os=lynxos
+		;;
+	mac*)
+		os=`echo "$os" | sed -e 's|mac|macos|'`
+		;;
+	opened*)
+		os=openedition
+		;;
+	os400*)
+		os=os400
+		;;
+	sunos5*)
 		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
 		;;
-	-sunos6*)
+	sunos6*)
 		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
 		;;
-	-opened*)
-		os=-openedition
+	wince*)
+		os=wince
 		;;
-	-os400*)
-		os=-os400
+	utek*)
+		os=bsd
 		;;
-	-wince*)
-		os=-wince
+	dynix*)
+		os=bsd
 		;;
-	-utek*)
-		os=-bsd
+	acis*)
+		os=aos
 		;;
-	-dynix*)
-		os=-bsd
+	atheos*)
+		os=atheos
 		;;
-	-acis*)
-		os=-aos
+	syllable*)
+		os=syllable
 		;;
-	-atheos*)
-		os=-atheos
+	386bsd)
+		os=bsd
 		;;
-	-syllable*)
-		os=-syllable
+	ctix* | uts*)
+		os=sysv
 		;;
-	-386bsd)
-		os=-bsd
+	nova*)
+		os=rtmk-nova
 		;;
-	-ctix* | -uts*)
-		os=-sysv
+	ns2)
+		os=nextstep2
 		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2)
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
+	nsk*)
+		os=nsk
 		;;
 	# Preserve the version number of sinix5.
-	-sinix5.*)
+	sinix5.*)
 		os=`echo $os | sed -e 's|sinix|sysv|'`
 		;;
-	-sinix*)
-		os=-sysv4
+	sinix*)
+		os=sysv4
 		;;
-	-tpf*)
-		os=-tpf
+	tpf*)
+		os=tpf
 		;;
-	-triton*)
-		os=-sysv3
+	triton*)
+		os=sysv3
 		;;
-	-oss*)
-		os=-sysv3
+	oss*)
+		os=sysv3
 		;;
-	-svr4*)
-		os=-sysv4
+	svr4*)
+		os=sysv4
 		;;
-	-svr3)
-		os=-sysv3
+	svr3)
+		os=sysv3
 		;;
-	-sysvr4)
-		os=-sysv4
+	sysvr4)
+		os=sysv4
 		;;
-	# This must come after -sysvr4.
-	-sysv*)
+	# This must come after sysvr4.
+	sysv*)
 		;;
-	-ose*)
-		os=-ose
+	ose*)
+		os=ose
 		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
+	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+		os=mint
 		;;
-	-zvmoe)
-		os=-zvmoe
+	zvmoe)
+		os=zvmoe
 		;;
-	-dicos*)
-		os=-dicos
+	dicos*)
+		os=dicos
 		;;
-	-pikeos*)
+	pikeos*)
 		# Until real need of OS specific support for
 		# particular features comes up, bare metal
 		# configurations are quite functional.
-		case $basic_machine in
+		case $cpu in
 		    arm*)
-			os=-eabi
+			os=eabi
 			;;
 		    *)
-			os=-elf
+			os=elf
 			;;
 		esac
 		;;
-	-nacl*)
+	nacl*)
 		;;
-	-ios)
+	ios)
 		;;
-	-none)
+	none)
 		;;
-	-*-eabi)
-		case $basic_machine in
-		    arm*)
-			;;
-		esac
+	*-eabi)
 		;;
 	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
 		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
 		exit 1
 		;;
@@ -1575,254 +1525,261 @@
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+case $cpu-$vendor in
 	score-*)
-		os=-elf
+		os=elf
 		;;
 	spu-*)
-		os=-elf
+		os=elf
 		;;
 	*-acorn)
-		os=-riscix1.2
+		os=riscix1.2
 		;;
 	arm*-rebel)
-		os=-linux
+		os=linux
 		;;
 	arm*-semi)
-		os=-aout
+		os=aout
 		;;
 	c4x-* | tic4x-*)
-		os=-coff
+		os=coff
 		;;
 	c8051-*)
-		os=-elf
+		os=elf
+		;;
+	clipper-intergraph)
+		os=clix
 		;;
 	hexagon-*)
-		os=-elf
+		os=elf
 		;;
 	tic54x-*)
-		os=-coff
+		os=coff
 		;;
 	tic55x-*)
-		os=-coff
+		os=coff
 		;;
 	tic6x-*)
-		os=-coff
+		os=coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
-		os=-tops20
+		os=tops20
 		;;
 	pdp11-*)
-		os=-none
+		os=none
 		;;
 	*-dec | vax-*)
-		os=-ultrix4.2
+		os=ultrix4.2
 		;;
 	m68*-apollo)
-		os=-domain
+		os=domain
 		;;
 	i386-sun)
-		os=-sunos4.0.2
+		os=sunos4.0.2
 		;;
 	m68000-sun)
-		os=-sunos3
+		os=sunos3
 		;;
 	m68*-cisco)
-		os=-aout
+		os=aout
 		;;
 	mep-*)
-		os=-elf
+		os=elf
 		;;
 	mips*-cisco)
-		os=-elf
+		os=elf
 		;;
 	mips*-*)
-		os=-elf
+		os=elf
 		;;
 	or32-*)
-		os=-coff
+		os=coff
 		;;
 	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
+		os=sysv3
 		;;
 	sparc-* | *-sun)
-		os=-sunos4.1.1
+		os=sunos4.1.1
 		;;
 	pru-*)
-		os=-elf
+		os=elf
 		;;
 	*-be)
-		os=-beos
+		os=beos
 		;;
 	*-ibm)
-		os=-aix
+		os=aix
 		;;
 	*-knuth)
-		os=-mmixware
+		os=mmixware
 		;;
 	*-wec)
-		os=-proelf
+		os=proelf
 		;;
 	*-winbond)
-		os=-proelf
+		os=proelf
 		;;
 	*-oki)
-		os=-proelf
+		os=proelf
 		;;
 	*-hp)
-		os=-hpux
+		os=hpux
 		;;
 	*-hitachi)
-		os=-hiux
+		os=hiux
 		;;
 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
+		os=sysv
 		;;
 	*-cbm)
-		os=-amigaos
+		os=amigaos
 		;;
 	*-dg)
-		os=-dgux
+		os=dgux
 		;;
 	*-dolphin)
-		os=-sysv3
+		os=sysv3
 		;;
 	m68k-ccur)
-		os=-rtu
+		os=rtu
 		;;
 	m88k-omron*)
-		os=-luna
+		os=luna
 		;;
 	*-next)
-		os=-nextstep
+		os=nextstep
 		;;
 	*-sequent)
-		os=-ptx
+		os=ptx
 		;;
 	*-crds)
-		os=-unos
+		os=unos
 		;;
 	*-ns)
-		os=-genix
+		os=genix
 		;;
 	i370-*)
-		os=-mvs
+		os=mvs
 		;;
 	*-gould)
-		os=-sysv
+		os=sysv
 		;;
 	*-highlevel)
-		os=-bsd
+		os=bsd
 		;;
 	*-encore)
-		os=-bsd
+		os=bsd
 		;;
 	*-sgi)
-		os=-irix
+		os=irix
 		;;
 	*-siemens)
-		os=-sysv4
+		os=sysv4
 		;;
 	*-masscomp)
-		os=-rtu
+		os=rtu
 		;;
 	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
+		os=uxpv
 		;;
 	*-rom68k)
-		os=-coff
+		os=coff
 		;;
 	*-*bug)
-		os=-coff
+		os=coff
 		;;
 	*-apple)
-		os=-macos
+		os=macos
 		;;
 	*-atari*)
-		os=-mint
+		os=mint
+		;;
+	*-wrs)
+		os=vxworks
 		;;
 	*)
-		os=-none
+		os=none
 		;;
 esac
 fi
 
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
+case $vendor in
+	unknown)
 		case $os in
-			-riscix*)
+			riscix*)
 				vendor=acorn
 				;;
-			-sunos*)
+			sunos*)
 				vendor=sun
 				;;
-			-cnk*|-aix*)
+			cnk*|-aix*)
 				vendor=ibm
 				;;
-			-beos*)
+			beos*)
 				vendor=be
 				;;
-			-hpux*)
+			hpux*)
 				vendor=hp
 				;;
-			-mpeix*)
+			mpeix*)
 				vendor=hp
 				;;
-			-hiux*)
+			hiux*)
 				vendor=hitachi
 				;;
-			-unos*)
+			unos*)
 				vendor=crds
 				;;
-			-dgux*)
+			dgux*)
 				vendor=dg
 				;;
-			-luna*)
+			luna*)
 				vendor=omron
 				;;
-			-genix*)
+			genix*)
 				vendor=ns
 				;;
-			-mvs* | -opened*)
+			clix*)
+				vendor=intergraph
+				;;
+			mvs* | opened*)
 				vendor=ibm
 				;;
-			-os400*)
+			os400*)
 				vendor=ibm
 				;;
-			-ptx*)
+			ptx*)
 				vendor=sequent
 				;;
-			-tpf*)
+			tpf*)
 				vendor=ibm
 				;;
-			-vxsim* | -vxworks* | -windiss*)
+			vxsim* | vxworks* | windiss*)
 				vendor=wrs
 				;;
-			-aux*)
+			aux*)
 				vendor=apple
 				;;
-			-hms*)
+			hms*)
 				vendor=hitachi
 				;;
-			-mpw* | -macos*)
+			mpw* | macos*)
 				vendor=apple
 				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
 				vendor=atari
 				;;
-			-vos*)
+			vos*)
 				vendor=stratus
 				;;
 		esac
-		basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
 		;;
 esac
 
-echo "$basic_machine$os"
+echo "$cpu-$vendor-$os"
 exit
 
 # Local variables:
diff --git a/config/configure.xml b/config/configure.xml
new file mode 100644
index 0000000..f267a1b
--- /dev/null
+++ b/config/configure.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE configuremap [
+  <!ELEMENT configuremap (configure)+>
+  <!ATTLIST configuremap xmlns CDATA #FIXED ''>
+  <!ELEMENT configure EMPTY>
+  <!ATTLIST configure xmlns CDATA #FIXED '' name NMTOKEN #REQUIRED
+    value CDATA #REQUIRED>
+]>
+<!--
+  ImageMagick build configuration.
+-->
+<configuremap>
+  <configure name="CC" value="/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang"/>
+  <configure name="CFLAGS" value=" -fopenmp -fPIE -fPIC -Wall -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"/>
+  <configure name="CODER_PATH" value="/usr/local/lib/ImageMagick-7.0.9/modules-Q16HDRI/coders"/>
+  <configure name="CONFIGURE_PATH" value="/usr/local/etc/ImageMagick-7/"/>
+  <configure name="CONFIGURE" value="./configure  '--host=x86_64-linux-android' '--without-zlib' 'host_alias=x86_64-linux-android' 'CC=/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang' 'CFLAGS=-fPIE -fPIC' 'LDFLAGS=-pie' 'CXX=/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang++'"/>
+  <configure name="COPYRIGHT" value="Copyright (C) 1999-2020 ImageMagick Studio LLC"/>
+  <configure name="CPPFLAGS" value="-I/usr/local/include/ImageMagick-7"/>
+  <configure name="CXXFLAGS" value="-g -O2 -pthread"/>
+  <configure name="CXX" value="/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang++"/>
+  <configure name="DEFS" value="-DHAVE_CONFIG_H"/>
+  <configure name="DELEGATES" value="mpeg ps"/>
+  <configure name="DISTCHECK_CONFIG_FLAGS" value="'CC=/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang' 'CFLAGS=-fPIE -fPIC' 'CXX=/src/ndk/out/android-ndk-r21-canary/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android28-clang++' 'LDFLAGS=-pie'  --disable-deprecated  --with-quantum-depth=16  --with-jemalloc=no  --with-umem=no  --with-zlib=no  --with-autotrace=no  --with-gslib=no  --with-fontpath=  --with-rsvg=no  --with-perl=no "/>
+  <configure name="DOCUMENTATION_PATH" value="/usr/local/share/doc/ImageMagick-7"/>
+  <configure name="EXEC-PREFIX" value="/usr/local"/>
+  <configure name="EXECUTABLE_PATH" value="/usr/local/bin"/>
+  <configure name="FEATURES" value="DPC HDRI Cipher OpenMP"/>
+  <configure name="FILTER_PATH" value="/usr/local/lib/ImageMagick-7.0.9/modules-Q16HDRI/filters"/>
+  <configure name="GIT_REVISION" value="16588:7fdd47ede:20191227" />
+  <configure name="HOST" value="x86_64-pc-linux-android"/>
+  <configure name="INCLUDE_PATH" value="/usr/local/include/ImageMagick-7"/>
+  <configure name="LDFLAGS" value="-L/usr/local/lib -pie"/>
+  <configure name="LIBRARY_PATH" value="/usr/local/lib/ImageMagick-7.0.9"/>
+  <configure name="LIBS" value="                                        -lm      "/>
+  <configure name="LIB_VERSION_NUMBER" value="7,0,9,13"/>
+  <configure name="LIB_VERSION" value="0x709"/>
+  <configure name="NAME" value="ImageMagick"/>
+  <configure name="PCFLAGS" value="-fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"/>
+  <configure name="PREFIX" value="/usr/local"/>
+  <configure name="QuantumDepth" value="16"/>
+  <configure name="RELEASE_DATE" value="2019-12-29"/>
+  <configure name="SHAREARCH_PATH" value="/usr/local/lib/ImageMagick-7.0.9/config-Q16HDRI"/>
+  <configure name="SHARE_PATH" value="/usr/local/share/ImageMagick-7"/>
+  <configure name="TARGET_CPU" value="x86_64"/>
+  <configure name="TARGET_OS" value="linux-android"/>
+  <configure name="TARGET_VENDOR" value="pc"/>
+  <configure name="VERSION" value="7.0.9"/>
+  <configure name="WEBSITE" value="https://imagemagick.org"/>
+</configuremap>
diff --git a/config/configure.xml.in b/config/configure.xml.in
index b218e11..caa0ce5 100644
--- a/config/configure.xml.in
+++ b/config/configure.xml.in
@@ -15,7 +15,7 @@
   <configure name="CODER_PATH" value="@CODER_PATH@"/>
   <configure name="CONFIGURE_PATH" value="@CONFIGURE_PATH@"/>
   <configure name="CONFIGURE" value="@CONFIGURE_ARGS@"/>
-  <configure name="COPYRIGHT" value="Copyright (C) 1999-2019 ImageMagick Studio LLC"/>
+  <configure name="COPYRIGHT" value="Copyright (C) 1999-2020 ImageMagick Studio LLC"/>
   <configure name="CPPFLAGS" value="@MAGICK_CPPFLAGS@"/>
   <configure name="CXXFLAGS" value="@CXXFLAGS@"/>
   <configure name="CXX" value="@CXX@"/>
diff --git a/config/delegates.xml.in b/config/delegates.xml.in
index e0da923..c12eeca 100644
--- a/config/delegates.xml.in
+++ b/config/delegates.xml.in
@@ -64,7 +64,7 @@
   <delegate decode="browse" stealth="True" spawn="True" command="&quot;@BrowseDelegate@&quot; https://imagemagick.org/; @RMDelegate@ &quot;%i&quot;"/>
   <delegate decode="cdr" command="&quot;@UniconvertorDelegate@&quot; &quot;%i&quot; &quot;%o.svg&quot;; @MVDelegate@ &quot;%o.svg&quot; &quot;%o&quot;"/>
   <delegate decode="cgm" command="&quot;@UniconvertorDelegate@&quot; &quot;%i&quot; &quot;%o.svg&quot;; @MVDelegate@ &quot;%o.svg&quot; &quot;%o&quot;"/>
-  <delegate decode="https" command="&quot;@WWWDecodeDelegate@&quot; -s -k -L -o &quot;%o&quot; &quot;https:%M&quot;"/>
+  <delegate decode="https:decode" command="&quot;@WWWDecodeDelegate@&quot; -s -k -L -o &quot;%u.dat&quot; &quot;https:%M&quot;"/>
   <delegate decode="doc" command="&quot;@DOCDecodeDelegate@&quot; --convert-to pdf -outdir `dirname &quot;%i&quot;` &quot;%i&quot; 2&gt; &quot;%u&quot;; @MVDelegate@ &quot;%i.pdf&quot; &quot;%o&quot;"/>
   <delegate decode="docx" command="&quot;@DOCDecodeDelegate@&quot; --convert-to pdf -outdir `dirname &quot;%i&quot;` &quot;%i&quot; 2&gt; &quot;%u&quot;; @MVDelegate@ &quot;%i.pdf&quot; &quot;%o&quot;"/>
   <delegate decode="dng:decode" command="&quot;@DNGDecodeDelegate@&quot; --silent --create-id=also --out-type=png --out-depth=16 &quot;--output=%u.png&quot; &quot;%i&quot;"/>
@@ -92,6 +92,7 @@
   <delegate decode="pcl:mono" stealth="True" command="&quot;@PCLDelegate@&quot; -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=@PCLMonoDevice@&quot; -dTextAlphaBits=%u -dGraphicsAlphaBits=%u &quot;-r%s&quot; %s &quot;-sOutputFile=%s&quot; &quot;%s&quot;"/>
   <delegate decode="pdf" encode="eps" mode="bi" command="&quot;@PSDelegate@&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sPDFPassword=&quot;%a&quot; &quot;-sDEVICE=@GSEPSDevice@&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>
   <delegate decode="pdf" encode="ps" mode="bi" command="&quot;@PSDelegate@&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=@GSPSDevice@&quot; -sPDFPassword=&quot;%a&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>
+  <delegate decode="pnm" encode="trace" command="&quot;@TraceEncodeDelegate@&quot; --svg --output &quot;%o&quot; &quot;%i&quot;"/>
   <delegate decode="png" encode="webp" command="&quot;@WebPEncodeDelegate@&quot; -quiet %Q &quot;%i&quot; -o &quot;%o&quot;"/>
   <delegate decode="pnm" encode="ilbm" mode="encode" command="&quot;@ILBMEncodeDelegate@&quot; -24if &quot;%i&quot; &gt; &quot;%o&quot;"/>
   <delegate decode="bmp" encode="jxr" command="@MVDelegate@ &quot;%i&quot; &quot;%i.bmp&quot;; &quot;@JXREncodeDelegate@&quot; -i &quot;%i.bmp&quot; -o &quot;%o.jxr&quot;; @MVDelegate@ &quot;%i.bmp&quot; &quot;%i&quot;; @MVDelegate@ &quot;%o.jxr&quot; &quot;%o&quot;"/>
diff --git a/config/english.xml b/config/english.xml
index 0fd5543..a0ea781 100644
--- a/config/english.xml
+++ b/config/english.xml
@@ -503,6 +503,9 @@
         <message name="ImageDepthNotSupported">
           image depth not supported
         </message>
+        <message name="ImageSequenceRequired">
+          image sequence is required
+        </message>
         <message name="ImageMorphologyDiffers">
           image morphology differs
         </message>
@@ -634,6 +637,9 @@
         <message name="GeometryDoesNotContainImage">
           geometry does not contain image
         </message>
+        <message name="ImageSequenceRequired">
+          image sequence is required
+        </message>
         <message name="InterpretPropertyFailure">
           failure to interpret image property escapes
         </message>
diff --git a/config/francais.xml b/config/francais.xml
index bbb7887..b74ac2b 100644
--- a/config/francais.xml
+++ b/config/francais.xml
@@ -519,6 +519,9 @@
         <message name="ImageListRequired">
           une liste d'images est requise
         </message>
+        <message name="ImageSequenceRequired">
+          une séquence d'images est requise
+        </message>
         <message name="ImageSizeDiffers">
           différences dans la taille de l'image
         </message>
@@ -631,6 +634,9 @@
         <message name="GeometryDoesNotContainImage">
           image non incluse dans la géométrie
         </message>
+        <message name="ImageSequenceRequired">
+          une séquence d'images est requise
+        </message>
         <message name="InterpretPropertyFailure">
           l'échec d'interpréter s'échappe de propriété d'image
         </message>
diff --git a/config/type-urw-base35.xml b/config/type-urw-base35.xml
new file mode 100644
index 0000000..2f70e72
--- /dev/null
+++ b/config/type-urw-base35.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE typemap [
+  <!ELEMENT typemap (type)+>
+  <!ATTLIST typemap xmlns CDATA #FIXED ''>
+  <!ELEMENT type EMPTY>
+  <!ATTLIST type xmlns CDATA #FIXED '' encoding NMTOKEN #IMPLIED
+    family CDATA #REQUIRED format NMTOKEN #REQUIRED foundry NMTOKEN #REQUIRED
+    fullname CDATA #REQUIRED glyphs CDATA #REQUIRED metrics CDATA #REQUIRED
+    name NMTOKEN #REQUIRED stretch NMTOKEN #REQUIRED style NMTOKEN #REQUIRED
+    version CDATA #IMPLIED weight CDATA #REQUIRED>
+]>
+<!--
+  ImageMagick URW-base35 font configuration.
+-->
+<typemap>
+  <type name="AvantGarde-Book" fullname="AvantGarde Book" family="AvantGarde" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="URWGothic-Book.afm" glyphs="URWGothic-Book.t1"/>
+  <type name="AvantGarde-BookOblique" fullname="AvantGarde Book Oblique" family="AvantGarde" foundry="URW" weight="400" style="oblique" stretch="normal" format="type1" metrics="URWGothic-BookOblique.afm" glyphs="URWGothic-BookOblique.t1"/>
+  <type name="AvantGarde-Demi" fullname="AvantGarde DemiBold" family="AvantGarde" foundry="URW" weight="600" style="normal" stretch="normal" format="type1" metrics="URWGothic-Demi.afm" glyphs="URWGothic-Demi.t1"/>
+  <type name="AvantGarde-DemiOblique" fullname="AvantGarde DemiOblique" family="AvantGarde" foundry="URW" weight="600" style="oblique" stretch="normal" format="type1" metrics="URWGothic-DemiOblique.afm" glyphs="URWGothic-DemiOblique.t1"/>
+  <type name="Bookman-Demi" fullname="Bookman DemiBold" family="Bookman" foundry="URW" weight="600" style="normal" stretch="normal" format="type1" metrics="URWBookman-Demi.afm" glyphs="URWBookman-Demi.t1"/>
+  <type name="Bookman-DemiItalic" fullname="Bookman DemiBold Italic" family="Bookman" foundry="URW" weight="600" style="italic" stretch="normal" format="type1" metrics="URWBookman-DemiItalic.afm" glyphs="URWBookman-DemiItalic.t1"/>
+  <type name="Bookman-Light" fullname="Bookman Light" family="Bookman" foundry="URW" weight="300" style="normal" stretch="normal" format="type1" metrics="URWBookman-Light.afm" glyphs="URWBookman-Light.t1"/>
+  <type name="Bookman-LightItalic" fullname="Bookman Light Italic" family="Bookman" foundry="URW" weight="300" style="italic" stretch="normal" format="type1" metrics="URWBookman-LightItalic.afm" glyphs="URWBookman-LightItalic.t1"/>
+  <type name="Courier" fullname="Courier Regular" family="Courier" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="NimbusMonoPS-Refular.afm" glyphs="NimbusMonoPS-Regular.t1"/>
+  <type name="Courier-Bold" fullname="Courier Bold" family="Courier" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="NimbusMonoPS-Bold.afm" glyphs="NimbusMonoPS-Bold.t1"/>
+  <type name="Courier-Oblique" fullname="Courier Regular Oblique" family="Courier" foundry="URW" weight="400" style="oblique" stretch="normal" format="type1" metrics="NimbusMonoPS-Italic.afm" glyphs="NimbusMonoPS-Italic.t1"/>
+  <type name="Courier-BoldOblique" fullname="Courier Bold Oblique" family="Courier" foundry="URW" weight="700" style="oblique" stretch="normal" format="type1" metrics="NimbusMonoPS-BoldItalic.afm" glyphs="NimbusMonoPS-BoldItalic.t1"/>
+  <type name="fixed" fullname="Helvetica Regular" family="Helvetica" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="NimbusSans-Regular.afm" glyphs="NimbusSans-Regular.t1"/>
+  <type name="Helvetica" fullname="Helvetica Regular" family="Helvetica" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="NimbusSans-Regular.afm" glyphs="NimbusSans-Regular.t1"/>
+  <type name="Helvetica-Bold" fullname="Helvetica Bold" family="Helvetica" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="NimbusSans-Bold.afm" glyphs="NimbusSans-Bold.t1"/>
+  <type name="Helvetica-Oblique" fullname="Helvetica Regular Italic" family="Helvetica" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="NimbusSans-Italic.afm" glyphs="NimbusSans-Italic.t1"/>
+  <type name="Helvetica-BoldOblique" fullname="Helvetica Bold Italic" family="Helvetica" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="NimbusSans-BoldItalic.afm" glyphs="NimbusSans-BoldItalic.t1"/>
+  <type name="Helvetica-Narrow" fullname="Helvetica Narrow" family="Helvetica Narrow" foundry="URW" weight="400" style="normal" stretch="condensed" format="type1" metrics="NimbusSansNarrow-Regular.afm" glyphs="NimbusSansNarrow-Regular.t1"/>
+  <type name="Helvetica-Narrow-Oblique" fullname="Helvetica Narrow Oblique" family="Helvetica Narrow" foundry="URW" weight="400" style="oblique" stretch="condensed" format="type1" metrics="NimbusSansNarrow-Oblique.afm" glyphs="NimbusSansNarrow-Oblique.t1"/>
+  <type name="Helvetica-Narrow-Bold" fullname="Helvetica Narrow Bold" family="Helvetica Narrow" foundry="URW" weight="700" style="normal" stretch="condensed" format="type1" metrics="NimbusSansNarrow-Bold.afm" glyphs="NimbusSansNarrow-Bold.t1"/>
+  <type name="Helvetica-Narrow-BoldOblique" fullname="Helvetica Narrow Bold Oblique" family="Helvetica Narrow" foundry="URW" weight="700" style="oblique" stretch="condensed" format="type1" metrics="nNimbusSansNarrow-BdOblique.afm" glyphs="NimbusSansNarrow-BdOblique.t1"/>
+  <type name="NewCenturySchlbk-Roman" fullname="New Century Schoolbook" family="NewCenturySchlbk" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="C059-Roman.afm" glyphs="C059-Roman.t1"/>
+  <type name="NewCenturySchlbk-Italic" fullname="New Century Schoolbook Italic" family="NewCenturySchlbk" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="C059-Italic.afm" glyphs="C059-Italic.t1"/>
+  <type name="NewCenturySchlbk-Bold" fullname="New Century Schoolbook Bold" family="NewCenturySchlbk" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="C059-Bold.afm" glyphs="C059-Bold.t1"/>
+  <type name="NewCenturySchlbk-BoldItalic" fullname="New Century Schoolbook Bold Italic" family="NewCenturySchlbk" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="C059-BdIta.afm" glyphs="C059-BdIta.t1"/>
+  <type name="Palatino-Roman" fullname="Palatino Regular" family="Palatino" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="P052-Roman.afm" glyphs="P052-Roman.t1"/>
+  <type name="Palatino-Italic" fullname="Palatino Italic" family="Palatino" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="P052-Italic.afm" glyphs="P052-Italic.t1"/>
+  <type name="Palatino-Bold" fullname="Palatino Bold" family="Palatino" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="P052-Bold.afm" glyphs="P052-Bold.t1"/>
+  <type name="Palatino-BoldItalic" fullname="Palatino Bold Italic" family="Palatino" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="P052-BoldItalic.afm" glyphs="P052-BoldItalic.t1"/>
+  <type name="Times-Roman" fullname="Times Regular" family="Times" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="NimbusRoman-Regular.afm" glyphs="NimbusRoman-Regular.t1"/>
+  <type name="Times-Bold" fullname="Times Medium" family="Times" foundry="URW" weight="700" style="normal" stretch="normal" format="type1" metrics="NimbusRoman-Bold.afm" glyphs="NimbusRoman-Bold.t1"/>
+  <type name="Times-Italic" fullname="Times Regular Italic" family="Times" foundry="URW" weight="400" style="italic" stretch="normal" format="type1" metrics="NimbusRoman-Italic.afm" glyphs="NimbusRoman-Italic.t1"/>
+  <type name="Times-BoldItalic" fullname="Times Medium Italic" family="Times" foundry="URW" weight="700" style="italic" stretch="normal" format="type1" metrics="NimbusRoman-BoldItalic.afm" glyphs="NimbusRoman-BoldItalic.t1"/>
+  <type name="Symbol" fullname="Symbol" family="Symbol" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="StandardSymbolsPS.afm" glyphs="StandardSymbolsPS.t1" version="2.0" encoding="AdobeCustom"/>
+</typemap>
diff --git a/configs/arm/MagickCore/magick-baseconfig.h b/configs/arm/MagickCore/magick-baseconfig.h
index 8c80e32..76f74db 100644
--- a/configs/arm/MagickCore/magick-baseconfig.h
+++ b/configs/arm/MagickCore/magick-baseconfig.h
@@ -154,7 +154,7 @@
 #define MAGICKCORE_HAVE_CLOCK_GETRES 1
 #endif
 
-/* Define to 1 if you have clock_gettime. */
+/* Define to 1 if you have the `clock_gettime' function. */
 #ifndef MAGICKCORE_HAVE_CLOCK_GETTIME
 #define MAGICKCORE_HAVE_CLOCK_GETTIME 1
 #endif
@@ -233,11 +233,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 /* #undef HAVE_DOPRNT */
 
-/* Define to 1 if the system has the type `double_t'. */
-#ifndef MAGICKCORE_HAVE_DOUBLE_T
-#define MAGICKCORE_HAVE_DOUBLE_T 1
-#endif
-
 /* Define to 1 if you have the `erf' function. */
 #ifndef MAGICKCORE_HAVE_ERF
 #define MAGICKCORE_HAVE_ERF 1
@@ -263,11 +258,6 @@
 #define MAGICKCORE_HAVE_FCNTL_H 1
 #endif
 
-/* Define to 1 if the system has the type `float_t'. */
-#ifndef MAGICKCORE_HAVE_FLOAT_T
-#define MAGICKCORE_HAVE_FLOAT_T 1
-#endif
-
 /* Define to 1 if you have the `floor' function. */
 #ifndef MAGICKCORE_HAVE_FLOOR
 #define MAGICKCORE_HAVE_FLOOR 1
@@ -397,25 +387,11 @@
 #define MAGICKCORE_HAVE_LOCALE_H 1
 #endif
 
-/* Define to 1 if the system has the type `locale_t'. */
-#ifndef MAGICKCORE_HAVE_LOCALE_T
-#define MAGICKCORE_HAVE_LOCALE_T 1
-#endif
-
 /* Define to 1 if you have the `localtime_r' function. */
 #ifndef MAGICKCORE_HAVE_LOCALTIME_R
 #define MAGICKCORE_HAVE_LOCALTIME_R 1
 #endif
 
-/* Define to 1 if the system has the type `long double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE
-#define MAGICKCORE_HAVE_LONG_DOUBLE 1
-#endif
-
-/* Define to 1 if the type `long double' works and has more range or precision
-   than `double'. */
-/* #undef HAVE_LONG_DOUBLE_WIDER */
-
 /* Define to 1 if the system has the type `long long int'. */
 #ifndef MAGICKCORE_HAVE_LONG_LONG_INT
 #define MAGICKCORE_HAVE_LONG_LONG_INT 1
@@ -677,6 +653,11 @@
 #define MAGICKCORE_HAVE_STRCASECMP 1
 #endif
 
+/* Define to 1 if you have the `strcasestr' function. */
+#ifndef MAGICKCORE_HAVE_STRCASESTR
+#define MAGICKCORE_HAVE_STRCASESTR 1
+#endif
+
 /* Define to 1 if you have the `strchr' function. */
 #ifndef MAGICKCORE_HAVE_STRCHR
 #define MAGICKCORE_HAVE_STRCHR 1
@@ -862,6 +843,9 @@
 #define MAGICKCORE_HAVE_SYS_WAIT_H 1
 #endif
 
+/* Define if you have the tcmalloc memory allocation library */
+/* #undef HAVE_TCMALLOC */
+
 /* Define to 1 if you have the `telldir' function. */
 #ifndef MAGICKCORE_HAVE_TELLDIR
 #define MAGICKCORE_HAVE_TELLDIR 1
@@ -927,6 +911,9 @@
 /* Define to 1 if you have the `ulltostr' function. */
 /* #undef HAVE_ULLTOSTR */
 
+/* Define if you have umem memory allocation library */
+/* #undef HAVE_UMEM */
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #ifndef MAGICKCORE_HAVE_UNISTD_H
 #define MAGICKCORE_HAVE_UNISTD_H 1
@@ -1063,9 +1050,6 @@
 /* Define if you have jemalloc memory allocation library */
 /* #undef HasJEMALLOC */
 
-/* Define if you have umem memory allocation library */
-/* #undef HasUMEM */
-
 /* Directory where ImageMagick architecture headers live. */
 #ifndef MAGICKCORE_INCLUDEARCH_PATH
 #define MAGICKCORE_INCLUDEARCH_PATH "/usr/local/include/ImageMagick-7/"
@@ -1087,6 +1071,9 @@
 /* Define if you have JPEG library */
 /* #undef JPEG_DELEGATE */
 
+/* Define if you have brunsli library */
+/* #undef JXL_DELEGATE */
+
 /* Define if you have LCMS library */
 /* #undef LCMS_DELEGATE */
 
@@ -1095,13 +1082,13 @@
 
 /* Directory where architecture-dependent files live. */
 #ifndef MAGICKCORE_LIBRARY_PATH
-#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.8/"
+#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.9/"
 #endif
 
 /* Subdirectory of lib where ImageMagick architecture dependent files are
    installed. */
 #ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH
-#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.8"
+#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.9"
 #endif
 
 /* Binaries in libraries path base name (will be during install linked to bin)
@@ -1183,7 +1170,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef MAGICKCORE_PACKAGE_STRING
-#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.8-32"
+#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.9-13"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -1198,7 +1185,7 @@
 
 /* Define to the version of this package. */
 #ifndef MAGICKCORE_PACKAGE_VERSION
-#define MAGICKCORE_PACKAGE_VERSION "7.0.8-32"
+#define MAGICKCORE_PACKAGE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have PANGOCAIRO library */
@@ -1231,11 +1218,6 @@
 /* Define if you have LIBRAW library */
 /* #undef RAW_R_DELEGATE */
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#ifndef MAGICKCORE_RETSIGTYPE
-#define MAGICKCORE_RETSIGTYPE void
-#endif
-
 /* Define if you have RSVG library */
 /* #undef RSVG_DELEGATE */
 
@@ -1298,64 +1280,14 @@
 #define MAGICKCORE_SIZEOF_LONG_DOUBLE 8
 #endif
 
-/* The size of `off_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_OFF_T
-#define MAGICKCORE_SIZEOF_OFF_T 8
-#endif
-
-/* The size of `signed int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_INT
-#define MAGICKCORE_SIZEOF_SIGNED_INT 4
-#endif
-
-/* The size of `signed long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG 4
-#endif
-
-/* The size of `signed long long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG_LONG 8
-#endif
-
-/* The size of `signed short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_SHORT
-#define MAGICKCORE_SIZEOF_SIGNED_SHORT 2
-#endif
-
-/* The size of `size_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIZE_T
-#define MAGICKCORE_SIZEOF_SIZE_T 4
-#endif
-
-/* The size of `ssize_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SSIZE_T
-#define MAGICKCORE_SIZEOF_SSIZE_T 4
-#endif
-
-/* The size of `unsigned int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INT
-#define MAGICKCORE_SIZEOF_UNSIGNED_INT 4
-#endif
-
-/* The size of `unsigned int*', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INTP
-#define MAGICKCORE_SIZEOF_UNSIGNED_INTP 4
-#endif
-
-/* The size of `unsigned long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG
-#define MAGICKCORE_SIZEOF_UNSIGNED_LONG 4
-#endif
-
 /* The size of `unsigned long long', as computed by sizeof. */
 #ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG
 #define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8
 #endif
 
-/* The size of `unsigned short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_SHORT
-#define MAGICKCORE_SIZEOF_UNSIGNED_SHORT 2
+/* The size of `void *', as computed by sizeof. */
+#ifndef MAGICKCORE_SIZEOF_VOID_P
+#define MAGICKCORE_SIZEOF_VOID_P 4
 #endif
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
@@ -1411,7 +1343,7 @@
 
 /* Version number of package */
 #ifndef MAGICKCORE_VERSION
-#define MAGICKCORE_VERSION "7.0.8-32"
+#define MAGICKCORE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have WEBPMUX library */
@@ -1518,7 +1450,7 @@
 /* # undef __CHAR_UNSIGNED__ */
 #endif
 
-/* Define to appropriate substitue if compiler does not have __func__ */
+/* Define to appropriate substitute if compiler does not have __func__ */
 /* #undef __func__ */
 
 /* Define to empty if `const' does not conform to ANSI C. */
diff --git a/configs/arm/MagickCore/version.h b/configs/arm/MagickCore/version.h
index 1af1e4a..3b68a9f 100644
--- a/configs/arm/MagickCore/version.h
+++ b/configs/arm/MagickCore/version.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
   obtain a copy of the License at
   
-    http://imagemagick.org/script/license.php
+    https://imagemagick.org/script/license.php
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,13 +26,13 @@
   Define declarations.
 */
 #define MagickPackageName "ImageMagick"
-#define MagickCopyright  "© 1999-2019 ImageMagick Studio LLC"
-#define MagickLibVersion  0x708
-#define MagickLibVersionText  "7.0.8"
-#define MagickLibVersionNumber  6,0,0
-#define MagickLibAddendum  "-32"
-#define MagickLibInterface  6
-#define MagickLibMinInterface  6
+#define MagickCopyright  "© 1999-2020 ImageMagick Studio LLC"
+#define MagickLibVersion  0x709
+#define MagickLibVersionText  "7.0.9"
+#define MagickLibVersionNumber  7,0,0
+#define MagickLibAddendum  "-13"
+#define MagickLibInterface  7
+#define MagickLibMinInterface  7
 #if defined(_WINDOWS)
 #  if defined(_WIN64)
 #    define MagickPlatform "x64"
@@ -42,12 +42,12 @@
 #else
 #define MagickPlatform  "arm"
 #endif
-#define MagickppLibVersionText  "7.0.8"
+#define MagickppLibVersionText  "7.0.9"
 #define MagickppLibVersionNumber  4:0:0
-#define MagickppLibAddendum  "-32"
+#define MagickppLibAddendum  "-13"
 #define MagickppLibInterface  4
 #define MagickppLibMinInterface  4
-#define MagickReleaseDate  "2019-03-07"
+#define MagickReleaseDate  "2019-12-29"
 #define MagickAuthoritativeLicense  \
   "https://imagemagick.org/script/license.php"
 #define MagickAuthoritativeURL  "https://imagemagick.org"
diff --git a/configs/arm64/MagickCore/magick-baseconfig.h b/configs/arm64/MagickCore/magick-baseconfig.h
index 441a280..75961aa 100644
--- a/configs/arm64/MagickCore/magick-baseconfig.h
+++ b/configs/arm64/MagickCore/magick-baseconfig.h
@@ -154,7 +154,7 @@
 #define MAGICKCORE_HAVE_CLOCK_GETRES 1
 #endif
 
-/* Define to 1 if you have clock_gettime. */
+/* Define to 1 if you have the `clock_gettime' function. */
 #ifndef MAGICKCORE_HAVE_CLOCK_GETTIME
 #define MAGICKCORE_HAVE_CLOCK_GETTIME 1
 #endif
@@ -233,11 +233,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 /* #undef HAVE_DOPRNT */
 
-/* Define to 1 if the system has the type `double_t'. */
-#ifndef MAGICKCORE_HAVE_DOUBLE_T
-#define MAGICKCORE_HAVE_DOUBLE_T 1
-#endif
-
 /* Define to 1 if you have the `erf' function. */
 #ifndef MAGICKCORE_HAVE_ERF
 #define MAGICKCORE_HAVE_ERF 1
@@ -263,11 +258,6 @@
 #define MAGICKCORE_HAVE_FCNTL_H 1
 #endif
 
-/* Define to 1 if the system has the type `float_t'. */
-#ifndef MAGICKCORE_HAVE_FLOAT_T
-#define MAGICKCORE_HAVE_FLOAT_T 1
-#endif
-
 /* Define to 1 if you have the `floor' function. */
 #ifndef MAGICKCORE_HAVE_FLOOR
 #define MAGICKCORE_HAVE_FLOOR 1
@@ -397,27 +387,11 @@
 #define MAGICKCORE_HAVE_LOCALE_H 1
 #endif
 
-/* Define to 1 if the system has the type `locale_t'. */
-#ifndef MAGICKCORE_HAVE_LOCALE_T
-#define MAGICKCORE_HAVE_LOCALE_T 1
-#endif
-
 /* Define to 1 if you have the `localtime_r' function. */
 #ifndef MAGICKCORE_HAVE_LOCALTIME_R
 #define MAGICKCORE_HAVE_LOCALTIME_R 1
 #endif
 
-/* Define to 1 if the system has the type `long double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE
-#define MAGICKCORE_HAVE_LONG_DOUBLE 1
-#endif
-
-/* Define to 1 if the type `long double' works and has more range or precision
-   than `double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE_WIDER
-#define MAGICKCORE_HAVE_LONG_DOUBLE_WIDER 1
-#endif
-
 /* Define to 1 if the system has the type `long long int'. */
 #ifndef MAGICKCORE_HAVE_LONG_LONG_INT
 #define MAGICKCORE_HAVE_LONG_LONG_INT 1
@@ -679,6 +653,11 @@
 #define MAGICKCORE_HAVE_STRCASECMP 1
 #endif
 
+/* Define to 1 if you have the `strcasestr' function. */
+#ifndef MAGICKCORE_HAVE_STRCASESTR
+#define MAGICKCORE_HAVE_STRCASESTR 1
+#endif
+
 /* Define to 1 if you have the `strchr' function. */
 #ifndef MAGICKCORE_HAVE_STRCHR
 #define MAGICKCORE_HAVE_STRCHR 1
@@ -864,6 +843,9 @@
 #define MAGICKCORE_HAVE_SYS_WAIT_H 1
 #endif
 
+/* Define if you have the tcmalloc memory allocation library */
+/* #undef HAVE_TCMALLOC */
+
 /* Define to 1 if you have the `telldir' function. */
 #ifndef MAGICKCORE_HAVE_TELLDIR
 #define MAGICKCORE_HAVE_TELLDIR 1
@@ -929,6 +911,9 @@
 /* Define to 1 if you have the `ulltostr' function. */
 /* #undef HAVE_ULLTOSTR */
 
+/* Define if you have umem memory allocation library */
+/* #undef HAVE_UMEM */
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #ifndef MAGICKCORE_HAVE_UNISTD_H
 #define MAGICKCORE_HAVE_UNISTD_H 1
@@ -1065,9 +1050,6 @@
 /* Define if you have jemalloc memory allocation library */
 /* #undef HasJEMALLOC */
 
-/* Define if you have umem memory allocation library */
-/* #undef HasUMEM */
-
 /* Directory where ImageMagick architecture headers live. */
 #ifndef MAGICKCORE_INCLUDEARCH_PATH
 #define MAGICKCORE_INCLUDEARCH_PATH "/usr/local/include/ImageMagick-7/"
@@ -1089,6 +1071,9 @@
 /* Define if you have JPEG library */
 /* #undef JPEG_DELEGATE */
 
+/* Define if you have brunsli library */
+/* #undef JXL_DELEGATE */
+
 /* Define if you have LCMS library */
 /* #undef LCMS_DELEGATE */
 
@@ -1097,13 +1082,13 @@
 
 /* Directory where architecture-dependent files live. */
 #ifndef MAGICKCORE_LIBRARY_PATH
-#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.8/"
+#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.9/"
 #endif
 
 /* Subdirectory of lib where ImageMagick architecture dependent files are
    installed. */
 #ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH
-#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.8"
+#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.9"
 #endif
 
 /* Binaries in libraries path base name (will be during install linked to bin)
@@ -1185,7 +1170,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef MAGICKCORE_PACKAGE_STRING
-#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.8-32"
+#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.9-13"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -1200,7 +1185,7 @@
 
 /* Define to the version of this package. */
 #ifndef MAGICKCORE_PACKAGE_VERSION
-#define MAGICKCORE_PACKAGE_VERSION "7.0.8-32"
+#define MAGICKCORE_PACKAGE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have PANGOCAIRO library */
@@ -1233,11 +1218,6 @@
 /* Define if you have LIBRAW library */
 /* #undef RAW_R_DELEGATE */
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#ifndef MAGICKCORE_RETSIGTYPE
-#define MAGICKCORE_RETSIGTYPE void
-#endif
-
 /* Define if you have RSVG library */
 /* #undef RSVG_DELEGATE */
 
@@ -1300,64 +1280,14 @@
 #define MAGICKCORE_SIZEOF_LONG_DOUBLE 16
 #endif
 
-/* The size of `off_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_OFF_T
-#define MAGICKCORE_SIZEOF_OFF_T 8
-#endif
-
-/* The size of `signed int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_INT
-#define MAGICKCORE_SIZEOF_SIGNED_INT 4
-#endif
-
-/* The size of `signed long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG 8
-#endif
-
-/* The size of `signed long long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG_LONG 8
-#endif
-
-/* The size of `signed short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_SHORT
-#define MAGICKCORE_SIZEOF_SIGNED_SHORT 2
-#endif
-
-/* The size of `size_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIZE_T
-#define MAGICKCORE_SIZEOF_SIZE_T 8
-#endif
-
-/* The size of `ssize_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SSIZE_T
-#define MAGICKCORE_SIZEOF_SSIZE_T 8
-#endif
-
-/* The size of `unsigned int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INT
-#define MAGICKCORE_SIZEOF_UNSIGNED_INT 4
-#endif
-
-/* The size of `unsigned int*', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INTP
-#define MAGICKCORE_SIZEOF_UNSIGNED_INTP 8
-#endif
-
-/* The size of `unsigned long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG
-#define MAGICKCORE_SIZEOF_UNSIGNED_LONG 8
-#endif
-
 /* The size of `unsigned long long', as computed by sizeof. */
 #ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG
 #define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8
 #endif
 
-/* The size of `unsigned short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_SHORT
-#define MAGICKCORE_SIZEOF_UNSIGNED_SHORT 2
+/* The size of `void *', as computed by sizeof. */
+#ifndef MAGICKCORE_SIZEOF_VOID_P
+#define MAGICKCORE_SIZEOF_VOID_P 8
 #endif
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
@@ -1413,7 +1343,7 @@
 
 /* Version number of package */
 #ifndef MAGICKCORE_VERSION
-#define MAGICKCORE_VERSION "7.0.8-32"
+#define MAGICKCORE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have WEBPMUX library */
@@ -1518,7 +1448,7 @@
 /* # undef __CHAR_UNSIGNED__ */
 #endif
 
-/* Define to appropriate substitue if compiler does not have __func__ */
+/* Define to appropriate substitute if compiler does not have __func__ */
 /* #undef __func__ */
 
 /* Define to empty if `const' does not conform to ANSI C. */
diff --git a/configs/arm64/MagickCore/version.h b/configs/arm64/MagickCore/version.h
index 8fa7955..bf043b0 100644
--- a/configs/arm64/MagickCore/version.h
+++ b/configs/arm64/MagickCore/version.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
   obtain a copy of the License at
   
-    http://imagemagick.org/script/license.php
+    https://imagemagick.org/script/license.php
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,13 +26,13 @@
   Define declarations.
 */
 #define MagickPackageName "ImageMagick"
-#define MagickCopyright  "© 1999-2019 ImageMagick Studio LLC"
-#define MagickLibVersion  0x708
-#define MagickLibVersionText  "7.0.8"
-#define MagickLibVersionNumber  6,0,0
-#define MagickLibAddendum  "-32"
-#define MagickLibInterface  6
-#define MagickLibMinInterface  6
+#define MagickCopyright  "© 1999-2020 ImageMagick Studio LLC"
+#define MagickLibVersion  0x709
+#define MagickLibVersionText  "7.0.9"
+#define MagickLibVersionNumber  7,0,0
+#define MagickLibAddendum  "-13"
+#define MagickLibInterface  7
+#define MagickLibMinInterface  7
 #if defined(_WINDOWS)
 #  if defined(_WIN64)
 #    define MagickPlatform "x64"
@@ -42,12 +42,12 @@
 #else
 #define MagickPlatform  "aarch64"
 #endif
-#define MagickppLibVersionText  "7.0.8"
+#define MagickppLibVersionText  "7.0.9"
 #define MagickppLibVersionNumber  4:0:0
-#define MagickppLibAddendum  "-32"
+#define MagickppLibAddendum  "-13"
 #define MagickppLibInterface  4
 #define MagickppLibMinInterface  4
-#define MagickReleaseDate  "2019-03-07"
+#define MagickReleaseDate  "2019-12-29"
 #define MagickAuthoritativeLicense  \
   "https://imagemagick.org/script/license.php"
 #define MagickAuthoritativeURL  "https://imagemagick.org"
diff --git a/configs/x86-64/MagickCore/magick-baseconfig.h b/configs/x86-64/MagickCore/magick-baseconfig.h
index b2e6991..3971c9f 100644
--- a/configs/x86-64/MagickCore/magick-baseconfig.h
+++ b/configs/x86-64/MagickCore/magick-baseconfig.h
@@ -154,7 +154,7 @@
 #define MAGICKCORE_HAVE_CLOCK_GETRES 1
 #endif
 
-/* Define to 1 if you have clock_gettime. */
+/* Define to 1 if you have the `clock_gettime' function. */
 #ifndef MAGICKCORE_HAVE_CLOCK_GETTIME
 #define MAGICKCORE_HAVE_CLOCK_GETTIME 1
 #endif
@@ -233,11 +233,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 /* #undef HAVE_DOPRNT */
 
-/* Define to 1 if the system has the type `double_t'. */
-#ifndef MAGICKCORE_HAVE_DOUBLE_T
-#define MAGICKCORE_HAVE_DOUBLE_T 1
-#endif
-
 /* Define to 1 if you have the `erf' function. */
 #ifndef MAGICKCORE_HAVE_ERF
 #define MAGICKCORE_HAVE_ERF 1
@@ -263,11 +258,6 @@
 #define MAGICKCORE_HAVE_FCNTL_H 1
 #endif
 
-/* Define to 1 if the system has the type `float_t'. */
-#ifndef MAGICKCORE_HAVE_FLOAT_T
-#define MAGICKCORE_HAVE_FLOAT_T 1
-#endif
-
 /* Define to 1 if you have the `floor' function. */
 #ifndef MAGICKCORE_HAVE_FLOOR
 #define MAGICKCORE_HAVE_FLOOR 1
@@ -397,27 +387,11 @@
 #define MAGICKCORE_HAVE_LOCALE_H 1
 #endif
 
-/* Define to 1 if the system has the type `locale_t'. */
-#ifndef MAGICKCORE_HAVE_LOCALE_T
-#define MAGICKCORE_HAVE_LOCALE_T 1
-#endif
-
 /* Define to 1 if you have the `localtime_r' function. */
 #ifndef MAGICKCORE_HAVE_LOCALTIME_R
 #define MAGICKCORE_HAVE_LOCALTIME_R 1
 #endif
 
-/* Define to 1 if the system has the type `long double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE
-#define MAGICKCORE_HAVE_LONG_DOUBLE 1
-#endif
-
-/* Define to 1 if the type `long double' works and has more range or precision
-   than `double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE_WIDER
-#define MAGICKCORE_HAVE_LONG_DOUBLE_WIDER 1
-#endif
-
 /* Define to 1 if the system has the type `long long int'. */
 #ifndef MAGICKCORE_HAVE_LONG_LONG_INT
 #define MAGICKCORE_HAVE_LONG_LONG_INT 1
@@ -679,6 +653,11 @@
 #define MAGICKCORE_HAVE_STRCASECMP 1
 #endif
 
+/* Define to 1 if you have the `strcasestr' function. */
+#ifndef MAGICKCORE_HAVE_STRCASESTR
+#define MAGICKCORE_HAVE_STRCASESTR 1
+#endif
+
 /* Define to 1 if you have the `strchr' function. */
 #ifndef MAGICKCORE_HAVE_STRCHR
 #define MAGICKCORE_HAVE_STRCHR 1
@@ -864,6 +843,9 @@
 #define MAGICKCORE_HAVE_SYS_WAIT_H 1
 #endif
 
+/* Define if you have the tcmalloc memory allocation library */
+/* #undef HAVE_TCMALLOC */
+
 /* Define to 1 if you have the `telldir' function. */
 #ifndef MAGICKCORE_HAVE_TELLDIR
 #define MAGICKCORE_HAVE_TELLDIR 1
@@ -929,6 +911,9 @@
 /* Define to 1 if you have the `ulltostr' function. */
 /* #undef HAVE_ULLTOSTR */
 
+/* Define if you have umem memory allocation library */
+/* #undef HAVE_UMEM */
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #ifndef MAGICKCORE_HAVE_UNISTD_H
 #define MAGICKCORE_HAVE_UNISTD_H 1
@@ -1065,9 +1050,6 @@
 /* Define if you have jemalloc memory allocation library */
 /* #undef HasJEMALLOC */
 
-/* Define if you have umem memory allocation library */
-/* #undef HasUMEM */
-
 /* Directory where ImageMagick architecture headers live. */
 #ifndef MAGICKCORE_INCLUDEARCH_PATH
 #define MAGICKCORE_INCLUDEARCH_PATH "/usr/local/include/ImageMagick-7/"
@@ -1089,6 +1071,9 @@
 /* Define if you have JPEG library */
 /* #undef JPEG_DELEGATE */
 
+/* Define if you have brunsli library */
+/* #undef JXL_DELEGATE */
+
 /* Define if you have LCMS library */
 /* #undef LCMS_DELEGATE */
 
@@ -1097,13 +1082,13 @@
 
 /* Directory where architecture-dependent files live. */
 #ifndef MAGICKCORE_LIBRARY_PATH
-#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.8/"
+#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.9/"
 #endif
 
 /* Subdirectory of lib where ImageMagick architecture dependent files are
    installed. */
 #ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH
-#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.8"
+#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.9"
 #endif
 
 /* Binaries in libraries path base name (will be during install linked to bin)
@@ -1185,7 +1170,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef MAGICKCORE_PACKAGE_STRING
-#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.8-32"
+#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.9-13"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -1200,7 +1185,7 @@
 
 /* Define to the version of this package. */
 #ifndef MAGICKCORE_PACKAGE_VERSION
-#define MAGICKCORE_PACKAGE_VERSION "7.0.8-32"
+#define MAGICKCORE_PACKAGE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have PANGOCAIRO library */
@@ -1233,11 +1218,6 @@
 /* Define if you have LIBRAW library */
 /* #undef RAW_R_DELEGATE */
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#ifndef MAGICKCORE_RETSIGTYPE
-#define MAGICKCORE_RETSIGTYPE void
-#endif
-
 /* Define if you have RSVG library */
 /* #undef RSVG_DELEGATE */
 
@@ -1300,64 +1280,14 @@
 #define MAGICKCORE_SIZEOF_LONG_DOUBLE 16
 #endif
 
-/* The size of `off_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_OFF_T
-#define MAGICKCORE_SIZEOF_OFF_T 8
-#endif
-
-/* The size of `signed int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_INT
-#define MAGICKCORE_SIZEOF_SIGNED_INT 4
-#endif
-
-/* The size of `signed long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG 8
-#endif
-
-/* The size of `signed long long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG_LONG 8
-#endif
-
-/* The size of `signed short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_SHORT
-#define MAGICKCORE_SIZEOF_SIGNED_SHORT 2
-#endif
-
-/* The size of `size_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIZE_T
-#define MAGICKCORE_SIZEOF_SIZE_T 8
-#endif
-
-/* The size of `ssize_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SSIZE_T
-#define MAGICKCORE_SIZEOF_SSIZE_T 8
-#endif
-
-/* The size of `unsigned int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INT
-#define MAGICKCORE_SIZEOF_UNSIGNED_INT 4
-#endif
-
-/* The size of `unsigned int*', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INTP
-#define MAGICKCORE_SIZEOF_UNSIGNED_INTP 8
-#endif
-
-/* The size of `unsigned long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG
-#define MAGICKCORE_SIZEOF_UNSIGNED_LONG 8
-#endif
-
 /* The size of `unsigned long long', as computed by sizeof. */
 #ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG
 #define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8
 #endif
 
-/* The size of `unsigned short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_SHORT
-#define MAGICKCORE_SIZEOF_UNSIGNED_SHORT 2
+/* The size of `void *', as computed by sizeof. */
+#ifndef MAGICKCORE_SIZEOF_VOID_P
+#define MAGICKCORE_SIZEOF_VOID_P 8
 #endif
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
@@ -1413,7 +1343,7 @@
 
 /* Version number of package */
 #ifndef MAGICKCORE_VERSION
-#define MAGICKCORE_VERSION "7.0.8-32"
+#define MAGICKCORE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have WEBPMUX library */
@@ -1518,7 +1448,7 @@
 /* # undef __CHAR_UNSIGNED__ */
 #endif
 
-/* Define to appropriate substitue if compiler does not have __func__ */
+/* Define to appropriate substitute if compiler does not have __func__ */
 /* #undef __func__ */
 
 /* Define to empty if `const' does not conform to ANSI C. */
diff --git a/configs/x86-64/MagickCore/version.h b/configs/x86-64/MagickCore/version.h
index 4a4ee08..7aa3716 100644
--- a/configs/x86-64/MagickCore/version.h
+++ b/configs/x86-64/MagickCore/version.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
   obtain a copy of the License at
   
-    http://imagemagick.org/script/license.php
+    https://imagemagick.org/script/license.php
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,13 +26,13 @@
   Define declarations.
 */
 #define MagickPackageName "ImageMagick"
-#define MagickCopyright  "© 1999-2019 ImageMagick Studio LLC"
-#define MagickLibVersion  0x708
-#define MagickLibVersionText  "7.0.8"
-#define MagickLibVersionNumber  6,0,0
-#define MagickLibAddendum  "-32"
-#define MagickLibInterface  6
-#define MagickLibMinInterface  6
+#define MagickCopyright  "© 1999-2020 ImageMagick Studio LLC"
+#define MagickLibVersion  0x709
+#define MagickLibVersionText  "7.0.9"
+#define MagickLibVersionNumber  7,0,0
+#define MagickLibAddendum  "-13"
+#define MagickLibInterface  7
+#define MagickLibMinInterface  7
 #if defined(_WINDOWS)
 #  if defined(_WIN64)
 #    define MagickPlatform "x64"
@@ -42,12 +42,12 @@
 #else
 #define MagickPlatform  "x86_64"
 #endif
-#define MagickppLibVersionText  "7.0.8"
+#define MagickppLibVersionText  "7.0.9"
 #define MagickppLibVersionNumber  4:0:0
-#define MagickppLibAddendum  "-32"
+#define MagickppLibAddendum  "-13"
 #define MagickppLibInterface  4
 #define MagickppLibMinInterface  4
-#define MagickReleaseDate  "2019-03-07"
+#define MagickReleaseDate  "2019-12-29"
 #define MagickAuthoritativeLicense  \
   "https://imagemagick.org/script/license.php"
 #define MagickAuthoritativeURL  "https://imagemagick.org"
diff --git a/configs/x86/MagickCore/magick-baseconfig.h b/configs/x86/MagickCore/magick-baseconfig.h
index 47f28ab..36ed06a 100644
--- a/configs/x86/MagickCore/magick-baseconfig.h
+++ b/configs/x86/MagickCore/magick-baseconfig.h
@@ -154,7 +154,7 @@
 #define MAGICKCORE_HAVE_CLOCK_GETRES 1
 #endif
 
-/* Define to 1 if you have clock_gettime. */
+/* Define to 1 if you have the `clock_gettime' function. */
 #ifndef MAGICKCORE_HAVE_CLOCK_GETTIME
 #define MAGICKCORE_HAVE_CLOCK_GETTIME 1
 #endif
@@ -233,11 +233,6 @@
 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
 /* #undef HAVE_DOPRNT */
 
-/* Define to 1 if the system has the type `double_t'. */
-#ifndef MAGICKCORE_HAVE_DOUBLE_T
-#define MAGICKCORE_HAVE_DOUBLE_T 1
-#endif
-
 /* Define to 1 if you have the `erf' function. */
 #ifndef MAGICKCORE_HAVE_ERF
 #define MAGICKCORE_HAVE_ERF 1
@@ -263,11 +258,6 @@
 #define MAGICKCORE_HAVE_FCNTL_H 1
 #endif
 
-/* Define to 1 if the system has the type `float_t'. */
-#ifndef MAGICKCORE_HAVE_FLOAT_T
-#define MAGICKCORE_HAVE_FLOAT_T 1
-#endif
-
 /* Define to 1 if you have the `floor' function. */
 #ifndef MAGICKCORE_HAVE_FLOOR
 #define MAGICKCORE_HAVE_FLOOR 1
@@ -397,25 +387,11 @@
 #define MAGICKCORE_HAVE_LOCALE_H 1
 #endif
 
-/* Define to 1 if the system has the type `locale_t'. */
-#ifndef MAGICKCORE_HAVE_LOCALE_T
-#define MAGICKCORE_HAVE_LOCALE_T 1
-#endif
-
 /* Define to 1 if you have the `localtime_r' function. */
 #ifndef MAGICKCORE_HAVE_LOCALTIME_R
 #define MAGICKCORE_HAVE_LOCALTIME_R 1
 #endif
 
-/* Define to 1 if the system has the type `long double'. */
-#ifndef MAGICKCORE_HAVE_LONG_DOUBLE
-#define MAGICKCORE_HAVE_LONG_DOUBLE 1
-#endif
-
-/* Define to 1 if the type `long double' works and has more range or precision
-   than `double'. */
-/* #undef HAVE_LONG_DOUBLE_WIDER */
-
 /* Define to 1 if the system has the type `long long int'. */
 #ifndef MAGICKCORE_HAVE_LONG_LONG_INT
 #define MAGICKCORE_HAVE_LONG_LONG_INT 1
@@ -677,6 +653,11 @@
 #define MAGICKCORE_HAVE_STRCASECMP 1
 #endif
 
+/* Define to 1 if you have the `strcasestr' function. */
+#ifndef MAGICKCORE_HAVE_STRCASESTR
+#define MAGICKCORE_HAVE_STRCASESTR 1
+#endif
+
 /* Define to 1 if you have the `strchr' function. */
 #ifndef MAGICKCORE_HAVE_STRCHR
 #define MAGICKCORE_HAVE_STRCHR 1
@@ -862,6 +843,9 @@
 #define MAGICKCORE_HAVE_SYS_WAIT_H 1
 #endif
 
+/* Define if you have the tcmalloc memory allocation library */
+/* #undef HAVE_TCMALLOC */
+
 /* Define to 1 if you have the `telldir' function. */
 #ifndef MAGICKCORE_HAVE_TELLDIR
 #define MAGICKCORE_HAVE_TELLDIR 1
@@ -927,6 +911,9 @@
 /* Define to 1 if you have the `ulltostr' function. */
 /* #undef HAVE_ULLTOSTR */
 
+/* Define if you have umem memory allocation library */
+/* #undef HAVE_UMEM */
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #ifndef MAGICKCORE_HAVE_UNISTD_H
 #define MAGICKCORE_HAVE_UNISTD_H 1
@@ -1063,9 +1050,6 @@
 /* Define if you have jemalloc memory allocation library */
 /* #undef HasJEMALLOC */
 
-/* Define if you have umem memory allocation library */
-/* #undef HasUMEM */
-
 /* Directory where ImageMagick architecture headers live. */
 #ifndef MAGICKCORE_INCLUDEARCH_PATH
 #define MAGICKCORE_INCLUDEARCH_PATH "/usr/local/include/ImageMagick-7/"
@@ -1087,6 +1071,9 @@
 /* Define if you have JPEG library */
 /* #undef JPEG_DELEGATE */
 
+/* Define if you have brunsli library */
+/* #undef JXL_DELEGATE */
+
 /* Define if you have LCMS library */
 /* #undef LCMS_DELEGATE */
 
@@ -1095,13 +1082,13 @@
 
 /* Directory where architecture-dependent files live. */
 #ifndef MAGICKCORE_LIBRARY_PATH
-#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.8/"
+#define MAGICKCORE_LIBRARY_PATH "/usr/local/lib/ImageMagick-7.0.9/"
 #endif
 
 /* Subdirectory of lib where ImageMagick architecture dependent files are
    installed. */
 #ifndef MAGICKCORE_LIBRARY_RELATIVE_PATH
-#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.8"
+#define MAGICKCORE_LIBRARY_RELATIVE_PATH "ImageMagick-7.0.9"
 #endif
 
 /* Binaries in libraries path base name (will be during install linked to bin)
@@ -1183,7 +1170,7 @@
 
 /* Define to the full name and version of this package. */
 #ifndef MAGICKCORE_PACKAGE_STRING
-#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.8-32"
+#define MAGICKCORE_PACKAGE_STRING "ImageMagick 7.0.9-13"
 #endif
 
 /* Define to the one symbol short name of this package. */
@@ -1198,7 +1185,7 @@
 
 /* Define to the version of this package. */
 #ifndef MAGICKCORE_PACKAGE_VERSION
-#define MAGICKCORE_PACKAGE_VERSION "7.0.8-32"
+#define MAGICKCORE_PACKAGE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have PANGOCAIRO library */
@@ -1231,11 +1218,6 @@
 /* Define if you have LIBRAW library */
 /* #undef RAW_R_DELEGATE */
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#ifndef MAGICKCORE_RETSIGTYPE
-#define MAGICKCORE_RETSIGTYPE void
-#endif
-
 /* Define if you have RSVG library */
 /* #undef RSVG_DELEGATE */
 
@@ -1298,64 +1280,14 @@
 #define MAGICKCORE_SIZEOF_LONG_DOUBLE 8
 #endif
 
-/* The size of `off_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_OFF_T
-#define MAGICKCORE_SIZEOF_OFF_T 8
-#endif
-
-/* The size of `signed int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_INT
-#define MAGICKCORE_SIZEOF_SIGNED_INT 4
-#endif
-
-/* The size of `signed long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG 4
-#endif
-
-/* The size of `signed long long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_LONG_LONG
-#define MAGICKCORE_SIZEOF_SIGNED_LONG_LONG 8
-#endif
-
-/* The size of `signed short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIGNED_SHORT
-#define MAGICKCORE_SIZEOF_SIGNED_SHORT 2
-#endif
-
-/* The size of `size_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SIZE_T
-#define MAGICKCORE_SIZEOF_SIZE_T 4
-#endif
-
-/* The size of `ssize_t', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_SSIZE_T
-#define MAGICKCORE_SIZEOF_SSIZE_T 4
-#endif
-
-/* The size of `unsigned int', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INT
-#define MAGICKCORE_SIZEOF_UNSIGNED_INT 4
-#endif
-
-/* The size of `unsigned int*', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_INTP
-#define MAGICKCORE_SIZEOF_UNSIGNED_INTP 4
-#endif
-
-/* The size of `unsigned long', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG
-#define MAGICKCORE_SIZEOF_UNSIGNED_LONG 4
-#endif
-
 /* The size of `unsigned long long', as computed by sizeof. */
 #ifndef MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG
 #define MAGICKCORE_SIZEOF_UNSIGNED_LONG_LONG 8
 #endif
 
-/* The size of `unsigned short', as computed by sizeof. */
-#ifndef MAGICKCORE_SIZEOF_UNSIGNED_SHORT
-#define MAGICKCORE_SIZEOF_UNSIGNED_SHORT 2
+/* The size of `void *', as computed by sizeof. */
+#ifndef MAGICKCORE_SIZEOF_VOID_P
+#define MAGICKCORE_SIZEOF_VOID_P 4
 #endif
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
@@ -1411,7 +1343,7 @@
 
 /* Version number of package */
 #ifndef MAGICKCORE_VERSION
-#define MAGICKCORE_VERSION "7.0.8-32"
+#define MAGICKCORE_VERSION "7.0.9-13"
 #endif
 
 /* Define if you have WEBPMUX library */
@@ -1518,7 +1450,7 @@
 /* # undef __CHAR_UNSIGNED__ */
 #endif
 
-/* Define to appropriate substitue if compiler does not have __func__ */
+/* Define to appropriate substitute if compiler does not have __func__ */
 /* #undef __func__ */
 
 /* Define to empty if `const' does not conform to ANSI C. */
diff --git a/configs/x86/MagickCore/version.h b/configs/x86/MagickCore/version.h
index 1290e44..1eecf04 100644
--- a/configs/x86/MagickCore/version.h
+++ b/configs/x86/MagickCore/version.h
@@ -1,11 +1,11 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
   obtain a copy of the License at
   
-    http://imagemagick.org/script/license.php
+    https://imagemagick.org/script/license.php
   
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,13 +26,13 @@
   Define declarations.
 */
 #define MagickPackageName "ImageMagick"
-#define MagickCopyright  "© 1999-2019 ImageMagick Studio LLC"
-#define MagickLibVersion  0x708
-#define MagickLibVersionText  "7.0.8"
-#define MagickLibVersionNumber  6,0,0
-#define MagickLibAddendum  "-32"
-#define MagickLibInterface  6
-#define MagickLibMinInterface  6
+#define MagickCopyright  "© 1999-2020 ImageMagick Studio LLC"
+#define MagickLibVersion  0x709
+#define MagickLibVersionText  "7.0.9"
+#define MagickLibVersionNumber  7,0,0
+#define MagickLibAddendum  "-13"
+#define MagickLibInterface  7
+#define MagickLibMinInterface  7
 #if defined(_WINDOWS)
 #  if defined(_WIN64)
 #    define MagickPlatform "x64"
@@ -42,12 +42,12 @@
 #else
 #define MagickPlatform  "i686"
 #endif
-#define MagickppLibVersionText  "7.0.8"
+#define MagickppLibVersionText  "7.0.9"
 #define MagickppLibVersionNumber  4:0:0
-#define MagickppLibAddendum  "-32"
+#define MagickppLibAddendum  "-13"
 #define MagickppLibInterface  4
 #define MagickppLibMinInterface  4
-#define MagickReleaseDate  "2019-03-07"
+#define MagickReleaseDate  "2019-12-29"
 #define MagickAuthoritativeLicense  \
   "https://imagemagick.org/script/license.php"
 #define MagickAuthoritativeURL  "https://imagemagick.org"
diff --git a/configure b/configure
index 4bc4495..3f952ab 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.8-32.
+# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.9-15.
 #
 # Report bugs to <https://github.com/ImageMagick/ImageMagick/issues>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='ImageMagick'
 PACKAGE_TARNAME='ImageMagick'
-PACKAGE_VERSION='7.0.8-32'
-PACKAGE_STRING='ImageMagick 7.0.8-32'
+PACKAGE_VERSION='7.0.9-15'
+PACKAGE_STRING='ImageMagick 7.0.9-15'
 PACKAGE_BUGREPORT='https://github.com/ImageMagick/ImageMagick/issues'
 PACKAGE_URL='https://imagemagick.org'
 
@@ -696,6 +696,7 @@
 WebPEncodeDelegate
 WebPDecodeDelegate
 UniconvertorDelegate
+TraceEncodeDelegate
 SVGDecodeDelegate
 RSVGDecodeDelegate
 RMDelegate
@@ -816,6 +817,9 @@
 LCMS_DELEGATE_TRUE
 LCMS2_LIBS
 LCMS2_CFLAGS
+JXL_LIBS
+JXL_DELEGATE_FALSE
+JXL_DELEGATE_TRUE
 JPEG_LIBS
 JPEG_DELEGATE_FALSE
 JPEG_DELEGATE_TRUE
@@ -837,8 +841,7 @@
 RAQM_DELEGATE_TRUE
 RAQM_LIBS
 RAQM_CFLAGS
-FREETYPE_DELEGATE_FALSE
-FREETYPE_DELEGATE_TRUE
+MAGICKCORE_FREETYPE_DELEGATE
 FREETYPE_LIBS
 FREETYPE_CFLAGS
 FONTCONFIG_DELEGATE_FALSE
@@ -897,8 +900,11 @@
 BZLIB_DELEGATE_TRUE
 CCMALLOCDelegate
 UMEM_LIBS
-HasUMEM_FALSE
-HasUMEM_TRUE
+HAVE_UMEM_FALSE
+HAVE_UMEM_TRUE
+TCMALLOC_LIBS
+HAVE_TCMALLOC_FALSE
+HAVE_TCMALLOC_TRUE
 JEMALLOC_LIBS
 HasJEMALLOC_FALSE
 HasJEMALLOC_TRUE
@@ -909,22 +915,6 @@
 MATH_LIBS
 POW_LIB
 LIBOBJS
-UINTPTR_F
-UINTPTR_T
-UINTMAX_F
-UINTMAX_T
-UINT64_F
-UINT64_T
-INT64_F
-INT64_T
-UINT32_F
-UINT32_T
-INT32_F
-INT32_T
-UINT16_T
-INT16_T
-UINT8_T
-INT8_T
 LIBRARY_EXTRA_CPPFLAGS
 MODULE_EXTRA_CPPFLAGS
 LIBSTDCLDFLAGS
@@ -940,6 +930,8 @@
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
 MAGICK_HDRI
+MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_FALSE
+MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE
 WITH_MODULES_FALSE
 WITH_MODULES_TRUE
 WITH_SHARED_LIBS_FALSE
@@ -1207,6 +1199,7 @@
 with_perl
 with_perl_options
 with_jemalloc
+with_tcmalloc
 with_umem
 with_libstdc
 with_bzlib
@@ -1231,6 +1224,7 @@
 with_heic
 with_jbig
 with_jpeg
+with_jxl
 with_lcms
 with_openjp2
 with_lqr
@@ -1852,7 +1846,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ImageMagick 7.0.8-32 to adapt to many kinds of systems.
+\`configure' configures ImageMagick 7.0.9-15 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1927,7 +1921,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ImageMagick 7.0.8-32:";;
+     short | recursive ) echo "Configuration of ImageMagick 7.0.9-15:";;
    esac
   cat <<\_ACEOF
 
@@ -2004,7 +1998,7 @@
   --with-modules          enable building dynamically loadable modules
   --with-method-prefix=PREFIX
                           prefix MagickCore API methods
-  --with-utilities enable building command-line utilities (default yes)
+  --with-utilities	enable building command-line utilities (default yes)
   --with-quantum-depth=DEPTH
                           number of bits in a pixel quantum (default 16)
   --with-cache=THRESHOLD  set pixel cache threshhold in MB (default available
@@ -2019,6 +2013,7 @@
                           options to pass on command-line when generating
                           PerlMagick build file
   --with-jemalloc         enable jemalloc memory allocation library support
+  --with-tcmalloc         enable tcmalloc memory allocation library support
   --with-umem             enable umem memory allocation library support
   --with-libstdc=DIR      use libstdc++ in DIR (for GNU C++)
   --without-bzlib         disable BZLIB support
@@ -2045,6 +2040,7 @@
   --without-heic          disable HEIC support
   --without-jbig          disable JBIG support
   --without-jpeg          disable JPEG support
+  --without-jxl           disable Jpegxl support
   --without-lcms          disable lcms (v1.1X) support
   --without-openjp2       disable OpenJP2 support
   --without-lqr           disable Liquid Rescale support
@@ -2219,7 +2215,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ImageMagick configure 7.0.8-32
+ImageMagick configure 7.0.9-15
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2510,189 +2506,6 @@
 
 } # ac_fn_cxx_try_compile
 
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
-  fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
 # ac_fn_c_try_link LINENO
 # -----------------------
 # Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -3176,6 +2989,189 @@
 
 } # ac_fn_c_find_uintX_t
 
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
 # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
 # ---------------------------------------------------------
 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -3270,7 +3266,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ImageMagick $as_me 7.0.8-32, which was
+It was created by ImageMagick $as_me 7.0.9-15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4256,7 +4252,7 @@
 
 # Define the identity of the package.
  PACKAGE='ImageMagick'
- VERSION='7.0.8-32'
+ VERSION='7.0.9-15'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4509,7 +4505,7 @@
 # Save initial user-tunable values
 #
 USER_LIBS=$LIBS
-for var in CC CFLAGS CPPFLAGS CXX CXXCPP LDFLAGS LIBS ; do
+for var in CC CFLAGS CPPFLAGS CXX CXXCPP LDFLAGS AR_FLAGS LIBS ; do
   eval isset=\${$var+set}
     if test "$isset" = 'set'; then
         eval val=$`echo $var`
@@ -4564,13 +4560,13 @@
 
 MAGICK_MINOR_VERSION=0
 
-MAGICK_MICRO_VERSION=8
+MAGICK_MICRO_VERSION=9
 
-MAGICK_PATCHLEVEL_VERSION=32
+MAGICK_PATCHLEVEL_VERSION=15
 
-MAGICK_VERSION=7.0.8-32
+MAGICK_VERSION=7.0.9-15
 
-MAGICK_GIT_REVISION=15382:c0ce8818e:20190304
+MAGICK_GIT_REVISION=16660:73e93053c:20200105
 
 
 # Substitute library versioning
@@ -8761,6 +8757,7 @@
   test -n "$AWK" && break
 done
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if malloc debugging is wanted" >&5
 $as_echo_n "checking if malloc debugging is wanted... " >&6; }
 
@@ -9410,41 +9407,6 @@
 
 
 
-# Test for 64-bit build.
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-$as_echo_n "checking size of size_t... " >&6; }
-if ${ac_cv_sizeof_size_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_size_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (size_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_size_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-$as_echo "$ac_cv_sizeof_size_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
-_ACEOF
-
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5
 $as_echo_n "checking for C compiler vendor... " >&6; }
 if ${ax_cv_c_compiler_vendor+:} false; then :
@@ -10544,6 +10506,7 @@
 fi
 
 # Enable support for OpenCL
+ax_cv_check_cl_libcl=no
 
 
 
@@ -11431,10 +11394,8 @@
 CPPFLAGS="$CL_CFLAGS $CPPFLAGS"
 LIBS="$CL_LIBS $LIBS"
 
-if test "$enable_opencl" != no; then
-  if test "X$ax_cv_check_cl_libcl" != Xno; then :
-    MAGICK_FEATURES="OpenCL $MAGICK_FEATURES"
-  fi
+if test "X$ax_cv_check_cl_libcl" != Xno; then :
+  MAGICK_FEATURES="OpenCL $MAGICK_FEATURES"
 fi
 
 ########
@@ -11767,6 +11728,7 @@
 
 
 # Configure libtool
+: ${AR_FLAGS=cr}
 enable_dlopen=yes
 
 
@@ -22775,6 +22737,14 @@
 
     MAGICK_FEATURES="Zero-configuration $MAGICK_FEATURES"
 fi
+ if test "$enable_zero_configuration" = yes; then
+  MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE=
+  MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_FALSE='#'
+else
+  MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE='#'
+  MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_FALSE=
+fi
+
 
 # Build a high dynamic range version of ImageMagick.
 # Check whether --enable-hdri was given.
@@ -23097,6 +23067,19 @@
     DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jemalloc=$with_jemalloc "
 fi
 
+# Enable use of TCMalloc library.
+
+# Check whether --with-tcmalloc was given.
+if test "${with_tcmalloc+set}" = set; then :
+  withval=$with_tcmalloc; with_tcmalloc=$withval
+else
+  with_tcmalloc='no'
+fi
+
+if test "$with_tcmalloc" != 'no' ; then
+   DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-tcmalloc=$with_tcmalloc "
+fi
+
 # Enable umem, object-caching memory allocation library.
 
 # Check whether --with-umem was given.
@@ -24572,160 +24555,6 @@
 fi
 
 
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
-$as_echo_n "checking for long double... " >&6; }
-if ${ac_cv_type_long_double+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$GCC" = yes; then
-       ac_cv_type_long_double=yes
-     else
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* The Stardent Vistra knows sizeof (long double), but does
-		 not support it.  */
-	      long double foo = 0.0L;
-int
-main ()
-{
-static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-	      sizeof (double) <= sizeof (long double))];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_long_double=yes
-else
-  ac_cv_type_long_double=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
-$as_echo "$ac_cv_type_long_double" >&6; }
-  if test $ac_cv_type_long_double = yes; then
-
-$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double with more range or precision than double" >&5
-$as_echo_n "checking for long double with more range or precision than double... " >&6; }
-if ${ac_cv_type_long_double_wider+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <float.h>
-	    long double const a[] =
-	      {
-		 0.0L, DBL_MIN, DBL_MAX, DBL_EPSILON,
-		 LDBL_MIN, LDBL_MAX, LDBL_EPSILON
-	      };
-	    long double
-	    f (long double x)
-	    {
-	       return ((x + (unsigned long int) 10) * (-1 / x) + a[0]
-			+ (x ? f (x) : 'c'));
-	    }
-
-int
-main ()
-{
-static int test_array [1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP)
-		   + (DBL_MANT_DIG < LDBL_MANT_DIG)
-		   - (LDBL_MAX_EXP < DBL_MAX_EXP)
-		   - (LDBL_MANT_DIG < DBL_MANT_DIG)))
-	    && (int) LDBL_EPSILON == 0
-	  )];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_long_double_wider=yes
-else
-  ac_cv_type_long_double_wider=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double_wider" >&5
-$as_echo "$ac_cv_type_long_double_wider" >&6; }
-  if test $ac_cv_type_long_double_wider = yes; then
-
-$as_echo "#define HAVE_LONG_DOUBLE_WIDER 1" >>confdefs.h
-
-  fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if ${ac_cv_type_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_long_long_int=yes
-      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-	ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
-	if test $ac_cv_type_long_long_int = yes; then
-	  	  	  	  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-		 #ifndef LLONG_MAX
-		 # define HALF \
-			  (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-		 # define LLONG_MAX (HALF - 1 + HALF)
-		 #endif
-int
-main ()
-{
-long long int n = 1;
-		 int i;
-		 for (i = 0; ; i++)
-		   {
-		     long long int m = n << i;
-		     if (m >> i != n)
-		       return 1;
-		     if (LLONG_MAX / 2 < m)
-		       break;
-		   }
-		 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-	fi
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
-
-$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
 $as_echo_n "checking for mbstate_t... " >&6; }
 if ${ac_cv_type_mbstate_t+:} false; then :
@@ -24957,98 +24786,7 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if ${ac_cv_type_unsigned_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-	 implementations with broken preprocessors.  Perhaps this can
-	 be revisited in 2012.  In the meantime, code should not expect
-	 #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-		     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-		     ? 1 : -1)];
-      int i = 63;
-int
-main ()
-{
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-	      | (llmax / ll) | (llmax % ll)
-	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-	      | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  ac_cv_type_unsigned_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-ac_fn_c_check_type "$LINENO" "locale_t" "ac_cv_type_locale_t" "#include <xlocale.h>
-"
-if test "x$ac_cv_type_locale_t" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_LOCALE_T 1
-_ACEOF
-
-
-fi
-
-
 # Float_t and double_t are intended to be the the most efficient type.
-ac_fn_c_check_type "$LINENO" "float_t" "ac_cv_type_float_t" "#include <math.h>
-"
-if test "x$ac_cv_type_float_t" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_FLOAT_T 1
-_ACEOF
-
-
-fi
-
-ac_fn_c_check_type "$LINENO" "double_t" "ac_cv_type_double_t" "#include <math.h>
-"
-if test "x$ac_cv_type_double_t" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DOUBLE_T 1
-_ACEOF
-
-
-fi
-
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
@@ -25219,252 +24957,6 @@
 
 
 
-# Obtain size of an 'signed short' and define as SIZEOF_SIGNED_SHORT
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of signed short" >&5
-$as_echo_n "checking size of signed short... " >&6; }
-if ${ac_cv_sizeof_signed_short+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed short))" "ac_cv_sizeof_signed_short"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_signed_short" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (signed short)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_signed_short=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_short" >&5
-$as_echo "$ac_cv_sizeof_signed_short" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIGNED_SHORT $ac_cv_sizeof_signed_short
-_ACEOF
-
-
-
-# Obtain size of an 'unsigned short' and define as SIZEOF_UNSIGNED_SHORT
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned short" >&5
-$as_echo_n "checking size of unsigned short... " >&6; }
-if ${ac_cv_sizeof_unsigned_short+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned short))" "ac_cv_sizeof_unsigned_short"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_unsigned_short" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned short)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_unsigned_short=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_short" >&5
-$as_echo "$ac_cv_sizeof_unsigned_short" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_SHORT $ac_cv_sizeof_unsigned_short
-_ACEOF
-
-
-
-# Obtain size of an 'signed int' and define as SIZEOF_SIGNED_INT
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of signed int" >&5
-$as_echo_n "checking size of signed int... " >&6; }
-if ${ac_cv_sizeof_signed_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed int))" "ac_cv_sizeof_signed_int"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_signed_int" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (signed int)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_signed_int=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_int" >&5
-$as_echo "$ac_cv_sizeof_signed_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIGNED_INT $ac_cv_sizeof_signed_int
-_ACEOF
-
-
-
-# Obtain size of an 'unsigned int' and define as SIZEOF_UNSIGNED_INT
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5
-$as_echo_n "checking size of unsigned int... " >&6; }
-if ${ac_cv_sizeof_unsigned_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_unsigned_int" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned int)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_unsigned_int=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_int" >&5
-$as_echo "$ac_cv_sizeof_unsigned_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int
-_ACEOF
-
-
-
-# Obtain size of a 'signed long' and define as SIZEOF_SIGNED_LONG
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of signed long" >&5
-$as_echo_n "checking size of signed long... " >&6; }
-if ${ac_cv_sizeof_signed_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed long))" "ac_cv_sizeof_signed_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_signed_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (signed long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_signed_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_long" >&5
-$as_echo "$ac_cv_sizeof_signed_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIGNED_LONG $ac_cv_sizeof_signed_long
-_ACEOF
-
-
-
-# Obtain size of a 'unsigned long' and define as SIZEOF_UNSIGNED_LONG
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
-$as_echo_n "checking size of unsigned long... " >&6; }
-if ${ac_cv_sizeof_unsigned_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_unsigned_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_unsigned_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5
-$as_echo "$ac_cv_sizeof_unsigned_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
-_ACEOF
-
-
-
-# Obtain size of a 'long long' and define as SIZEOF_SIGNED_LONG_LONG.  If
-# 'signed long long' is not supported then the value defined is zero.
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of signed long long" >&5
-$as_echo_n "checking size of signed long long... " >&6; }
-if ${ac_cv_sizeof_signed_long_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed long long))" "ac_cv_sizeof_signed_long_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_signed_long_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (signed long long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_signed_long_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_long_long" >&5
-$as_echo "$ac_cv_sizeof_signed_long_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIGNED_LONG_LONG $ac_cv_sizeof_signed_long_long
-_ACEOF
-
-
-
 # Obtain size of a 'unsigned long long' and define as
 # SIZEOF_UNSIGNED_LONG_LONG.  If 'unsigned long long' is not
 # supported then the value defined is zero.
@@ -25502,284 +24994,40 @@
 
 
 
-# Obtain size of off_t and define as SIZEOF_OFF_T
 # The cast to long int works around a bug in the HP C Compiler
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
 # This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
-$as_echo_n "checking size of off_t... " >&6; }
-if ${ac_cv_sizeof_off_t+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if ${ac_cv_sizeof_void_p+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t"        "$ac_includes_default"; then :
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p"        "$ac_includes_default"; then :
 
 else
-  if test "$ac_cv_type_off_t" = yes; then
+  if test "$ac_cv_type_void_p" = yes; then
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (off_t)
+as_fn_error 77 "cannot compute sizeof (void *)
 See \`config.log' for more details" "$LINENO" 5; }
    else
-     ac_cv_sizeof_off_t=0
+     ac_cv_sizeof_void_p=0
    fi
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
-$as_echo "$ac_cv_sizeof_off_t" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
 
 
 
 cat >>confdefs.h <<_ACEOF
-#define SIZEOF_OFF_T $ac_cv_sizeof_off_t
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
 _ACEOF
 
 
 
-# Obtain size of size_t and define as SIZEOF_SIZE_T
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-$as_echo_n "checking size of size_t... " >&6; }
-if ${ac_cv_sizeof_size_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_size_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (size_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_size_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-$as_echo "$ac_cv_sizeof_size_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
-_ACEOF
-
-
-
-# Obtain size of ssize_t and define as SIZEOF_SSIZE_T
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5
-$as_echo_n "checking size of ssize_t... " >&6; }
-if ${ac_cv_sizeof_ssize_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ssize_t))" "ac_cv_sizeof_ssize_t"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_ssize_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (ssize_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_ssize_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ssize_t" >&5
-$as_echo "$ac_cv_sizeof_ssize_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SSIZE_T $ac_cv_sizeof_ssize_t
-_ACEOF
-
-
-
-# Obtain size of an unsigned int pointer and define as SIZEOF_UNSIGNED_INTP
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int*" >&5
-$as_echo_n "checking size of unsigned int*... " >&6; }
-if ${ac_cv_sizeof_unsigned_intp+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int*))" "ac_cv_sizeof_unsigned_intp"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_unsigned_intp" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (unsigned int*)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_unsigned_intp=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_intp" >&5
-$as_echo "$ac_cv_sizeof_unsigned_intp" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_UNSIGNED_INTP $ac_cv_sizeof_unsigned_intp
-_ACEOF
-
-
-
-#
-# Compute sized types for current CPU and compiler options.
-#
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed 8-bit type" >&5
-$as_echo_n "checking for signed 8-bit type... " >&6; }
-INT8_T='signed char'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INT8_T" >&5
-$as_echo "$INT8_T" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned 8-bit type" >&5
-$as_echo_n "checking for unsigned 8-bit type... " >&6; }
-UINT8_T='unsigned char'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINT8_T" >&5
-$as_echo "$UINT8_T" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed 16-bit type" >&5
-$as_echo_n "checking for signed 16-bit type... " >&6; }
-INT16_T='signed short'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INT16_T" >&5
-$as_echo "$INT16_T" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned 16-bit type" >&5
-$as_echo_n "checking for unsigned 16-bit type... " >&6; }
-UINT16_T='unsigned short'
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINT16_T" >&5
-$as_echo "$UINT16_T" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed 32-bit type" >&5
-$as_echo_n "checking for signed 32-bit type... " >&6; }
-INT32_T='none'
-INT32_F='none'
-if test $ac_cv_sizeof_signed_int -eq 4; then
-  INT32_T='signed int'
-  INT32_F='""'
-elif test $ac_cv_sizeof_signed_long -eq 4; then
-  INT32_T='signed long'
-  INT32_F='"l"'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INT32_T" >&5
-$as_echo "$INT32_T" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned 32-bit type" >&5
-$as_echo_n "checking for unsigned 32-bit type... " >&6; }
-UINT32_T='none'
-UINT32_F='none'
-if test $ac_cv_sizeof_unsigned_int -eq 4; then
-  UINT32_T='unsigned int'
-  UINT32_F='""'
-elif test $ac_cv_sizeof_unsigned_long -eq 4; then
-  UINT32_T='unsigned long'
-  UINT32_F='"l"'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINT32_T" >&5
-$as_echo "$UINT32_T" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed 64-bit type" >&5
-$as_echo_n "checking for signed 64-bit type... " >&6; }
-INT64_T='none'
-INT64_F='none'
-if test $ac_cv_sizeof_signed_long -eq 8; then
-  INT64_T='signed long'
-  INT64_F='"l"'
-elif test $ac_cv_sizeof_signed_long_long -eq 8; then
-  INT64_T='signed long long'
-  INT64_F='"ll"'
-fi
-case "${host_os}" in
-  mingw* )
-    INT64_F='"I64"'
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INT64_T" >&5
-$as_echo "$INT64_T" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned 64-bit type" >&5
-$as_echo_n "checking for unsigned 64-bit type... " >&6; }
-UINT64_T='none'
-UINT64_F='none'
-if test $ac_cv_sizeof_unsigned_long -eq 8; then
-  UINT64_T='unsigned long'
-  UINT64_F='"l"'
-elif test $ac_cv_sizeof_unsigned_long_long -eq 8; then
-  UINT64_T='unsigned long long'
-  UINT64_F='"ll"'
-fi
-case "${host_os}" in
-  mingw* )
-    UINT64_F='"I64"'
-    ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINT64_T" >&5
-$as_echo "$UINT64_T" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned maximum type" >&5
-$as_echo_n "checking for unsigned maximum type... " >&6; }
-UINTMAX_T='none'
-UINTMAX_F='none'
-if test "$UINT64_T" != 'none'; then
-  UINTMAX_T=$UINT64_T
-  UINTMAX_F=$UINT64_F
-elif test "$UINT32_T" != 'none'; then
-  UINTMAX_T=$UINT32_T
-  UINTMAX_F=$UINT32_F
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINTMAX_T" >&5
-$as_echo "$UINTMAX_T" >&6; }
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pointer difference type" >&5
-$as_echo_n "checking for pointer difference type... " >&6; }
-UINTPTR_T='none'
-UINTPTR_F='none'
-if test $ac_cv_sizeof_unsigned_long -eq $ac_cv_sizeof_unsigned_intp; then
-  UINTPTR_T='unsigned long'
-  UINTPTR_F='"l"'
-elif test $ac_cv_sizeof_unsigned_long_long -eq $ac_cv_sizeof_unsigned_intp; then
-  UINTPTR_T='unsigned long long'
-  UINTPTR_F='"ll"'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UINTPTR_T" >&5
-$as_echo "$UINTPTR_T" >&6; }
-
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether our compiler supports __func__" >&5
 $as_echo_n "checking whether our compiler supports __func__... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26434,39 +25682,6 @@
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
-$as_echo_n "checking return type of signal handlers... " >&6; }
-if ${ac_cv_type_signal+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <signal.h>
-
-int
-main ()
-{
-return *(signal (0, 0)) (0) == 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_signal=int
-else
-  ac_cv_type_signal=void
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
-$as_echo "$ac_cv_type_signal" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strtod" >&5
 $as_echo_n "checking for working strtod... " >&6; }
 if ${ac_cv_func_strtod+:} false; then :
@@ -26860,19 +26075,6 @@
 fi
 
 
-for ac_func in acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
 #
 # Check for clock_gettime().
 #
@@ -28212,6 +27414,91 @@
 
 
 #
+# Check for TCMalloc library
+#
+have_tcmalloc='no'
+TCMALLOC_LIBS=''
+OLIBS="$LIBS"
+if test "$have_threads" = 'yes' -a "$with_tcmalloc" != 'no'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking tcmalloc library support " >&5
+$as_echo_n "checking tcmalloc library support ... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+    failed=0
+    passed=0
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mallinfo in -ltcmalloc_minimal" >&5
+$as_echo_n "checking for mallinfo in -ltcmalloc_minimal... " >&6; }
+if ${ac_cv_lib_tcmalloc_minimal_mallinfo+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ltcmalloc_minimal  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mallinfo ();
+int
+main ()
+{
+return mallinfo ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_tcmalloc_minimal_mallinfo=yes
+else
+  ac_cv_lib_tcmalloc_minimal_mallinfo=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tcmalloc_minimal_mallinfo" >&5
+$as_echo "$ac_cv_lib_tcmalloc_minimal_mallinfo" >&6; }
+if test "x$ac_cv_lib_tcmalloc_minimal_mallinfo" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+    if test $passed -gt 0; then
+        if test $failed -gt 0; then
+            have_tcmalloc='no (some components failed test)'
+        else
+            TCMALLOC_LIBS=-ltcmalloc_minimal
+            LIBS="$TCMALLOC_LIBS $LIBS"
+            CFLAGS="$CFLAGS -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"
+
+$as_echo "#define HAVE_TCMALLOC 1" >>confdefs.h
+
+            have_tcmalloc='yes'
+        fi
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcmalloc memory allocation library is complete " >&5
+$as_echo_n "checking if tcmalloc memory allocation library is complete ... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_tcmalloc" >&5
+$as_echo "$have_tcmalloc" >&6; }
+fi
+ if test "$have_tcmalloc" = 'yes'; then
+  HAVE_TCMALLOC_TRUE=
+  HAVE_TCMALLOC_FALSE='#'
+else
+  HAVE_TCMALLOC_TRUE='#'
+  HAVE_TCMALLOC_FALSE=
+fi
+
+
+
+#
 # Check for umem.
 #
 have_umem='no'
@@ -28326,7 +27613,7 @@
       UMEM_LIBS='-lumem'
       LIBS="$UMEM_LIBS $LIBS"
 
-$as_echo "#define HasUMEM 1" >>confdefs.h
+$as_echo "#define HAVE_UMEM 1" >>confdefs.h
 
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -28338,11 +27625,11 @@
   fi
 fi
  if test "$have_umem" = 'yes'; then
-  HasUMEM_TRUE=
-  HasUMEM_FALSE='#'
+  HAVE_UMEM_TRUE=
+  HAVE_UMEM_FALSE='#'
 else
-  HasUMEM_TRUE='#'
-  HasUMEM_FALSE=
+  HAVE_UMEM_TRUE='#'
+  HAVE_UMEM_FALSE=
 fi
 
 
@@ -30966,15 +30253,11 @@
 $as_echo "#define FREETYPE_DELEGATE 1" >>confdefs.h
 
   CFLAGS="$FREETYPE_CFLAGS $CFLAGS"
+  MAGICKCORE_FREETYPE_DELEGATE=1
+else
+  MAGICKCORE_FREETYPE_DELEGATE=0
 fi
 
- if test "$have_freetype" = 'yes'; then
-  FREETYPE_DELEGATE_TRUE=
-  FREETYPE_DELEGATE_FALSE='#'
-else
-  FREETYPE_DELEGATE_TRUE='#'
-  FREETYPE_DELEGATE_FALSE=
-fi
 
 
 
@@ -31813,6 +31096,168 @@
 
 
 #
+# Check for Jpegxl delegate library.
+#
+
+# Check whether --with-jxl was given.
+if test "${with_jxl+set}" = set; then :
+  withval=$with_jxl; with_jxl=$withval
+else
+  with_jxl='yes'
+fi
+
+
+if test "$with_jxl" != 'yes'; then
+    DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
+fi
+
+# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
+# Full jxl support will be added once the full libraries are released.
+have_jxl='no'
+JXL_LIBS=''
+if test "$with_jxl" != 'no'; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5
+$as_echo "-------------------------------------------------------------" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for brunsli" >&5
+$as_echo_n "checking for brunsli... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  failed=0
+  passed=0
+  ac_fn_c_check_header_mongrel "$LINENO" "brunsli/decode.h" "ac_cv_header_brunsli_decode_h" "$ac_includes_default"
+if test "x$ac_cv_header_brunsli_decode_h" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "brunsli/encode.h" "ac_cv_header_brunsli_encode_h" "$ac_includes_default"
+if test "x$ac_cv_header_brunsli_encode_h" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DecodeBrunsli in -lbrunslidec-c" >&5
+$as_echo_n "checking for DecodeBrunsli in -lbrunslidec-c... " >&6; }
+if ${ac_cv_lib_brunslidec_c_DecodeBrunsli+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbrunslidec-c  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char DecodeBrunsli ();
+int
+main ()
+{
+return DecodeBrunsli ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_brunslidec_c_DecodeBrunsli=yes
+else
+  ac_cv_lib_brunslidec_c_DecodeBrunsli=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslidec_c_DecodeBrunsli" >&5
+$as_echo "$ac_cv_lib_brunslidec_c_DecodeBrunsli" >&6; }
+if test "x$ac_cv_lib_brunslidec_c_DecodeBrunsli" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EncodeBrunsli in -lbrunslienc-c" >&5
+$as_echo_n "checking for EncodeBrunsli in -lbrunslienc-c... " >&6; }
+if ${ac_cv_lib_brunslienc_c_EncodeBrunsli+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbrunslienc-c  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char EncodeBrunsli ();
+int
+main ()
+{
+return EncodeBrunsli ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_brunslienc_c_EncodeBrunsli=yes
+else
+  ac_cv_lib_brunslienc_c_EncodeBrunsli=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslienc_c_EncodeBrunsli" >&5
+$as_echo "$ac_cv_lib_brunslienc_c_EncodeBrunsli" >&6; }
+if test "x$ac_cv_lib_brunslienc_c_EncodeBrunsli" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if brunsli package is complete" >&5
+$as_echo_n "checking if brunsli package is complete... " >&6; }
+  if test $passed -gt 0; then
+      if test $failed -gt 0; then
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5
+$as_echo "no -- some components failed test" >&6; }
+          have_jxl='no (failed tests)'
+      else
+          JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+          LIBS="$JXL_LIBS $LIBS"
+
+$as_echo "#define JXL_DELEGATE 1" >>confdefs.h
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+          have_jxl='yes'
+      fi
+  else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  fi
+fi
+ if test "$have_jxl" = 'yes'; then
+  JXL_DELEGATE_TRUE=
+  JXL_DELEGATE_FALSE='#'
+else
+  JXL_DELEGATE_TRUE='#'
+  JXL_DELEGATE_FALSE=
+fi
+
+
+
+
+#
 # Check for LCMS delegate library.
 #
 
@@ -33366,6 +32811,7 @@
 
 
 
+
 #
 # Set URW Base35 font directory.
 #
@@ -33483,19 +32929,19 @@
 fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwebpmux >= 0.4.4" >&5
-$as_echo_n "checking for libwebpmux >= 0.4.4... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0" >&5
+$as_echo_n "checking for libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0... " >&6; }
 
 if test -n "$WEBPMUX_CFLAGS"; then
     pkg_cv_WEBPMUX_CFLAGS="$WEBPMUX_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebpmux >= 0.4.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libwebpmux >= 0.4.4") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_WEBPMUX_CFLAGS=`$PKG_CONFIG --cflags "libwebpmux >= 0.4.4" 2>/dev/null`
+  pkg_cv_WEBPMUX_CFLAGS=`$PKG_CONFIG --cflags "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -33507,12 +32953,12 @@
     pkg_cv_WEBPMUX_LIBS="$WEBPMUX_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebpmux >= 0.4.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libwebpmux >= 0.4.4") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_WEBPMUX_LIBS=`$PKG_CONFIG --libs "libwebpmux >= 0.4.4" 2>/dev/null`
+  pkg_cv_WEBPMUX_LIBS=`$PKG_CONFIG --libs "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -33533,9 +32979,9 @@
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        WEBPMUX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libwebpmux >= 0.4.4" 2>&1`
+	        WEBPMUX_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0" 2>&1`
         else
-	        WEBPMUX_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libwebpmux >= 0.4.4" 2>&1`
+	        WEBPMUX_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$WEBPMUX_PKG_ERRORS" >&5
@@ -33841,6 +33287,21 @@
 
 
 
+# Check for functions
+#
+for ac_func in acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getpwnam_r getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strcasestr strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
 # Substitute compiler name to build/link PerlMagick
 #
 
@@ -34156,6 +33617,7 @@
 RMDelegateDefault='rm'
 RSVGDecodeDelegateDefault='rsvg-convert'
 SVGDecodeDelegateDefault='inkscape'
+TraceEncodeDelegateDefault='potrace'
 UniconvertorDelegateDefault='uniconvertor'
 WebPDecodeDelegateDefault='dwebp'
 WebPEncodeDelegateDefault='cwebp'
@@ -35532,6 +34994,47 @@
 fi
 
 
+# Extract the first word of ""$TraceEncodeDelegateDefault"", so it can be a program name with args.
+set dummy "$TraceEncodeDelegateDefault"; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TraceEncodeDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TraceEncodeDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TraceEncodeDelegate="$TraceEncodeDelegate" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_TraceEncodeDelegate="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_TraceEncodeDelegate" && ac_cv_path_TraceEncodeDelegate=""$TraceEncodeDelegateDefault""
+  ;;
+esac
+fi
+TraceEncodeDelegate=$ac_cv_path_TraceEncodeDelegate
+if test -n "$TraceEncodeDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TraceEncodeDelegate" >&5
+$as_echo "$TraceEncodeDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of ""$UniconvertorDelegateDefault"", so it can be a program name with args.
 set dummy "$UniconvertorDelegateDefault"; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -35946,6 +35449,7 @@
   RSVGDecodeDelegate="$RSVGDecodeDelegateDefault"
   SVGDecodeDelegate="$SVGDecodeDelegateDefault"
   ShowImageDelegate="$ShowImageDelegateDefault"
+  TraceEncodeDelegate="$TraceEncodeDelegateDefault"
   UniconvertorDelegate="$UniconvertorDelegateDefault"
   WebPDecodeDelegate="$WebPDecodeDelegateDefault"
   WebPEncodeDelegate="$WebPEncodeDelegateDefault"
@@ -35984,6 +35488,7 @@
 
 
 
+
 #
 # RPM support.
 #
@@ -36362,7 +35867,7 @@
 # Ghostscript related configuration.
 #
 GSAlphaDevice=pngalpha
-GSColorDevice=pnmraw
+GSColorDevice=png16m
 GSCMYKDevice=pamcmyk32
 GSMonoDevice=pbmraw
 GSPDFDevice=pdfwrite
@@ -36725,6 +36230,9 @@
 if test "$have_jpeg"   = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES jpeg"
 fi
+if test "$have_jxl"   = 'yes' ; then
+   MAGICK_DELEGATES="$MAGICK_DELEGATES jxl"
+fi
 if test "$have_lcms" = 'yes' || test "$have_lcms2" = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES lcms"
 fi
@@ -36755,12 +36263,12 @@
 if test "$have_ps"     = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES ps"
 fi
-if test "$have_raw"    = 'yes' ; then
-   MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
-fi
 if test "$have_raqm"    = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES raqm"
 fi
+if test "$have_raw"    = 'yes' ; then
+   MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
+fi
 if test "$have_ra_ppm" = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES rad"
 fi
@@ -36928,9 +36436,9 @@
 #
 
 if test "$build_modules" != 'no'; then
-    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 else
-    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 fi
 MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
 
@@ -37183,6 +36691,10 @@
   as_fn_error $? "conditional \"WITH_MODULES\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_TRUE}" && test -z "${MAGICKCORE_ZERO_CONFIGURATION_SUPPORT_FALSE}"; then
+  as_fn_error $? "conditional \"MAGICKCORE_ZERO_CONFIGURATION_SUPPORT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
   as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37208,8 +36720,12 @@
   as_fn_error $? "conditional \"HasJEMALLOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${HasUMEM_TRUE}" && test -z "${HasUMEM_FALSE}"; then
-  as_fn_error $? "conditional \"HasUMEM\" was never defined.
+if test -z "${HAVE_TCMALLOC_TRUE}" && test -z "${HAVE_TCMALLOC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_TCMALLOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_UMEM_TRUE}" && test -z "${HAVE_UMEM_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_UMEM\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BZLIB_DELEGATE_TRUE}" && test -z "${BZLIB_DELEGATE_FALSE}"; then
@@ -37260,10 +36776,6 @@
   as_fn_error $? "conditional \"FONTCONFIG_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${FREETYPE_DELEGATE_TRUE}" && test -z "${FREETYPE_DELEGATE_FALSE}"; then
-  as_fn_error $? "conditional \"FREETYPE_DELEGATE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${RAQM_DELEGATE_TRUE}" && test -z "${RAQM_DELEGATE_FALSE}"; then
   as_fn_error $? "conditional \"RAQM_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37288,6 +36800,10 @@
   as_fn_error $? "conditional \"JPEG_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${JXL_DELEGATE_TRUE}" && test -z "${JXL_DELEGATE_FALSE}"; then
+  as_fn_error $? "conditional \"JXL_DELEGATE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${LCMS_DELEGATE_TRUE}" && test -z "${LCMS_DELEGATE_FALSE}"; then
   as_fn_error $? "conditional \"LCMS_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -37777,7 +37293,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ImageMagick $as_me 7.0.8-32, which was
+This file was extended by ImageMagick $as_me 7.0.9-15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -37844,7 +37360,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ImageMagick config.status 7.0.8-32
+ImageMagick config.status 7.0.9-15
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -39953,26 +39469,31 @@
 # ==============================================================================
 { $as_echo "$as_me:${as_lineno-$LINENO}:
 ==============================================================================
-ImageMagick is configured as follows. Please verify that this configuration
-matches your expectations.
+${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VERSION_ADDENDUM} is configured as follows. Please verify that this
+configuration matches your expectations.
 
-  Host system type: $host
-  Build system type: $build
+Host system type: $host
+Build system type: $build
 
-                 Option                        Value
-  ------------------------------------------------------------------------------
-  Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
-  Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
-  Build utilities   --with-utilities=$with_utilities        $with_utilities
-  Module support    --with-modules=$build_modules		$build_modules
-  GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
-  Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
-  High Dynamic Range Imagery
-                    --enable-hdri=$enable_hdri		$enable_hdri
+               Option                        Value
+------------------------------------------------------------------------------
+Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
+Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
+Build utilities   --with-utilities=$with_utilities		$with_utilities
+Module support    --with-modules=$build_modules		$build_modules
+GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
+Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
+High Dynamic Range Imagery
+                  --enable-hdri=$enable_hdri		$enable_hdri
 
-  Install documentation:			$wantdocs
+Install documentation:				$wantdocs
 
-  Delegate Library Configuration:
+Memory allocation library:
+  JEMalloc          --with-jemalloc=$with_jemalloc		$have_jemalloc
+  TCMalloc          --with-tcmalloc=$with_tcmalloc		$have_tcmalloc
+  UMem              --with-umem=$with_umem		$have_umem
+
+Delegate library configuration:
   BZLIB             --with-bzlib=$with_bzlib		$have_bzlib
   Autotrace         --with-autotrace=$with_autotrace		$have_autotrace
   DJVU              --with-djvu=$with_djvu		$have_djvu
@@ -39987,6 +39508,7 @@
   HEIC              --with-heic=$with_heic             $have_heic
   JBIG              --with-jbig=$with_jbig		$have_jbig
   JPEG v1           --with-jpeg=$with_jpeg		$have_jpeg
+  JPEG XL           --with-jxl=$with_jxl    $have_jxl
   LCMS              --with-lcms=$with_lcms		$have_lcms
   LQR               --with-lqr=$with_lqr		$have_lqr
   LTDL              --with-ltdl=$with_ltdl		$have_ltdl
@@ -40008,63 +39530,68 @@
   ZLIB              --with-zlib=$with_zlib		$have_zlib
   ZSTD              --with-zstd=$with_zstd		$have_zstd
 
-  Delegate Program Configuration:
-  GhostPCL          None				$PCLDelegate ($PCLVersion)
-  GhostXPS          None				$XPSDelegate ($XPSVersion)
-  Ghostscript       None				$PSDelegate ($GSVersion)
+Delegate program configuration:
+  GhostPCL          None			$PCLDelegate ($PCLVersion)
+  GhostXPS          None			$XPSDelegate ($XPSVersion)
+  Ghostscript       None			$PSDelegate ($GSVersion)
 
-  Font Configuration:
+Font configuration:
   Apple fonts       --with-apple-font-dir=$with_apple_font_dir	$result_apple_font_dir
   Dejavu fonts      --with-dejavu-font-dir=$with_dejavu_font_dir	$result_dejavu_font_dir
-  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir	$result_ghostscript_font_dir
-  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir  $result_urw_base35_font_dir
+  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir		$result_ghostscript_font_dir
+  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir	$result_urw_base35_font_dir
   Windows fonts     --with-windows-font-dir=$with_windows_font_dir	$result_windows_font_dir
 
-  X11 Configuration:
-        X_CFLAGS        = $X_CFLAGS
-        X_PRE_LIBS      = $X_PRE_LIBS
-        X_LIBS          = $X_LIBS
-        X_EXTRA_LIBS    = $X_EXTRA_LIBS
+X11 configuration:
+  X_CFLAGS        = $X_CFLAGS
+  X_PRE_LIBS      = $X_PRE_LIBS
+  X_LIBS          = $X_LIBS
+  X_EXTRA_LIBS    = $X_EXTRA_LIBS
 
-  Options used to compile and link:
-    PREFIX          = $PREFIX_DIR
-    EXEC-PREFIX     = $EXEC_PREFIX_DIR
-    VERSION         = $PACKAGE_VERSION
-    CC              = $CC
-    CFLAGS          = $CFLAGS
-    CPPFLAGS        = $CPPFLAGS
-    PCFLAGS         = $PCFLAGS
-    DEFS            = $DEFS
-    LDFLAGS         = $LDFLAGS
-    LIBS            = $MAGICK_DEP_LIBS
-    CXX             = $CXX
-    CXXFLAGS        = $CXXFLAGS
-    FEATURES        = $MAGICK_FEATURES
-    DELEGATES       = $MAGICK_DELEGATES
+Options used to compile and link:
+  PREFIX          = $PREFIX_DIR
+  EXEC-PREFIX     = $EXEC_PREFIX_DIR
+  VERSION         = $PACKAGE_VERSION
+  CC              = $CC
+  CFLAGS          = $CFLAGS
+  CPPFLAGS        = $CPPFLAGS
+  PCFLAGS         = $PCFLAGS
+  DEFS            = $DEFS
+  LDFLAGS         = $LDFLAGS
+  LIBS            = $MAGICK_DEP_LIBS
+  CXX             = $CXX
+  CXXFLAGS        = $CXXFLAGS
+  FEATURES        = $MAGICK_FEATURES
+  DELEGATES       = $MAGICK_DELEGATES
 ==============================================================================
 " >&5
 $as_echo "$as_me:
 ==============================================================================
-ImageMagick is configured as follows. Please verify that this configuration
-matches your expectations.
+${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VERSION_ADDENDUM} is configured as follows. Please verify that this
+configuration matches your expectations.
 
-  Host system type: $host
-  Build system type: $build
+Host system type: $host
+Build system type: $build
 
-                 Option                        Value
-  ------------------------------------------------------------------------------
-  Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
-  Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
-  Build utilities   --with-utilities=$with_utilities        $with_utilities
-  Module support    --with-modules=$build_modules		$build_modules
-  GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
-  Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
-  High Dynamic Range Imagery
-                    --enable-hdri=$enable_hdri		$enable_hdri
+               Option                        Value
+------------------------------------------------------------------------------
+Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
+Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
+Build utilities   --with-utilities=$with_utilities		$with_utilities
+Module support    --with-modules=$build_modules		$build_modules
+GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
+Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
+High Dynamic Range Imagery
+                  --enable-hdri=$enable_hdri		$enable_hdri
 
-  Install documentation:			$wantdocs
+Install documentation:				$wantdocs
 
-  Delegate Library Configuration:
+Memory allocation library:
+  JEMalloc          --with-jemalloc=$with_jemalloc		$have_jemalloc
+  TCMalloc          --with-tcmalloc=$with_tcmalloc		$have_tcmalloc
+  UMem              --with-umem=$with_umem		$have_umem
+
+Delegate library configuration:
   BZLIB             --with-bzlib=$with_bzlib		$have_bzlib
   Autotrace         --with-autotrace=$with_autotrace		$have_autotrace
   DJVU              --with-djvu=$with_djvu		$have_djvu
@@ -40079,6 +39606,7 @@
   HEIC              --with-heic=$with_heic             $have_heic
   JBIG              --with-jbig=$with_jbig		$have_jbig
   JPEG v1           --with-jpeg=$with_jpeg		$have_jpeg
+  JPEG XL           --with-jxl=$with_jxl    $have_jxl
   LCMS              --with-lcms=$with_lcms		$have_lcms
   LQR               --with-lqr=$with_lqr		$have_lqr
   LTDL              --with-ltdl=$with_ltdl		$have_ltdl
@@ -40100,38 +39628,38 @@
   ZLIB              --with-zlib=$with_zlib		$have_zlib
   ZSTD              --with-zstd=$with_zstd		$have_zstd
 
-  Delegate Program Configuration:
-  GhostPCL          None				$PCLDelegate ($PCLVersion)
-  GhostXPS          None				$XPSDelegate ($XPSVersion)
-  Ghostscript       None				$PSDelegate ($GSVersion)
+Delegate program configuration:
+  GhostPCL          None			$PCLDelegate ($PCLVersion)
+  GhostXPS          None			$XPSDelegate ($XPSVersion)
+  Ghostscript       None			$PSDelegate ($GSVersion)
 
-  Font Configuration:
+Font configuration:
   Apple fonts       --with-apple-font-dir=$with_apple_font_dir	$result_apple_font_dir
   Dejavu fonts      --with-dejavu-font-dir=$with_dejavu_font_dir	$result_dejavu_font_dir
-  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir	$result_ghostscript_font_dir
-  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir  $result_urw_base35_font_dir
+  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir		$result_ghostscript_font_dir
+  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir	$result_urw_base35_font_dir
   Windows fonts     --with-windows-font-dir=$with_windows_font_dir	$result_windows_font_dir
 
-  X11 Configuration:
-        X_CFLAGS        = $X_CFLAGS
-        X_PRE_LIBS      = $X_PRE_LIBS
-        X_LIBS          = $X_LIBS
-        X_EXTRA_LIBS    = $X_EXTRA_LIBS
+X11 configuration:
+  X_CFLAGS        = $X_CFLAGS
+  X_PRE_LIBS      = $X_PRE_LIBS
+  X_LIBS          = $X_LIBS
+  X_EXTRA_LIBS    = $X_EXTRA_LIBS
 
-  Options used to compile and link:
-    PREFIX          = $PREFIX_DIR
-    EXEC-PREFIX     = $EXEC_PREFIX_DIR
-    VERSION         = $PACKAGE_VERSION
-    CC              = $CC
-    CFLAGS          = $CFLAGS
-    CPPFLAGS        = $CPPFLAGS
-    PCFLAGS         = $PCFLAGS
-    DEFS            = $DEFS
-    LDFLAGS         = $LDFLAGS
-    LIBS            = $MAGICK_DEP_LIBS
-    CXX             = $CXX
-    CXXFLAGS        = $CXXFLAGS
-    FEATURES        = $MAGICK_FEATURES
-    DELEGATES       = $MAGICK_DELEGATES
+Options used to compile and link:
+  PREFIX          = $PREFIX_DIR
+  EXEC-PREFIX     = $EXEC_PREFIX_DIR
+  VERSION         = $PACKAGE_VERSION
+  CC              = $CC
+  CFLAGS          = $CFLAGS
+  CPPFLAGS        = $CPPFLAGS
+  PCFLAGS         = $PCFLAGS
+  DEFS            = $DEFS
+  LDFLAGS         = $LDFLAGS
+  LIBS            = $MAGICK_DEP_LIBS
+  CXX             = $CXX
+  CXXFLAGS        = $CXXFLAGS
+  FEATURES        = $MAGICK_FEATURES
+  DELEGATES       = $MAGICK_DELEGATES
 ==============================================================================
 " >&6;}
diff --git a/configure.ac b/configure.ac
index f27138e..df42a78 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -26,11 +26,17 @@
 # ==============================================================================
 m4_define([magick_major_version], [7])
 m4_define([magick_minor_version], [0])
-m4_define([magick_micro_version], [8])
-m4_define([magick_patchlevel_version], [32])
+m4_define([magick_micro_version], [9])
+m4_define([magick_patchlevel_version], [15])
 m4_define([magick_version],
           [magick_major_version.magick_minor_version.magick_micro_version-magick_patchlevel_version])
-m4_define([magick_git_revision], esyscmd([sh -c "(gitversion.sh .) | awk '{ print \$1 }' | tr -d '\n'"]))
+m4_define([magick_git_revision],
+          esyscmd([
+            c=$(git log --full-history --format=tformat:. HEAD | wc -l)
+            h=$(git rev-parse --short HEAD)
+            d=$(date +%Y%m%d)
+            printf %s "$c:$h:$d"
+          ]))
 m4_define([magick_tar_name],[ImageMagick])
 
 # ==============================================================================
@@ -56,7 +62,7 @@
 # Save initial user-tunable values
 #
 USER_LIBS=$LIBS
-for var in CC CFLAGS CPPFLAGS CXX CXXCPP LDFLAGS LIBS ; do
+for var in CC CFLAGS CPPFLAGS CXX CXXCPP LDFLAGS AR_FLAGS LIBS ; do
   eval isset=\${$var+set}
     if test "$isset" = 'set'; then
         eval val=$`echo $var`
@@ -295,6 +301,7 @@
 AC_PROG_LN_S
 AC_PROG_SED
 AC_PROG_AWK
+AC_PROG_MKDIR_P
 AM_WITH_DMALLOC
 AX_C___ATTRIBUTE__
 AX_GCC_ARCHFLAG([yes])
@@ -302,9 +309,6 @@
 AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 
-# Test for 64-bit build.
-AC_CHECK_SIZEOF([size_t])
-
 AX_COMPILER_VENDOR
 
 if test "x$GCC" = "xyes"; then
@@ -511,15 +515,14 @@
 fi
 
 # Enable support for OpenCL
+ax_cv_check_cl_libcl=no
 AX_OPENCL([C])
 CFLAGS="$CL_CFLAGS $CFLAGS"
 CPPFLAGS="$CL_CFLAGS $CPPFLAGS"
 LIBS="$CL_LIBS $LIBS"
 AC_SUBST(CL_CFLAGS)
-if test "$enable_opencl" != no; then
-  if test "X$ax_cv_check_cl_libcl" != Xno; then :
-    MAGICK_FEATURES="OpenCL $MAGICK_FEATURES"
-  fi
+if test "X$ax_cv_check_cl_libcl" != Xno; then :
+  MAGICK_FEATURES="OpenCL $MAGICK_FEATURES"
 fi
 
 ########
@@ -559,6 +562,7 @@
 AC_SUBST(LFS_CPPFLAGS)
 
 # Configure libtool
+: ${AR_FLAGS=cr}
 AC_LIBTOOL_DLOPEN
 LT_INIT([win32-dll])
 LT_LANG([C++])
@@ -659,6 +663,7 @@
     AC_DEFINE(ZERO_CONFIGURATION_SUPPORT,1,[Build self-contained, embeddable, zero-configuration ImageMagick])
     MAGICK_FEATURES="Zero-configuration $MAGICK_FEATURES"
 fi
+AM_CONDITIONAL([MAGICKCORE_ZERO_CONFIGURATION_SUPPORT], [test "$enable_zero_configuration" = yes])
 
 # Build a high dynamic range version of ImageMagick.
 AC_ARG_ENABLE([hdri],
@@ -779,7 +784,7 @@
 
 # Enable building command line utilities (default yes)
 AC_ARG_WITH(utilities,
-            [  --with-utilities enable building command-line utilities (default yes)],
+            [  --with-utilities	enable building command-line utilities (default yes)],
             [with_utilities=$withval], [with_utilities='yes'])
 AM_CONDITIONAL(WITH_UTILITIES, test "$with_utilities" = 'yes')
 
@@ -871,6 +876,16 @@
     DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jemalloc=$with_jemalloc "
 fi
 
+# Enable use of TCMalloc library.
+AC_ARG_WITH(tcmalloc,
+   AS_HELP_STRING([--with-tcmalloc],
+                  [enable tcmalloc memory allocation library support]),
+   [with_tcmalloc=$withval],
+   [with_tcmalloc='no'])
+if test "$with_tcmalloc" != 'no' ; then
+   DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-tcmalloc=$with_tcmalloc "
+fi
+
 # Enable umem, object-caching memory allocation library.
 AC_ARG_WITH(umem,
         [  --with-umem             enable umem memory allocation library support],
@@ -983,9 +998,6 @@
 AC_TYPE_INT64_T
 AC_TYPE_INTMAX_T
 AC_TYPE_INTPTR_T
-AC_TYPE_LONG_DOUBLE
-AC_TYPE_LONG_DOUBLE_WIDER
-AC_TYPE_LONG_LONG_INT
 AC_TYPE_MBSTATE_T
 AC_TYPE_MODE_T
 AC_TYPE_OFF_T
@@ -999,13 +1011,8 @@
 AC_TYPE_UINT64_T
 AC_TYPE_UINTMAX_T
 AC_TYPE_UINTPTR_T
-AC_TYPE_UNSIGNED_LONG_LONG_INT
-
-AC_CHECK_TYPES([locale_t], [], [], [[#include <xlocale.h>]])
 
 # Float_t and double_t are intended to be the the most efficient type.
-AC_CHECK_TYPES([float_t], [], [], [[#include <math.h>]])
-AC_CHECK_TYPES([double_t], [], [], [[#include <math.h>]])
 AC_CHECK_SIZEOF([float_t], [], [[#include <math.h>]])
 AC_CHECK_SIZEOF([double_t], [], [[#include <math.h>]])
 
@@ -1014,162 +1021,12 @@
 AC_CHECK_SIZEOF([double])
 AC_CHECK_SIZEOF([long double])
 
-# Obtain size of an 'signed short' and define as SIZEOF_SIGNED_SHORT
-AC_CHECK_SIZEOF(signed short)
-
-# Obtain size of an 'unsigned short' and define as SIZEOF_UNSIGNED_SHORT
-AC_CHECK_SIZEOF(unsigned short)
-
-# Obtain size of an 'signed int' and define as SIZEOF_SIGNED_INT
-AC_CHECK_SIZEOF(signed int)
-
-# Obtain size of an 'unsigned int' and define as SIZEOF_UNSIGNED_INT
-AC_CHECK_SIZEOF(unsigned int)
-
-# Obtain size of a 'signed long' and define as SIZEOF_SIGNED_LONG
-AC_CHECK_SIZEOF(signed long)
-
-# Obtain size of a 'unsigned long' and define as SIZEOF_UNSIGNED_LONG
-AC_CHECK_SIZEOF(unsigned long)
-
-# Obtain size of a 'long long' and define as SIZEOF_SIGNED_LONG_LONG.  If
-# 'signed long long' is not supported then the value defined is zero.
-AC_CHECK_SIZEOF(signed long long)
-
 # Obtain size of a 'unsigned long long' and define as
 # SIZEOF_UNSIGNED_LONG_LONG.  If 'unsigned long long' is not
 # supported then the value defined is zero.
 AC_CHECK_SIZEOF(unsigned long long)
 
-# Obtain size of off_t and define as SIZEOF_OFF_T
-AC_CHECK_SIZEOF(off_t)
-
-# Obtain size of size_t and define as SIZEOF_SIZE_T
-AC_CHECK_SIZEOF(size_t)
-
-# Obtain size of ssize_t and define as SIZEOF_SSIZE_T
-AC_CHECK_SIZEOF(ssize_t)
-
-# Obtain size of an unsigned int pointer and define as SIZEOF_UNSIGNED_INTP
-AC_CHECK_SIZEOF(unsigned int*)
-
-#
-# Compute sized types for current CPU and compiler options.
-#
-
-AC_MSG_CHECKING(for signed 8-bit type)
-INT8_T='signed char'
-AC_MSG_RESULT($INT8_T)
-AC_SUBST(INT8_T)
-
-AC_MSG_CHECKING(for unsigned 8-bit type)
-UINT8_T='unsigned char'
-AC_MSG_RESULT($UINT8_T)
-AC_SUBST(UINT8_T)
-
-AC_MSG_CHECKING(for signed 16-bit type)
-INT16_T='signed short'
-AC_MSG_RESULT($INT16_T)
-AC_SUBST(INT16_T)
-
-AC_MSG_CHECKING(for unsigned 16-bit type)
-UINT16_T='unsigned short'
-AC_MSG_RESULT($UINT16_T)
-AC_SUBST(UINT16_T)
-
-AC_MSG_CHECKING(for signed 32-bit type)
-INT32_T='none'
-INT32_F='none'
-if test $ac_cv_sizeof_signed_int -eq 4; then
-  INT32_T='signed int'
-  INT32_F='""'
-elif test $ac_cv_sizeof_signed_long -eq 4; then
-  INT32_T='signed long'
-  INT32_F='"l"'
-fi
-AC_MSG_RESULT($INT32_T)
-AC_SUBST(INT32_T)
-AC_SUBST(INT32_F)
-
-AC_MSG_CHECKING(for unsigned 32-bit type)
-UINT32_T='none'
-UINT32_F='none'
-if test $ac_cv_sizeof_unsigned_int -eq 4; then
-  UINT32_T='unsigned int'
-  UINT32_F='""'
-elif test $ac_cv_sizeof_unsigned_long -eq 4; then
-  UINT32_T='unsigned long'
-  UINT32_F='"l"'
-fi
-AC_MSG_RESULT($UINT32_T)
-AC_SUBST(UINT32_T)
-AC_SUBST(UINT32_F)
-
-AC_MSG_CHECKING(for signed 64-bit type)
-INT64_T='none'
-INT64_F='none'
-if test $ac_cv_sizeof_signed_long -eq 8; then
-  INT64_T='signed long'
-  INT64_F='"l"'
-elif test $ac_cv_sizeof_signed_long_long -eq 8; then
-  INT64_T='signed long long'
-  INT64_F='"ll"'
-fi
-case "${host_os}" in
-  mingw* )
-    INT64_F='"I64"'
-    ;;
-esac
-AC_MSG_RESULT($INT64_T)
-AC_SUBST(INT64_T)
-AC_SUBST(INT64_F)
-
-AC_MSG_CHECKING(for unsigned 64-bit type)
-UINT64_T='none'
-UINT64_F='none'
-if test $ac_cv_sizeof_unsigned_long -eq 8; then
-  UINT64_T='unsigned long'
-  UINT64_F='"l"'
-elif test $ac_cv_sizeof_unsigned_long_long -eq 8; then
-  UINT64_T='unsigned long long'
-  UINT64_F='"ll"'
-fi
-case "${host_os}" in
-  mingw* )
-    UINT64_F='"I64"'
-    ;;
-esac
-AC_MSG_RESULT($UINT64_T)
-AC_SUBST(UINT64_T)
-AC_SUBST(UINT64_F)
-
-AC_MSG_CHECKING(for unsigned maximum type)
-UINTMAX_T='none'
-UINTMAX_F='none'
-if test "$UINT64_T" != 'none'; then
-  UINTMAX_T=$UINT64_T
-  UINTMAX_F=$UINT64_F
-elif test "$UINT32_T" != 'none'; then
-  UINTMAX_T=$UINT32_T
-  UINTMAX_F=$UINT32_F
-fi
-AC_MSG_RESULT($UINTMAX_T)
-AC_SUBST(UINTMAX_T)
-AC_SUBST(UINTMAX_F)
-
-AC_MSG_CHECKING(for pointer difference type)
-UINTPTR_T='none'
-UINTPTR_F='none'
-if test $ac_cv_sizeof_unsigned_long -eq $ac_cv_sizeof_unsigned_intp; then
-  UINTPTR_T='unsigned long'
-  UINTPTR_F='"l"'
-elif test $ac_cv_sizeof_unsigned_long_long -eq $ac_cv_sizeof_unsigned_intp; then
-  UINTPTR_T='unsigned long long'
-  UINTPTR_F='"ll"'
-fi
-AC_MSG_RESULT($UINTPTR_T)
-AC_SUBST(UINTPTR_T)
-AC_SUBST(UINTPTR_F)
+AC_CHECK_SIZEOF(void *)
 
 AC_MSG_CHECKING([whether our compiler supports __func__])
 AC_TRY_COMPILE([],
@@ -1181,10 +1038,10 @@
    [{ const char *func = __FUNCTION__; return(func != 0 ? 0 : 1); }],
    AC_MSG_RESULT([yes])
    AC_DEFINE(__func__, __FUNCTION__,
-     [Define to appropriate substitue if compiler does not have __func__]),
+     [Define to appropriate substitute if compiler does not have __func__]),
    AC_MSG_RESULT([no])
    AC_DEFINE(__func__, __FILE__,
-     [Define to appropriate substitue if compiler does not have __func__])))
+     [Define to appropriate substitute if compiler does not have __func__])))
 
 ########
 #
@@ -1197,7 +1054,6 @@
 AC_FUNC_MEMCMP
 AC_FUNC_SELECT_ARGTYPES
 AC_FUNC_SETVBUF_REVERSED
-AC_TYPE_SIGNAL
 AC_FUNC_STRTOD
 AC_FUNC_STRERROR_R
 AC_FUNC_VPRINTF
@@ -1220,8 +1076,6 @@
   MAGICK_FEATURES="DPC $MAGICK_FEATURES"
 ])
 
-AC_CHECK_FUNCS([acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat])
-
 #
 # Check for clock_gettime().
 #
@@ -1473,6 +1327,37 @@
 AC_SUBST(JEMALLOC_LIBS)
 
 #
+# Check for TCMalloc library
+#
+have_tcmalloc='no'
+TCMALLOC_LIBS=''
+OLIBS="$LIBS"
+if test "$have_threads" = 'yes' -a "$with_tcmalloc" != 'no'; then
+    AC_MSG_CHECKING([tcmalloc library support ])
+    AC_MSG_RESULT([])
+    failed=0
+    passed=0
+
+    AC_CHECK_LIB([tcmalloc_minimal],[mallinfo],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+
+    if test $passed -gt 0; then
+        if test $failed -gt 0; then
+            have_tcmalloc='no (some components failed test)'
+        else
+            TCMALLOC_LIBS=-ltcmalloc_minimal
+            LIBS="$TCMALLOC_LIBS $LIBS"
+            CFLAGS="$CFLAGS -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free"
+            AC_DEFINE([HAVE_TCMALLOC],[1],[Define if you have the tcmalloc memory allocation library])
+            have_tcmalloc='yes'
+        fi
+    fi
+    AC_MSG_CHECKING([if tcmalloc memory allocation library is complete ])
+    AC_MSG_RESULT([$have_tcmalloc])
+fi
+AM_CONDITIONAL([HAVE_TCMALLOC], [test "$have_tcmalloc" = 'yes'])
+AC_SUBST([TCMALLOC_LIBS])
+
+#
 # Check for umem.
 #
 have_umem='no'
@@ -1493,7 +1378,7 @@
     else
       UMEM_LIBS='-lumem'
       LIBS="$UMEM_LIBS $LIBS"
-      AC_DEFINE(HasUMEM,1,Define if you have umem memory allocation library)
+      AC_DEFINE(HAVE_UMEM,1,Define if you have umem memory allocation library)
       AC_MSG_RESULT(yes)
       have_umem='yes'
     fi
@@ -1501,7 +1386,7 @@
     AC_MSG_RESULT(no)
   fi
 fi
-AM_CONDITIONAL(HasUMEM, test "$have_umem" = 'yes')
+AM_CONDITIONAL(HAVE_UMEM, test "$have_umem" = 'yes')
 AC_SUBST(UMEM_LIBS)
 
 #
@@ -2120,11 +2005,14 @@
 if test "$have_freetype" = 'yes'; then
   AC_DEFINE(FREETYPE_DELEGATE,1,Define if you have FREETYPE library)
   CFLAGS="$FREETYPE_CFLAGS $CFLAGS"
+  MAGICKCORE_FREETYPE_DELEGATE=1
+else
+  MAGICKCORE_FREETYPE_DELEGATE=0
 fi
 
-AM_CONDITIONAL(FREETYPE_DELEGATE, test "$have_freetype" = 'yes')
 AC_SUBST(FREETYPE_CFLAGS)
 AC_SUBST(FREETYPE_LIBS)
+AC_SUBST([MAGICKCORE_FREETYPE_DELEGATE])
 
 dnl ===========================================================================
 
@@ -2421,6 +2309,54 @@
 dnl ===========================================================================
 
 #
+# Check for Jpegxl delegate library.
+#
+AC_ARG_WITH([jxl],
+    [AC_HELP_STRING([--without-jxl],
+                    [disable Jpegxl support])],
+    [with_jxl=$withval],
+    [with_jxl='yes'])
+
+if test "$with_jxl" != 'yes'; then
+    DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
+fi
+
+# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
+# Full jxl support will be added once the full libraries are released.
+have_jxl='no'
+JXL_LIBS=''
+if test "$with_jxl" != 'no'; then
+  AC_MSG_RESULT([-------------------------------------------------------------])
+  AC_MSG_CHECKING([for brunsli])
+  AC_MSG_RESULT([])
+  failed=0
+  passed=0
+  AC_CHECK_HEADER(brunsli/decode.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`)
+  AC_CHECK_HEADER(brunsli/encode.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`)
+  AC_CHECK_LIB(brunslidec-c,DecodeBrunsli,passed=`expr $passed + 1`,failed=`expr $failed + 1`,)
+  AC_CHECK_LIB(brunslienc-c,EncodeBrunsli,passed=`expr $passed + 1`,failed=`expr $failed + 1`,)
+  AC_MSG_CHECKING([if brunsli package is complete])
+  if test $passed -gt 0; then
+      if test $failed -gt 0; then
+          AC_MSG_RESULT([no -- some components failed test])
+          have_jxl='no (failed tests)'
+      else
+          JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+          LIBS="$JXL_LIBS $LIBS"
+          AC_DEFINE(JXL_DELEGATE,1,Define if you have brunsli library)
+          AC_MSG_RESULT([yes])
+          have_jxl='yes'
+      fi
+  else
+      AC_MSG_RESULT([no])
+  fi
+fi
+AM_CONDITIONAL(JXL_DELEGATE, test "$have_jxl" = 'yes')
+AC_SUBST(JXL_LIBS)
+
+dnl ===========================================================================
+
+#
 # Check for LCMS delegate library.
 #
 AC_ARG_WITH(lcms,
@@ -2796,6 +2732,8 @@
 AM_CONDITIONAL(TIFF_DELEGATE, test "$have_tiff" = 'yes')
 AC_SUBST(TIFF_LIBS)
 
+dnl ===========================================================================
+
 #
 # Set URW Base35 font directory.
 #
@@ -2835,7 +2773,7 @@
 if test "x$with_webp" = "xyes"; then
   AC_MSG_RESULT([-------------------------------------------------------------])
   PKG_CHECK_MODULES(WEBP,[libwebp], have_webp=yes, have_webp=no)
-  PKG_CHECK_MODULES(WEBPMUX,[libwebpmux >= 0.4.4], have_webpmux=yes, have_webpmux=no)
+  PKG_CHECK_MODULES(WEBPMUX,[libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0], have_webpmux=yes, have_webpmux=no)
   AC_MSG_RESULT([])
 fi
 
@@ -2960,6 +2898,10 @@
 
 dnl ===========================================================================
 
+# Check for functions
+#
+AC_CHECK_FUNCS([acosh _aligned_malloc asinh atanh atoll atexit cabs carg cimag creal clock clock_getres clock_gettime ctime_r directio erf _exit execvp fchmod floor fork ftime ftruncate getc_unlocked getcwd getpid getexecname getdtablesize getpagesize getpwnam_r getrlimit getrusage gettimeofday gmtime_r isnan j0 j1 lltostr localtime_r lstat memmove memset mkstemp munmap nanosleep newlocale _NSGetExecutablePath pclose _pclose poll popen _popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_spawnp pow pread pwrite qsort_r raise rand_r readlink realpath select seekdir sendfile setlocale socket sqrt setvbuf stat strcasestr strchr strrchr strcspn strdup strpbrk strspn strstr strtod strtod_l strtol strtoul symlink sysconf sigemptyset sigaction spawnvp strerror strlcat strlcpy strcasecmp strncasecmp telldir tempnam times ulltostr uselocale usleep utime vfprintf vfprintf_l vsprintf vsnprintf vsnprintf_l waitpid _wfopen _wstat])
+
 # Substitute compiler name to build/link PerlMagick
 #
 AC_SUBST([PERLMAINCC])
@@ -3194,6 +3136,7 @@
 RMDelegateDefault='rm'
 RSVGDecodeDelegateDefault='rsvg-convert'
 SVGDecodeDelegateDefault='inkscape'
+TraceEncodeDelegateDefault='potrace'
 UniconvertorDelegateDefault='uniconvertor'
 WebPDecodeDelegateDefault='dwebp'
 WebPEncodeDelegateDefault='cwebp'
@@ -3240,6 +3183,7 @@
 AC_PATH_PROG(RMDelegate, "$RMDelegateDefault", "$RMDelegateDefault")
 AC_PATH_PROG(RSVGDecodeDelegate, "$RSVGDecodeDelegateDefault", "$RSVGDecodeDelegateDefault")
 AC_PATH_PROG(SVGDecodeDelegate, "$SVGDecodeDelegateDefault", "$SVGDecodeDelegateDefault")
+AC_PATH_PROG(TraceEncodeDelegate, "$TraceEncodeDelegateDefault", "$TraceEncodeDelegateDefault")
 AC_PATH_PROG(UniconvertorDelegate, "$UniconvertorDelegateDefault", "$UniconvertorDelegateDefault")
 AC_PATH_PROG(WebPDecodeDelegate, "$WebPDecodeDelegateDefault", "$WebPDecodeDelegateDefault")
 AC_PATH_PROG(WebPEncodeDelegate, "$WebPEncodeDelegateDefault", "$WebPEncodeDelegateDefault")
@@ -3439,6 +3383,7 @@
   RSVGDecodeDelegate="$RSVGDecodeDelegateDefault"
   SVGDecodeDelegate="$SVGDecodeDelegateDefault"
   ShowImageDelegate="$ShowImageDelegateDefault"
+  TraceEncodeDelegate="$TraceEncodeDelegateDefault"
   UniconvertorDelegate="$UniconvertorDelegateDefault"
   WebPDecodeDelegate="$WebPDecodeDelegateDefault"
   WebPEncodeDelegate="$WebPEncodeDelegateDefault"
@@ -3461,9 +3406,9 @@
 AC_SUBST(ILBMEncodeDelegate)
 AC_SUBST(JXRDecodeDelegate)
 AC_SUBST(JXREncodeDelegate)
+AC_SUBST(LaunchDelegate)
 AC_SUBST(LEPDelegate)
 AC_SUBST(LPDelegate)
-AC_SUBST(LaunchDelegate)
 AC_SUBST(MPEGDecodeDelegate)
 AC_SUBST(MPEGEncodeDelegate)
 AC_SUBST(MogrifyDelegate)
@@ -3471,6 +3416,7 @@
 AC_SUBST(PCLDelegate)
 AC_SUBST(PSDelegate)
 AC_SUBST(ShowImageDelegate)
+AC_SUBST(TraceEncodeDelegate)
 AC_SUBST(UniconvertorDelegate)
 AC_SUBST(WebPDecodeDelegate)
 AC_SUBST(WebPEncodeDelegate)
@@ -3603,7 +3549,7 @@
 # Ghostscript related configuration.
 #
 GSAlphaDevice=pngalpha
-GSColorDevice=pnmraw
+GSColorDevice=png16m
 GSCMYKDevice=pamcmyk32
 GSMonoDevice=pbmraw
 GSPDFDevice=pdfwrite
@@ -3800,6 +3746,9 @@
 if test "$have_jpeg"   = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES jpeg"
 fi
+if test "$have_jxl"   = 'yes' ; then
+   MAGICK_DELEGATES="$MAGICK_DELEGATES jxl"
+fi
 if test "$have_lcms" = 'yes' || test "$have_lcms2" = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES lcms"
 fi
@@ -3830,12 +3779,12 @@
 if test "$have_ps"     = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES ps"
 fi
-if test "$have_raw"    = 'yes' ; then
-   MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
-fi
 if test "$have_raqm"    = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES raqm"
 fi
+if test "$have_raw"    = 'yes' ; then
+   MAGICK_DELEGATES="$MAGICK_DELEGATES raw"
+fi
 if test "$have_ra_ppm" = 'yes' ; then
    MAGICK_DELEGATES="$MAGICK_DELEGATES rad"
 fi
@@ -3915,9 +3864,9 @@
 #
 
 if test "$build_modules" != 'no'; then
-    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 else
-    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 fi
 MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
 AC_SUBST(MAGICK_DEP_LIBS)
@@ -4037,26 +3986,31 @@
 # ==============================================================================
 AC_MSG_NOTICE([
 ==============================================================================
-ImageMagick is configured as follows. Please verify that this configuration
-matches your expectations.
+${PACKAGE_NAME} ${PACKAGE_VERSION}${PACKAGE_VERSION_ADDENDUM} is configured as follows. Please verify that this
+configuration matches your expectations.
 
-  Host system type: $host
-  Build system type: $build
+Host system type: $host
+Build system type: $build
 
-                 Option                        Value
-  ------------------------------------------------------------------------------
-  Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
-  Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
-  Build utilities   --with-utilities=$with_utilities        $with_utilities
-  Module support    --with-modules=$build_modules		$build_modules
-  GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
-  Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
-  High Dynamic Range Imagery
-                    --enable-hdri=$enable_hdri		$enable_hdri
+               Option                        Value
+------------------------------------------------------------------------------
+Shared libraries  --enable-shared=$enable_shared		$libtool_build_shared_libs
+Static libraries  --enable-static=$enable_static		$libtool_build_static_libs
+Build utilities   --with-utilities=$with_utilities		$with_utilities
+Module support    --with-modules=$build_modules		$build_modules
+GNU ld            --with-gnu-ld=$with_gnu_ld		$lt_cv_prog_gnu_ld
+Quantum depth     --with-quantum-depth=$with_quantum_depth	$with_quantum_depth
+High Dynamic Range Imagery
+                  --enable-hdri=$enable_hdri		$enable_hdri
 
-  Install documentation:			$wantdocs
+Install documentation:				$wantdocs
 
-  Delegate Library Configuration:
+Memory allocation library:
+  JEMalloc          --with-jemalloc=$with_jemalloc		$have_jemalloc
+  TCMalloc          --with-tcmalloc=$with_tcmalloc		$have_tcmalloc
+  UMem              --with-umem=$with_umem		$have_umem
+
+Delegate library configuration:
   BZLIB             --with-bzlib=$with_bzlib		$have_bzlib
   Autotrace         --with-autotrace=$with_autotrace		$have_autotrace
   DJVU              --with-djvu=$with_djvu		$have_djvu
@@ -4071,6 +4025,7 @@
   HEIC              --with-heic=$with_heic             $have_heic
   JBIG              --with-jbig=$with_jbig		$have_jbig
   JPEG v1           --with-jpeg=$with_jpeg		$have_jpeg
+  JPEG XL           --with-jxl=$with_jxl    $have_jxl
   LCMS              --with-lcms=$with_lcms		$have_lcms
   LQR               --with-lqr=$with_lqr		$have_lqr
   LTDL              --with-ltdl=$with_ltdl		$have_ltdl
@@ -4092,38 +4047,38 @@
   ZLIB              --with-zlib=$with_zlib		$have_zlib
   ZSTD              --with-zstd=$with_zstd		$have_zstd
 
-  Delegate Program Configuration:
-  GhostPCL          None				$PCLDelegate ($PCLVersion)
-  GhostXPS          None				$XPSDelegate ($XPSVersion)
-  Ghostscript       None				$PSDelegate ($GSVersion)
+Delegate program configuration:
+  GhostPCL          None			$PCLDelegate ($PCLVersion)
+  GhostXPS          None			$XPSDelegate ($XPSVersion)
+  Ghostscript       None			$PSDelegate ($GSVersion)
 
-  Font Configuration:
+Font configuration:
   Apple fonts       --with-apple-font-dir=$with_apple_font_dir	$result_apple_font_dir
   Dejavu fonts      --with-dejavu-font-dir=$with_dejavu_font_dir	$result_dejavu_font_dir
-  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir	$result_ghostscript_font_dir
-  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir  $result_urw_base35_font_dir
+  Ghostscript fonts --with-gs-font-dir=$with_gs_font_dir		$result_ghostscript_font_dir
+  URW-base35 fonts  --with-urw-base35-font-dir=$with_urw_base35_font_dir	$result_urw_base35_font_dir
   Windows fonts     --with-windows-font-dir=$with_windows_font_dir	$result_windows_font_dir
 
-  X11 Configuration:
-        X_CFLAGS        = $X_CFLAGS
-        X_PRE_LIBS      = $X_PRE_LIBS
-        X_LIBS          = $X_LIBS
-        X_EXTRA_LIBS    = $X_EXTRA_LIBS
+X11 configuration:
+  X_CFLAGS        = $X_CFLAGS
+  X_PRE_LIBS      = $X_PRE_LIBS
+  X_LIBS          = $X_LIBS
+  X_EXTRA_LIBS    = $X_EXTRA_LIBS
 
-  Options used to compile and link:
-    PREFIX          = $PREFIX_DIR
-    EXEC-PREFIX     = $EXEC_PREFIX_DIR
-    VERSION         = $PACKAGE_VERSION
-    CC              = $CC
-    CFLAGS          = $CFLAGS
-    CPPFLAGS        = $CPPFLAGS
-    PCFLAGS         = $PCFLAGS
-    DEFS            = $DEFS
-    LDFLAGS         = $LDFLAGS
-    LIBS            = $MAGICK_DEP_LIBS
-    CXX             = $CXX
-    CXXFLAGS        = $CXXFLAGS
-    FEATURES        = $MAGICK_FEATURES
-    DELEGATES       = $MAGICK_DELEGATES
+Options used to compile and link:
+  PREFIX          = $PREFIX_DIR
+  EXEC-PREFIX     = $EXEC_PREFIX_DIR
+  VERSION         = $PACKAGE_VERSION
+  CC              = $CC
+  CFLAGS          = $CFLAGS
+  CPPFLAGS        = $CPPFLAGS
+  PCFLAGS         = $PCFLAGS
+  DEFS            = $DEFS
+  LDFLAGS         = $LDFLAGS
+  LIBS            = $MAGICK_DEP_LIBS
+  CXX             = $CXX
+  CXXFLAGS        = $CXXFLAGS
+  FEATURES        = $MAGICK_FEATURES
+  DELEGATES       = $MAGICK_DELEGATES
 ==============================================================================
 ])
diff --git a/filters/Android.bp b/filters/Android.bp
index 066f49a..af29fdc 100644
--- a/filters/Android.bp
+++ b/filters/Android.bp
@@ -26,4 +26,5 @@
     ],
 
     header_libs: ["Magick_headers"],
+    visibility: ["//vendor:__subpackages__"],
 }
diff --git a/filters/Makefile.am b/filters/Makefile.am
index 18c4954..332eecc 100644
--- a/filters/Makefile.am
+++ b/filters/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -20,11 +20,11 @@
 MAGICK_FILTER_CPPFLAGS = $(AM_CPPFLAGS)
 
 MAGICKCORE_FILTER_SRCS = \
-	filters/analyze.c
+  filters/analyze.c
 
 if WITH_MODULES
 filters_LTLIBRARIES = \
-	filters/analyze.la
+  filters/analyze.la
 else
 filters_LTLIBRARIES =
 endif # WITH_MODULES
diff --git a/filters/analyze.c b/filters/analyze.c
index 2a91aa7..836a257 100644
--- a/filters/analyze.c
+++ b/filters/analyze.c
@@ -15,7 +15,7 @@
 %                              December 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/gitversion.sh b/gitversion.sh
deleted file mode 100755
index 3dfaba0..0000000
--- a/gitversion.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-git_rev ()
-{
-    d=`date +%Y%m%d`
-    c=`git rev-list --full-history --all --abbrev-commit | wc -l | sed -e 's/^ *//'`
-    h=`git rev-list --full-history --all --abbrev-commit | head -1`
-    echo ${c}:${h}:${d}
-}
-git_rev
diff --git a/images/wizard.jpg b/images/wizard.jpg
index 0e64cca..5b9529c 100644
--- a/images/wizard.jpg
+++ b/images/wizard.jpg
Binary files differ
diff --git a/index.html b/index.html
index b2936a0..8d7692a 100644
--- a/index.html
+++ b/index.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Convert, Edit, Or Compose Bitmap Images @ ImageMagick</title>
+  <title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="convert, edit, or, compose, bitmap, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,17 +19,22 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='./' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='./images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="api/quantize.html" rel="canonical" />
+  <link href="www/index.html" rel="canonical" />
   <link href="images/wand.png" rel="icon" />
   <link href="images/wand.ico" rel="shortcut icon" />
   <link href="www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -86,28 +92,23 @@
 <p class="lead magick-description"><a href="images/wizard.png" title="And Now a Touch of Magick"><img class="img-fluid magick-icon" id="logo" alt="And Now a Touch of Magick" width="265" height="352" src="images/wizard.jpg" /></a> 
 Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;entry=78333969">&#174;</a></sup> to create, edit, compose, or convert bitmap images.  It can read and write images in a variety of <a href="www/formats.html">formats</a> (over 200) including PNG, JPEG, GIF, HEIC, TIFF, <a href="www/motion-picture.html">DPX</a>, <a href="www/high-dynamic-range.html">EXR</a>, WebP, Postscript, PDF, and SVG.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.</p>
 
-<p>The functionality of ImageMagick is typically utilized from the <a href="www/command-line-processing.html">command-line</a> or you can use the features from programs written in your favorite language. Choose from these interfaces: <a href="www/develop.html#ada">G2F</a> (Ada), <a href="www/develop.html#c">MagickCore</a> (C), <a href="www/develop.html#c">MagickWand</a> (C), <a href="www/develop.html#ch">ChMagick</a> (Ch), <a href="www/develop.html#com_">ImageMagickObject</a> (COM+), <a href="www/develop.html#c__">Magick++</a> (C++), <a href="www/develop.html#java">JMagick</a> (Java), <a href="www/develop.html#julia">JuliaIO</a> (Julia), <a href="www/develop.html#lisp">L-Magick</a> (Lisp), <a href="www/develop.html#lua">Lua</a> (LuaJIT), <a href="www/develop.html#neko">NMagick</a> (Neko/haXe), <a href="www/develop.html#dot-net">Magick.NET</a> (.NET), <a href="www/develop.html#pascal">PascalMagick</a> (Pascal),  <a href="www/develop.html#perl">PerlMagick</a> (Perl), <a href="www/develop.html#php">MagickWand for PHP</a> (PHP),  <a href="www/develop.html#php">IMagick</a> (PHP), <a href="www/develop.html#python">PythonMagick</a> (Python), <a href="www/develop.html#r">magick</a> (R), <a href="www/develop.html#ruby">RMagick</a> (Ruby), or <a href="www/develop.html#tcl">TclMagick</a> (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and <var>automagically</var>.</p>
-<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 <p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="www/license.html">license</a>.</p>
+<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 
-<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to help prevent security vulnerabilities.</p>
+<p>The current release is ImageMagick <a href="www/download.html">7.0.9-14</a>.  It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
 
-<p>The current release is ImageMagick <a href="www/download.html">7.0.8-23</a>.  It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, Android OS, and others.</p>
-
-<p>The authoritative ImageMagick web site is <a href="./">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a>.</p>
-
-<p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="./">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
 
 <h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
-<p>Here are just a few <a href="./www/examples.html">examples</a> of what ImageMagick can do for you:</p>
-<div class="table-responsive">
+<p>Here are just a few <a href="www/examples.html">examples</a> of what ImageMagick can do for you:</p>
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td><a href="./Usage/anim_basics/">Animation</a></td>
     <td>create a GIF animation sequence from a group of images.</td>
   </tr>
   <tr>
-    <td><a href="./www/color-management.html">Color management</a></td>
+    <td><a href="www/color-management.html">Color management</a></td>
     <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
   </tr>
   <tr>
@@ -119,11 +120,11 @@
     <td>bidirectional text support and shaping.</td>
   </tr>
   <tr>
-    <td><a href="./www/composite.html">Composite</a></td>
+    <td><a href="www/composite.html">Composite</a></td>
     <td>overlap one image over another.</td>
   </tr>
   <tr>
-    <td><a href="./www/connected-components.html">Connected component labeling</a></td>
+    <td><a href="www/connected-components.html">Connected component labeling</a></td>
     <td>uniquely label connected regions in an image.</td>
   </tr>
   <tr>
@@ -139,7 +140,7 @@
     <td>implements the forward and inverse <a href="https://en.wikipedia.org/wiki/Discrete_Fourier_transform">DFT</a>.</td>
   </tr>
   <tr>
-    <td><a href="./www/distribute-pixel-cache.html">Distributed pixel cache</a></td>
+    <td><a href="www/distribute-pixel-cache.html">Distributed pixel cache</a></td>
     <td>offload intermediate pixel storage to one or more remote servers.</td>
   </tr>
   <tr>
@@ -147,7 +148,7 @@
     <td>add shapes or text to an image.</td>
   </tr>
   <tr>
-    <td><a href="./www/cipher.html">Encipher or decipher an image</a></td>
+    <td><a href="www/cipher.html">Encipher or decipher an image</a></td>
     <td>convert ordinary images into unintelligible gibberish and back again.</td>
   </tr>
   <tr>
@@ -160,22 +161,26 @@
   </tr>
   <tr>
     <td><a href="www/architecture.html#distributed">Heterogeneous distributed processing</a></td>
-    <td>certain algorithms are <a href="./www/opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
+    <td>certain algorithms are <a href="www/opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
   </tr>
   <tr>
     <td><a href="www/high-dynamic-range.html">High dynamic-range images</a></td>
     <td>accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</td>
   </tr>
   <tr>
-    <td><a href="./www/fx.html">Image calculator</a></td>
-    <td>apply a mathematical expression to an image or image channels.</td>
+    <td><a href="www/clahe.html">Histogram Equalization</a></td>
+    <td>Use adaptive histogram equalization to improve contrast in images.</td>
+  </tr>
+  <tr>
+    <td><a href="www/fx.html">Image calculator</a></td>
+    <td>apply a mathematical expression to an image, image sequence, or image channels.</td>
   </tr>
   <tr>
     <td><a href="www/gradient.html">Image gradients</a></td>
     <td>create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</td>
   </tr>
   <tr>
-    <td><a href="./www/identify.html">Image identification</a></td>
+    <td><a href="www/identify.html">Image identification</a></td>
     <td>describe the format and attributes of an image.</td>
   </tr>
   <tr>
@@ -216,7 +221,7 @@
   </tr>
   <tr>
     <td><a href="www/architecture.html#threads">Threads of execution support</a></td>
-    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="./www/openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
+    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="www/openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
   </tr>
   <tr>
     <td><a href="./Usage/resize/">Transform</a></td>
@@ -233,21 +238,24 @@
 </table>
 </div>
 
-<p><a href="./Usage/">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
+<p><a href="./Usage/" target="_blank">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/" target="_blank">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
 
 <h2><a class="anchor" id="news"></a>News</h2>
 
-<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="./www/porting.html">porting guide</a>.</p>
+<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="www/porting.html">porting guide</a>.</p>
 
 <p>ImageMagick best practices <strong>strongly</strong> encourages you to configure a <a href="www/security-policy.html">security policy</a> that suits your local environment.</p>
 
+<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to detect and prevent security vulnerabilities.</p>
+
 <p>As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace.  Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).</p>
 
 <p>Want more performance from ImageMagick?  Try these options:</p>
 
 <ul>
-<li>Add more memory to your system, see <a href="www/architecture.html#cache">the pixel cache</a>;</li>
-<li>Add more cores to your system, see <a href="www/architecture.html#threads">threads of execution support</a>;</li>
+<li>add more memory to your system, see <a href="www/architecture.html#cache">the pixel cache</a>;</li>
+<li>add more cores to your system, see <a href="www/architecture.html#threads">threads of execution support</a>;</li>
+<li>reduce lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library;</li>
 <li>push large images to a solid-state drive, see <a href="www/architecture.html#tera-pixel">large image support</a>.</li>
 </ul>
 <p>If these options are prohibitive, you can reduce the quality of the image results.  The default build is Q16 HDRI.  If you disable <a href="www/high-dynamic-range.html">HDRI</a>, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations.  The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative).  If you build the Q8 non-HDRI  version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values.  For a Q8 non-HDRI build of ImageMagick, use these <code>configure</code> script options: <code>--with-quantum-depth=8 --disable-hdri</code>.</p>
@@ -259,21 +267,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="www/security-policy.html">Security</a> •
-    <a href="www/architecture.html">Architecture</a> •
+    <a href="www/architecture.html">Architecture</a>
+     
+    <a href="index.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="images/wand.ico"/></a>
+     
     <a href="www/links.html">Related</a> •
      <a href="www/sitemap.html">Sitemap</a>
-       
-    <a href="index.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="www/support.html">Donate</a> •
-    <a href="www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="www/assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:10 -->
\ No newline at end of file
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 7696b48..eecee67 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -15,27 +15,27 @@
 #  Makefile for building ImageMagick m4 macros.
 
 M4_EXTRA_DIST =  \
-	ac_func_fseeko.m4  \
-	ax_append_flag.m4  \
-	ax_c___attribute__.m4  \
-	ax_cflags_warn_all.m4  \
-	ax_compare_version.m4  \
-	ax_cxx_bool.m4  \
-	ax_cxx_namespaces.m4  \
-	ax_cxx_namespace_std.m4  \
-	ax_lang_compiler_ms.m4  \
-	ax_opencl.m4  \
-	ax_prefix_config_h.m4  \
-	ax_prog_perl_version.m4  \
-	ax_pthread.m4  \
-	ax_require_defined.m4  \
-	cxx_have_lstring.m4  \
-	cxx_have_std_libs.m4  \
-	framework.m4  \
-	libtool.m4  \
-	lt~obsolete.m4  \
-	ltoptions.m4  \
-	ltsugar.m4  \
-	ltversion.m4  \
-	magick_check_pthread_lib.m4  \
-	pkg.m4  
+  ac_func_fseeko.m4  \
+  ax_append_flag.m4  \
+  ax_c___attribute__.m4  \
+  ax_cflags_warn_all.m4  \
+  ax_compare_version.m4  \
+  ax_cxx_bool.m4  \
+  ax_cxx_namespaces.m4  \
+  ax_cxx_namespace_std.m4  \
+  ax_lang_compiler_ms.m4  \
+  ax_opencl.m4  \
+  ax_prefix_config_h.m4  \
+  ax_prog_perl_version.m4  \
+  ax_pthread.m4  \
+  ax_require_defined.m4  \
+  cxx_have_lstring.m4  \
+  cxx_have_std_libs.m4  \
+  framework.m4  \
+  libtool.m4  \
+  lt~obsolete.m4  \
+  ltoptions.m4  \
+  ltsugar.m4  \
+  ltversion.m4  \
+  magick_check_pthread_lib.m4  \
+  pkg.m4
diff --git a/magick.sh.in b/magick.sh.in
index 159fb3d..221ec46 100755
--- a/magick.sh.in
+++ b/magick.sh.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -26,7 +26,7 @@
 MAGICK_CONFIGURE_SRC_PATH='@MAGICK_CONFIGURE_SRC_PATH@'
 MAGICK_CONFIGURE_BUILD_PATH='@MAGICK_CONFIGURE_BUILD_PATH@'
 MAGICK_FILTER_MODULE_PATH='@MAGICK_FILTER_MODULE_PATH@'
-DIRSEP='@DIRSEP@'
+DIRSEP=':'
 
 PATH="${top_builddir}/utilities:${PATH}"
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7968612..906e054 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 # dedicated to making software imaging solutions freely available.
 #
 # You may not use this file except in compliance with the License.
@@ -16,9 +16,9 @@
 TESTS_CPPFLAGS = $(AM_CPPFLAGS)
 
 TESTS_CHECK_PGRMS = \
-	tests/validate \
-	tests/drawtest \
-	tests/wandtest
+  tests/validate \
+  tests/drawtest \
+  tests/wandtest
 
 tests_validate_SOURCES  = tests/validate.c tests/validate.h
 tests_validate_CPPFLAGS = $(TESTS_CPPFLAGS)
@@ -38,31 +38,31 @@
 TESTS_XFAIL_TESTS = 
 
 TESTS_TESTS = \
-	tests/cli-colorspace.tap \
-	tests/cli-pipe.tap \
-	tests/validate-colorspace.tap \
-	tests/validate-compare.tap \
-	tests/validate-composite.tap \
-	tests/validate-convert.tap \
-	tests/validate-formats-disk.tap \
-	tests/validate-formats-map.tap \
-	tests/validate-formats-memory.tap \
-	tests/validate-identify.tap \
-	tests/validate-import.tap \
-	tests/validate-montage.tap \
-	tests/validate-stream.tap \
-	tests/drawtest.tap \
-	tests/wandtest.tap
+  tests/cli-colorspace.tap \
+  tests/cli-pipe.tap \
+  tests/validate-colorspace.tap \
+  tests/validate-compare.tap \
+  tests/validate-composite.tap \
+  tests/validate-convert.tap \
+  tests/validate-formats-disk.tap \
+  tests/validate-formats-map.tap \
+  tests/validate-formats-memory.tap \
+  tests/validate-identify.tap \
+  tests/validate-import.tap \
+  tests/validate-montage.tap \
+  tests/validate-stream.tap \
+  tests/drawtest.tap \
+  tests/wandtest.tap
 
 TESTS_EXTRA_DIST = \
-	tests/common.shi \
+  tests/common.shi \
   tests/rose.pnm \
   tests/input_256c.miff \
   tests/input_bilevel.miff \
   tests/input_gray.miff \
   tests/input_truecolor.miff \
   tests/sequence.miff \
-	$(TESTS_TESTS)
+  $(TESTS_TESTS)
 
 TESTS_CLEANFILES = \
-	tests/*_out.*
+  tests/*_out.*
diff --git a/tests/cli-colorspace.tap b/tests/cli-colorspace.tap
index 8f83279..f253256 100755
--- a/tests/cli-colorspace.tap
+++ b/tests/cli-colorspace.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/cli-pipe.tap b/tests/cli-pipe.tap
index ee67cd5..64a76d1 100755
--- a/tests/cli-pipe.tap
+++ b/tests/cli-pipe.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/drawtest.c b/tests/drawtest.c
index 1d734fd..ce55b4e 100644
--- a/tests/drawtest.c
+++ b/tests/drawtest.c
@@ -24,7 +24,7 @@
 %                                March 2002                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/tests/drawtest.tap b/tests/drawtest.tap
index 08b3f06..2931fd2 100755
--- a/tests/drawtest.tap
+++ b/tests/drawtest.tap
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 1999-2019 ImageMagick Studio LLC
+# Copyright (C) 1999-2020 ImageMagick Studio LLC
 #
 # This program is covered by multiple licenses, which are described in
 # LICENSE. You should have received a copy of LICENSE with this
diff --git a/tests/validate-colorspace.tap b/tests/validate-colorspace.tap
index 76cf1e7..59d85f6 100755
--- a/tests/validate-colorspace.tap
+++ b/tests/validate-colorspace.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-compare.tap b/tests/validate-compare.tap
index 1b1ebdf..b31d867 100755
--- a/tests/validate-compare.tap
+++ b/tests/validate-compare.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-composite.tap b/tests/validate-composite.tap
index 7ef77f0..5d9c2fb 100755
--- a/tests/validate-composite.tap
+++ b/tests/validate-composite.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-convert.tap b/tests/validate-convert.tap
index 42c8c66..eda4b03 100755
--- a/tests/validate-convert.tap
+++ b/tests/validate-convert.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-disk.tap b/tests/validate-formats-disk.tap
index dbd327c..5ee6160 100755
--- a/tests/validate-formats-disk.tap
+++ b/tests/validate-formats-disk.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-map.tap b/tests/validate-formats-map.tap
index f504df7..e0dc380 100755
--- a/tests/validate-formats-map.tap
+++ b/tests/validate-formats-map.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-memory.tap b/tests/validate-formats-memory.tap
index 4fe4f65..40c1d43 100755
--- a/tests/validate-formats-memory.tap
+++ b/tests/validate-formats-memory.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-identify.tap b/tests/validate-identify.tap
index f6f8ee6..d2e3c2a 100755
--- a/tests/validate-identify.tap
+++ b/tests/validate-identify.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-import.tap b/tests/validate-import.tap
index c649fb8..f4f6135 100755
--- a/tests/validate-import.tap
+++ b/tests/validate-import.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-montage.tap b/tests/validate-montage.tap
index ee2fc19..fc136b2 100755
--- a/tests/validate-montage.tap
+++ b/tests/validate-montage.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-stream.tap b/tests/validate-stream.tap
index 4f1b265..3480af0 100755
--- a/tests/validate-stream.tap
+++ b/tests/validate-stream.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate.c b/tests/validate.c
index b02e816..c1b2483 100644
--- a/tests/validate.c
+++ b/tests/validate.c
@@ -18,7 +18,7 @@
 %                               March 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -40,12 +40,7 @@
 /*
   Include declarations.
 */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include <locale.h>
+#include "MagickWand/studio.h"
 #include "MagickWand/MagickWand.h"
 #include "MagickCore/colorspace-private.h"
 #include "MagickCore/gem.h"
diff --git a/tests/validate.h b/tests/validate.h
index 3803f43..f53e6e5 100644
--- a/tests/validate.h
+++ b/tests/validate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -347,6 +347,7 @@
     { "TIFF64", UndefinedCompression, 0.0 },
     { "TILE", UndefinedCompression, 0.0 },
     { "TIM", UndefinedCompression, 0.0 },
+    { "TIM2", UndefinedCompression, 0.0 },
     { "TTC", UndefinedCompression, 0.0 },
     { "TTF", UndefinedCompression, 0.0 },
     { "TXT", UndefinedCompression, 0.0 },
diff --git a/tests/wandtest.c b/tests/wandtest.c
index 74c9174..beb41e2 100644
--- a/tests/wandtest.c
+++ b/tests/wandtest.c
@@ -23,7 +23,7 @@
 %                                 March 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -5170,9 +5170,6 @@
     **properties,
     *property;
 
-  DrawingWand
-    *drawing_wand;
-
   ExceptionType
     severity;
 
@@ -5186,7 +5183,6 @@
   PixelWand
     *background,
     *border,
-    *fill,
     **pixels;
 
   register ssize_t
@@ -5305,23 +5301,31 @@
     ThrowAPIException(magick_wand);
   background=DestroyPixelWand(background);
   border=DestroyPixelWand(border);
-  drawing_wand=NewDrawingWand();
-  (void) PushDrawingWand(drawing_wand);
-  (void) DrawRotate(drawing_wand,45);
-  if (getenv("MAGICK_FONT") != 0)
-    (void) DrawSetFont(drawing_wand,getenv("MAGICK_FONT"));
-  (void) DrawSetFontSize(drawing_wand,18);
-  fill=NewPixelWand();
-  (void) PixelSetColor(fill,"green");
-  (void) DrawSetFillColor(drawing_wand,fill);
-  fill=DestroyPixelWand(fill);
-  (void) DrawAnnotation(drawing_wand,15,5,(const unsigned char *) "Magick");
-  (void) PopDrawingWand(drawing_wand);
-  (void) MagickSetIteratorIndex(magick_wand,1);
-  status=MagickDrawImage(magick_wand,drawing_wand);
-  if (status == MagickFalse)
-    ThrowAPIException(magick_wand);
-  drawing_wand=DestroyDrawingWand(drawing_wand);
+#if MAGICKCORE_FREETYPE_DELEGATE
+  {
+    DrawingWand
+      *const drawing_wand = NewDrawingWand();
+
+    PixelWand
+      *const fill = NewPixelWand();
+
+    (void) PushDrawingWand(drawing_wand);
+    (void) DrawRotate(drawing_wand,45);
+    if (getenv("MAGICK_FONT") != 0)
+      (void) DrawSetFont(drawing_wand,getenv("MAGICK_FONT"));
+    (void) DrawSetFontSize(drawing_wand,18);
+    (void) PixelSetColor(fill,"green");
+    (void) DrawSetFillColor(drawing_wand,fill);
+    (void) DestroyPixelWand(fill);
+    (void) DrawAnnotation(drawing_wand,15,5,(const unsigned char *) "Magick");
+    (void) PopDrawingWand(drawing_wand);
+    (void) MagickSetIteratorIndex(magick_wand,1);
+    status=MagickDrawImage(magick_wand,drawing_wand);
+    if (status == MagickFalse)
+      ThrowAPIException(magick_wand);
+    (void) DestroyDrawingWand(drawing_wand);
+  }
+#endif
   {
     unsigned char
       pixels[27],
diff --git a/utilities/ImageMagick.1 b/utilities/ImageMagick.1
index 63b9bff..36c49ba 100644
--- a/utilities/ImageMagick.1
+++ b/utilities/ImageMagick.1
@@ -103,4 +103,4 @@
 convert(1), compare(1), composite(1), conjure(1), identify(1), import(1), magick(1), magick-script(1), montage(1), display(1), animate(1), import(1), Magick++-config(1), MagickCore-config(1), MagickWand-config(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/ImageMagick.1.in b/utilities/ImageMagick.1.in
index 9acc5c6..f399fea 100644
--- a/utilities/ImageMagick.1.in
+++ b/utilities/ImageMagick.1.in
@@ -103,4 +103,4 @@
 convert(1), compare(1), composite(1), conjure(1), identify(1), import(1), magick(1), magick-script(1), montage(1), display(1), animate(1), import(1), Magick++-config(1), MagickCore-config(1), MagickWand-config(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index 4cc3e3b..19604e7 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -16,51 +16,51 @@
 
 if WITH_UTILITIES
 UTILITIES_PGMS = \
-	utilities/magick
+  utilities/magick
 
 UTILITIES_XFAIL_TESTS = \
   $(UTILITIES_TTF_XFAIL_TESTS) \
   $(UTILITIES_XML_XFAIL_TESTS)
 
-utilities_magick_LDADD	= $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS)
-utilities_magick_LDFLAGS	= $(LDFLAGS)
-utilities_magick_SOURCES	= utilities/magick.c
+utilities_magick_LDADD    = $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS)
+utilities_magick_LDFLAGS  = $(LDFLAGS)
+utilities_magick_SOURCES  = utilities/magick.c
 
 UTILITIES_MANS = \
-	utilities/ImageMagick.1 \
-	utilities/animate.1 \
-	utilities/compare.1 \
-	utilities/composite.1 \
-	utilities/conjure.1 \
-	utilities/convert.1 \
-	utilities/display.1 \
-	utilities/identify.1 \
-	utilities/import.1 \
-	utilities/magick.1 \
-	utilities/magick-script.1 \
-	utilities/mogrify.1 \
-	utilities/montage.1 \
-	utilities/stream.1
+  utilities/ImageMagick.1 \
+  utilities/animate.1 \
+  utilities/compare.1 \
+  utilities/composite.1 \
+  utilities/conjure.1 \
+  utilities/convert.1 \
+  utilities/display.1 \
+  utilities/identify.1 \
+  utilities/import.1 \
+  utilities/magick.1 \
+  utilities/magick-script.1 \
+  utilities/mogrify.1 \
+  utilities/montage.1 \
+  utilities/stream.1
 
 UTILITIES_CONFIGURE = \
-	utilities/ImageMagick.1.in \
-	utilities/animate.1.in \
-	utilities/compare.1.in \
-	utilities/composite.1.in \
-	utilities/conjure.1.in \
-	utilities/convert.1.in \
-	utilities/display.1.in \
-	utilities/identify.1.in \
-	utilities/import.1.in \
-	utilities/magick.1.in \
-	utilities/magick-script.1.in \
-	utilities/mogrify.1.in \
-	utilities/montage.1.in \
-	utilities/stream.1.in
+  utilities/ImageMagick.1.in \
+  utilities/animate.1.in \
+  utilities/compare.1.in \
+  utilities/composite.1.in \
+  utilities/conjure.1.in \
+  utilities/convert.1.in \
+  utilities/display.1.in \
+  utilities/identify.1.in \
+  utilities/import.1.in \
+  utilities/magick.1.in \
+  utilities/magick-script.1.in \
+  utilities/mogrify.1.in \
+  utilities/montage.1.in \
+  utilities/stream.1.in
 
 UTILITIES_EXTRA_DIST = \
-	$(UTILITIES_MANS) \
-	$(UTILITIES_TESTS)
+  $(UTILITIES_MANS) \
+  $(UTILITIES_TESTS)
 
 UTILITIES_CLEANFILES =
 
@@ -78,7 +78,7 @@
 
 UTILITIES_INSTALL_EXEC_LOCAL_TARGETS=install-exec-local-utilities
 install-exec-local-utilities:
-	$(mkdir_p) $(DESTDIR)$(bindir)
+	$(mkinstalldirs) $(DESTDIR)$(bindir)
 	cd $(DESTDIR)$(bindir) ; \
 	magick=`echo "magick" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
 	for name in $(MAGICK_UTILITIES) ; \
diff --git a/utilities/animate.1 b/utilities/animate.1
index f7bdaa3..9ebc22b 100644
--- a/utilities/animate.1
+++ b/utilities/animate.1
@@ -98,4 +98,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/animate.1.in b/utilities/animate.1.in
index 17bf17d..030b79e 100644
--- a/utilities/animate.1.in
+++ b/utilities/animate.1.in
@@ -98,4 +98,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/compare.1 b/utilities/compare.1
index 88404e9..0b202df 100644
--- a/utilities/compare.1
+++ b/utilities/compare.1
@@ -105,4 +105,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/compare.1.in b/utilities/compare.1.in
index 6716244..5230803 100644
--- a/utilities/compare.1.in
+++ b/utilities/compare.1.in
@@ -105,4 +105,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/composite.1 b/utilities/composite.1
index a319512..cc30865 100644
--- a/utilities/composite.1
+++ b/utilities/composite.1
@@ -113,4 +113,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/composite.1.in b/utilities/composite.1.in
index d57b7df..2096f29 100644
--- a/utilities/composite.1.in
+++ b/utilities/composite.1.in
@@ -113,4 +113,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/conjure.1 b/utilities/conjure.1
index 932f984..2acdddb 100644
--- a/utilities/conjure.1
+++ b/utilities/conjure.1
@@ -31,4 +31,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/conjure.1.in b/utilities/conjure.1.in
index 438c394..93a5034 100644
--- a/utilities/conjure.1.in
+++ b/utilities/conjure.1.in
@@ -31,4 +31,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/convert.1 b/utilities/convert.1
index 6b38830..1e04c07 100644
--- a/utilities/convert.1
+++ b/utilities/convert.1
@@ -27,7 +27,6 @@
   \-clip                clip along the first path from the 8BIM profile
   \-clip-mask filename  associate a clip mask with the image
   \-clip-path id        clip along a named path from the 8BIM profile
-  \-colors value        preferred number of colors in the image
   \-colorspace type     alternate image colorspace
   \-comment string      annotate image with comment
   \-compose operator    set image composite operator
@@ -148,6 +147,7 @@
   \-clip-path id        clip along a named path from the 8BIM profile
   \-colorize value      colorize the image with the fill color
   \-color-matrix matrix apply color correction to the image
+  \-colors value        preferred number of colors in the image
   \-connected-component connectivity
                        connected-components uniquely labeled
   \-contrast            enhance or reduce the image contrast
@@ -186,6 +186,7 @@
   \-identify            identify the format and characteristics of the image
   \-ift                 implements the inverse discrete Fourier transform (DFT)
   \-implode amount      implode image pixels about the center
+  \-kmeans geometry     K means color reduction
   \-lat geometry        local adaptive thresholding
   \-layers method       optimize or compare image layers
   \-level value         adjust the level of image contrast
@@ -326,4 +327,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/convert.1.in b/utilities/convert.1.in
index 6f4e97a..f345fec 100644
--- a/utilities/convert.1.in
+++ b/utilities/convert.1.in
@@ -27,7 +27,6 @@
   \-clip                clip along the first path from the 8BIM profile
   \-clip-mask filename  associate a clip mask with the image
   \-clip-path id        clip along a named path from the 8BIM profile
-  \-colors value        preferred number of colors in the image
   \-colorspace type     alternate image colorspace
   \-comment string      annotate image with comment
   \-compose operator    set image composite operator
@@ -148,6 +147,7 @@
   \-clip-path id        clip along a named path from the 8BIM profile
   \-colorize value      colorize the image with the fill color
   \-color-matrix matrix apply color correction to the image
+  \-colors value        preferred number of colors in the image
   \-connected-component connectivity
                        connected-components uniquely labeled
   \-contrast            enhance or reduce the image contrast
@@ -186,6 +186,7 @@
   \-identify            identify the format and characteristics of the image
   \-ift                 implements the inverse discrete Fourier transform (DFT)
   \-implode amount      implode image pixels about the center
+  \-kmeans geometry     K means color reduction
   \-lat geometry        local adaptive thresholding
   \-layers method       optimize or compare image layers
   \-level value         adjust the level of image contrast
@@ -326,4 +327,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/display.1 b/utilities/display.1
index 7051b64..27dd07c 100644
--- a/utilities/display.1
+++ b/utilities/display.1
@@ -136,4 +136,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/display.1.in b/utilities/display.1.in
index 50d3e9b..2ec3992 100644
--- a/utilities/display.1.in
+++ b/utilities/display.1.in
@@ -136,4 +136,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/identify.1 b/utilities/identify.1
index ab54df5..f274ba2 100644
--- a/utilities/identify.1
+++ b/utilities/identify.1
@@ -76,4 +76,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/identify.1.in b/utilities/identify.1.in
index 8be8156..8b5d10e 100644
--- a/utilities/identify.1.in
+++ b/utilities/identify.1.in
@@ -76,4 +76,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/import.1 b/utilities/import.1
index 0d42239..e4489da 100644
--- a/utilities/import.1
+++ b/utilities/import.1
@@ -97,4 +97,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/import.1.in b/utilities/import.1.in
index eb53c6c..fe89a36 100644
--- a/utilities/import.1.in
+++ b/utilities/import.1.in
@@ -97,4 +97,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/magick-script.1 b/utilities/magick-script.1
index d2ee90e..c328b1b 100644
--- a/utilities/magick-script.1
+++ b/utilities/magick-script.1
@@ -282,4 +282,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/magick-script.1.in b/utilities/magick-script.1.in
index 613e8ca..79ee855 100644
--- a/utilities/magick-script.1.in
+++ b/utilities/magick-script.1.in
@@ -282,4 +282,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/magick.1 b/utilities/magick.1
index f1d8cc9..379dafb 100644
--- a/utilities/magick.1
+++ b/utilities/magick.1
@@ -279,4 +279,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/magick.1.in b/utilities/magick.1.in
index cada380..ce28ed9 100644
--- a/utilities/magick.1.in
+++ b/utilities/magick.1.in
@@ -279,4 +279,4 @@
 ImageMagick(1)
 
 .SH COPYRIGHT
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/magick.c b/utilities/magick.c
index 5bb6cd6..1dd58bb 100644
--- a/utilities/magick.c
+++ b/utilities/magick.c
@@ -17,7 +17,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/utilities/mogrify.1 b/utilities/mogrify.1
index 165bf81..14b43aa 100644
--- a/utilities/mogrify.1
+++ b/utilities/mogrify.1
@@ -23,7 +23,6 @@
   \-bordercolor color   border color
   \-caption string      assign a caption to an image
   \-cdl filename        color correct with a color decision list
-  \-colors value        preferred number of colors in the image
   \-colorspace type     alternate image colorspace
   \-comment string      annotate image with comment
   \-compose operator    set image composite operator
@@ -146,6 +145,7 @@
   \-clip-path id        clip along a named path from the 8BIM profile
   \-colorize value      colorize the image with the fill color
   \-color-matrix matrix apply color correction to the image
+  \-colors value        preferred number of colors in the image
   \-connected-component connectivity
                        connected-components uniquely labeled
   \-contrast            enhance or reduce the image contrast
@@ -186,6 +186,7 @@
   \-implode amount      implode image pixels about the center
   \-interpolative-resize geometry
                        resize image using interpolation
+  \-kmeans geometry     K means color reduction
   \-lat geometry        local adaptive thresholding
   \-layers method       optimize or compare image layers
   \-level value         adjust the level of image contrast
@@ -325,4 +326,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/mogrify.1.in b/utilities/mogrify.1.in
index 68800f8..aab9033 100644
--- a/utilities/mogrify.1.in
+++ b/utilities/mogrify.1.in
@@ -23,7 +23,6 @@
   \-bordercolor color   border color
   \-caption string      assign a caption to an image
   \-cdl filename        color correct with a color decision list
-  \-colors value        preferred number of colors in the image
   \-colorspace type     alternate image colorspace
   \-comment string      annotate image with comment
   \-compose operator    set image composite operator
@@ -146,6 +145,7 @@
   \-clip-path id        clip along a named path from the 8BIM profile
   \-colorize value      colorize the image with the fill color
   \-color-matrix matrix apply color correction to the image
+  \-colors value        preferred number of colors in the image
   \-connected-component connectivity
                        connected-components uniquely labeled
   \-contrast            enhance or reduce the image contrast
@@ -186,6 +186,7 @@
   \-implode amount      implode image pixels about the center
   \-interpolative-resize geometry
                        resize image using interpolation
+  \-kmeans geometry     K means color reduction
   \-lat geometry        local adaptive thresholding
   \-layers method       optimize or compare image layers
   \-level value         adjust the level of image contrast
@@ -325,4 +326,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/montage.1 b/utilities/montage.1
index 3abb4e0..69a7023 100644
--- a/utilities/montage.1
+++ b/utilities/montage.1
@@ -25,6 +25,7 @@
   \-compress type       type of pixel compression when writing the image
   \-define format:option
                        define one or more image format options
+  \-delay value         display the next image after pausing
   \-density geometry    horizontal and vertical density of the image
   \-depth value         image depth
   \-display server      query font from this X server
@@ -102,6 +103,7 @@
   \-flip                flip image in the vertical direction
   \-flop                flop image in the horizontal direction
   \-frame geometry      surround image with an ornamental border
+  \-layers method       optimize or compare image layers
   \-monochrome          transform image to black and white
   \-polaroid angle      simulate a Polaroid picture
   \-resize geometry     resize the image
@@ -142,4 +144,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/montage.1.in b/utilities/montage.1.in
index 11ceffb..e036fe3 100644
--- a/utilities/montage.1.in
+++ b/utilities/montage.1.in
@@ -25,6 +25,7 @@
   \-compress type       type of pixel compression when writing the image
   \-define format:option
                        define one or more image format options
+  \-delay value         display the next image after pausing
   \-density geometry    horizontal and vertical density of the image
   \-depth value         image depth
   \-display server      query font from this X server
@@ -102,6 +103,7 @@
   \-flip                flip image in the vertical direction
   \-flop                flop image in the horizontal direction
   \-frame geometry      surround image with an ornamental border
+  \-layers method       optimize or compare image layers
   \-monochrome          transform image to black and white
   \-polaroid angle      simulate a Polaroid picture
   \-resize geometry     resize the image
@@ -142,4 +144,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/stream.1 b/utilities/stream.1
index 691a5e7..59d7d55 100644
--- a/utilities/stream.1
+++ b/utilities/stream.1
@@ -56,4 +56,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/utilities/stream.1.in b/utilities/stream.1.in
index 94d922b..e42cb91 100644
--- a/utilities/stream.1.in
+++ b/utilities/stream.1.in
@@ -56,4 +56,4 @@
 
 .SH COPYRIGHT
 
-\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
+\fBCopyright (C) 1999-2020 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file://@DOCUMENTATION_PATH@/www/license.html or http://imagemagick.org/script/license.php\fP
diff --git a/version.sh b/version.sh
index cfb49d2..63ca3ad 100644
--- a/version.sh
+++ b/version.sh
@@ -16,11 +16,11 @@
 #
 # Package version.  This is is the numeric version suffix applied to
 # PACKAGE_NAME (e.g. "1.0.0").
-PACKAGE_VERSION='7.0.8'
-PACKAGE_PERL_VERSION='7.0.8'
-PACKAGE_LIB_VERSION="0x708"
-PACKAGE_RELEASE="32"
-PACKAGE_LIB_VERSION_NUMBER="7,0,8,${PACKAGE_RELEASE}"
+PACKAGE_VERSION='7.0.9'
+PACKAGE_PERL_VERSION='7.0.9'
+PACKAGE_LIB_VERSION="0x709"
+PACKAGE_RELEASE="15"
+PACKAGE_LIB_VERSION_NUMBER="7,0,9,${PACKAGE_RELEASE}"
 PACKAGE_RELEASE_DATE_RAW=`date +%F`
 PACKAGE_RELEASE_DATE_REPRODUCIBLE="${PACKAGE_CHANGE_DATE}"
 PACKAGE_STRING="$PACKAGE_NAME $PACKAGE_VERSION"
@@ -41,7 +41,7 @@
 # PLEASE NOTE that doing a SO BUMP aka raising the CURRENT REVISION
 # could be avoided using libversioning aka map files.  You MUST change .map
 # files if you raise these versions.
-MAGICK_LIBRARY_CURRENT=6
+MAGICK_LIBRARY_CURRENT=7
 MAGICK_LIBRARY_REVISION=0
 MAGICK_LIBRARY_AGE=0
 
diff --git a/winpath.sh b/winpath.sh
index f89fb1c..ff7eac8 100644
--- a/winpath.sh
+++ b/winpath.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (C) 1999-2019 ImageMagick Studio LLC
+# Copyright (C) 1999-2020 ImageMagick Studio LLC
 # Copyright (C) 2003 - 2008 GraphicsMagick Group
 #
 # This program is covered by multiple licenses, which are described in
diff --git a/www/ImageMagickObject.html b/www/ImageMagickObject.html
index 145dcac..dc8b508 100644
--- a/www/ImageMagickObject.html
+++ b/www/ImageMagickObject.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Install the ImageMagickObject COM+ Component @ ImageMagick</title>
+  <title>ImageMagick - Install the ImageMagickObject COM+ Component</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="install, the, imagemagickobject, com+, component, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="ImageMagickObject.html" rel="canonical" />
-  <link href="../images/wand.png" rel="icon" />
-  <link href="../images/wand.ico" rel="shortcut icon" />
-  <link href="assets/magick.css" rel="stylesheet" />
+  <link href="../www/www/ImageMagickObject.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,57 +44,58 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="index.html#build">Build ImageMagickObject From Source</a></p>
+<p class="text-center"><a href="../www/www/#build">Build ImageMagickObject From Source</a></p>
 
 <p class="lead magick-description">The ImageMagickObject is a COM+ compatible component that can be invoked from any language capable of using COM objects.  The intended use is for Windows Scripting Host VBS scripts and Visual Basic, but it is also available from to C++, ASP, and other languages like Delphi, Perl and PHP.</p>
 
-<p>The ImageMagickObject COM+ component provides access to the <a href="compare.html">compare</a>, <a href="../www/convert.html">convert</a>, <a href="composite.html">composite</a>, <a href="../www/mogrify.html">mogrify</a>, <a href="identify.html">identify</a>, <a href="../www/montage.html">montage</a>, and <a href="stream.html">stream</a> tools, efficiently executing them as part of your process, rather than as external programs. The way you use it is exactly the same. You pass it a list of strings including filenames and various options and it does the job. In fact, you can take any existing batch scripts that use the command line tools and translate them into the equivalent calls to the COM+ object in a matter of minutes. Beyond that, there is also a way to pass in and retrieve images in memory in the form of standard smart arrays (byte arrays). Samples are provided, to show both the simple and more elaborate forms of access.</p>
+<p>The ImageMagickObject COM+ component provides access to the <a href="../www/www/compare.html">compare</a>, <a href="../www/www/convert.html">convert</a>, <a href="../www/www/composite.html">composite</a>, <a href="../www/www/mogrify.html">mogrify</a>, <a href="../www/www/identify.html">identify</a>, <a href="../www/www/montage.html">montage</a>, and <a href="../www/www/stream.html">stream</a> tools, efficiently executing them as part of your process, rather than as external programs. The way you use it is exactly the same. You pass it a list of strings including filenames and various options and it does the job. In fact, you can take any existing batch scripts that use the command line tools and translate them into the equivalent calls to the COM+ object in a matter of minutes. Beyond that, there is also a way to pass in and retrieve images in memory in the form of standard smart arrays (byte arrays). Samples are provided, to show both the simple and more elaborate forms of access.</p>
 
-<p>ImageMagick provides a statically-built ImageMagick object as part of its <a href="../www/download.html#windows">Windows installation package</a>.  When this package is installed, ImageMagickObject and its sample programs are installed to this path:</p>
+<p>ImageMagick provides a statically-built ImageMagick object as part of its <a href="../www/www/download.html#windows">Windows installation package</a>.  When this package is installed, ImageMagickObject and its sample programs are installed to this path:</p>
 
-<pre class="highlight"><code>  c:\Program Files\ImageMagick-7.0.8-Q16\ImageMagickObject
+<pre class="highlight"><code>  c:\Program Files\ImageMagick-7.0.9-Q16\ImageMagickObject
 </code></pre>
 
 <p>The ImageMagickObject is registered if the checkbox, <code>Register ImageMagickObject</code>, is checked at install time.</p>
@@ -99,7 +105,7 @@
 <pre class="highlight"><code>cscript SimpleTest.vbs
 </code></pre>
 
-<p>Since the ImageMagick utility command line parsers are incorporated within ImageMagickObject, please refer to the <a href="../www/command-line-tools.html">command-line tools</a> discussion to learn how to use it. The sample VBS scripts show how the object should be called and used and have lots of comments.</p>
+<p>Since the ImageMagick utility command line parsers are incorporated within ImageMagickObject, please refer to the <a href="../www/www/command-line-tools.html">command-line tools</a> discussion to learn how to use it. The sample VBS scripts show how the object should be called and used and have lots of comments.</p>
 
 <p>C++ programmers should have a look at the <code>MagickCMD.cpp</code> command line utility for an example of how to call the object from C++.  The object requires a variable size list of BSTR's to emulate the command line argc, argv style calling conventions of the COM component which is more complex in C++ then in VBS or VB.</p>
 
@@ -107,7 +113,7 @@
 
 <h2><a class="anchor" id="build"></a>Build ImageMagickObject From Source</h2>
 
-<p>The source code for ImageMagickObject is available from the ImageMagick <a href="http://git.imagemagick.org/repos/ImageMagick">GIT</a> repository, or as part of the <a href="install-source.html#windows">Windows source</a> distribution. Once the source code has been retrieved and extracted, the source for ImageMagickObject is the directory <code>ImageMagick\contrib\win32\ATL7ImageMagickObject</code>, however, ImageMagick itself must be built using the static-multithread (VisualStaticMT) build configuration.  Building ImageMagickObject requires Microsoft Visual C++ 7.0 as delivered with Microsoft's Visual Studio .NET package. See the <a href="install-source.html#windows">Windows compilation instructions</a> to get ImageMagick itself built before building the ImageMagick COM+ component.</p>
+<p>The source code for ImageMagickObject is available from the ImageMagick <a href="https://github.com/ImageMagick">GIT</a> repository, or as part of the <a href="../www/www/install-source.html#windows">Windows source</a> distribution. Once the source code has been retrieved and extracted, the source for ImageMagickObject is the directory <code>ImageMagick\contrib\win32\ATL7ImageMagickObject</code>, however, ImageMagick itself must be built using the static-multithread (VisualStaticMT) build configuration.  Building ImageMagickObject requires Microsoft Visual C++ 7.0 as delivered with Microsoft's Visual Studio .NET package. See the <a href="../www/www/install-source.html#windows">Windows compilation instructions</a> to get ImageMagick itself built before building the ImageMagick COM+ component.</p>
 
 <p>Once the VisualStaticMT project has been built, build the ImageMagickObject with this procedure:</p>
 
@@ -133,22 +139,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="ImageMagickObject.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="ImageMagickObject.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:06 -->
\ No newline at end of file
diff --git a/www/Magick++/Documentation.html b/www/Magick++/Documentation.html
index 03865a0..6f560ef 100644
--- a/www/Magick++/Documentation.html
+++ b/www/Magick++/Documentation.html
@@ -4,17 +4,17 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Magick++ API Documentation</title>
-<link rel="stylesheet" href="https://imagemagick.org/Magick++/magick.css" type="text/css" />
+<link rel="stylesheet" href="magick.css" type="text/css" />
 </head>
 <body>
 <p class="image"><img src="Magick++.png" name="Graphic1" align="bottom" width="464" height="134" border="0" /></p>
 <div class="doc-section">
-<p><a href="../Magick++.2">Magick++</a> provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.</p>
+<p><a href="http://www.imagemagick.org/Magick++">Magick++</a> provides a simple C++ API to the ImageMagick image processing library which supports reading and writing a huge number of image formats as well as supporting a broad spectrum of traditional image processing operations. The ImageMagick C API is complex and the data structures are currently not documented. Magick++ provides access to most of the features available from the C API but in a simple object-oriented and well-documented framework.</p>
 <p>Magick++ is intended to support commercial-grade application development. In order to avoid possible conflicts with the user's application, all symbols contained in Magick++ (included by the header <tt><font color="#663366">&lt;Magick++.h&gt;</font></tt>) are scoped to the <span lang="en-US">namespace</span> <i>Magick</i>. Symbols from the ImageMagick C library are imported under the <i>MagickCore</i> namespace to avoid possible conflicts and ImageMagick macros are only included within the Magick++ implementation so they won't impact the user's application.</p>
-<p>The core class in Magick++ is the <a href="Image++.html">Image</a> class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)<span lang="en-US">compatible</span> <a href="https://imagemagick.org/Magick++/STL.html">algorithms and function objects</a> are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).</p>
+<p>The core class in Magick++ is the <a href="Image++.html">Image</a> class. The Image class provides methods to manipulate a single image frame (e.g. a JPEG image). Standard Template Library (STL)<span lang="en-US">compatible</span> <a href="STL.html">algorithms and function objects</a> are provided in order to manipulate multiple image frames or to read and write file formats which support multiple image frames (e.g. GIF animations, MPEG animations, and Postscript files).</p>
 <p>The Image class supports reference-counted memory management which supports the semantics of an intrinsic variable type (e.g. 'int') with an extremely efficient <tt>operator =</tt> and copy constructor (only a pointer is assigned) while ensuring that the image data is replicated as required so that it the image may be modified without impacting earlier generations. Since the Image class manages heap memory internally, images are best allocated via C++ automatic (stack-based) memory allocation. This support allows most programs using Magick++ to be written without using any pointers, simplifying the implementation and avoiding the risks of using pointers. When a program uses automatic memory allocation to allocate Magick++ images, that aspect of the program becomes naturally exception-safe and thread-safe.</p>
-<p>The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the <a href="https://imagemagick.org/Magick++/Color.html">Color</a> class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the <a href="https://imagemagick.org/Magick++/Geometry.html">Geometry</a> class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the <a href="https://imagemagick.org/Magick++/Drawable.html">Drawable</a> class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the <a href="https://imagemagick.org/Magick++/Montage.html">Montage</a> class.</p>
-<p>Errors are reported using C++ exceptions derived from the <a href="https://imagemagick.org/Magick++/Exception.html">Exception</a> class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching <i>try</i> block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.</p>
+<p>The image class uses a number of supportive classes in order to specify arguments. Colors are specified via the <a href="Color.html">Color</a> class. Colors specified in X11-style string form are implicitly converted to the Color class. Geometry arguments (those specifying width, height, and/or x and y offset) are specified via the <a href="Geometry.html">Geometry</a> class. Similar to the Color class, geometries specified as an X11-style string are implicitly converted to the Geometry class. Two dimensional drawable objects are specified via the <a href="Drawable.html">Drawable</a> class. Drawable objects may be provided as a single object or as a list of objects to be rendered using the current image options. Montage options (a montage is a rendered grid of thumbnails in one image) are specified via the <a href="Montage.html">Montage</a> class.</p>
+<p>Errors are reported using C++ exceptions derived from the <a href="Exception.html">Exception</a> class, which is itself derived from the standard C++ exception class. Exceptions are reported synchronous with the operation and are caught by the first matching <i>try</i> block as the stack is unraveled. This allows a clean coding style in which multiple related Magick++ commands may be executed with errors handled as a unit rather than line-by-line. Since the Image object provides reference-counted memory management, unreferenced images on the stack are automagically cleaned up, avoiding the potential for memory leaks.</p>
 <p style="margin-bottom: 0cm">For ease of access, the documentation for the available user-level classes is available via the following table.</p>
 <br />
 <table border="1" class="docutils">
@@ -24,39 +24,39 @@
 <col width="82%" />
 </colgroup>
 <tbody valign="top">
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Blob.html">Blob</a></td>
+<tr><td><a class="reference external" href="Blob.html">Blob</a></td>
 <td>Binary Large OBject container.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/CoderInfo.html">CoderInfo</a></td>
+<tr><td><a class="reference external" href="CoderInfo.html">CoderInfo</a></td>
 <td>Report information about supported image formats (use with
-<a class="reference external" href="https://imagemagick.org/Magick++/STL.html#coderInfoList">coderInfoList</a>())</td>
+<a class="reference external" href="STL.html#coderInfoList">coderInfoList</a>())</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Color.html">Color</a></td>
+<tr><td><a class="reference external" href="Color.html">Color</a></td>
 <td>Color specification.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Drawable.html">Drawable</a></td>
+<tr><td><a class="reference external" href="Drawable.html">Drawable</a></td>
 <td>Drawable shape (for input to 'draw').</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Exception.html">Exception</a></td>
+<tr><td><a class="reference external" href="Exception.html">Exception</a></td>
 <td>C++ exception objects.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Geometry.html">Geometry</a></td>
+<tr><td><a class="reference external" href="Geometry.html">Geometry</a></td>
 <td>Geometry specification.</td>
 </tr>
 <tr><td><a class="reference external" href="Image++.html">Image</a></td>
 <td>Image frame.  This is the primary object in <em>Magick++</em>.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Montage.html">Montage</a></td>
+<tr><td><a class="reference external" href="Montage.html">Montage</a></td>
 <td>Montage options for montageImages().</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/Pixels.html">Pixels</a></td>
+<tr><td><a class="reference external" href="Pixels.html">Pixels</a></td>
 <td>Low-level access to image pixels.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/STL.html">STL</a></td>
+<tr><td><a class="reference external" href="STL.html">STL</a></td>
 <td>STL algorithms and function objects for operating on
 containers of image frames.</td>
 </tr>
-<tr><td><a class="reference external" href="https://imagemagick.org/Magick++/TypeMetric.html">TypeMetric</a></td>
+<tr><td><a class="reference external" href="TypeMetric.html">TypeMetric</a></td>
 <td>Container for font type metrics (use with
 <a class="reference external" href="Image++.html#fonttypemetrics">Image::fontTypeMetrics</a>).</td>
 </tr>
diff --git a/www/Magick++/Drawable.html b/www/Magick++/Drawable.html
index 03316df..739d668 100644
--- a/www/Magick++/Drawable.html
+++ b/www/Magick++/Drawable.html
@@ -9,7 +9,7 @@
 <body>
 <div class="doc-section">
 <h1 style="text-align:center">Magick::Drawable</h1>
-<p>Drawable provides a convenient interface for preparing vector, image, or text arguments for the Image::draw() method. Each instance of a Drawable sub-class represents a single drawable object. Drawable objects may be drawn "one-by-one" via multiple invocations of the Image <a href="https://imagemagick.org/Magick++/Image++.html#draw">draw</a>() method, or may be drawn "all-at-once" by passing a list of Drawable objects to the Image <a href="https://imagemagick.org/Magick++/Image++.html#draw">draw</a>() method. The one-by-one approach is convenient for simple drawings, while the list-based approach is appropriate for drawings which require more sophistication.</p>
+<p>Drawable provides a convenient interface for preparing vector, image, or text arguments for the Image::draw() method. Each instance of a Drawable sub-class represents a single drawable object. Drawable objects may be drawn "one-by-one" via multiple invocations of the Image <a href="Image++.html#draw">draw</a>() method, or may be drawn "all-at-once" by passing a list of Drawable objects to the Image <a href="Image++.html#draw">draw</a>() method. The one-by-one approach is convenient for simple drawings, while the list-based approach is appropriate for drawings which require more sophistication.</p>
 <p>The following is an example using the Drawable subclasses with a one-by-one approach to draw the following figure:</p>
 <p class="image"><font color="#000000"><font color="#000000"><img
  src="Drawable_example_1.png" name="Graphic1" align="bottom" border="3"
diff --git a/www/Magick++/Image++.html b/www/Magick++/Image++.html
index ad3fa05..6f7d166 100644
--- a/www/Magick++/Image++.html
+++ b/www/Magick++/Image++.html
@@ -4,7 +4,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Magick++ API: Working with Images</title>
-<link rel="stylesheet" href="magick.css" type="text/css" />
+<link rel="stylesheet" href="http://www.imagemagick.org/Magick++/magick.css" type="text/css" />
 </head>
 <body>
 <div class="doc-section">
@@ -22,8 +22,8 @@
 Access</a> </li>
 </ul>
 <p>Image is the primary object in Magick++ and represents
-a single image frame (see <a href="ImageDesign.html">design</a> ). The
-<a href="STL.html">STL interface</a> <b>must</b> be used to operate on
+a single image frame (see <a href="http://www.imagemagick.org/Magick++/ImageDesign.html">design</a> ). The
+<a href="http://www.imagemagick.org/Magick++/STL.html">STL interface</a> <b>must</b> be used to operate on
 image sequences or images (e.g. of format GIF, TIFF, MIFF, Postscript,
 &amp; MNG) which are comprized of multiple image frames. Individual
 frames of a multi-frame image may be requested by adding array-style
@@ -31,7 +31,7 @@
 the fourth frame of a GIF animation.&#160; Various image manipulation
 operations may be applied to the image. Attributes may be set on the
 image to influence the operation of the manipulation operations. The <a
- href="Pixels.html"> Pixels</a> class provides low-level access to
+ href="http://www.imagemagick.org/Magick++/Pixels.html"> Pixels</a> class provides low-level access to
 image
 pixels. As a convenience, including <tt><font color="#663366">&lt;Magick++.h&gt;</font></tt>
 is sufficient in order to use the complete Magick++ API. The Magick++
@@ -159,7 +159,7 @@
 read-from a disk file, encoded images may also reside in memory.
 Encoded
 images in memory are known as BLOBs (Binary Large OBjects) and may be
-represented using the <a href="Blob.html">Blob</a> class. The encoded
+represented using the <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> class. The encoded
 image may be initially placed in memory by reading it directly from a
 file, reading the image from a database, memory-mapped from a disk
 file, or could be written to memory by Magick++. Once the encoded image
@@ -218,7 +218,7 @@
 </center>
 Image may be constructed in a number of ways. It may be constructed
 from a file, a URL, or an encoded image (e.g. JPEG) contained in an
-in-memory <a href="Blob.html"> BLOB</a> . The available Image
+in-memory <a href="http://www.imagemagick.org/Magick++/Blob.html"> BLOB</a> . The available Image
 constructors are shown in the following table: <br />
 &#160; <br />
 &#160;
@@ -240,15 +240,15 @@
     </tr>
     <tr>
       <td><font size="-1">const Geometry &amp;size_, const <a
- href="Color.html"> Color</a> &amp;color_</font></td>
+ href="http://www.imagemagick.org/Magick++/Color.html"> Color</a> &amp;color_</font></td>
       <td><font size="-1">Construct a blank image canvas of specified
 size and color</font></td>
     </tr>
     <tr>
       <td><a name="constructor_blob"></a> <font size="-1">const <a
- href="Blob.html">Blob</a> &amp;blob_</font></td>
+ href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> &amp;blob_</font></td>
       <td rowspan="5"><font size="-1">Construct Image by reading from
-encoded image data contained in an in-memory <a href="Blob.html">BLOB</a>
+encoded image data contained in an in-memory <a href="http://www.imagemagick.org/Magick++/Blob.html">BLOB</a>
 . Depending on the constructor arguments, the Blob <a href="Image++.html#size">size</a>
 , <a href="Image++.html#depth">depth</a> , <a href="Image++.html#magick">magick</a> (format)
 may
@@ -261,22 +261,22 @@
  href="Image++.html#magick">magick</a> ) must be specified.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size_</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size,
 size_t depth</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size,
 size_t depth_, const string &amp;magick_</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size,
 const
 string &amp;magick_</font></td>
     </tr>
@@ -284,7 +284,7 @@
       <td><font size="-1">const size_t width_,&#160;</font> <br />
       <font size="-1">const size_t height_,</font> <br />
       <font size="-1">std::string map_,</font> <br />
-      <font size="-1">const <a href="Enumerations.html#StorageType">
+      <font size="-1">const <a href="http://www.imagemagick.org/Magick++/Enumerations.html#StorageType">
 StorageType</a> type_,</font> <br />
       <font size="-1">const void *pixels_</font></td>
       <td><font size="-1">Construct a new Image based on an array of
@@ -316,7 +316,7 @@
           </tr>
           <tr>
             <td><font size="-1">type_</font></td>
-            <td><font size="-1"><a href="Enumerations.html#StorageType">Pixel
+            <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#StorageType">Pixel
 storage type</a> (CharPixel, ShortPixel, IntegerPixel, FloatPixel, or
 DoublePixel)</font></td>
           </tr>
@@ -341,7 +341,7 @@
 image-list) manipulation operations provided by the ImageMagick
 library. If you
 must process a multi-image file (such as an animation), the <a
- href="STL.html"> STL interface</a> , which provides a multi-image
+ href="http://www.imagemagick.org/Magick++/STL.html"> STL interface</a> , which provides a multi-image
 abstraction on top of <i>Image</i>, must be used.
 <p>Image manipulation methods are very easy to use.&#160; For example: </p>
 <pre class="code">
@@ -385,7 +385,7 @@
       <td style="text-align: center;">
       <center><a name="addNoise"></a> <font size="-1">addNoise</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#NoiseType">NoiseType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#NoiseType">NoiseType</a>
 noiseType_</font></td>
       <td><font size="-1">Add noise to image with specified noise type.</font></td>
     </tr>
@@ -419,13 +419,13 @@
       <center><a name="annotate"></a> <font size="-1">annotate</font></center>
       </td>
       <td><font size="-1">const std::string &amp;text_, const <a
- href="Geometry.html"> Geometry</a> &amp;location_</font></td>
+ href="http://www.imagemagick.org/Magick++/Geometry.html"> Geometry</a> &amp;location_</font></td>
       <td><font size="-1">Annotate using specified text, and placement
 location</font></td>
     </tr>
     <tr>
-      <td><font size="-1">string text_, const <a href="Geometry.html">Geometry</a>
-&amp;boundingArea_, <a href="Enumerations.html#GravityType">GravityType</a>
+      <td><font size="-1">string text_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;boundingArea_, <a href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType">GravityType</a>
 gravity_</font></td>
       <td><font size="-1">Annotate using specified text, bounding area,
 and placement gravity. If <i>boundingArea_</i> is invalid, then
@@ -433,8 +433,8 @@
     </tr>
     <tr>
       <td><font size="-1">const std::string &amp;text_, const <a
- href="Geometry.html"> Geometry</a> &amp;boundingArea_, <a
- href="Enumerations.html#GravityType">GravityType</a> gravity_, double
+ href="http://www.imagemagick.org/Magick++/Geometry.html"> Geometry</a> &amp;boundingArea_, <a
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType">GravityType</a> gravity_, double
 degrees_,&#160;</font></td>
       <td><font size="-1">Annotate with text using specified text,
 bounding area, placement gravity, and rotation. If <i>boundingArea_</i>
@@ -442,7 +442,7 @@
     </tr>
     <tr>
       <td><font size="-1">const std::string &amp;text_, <a
- href="Enumerations.html#GravityType"> GravityType</a> gravity_</font></td>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType"> GravityType</a> gravity_</font></td>
       <td><font size="-1">Annotate with text (bounding area is entire
 image) and placement gravity.</font></td>
     </tr>
@@ -477,7 +477,7 @@
       <td style="text-align: center;">
       <center><a name="border"></a> <font size="-1">border</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_ = "6x6+0+0"</font></td>
       <td><font size="-1">Border image (add border to image).&#160; The
 color of the border is specified by the <i>borderColor</i> attribute.</font></td>
@@ -493,7 +493,7 @@
       <td style="text-align: center;">
       <center><a name="channel"></a> <font size="-1">channel</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ChannelType">ChannelType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ChannelType">ChannelType</a>
 layer_</font></td>
       <td><font size="-1">Extract channel from image. Use this option
 to extract a particular channel from&#160; the image.&#160; <i>MatteChannel</i>
@@ -515,7 +515,7 @@
       <td style="text-align: center;">
       <center><a name="chop"></a> <font size="-1">chop</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">Chop image (remove vertical or horizontal
 subregion of image)</font></td>
@@ -547,7 +547,7 @@
 Use&#160; this&#160; method to&#160; assign a specific comment to the
 image.&#160; Optionally you can include the image filename, type,
 width, height, or other&#160; image&#160; attributes by embedding <a
- href="FormatCharacters.html">special format characters.</a> </font></td>
+ href="http://www.imagemagick.org/Magick++/FormatCharacters.html">special format characters.</a> </font></td>
     </tr>
     <tr>
       <td style="text-align: center;" valign="middle"><font size="-1"><a
@@ -571,7 +571,7 @@
       </td>
       <td><font size="-1">const <a href="Image++.html">Image</a>
 &amp;compositeImage_, ssize_t xOffset_, ssize_t yOffset_, <a
- href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#CompositeOperator"> CompositeOperator</a>
 compose_ = <i>InCompositeOp</i></font></td>
       <td><font size="-1">Compose an image onto the current image at
 offset specified by <i>xOffset_</i>, <i>yOffset_ </i>using the
@@ -579,8 +579,8 @@
     </tr>
     <tr>
       <td><font size="-1">const <a href="Image++.html">Image</a>
-&amp;compositeImage_, const <a href="Geometry.html">Geometry</a>
-&amp;offset_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+&amp;compositeImage_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;offset_, <a href="http://www.imagemagick.org/Magick++/Enumerations.html#CompositeOperator">CompositeOperator</a>
 compose_ = <i>InCompositeOp</i></font></td>
       <td><font size="-1">Compose an image onto the current image at
 offset specified by <i>offset_</i> using the composition algorithm
@@ -588,8 +588,8 @@
     </tr>
     <tr>
       <td><font size="-1">const <a href="Image++.html">Image</a>
-&amp;compositeImage_, <a href="Enumerations.html#GravityType">GravityType</a>
-gravity_, <a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+&amp;compositeImage_, <a href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType">GravityType</a>
+gravity_, <a href="http://www.imagemagick.org/Magick++/Enumerations.html#CompositeOperator">CompositeOperator</a>
 compose_ = <i>InCompositeOp</i></font></td>
       <td><font size="-1">Compose an image onto the current image with
 placement specified by <i>gravity_ </i>using the composition
@@ -619,7 +619,7 @@
       <td style="text-align: center;">
       <center><a name="crop"></a> <font size="-1">crop</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">Crop image (subregion of original image)</font></td>
     </tr>
@@ -660,12 +660,12 @@
       <td style="text-align: center;" rowspan="2">
       <center><a name="draw"></a> <font size="-1">draw</font></center>
       </td>
-      <td><font size="-1">const <a href="Drawable.html">Drawable</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Drawable.html">Drawable</a>
 &amp;drawable_</font></td>
       <td><font size="-1">Draw shape or text on image.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const std::list&lt;<a href="Drawable.html">Drawable</a>
+      <td><font size="-1">const std::list&lt;<a href="http://www.imagemagick.org/Magick++/Drawable.html">Drawable</a>
 &gt; &amp;drawable_</font></td>
       <td><font size="-1">Draw shapes or text on image using a set of
 Drawable objects contained in an STL list. Use of this method improves
@@ -717,22 +717,22 @@
     <tr>
       <td style="text-align: center;" rowspan="4">
       <center><a name="extent"></a> <font size="-1">extent</font></center></td>
-      <td><font size="-1">const <a href="Geometry.html"> Geometry</a> &amp;geometry_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html"> Geometry</a> &amp;geometry_</font></td>
       <td rowspan="2"><font size="-1">extends the image as defined by the geometry, gravity, and image background color.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;geometry_, const <a href="Color.html">Color</a> &amp;backgroundColor_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;geometry_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;backgroundColor_</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html"> Geometry</a> &amp;geometry_, const <a href="Enumerations.html#GravityType">GravityType</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html"> Geometry</a> &amp;geometry_, const <a href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType">GravityType</a>
 &amp;gravity_</font></td>
       <td rowspan="2"><font size="-1">extends the image as defined by the geometry, gravity, and image background color.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;geometry_, const <a href="Color.html">Color</a> &amp;backgroundColor_,
-const <a href="Enumerations.html#GravityType">GravityType</a> &amp;gravity_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;geometry_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;backgroundColor_,
+const <a href="http://www.imagemagick.org/Magick++/Enumerations.html#GravityType">GravityType</a> &amp;gravity_</font></td>
     </tr>
     <tr>
       <td style="text-align: center;">
@@ -749,28 +749,28 @@
       <font size="-1">Color</font></center>
       </td>
       <td><font size="-1">ssize_t x_, ssize_t y_, const <a
- href="Color.html"> Color</a> &amp;fillColor_</font></td>
+ href="http://www.imagemagick.org/Magick++/Color.html"> Color</a> &amp;fillColor_</font></td>
       <td rowspan="2"><font size="-1">Flood-fill color across pixels
 that match the color of the target pixel and are neighbors of the
 target pixel. Uses current fuzz setting when determining color match.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;point_, const <a href="Color.html">Color</a> &amp;fillColor_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;point_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;fillColor_</font></td>
     </tr>
     <tr>
       <td><font size="-1">ssize_t x_, ssize_t y_, const <a
- href="Color.html"> Color</a> &amp;fillColor_, const <a
- href="Color.html">Color</a>
+ href="http://www.imagemagick.org/Magick++/Color.html"> Color</a> &amp;fillColor_, const <a
+ href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;borderColor_</font></td>
       <td rowspan="2"><font size="-1">Flood-fill color across pixels
 starting at target-pixel and stopping at pixels matching specified
 border color. Uses current fuzz setting when determining color match.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;point_, const <a href="Color.html">Color</a> &amp;fillColor_,
-const <a href="Color.html">Color</a> &amp;borderColor_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;point_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;fillColor_,
+const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;borderColor_</font></td>
     </tr>
     <tr>
       <td style="text-align: center;"><a name="floodFillOpacity"></a> <font
@@ -794,19 +794,19 @@
 target pixel. Uses current fuzz setting when determining color match.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;point_, const Image &amp;texture_</font></td>
     </tr>
     <tr>
       <td><font size="-1">ssize_t x_, ssize_t y_, const Image
-&amp;texture_, const <a href="Color.html">Color</a> &amp;borderColor_</font></td>
+&amp;texture_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;borderColor_</font></td>
       <td rowspan="2"><font size="-1">Flood-fill texture across pixels
 starting at target-pixel and stopping at pixels matching specified
 border color. Uses current fuzz setting when determining color match.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;point_, const Image &amp;texture_, const <a href="Color.html">
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;point_, const Image &amp;texture_, const <a href="http://www.imagemagick.org/Magick++/Color.html">
 Color</a>
 &amp;borderColor_</font></td>
     </tr>
@@ -822,7 +822,7 @@
       <td style="text-align: center;" rowspan="2">
       <center><a name="frame"></a> <font size="-1">frame</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_ = "25x25+6+6"</font></td>
       <td rowspan="2"><font size="-1">Add decorative frame around image</font></td>
     </tr>
@@ -910,7 +910,7 @@
       <td><font size="-1">Assign a label to an image. Use this option
 to&#160; assign&#160; a&#160; specific label to the image. Optionally
 you can include the image filename, type, width, height, or scene
-number in the label by embedding&#160; <a href="FormatCharacters.html">
+number in the label by embedding&#160; <a href="http://www.imagemagick.org/Magick++/FormatCharacters.html">
 special format characters.</a> If the first character of string is @,
 the
 image label is read from a file titled by the remaining characters in
@@ -984,10 +984,10 @@
       <td style="text-align: center;">
       <center><a name="matteFloodfill"></a> <font size="-1">matteFloodfill</font></center>
       </td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;target_, const unsigned int&#160; opacity_, const ssize_t x_, const
 ssize_t
-y_, <a href="Enumerations.html#PaintMethod">PaintMethod</a> method_</font></td>
+y_, <a href="http://www.imagemagick.org/Magick++/Enumerations.html#PaintMethod">PaintMethod</a> method_</font></td>
       <td><font size="-1">Floodfill designated area with a replacement
 opacity value.</font></td>
     </tr>
@@ -1002,7 +1002,7 @@
       <td style="text-align: center;">
       <center><a name="mergeLayers"></a> <font size="-1">mergeLayers</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#LayerMethod">LayerMethod</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#LayerMethod">LayerMethod</a>
 noiseType_</font></td>
       <td><font size="-1">handle multiple images forming a set of image layers or animation frames.</font></td>
     </tr>
@@ -1094,8 +1094,8 @@
       <td style="text-align: center;">
       <center><a name="opaque"></a> <font size="-1">opaque</font></center>
       </td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
-&amp;opaqueColor_, const <a href="Color.html">Color</a> &amp;penColor_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
+&amp;opaqueColor_, const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> &amp;penColor_</font></td>
       <td><font size="-1">Change color of pixels matching opaqueColor_
 to specified penColor_.</font></td>
     </tr>
@@ -1143,7 +1143,7 @@
       <td style="text-align: center;">
       <center><a name="raise"></a> <font size="-1">raise</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_ = "6x6+0+0",&#160; bool raisedFlag_ =&#160; false</font></td>
       <td><font size="-1">Raise image (lighten or darken the edges of
 an image to give a 3-D raised or lowered effect)</font></td>
@@ -1156,7 +1156,7 @@
       <td><font size="-1">Read image into current object</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;size_, const std::string &amp;imageSpec_</font></td>
       <td><font size="-1">Read image of specified size into current
 object. This form is useful for images that do not specifiy their size
@@ -1166,9 +1166,9 @@
 equal to the specified size. This may result in memory and time savings.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a> &amp;blob_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> &amp;blob_</font></td>
       <td rowspan="5"><font size="-1">Read encoded image of specified
-size from an in-memory <a href="Blob.html">BLOB</a> into current
+size from an in-memory <a href="http://www.imagemagick.org/Magick++/Blob.html">BLOB</a> into current
 object. Depending on the method arguments, the Blob size, depth, and
 format may also be specified. Some image formats require that size be
 specified. The default ImageMagick uses for depth depends on its
@@ -1179,22 +1179,22 @@
 a format can't be automagically detected, the format must be specified.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size_</font></td>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size_</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size_,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size_,
 size_t depth_</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size_,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size_,
 size_t depth_, const string &amp;magick_&#160;</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
-&amp;blob_, const <a href="Geometry.html">Geometry</a> &amp;size_,
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
+&amp;blob_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &amp;size_,
 const
 string &amp;magick_</font></td>
     </tr>
@@ -1300,7 +1300,7 @@
       <td style="text-align: center;">
       <center><a name="sample"></a> <font size="-1">sample</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_&#160;</font></td>
       <td><font size="-1">Resize image by using pixel sampling algorithm</font></td>
     </tr>
@@ -1308,7 +1308,7 @@
       <td style="text-align: center;">
       <center><a name="scale"></a> <font size="-1">scale</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">Resize image by using simple ratio algorithm</font></td>
     </tr>
@@ -1415,7 +1415,7 @@
       <td style="text-align: center;">
       <center><a name="splice"></a> <font size="-1">splice</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">splice the background color into the image</font></td>
     </tr>
@@ -1484,21 +1484,21 @@
       <td style="text-align: center;" rowspan="2">
       <center><a name="transform"></a> <font size="-1">transform</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;imageGeometry_</font></td>
       <td rowspan="2"><font size="-1">Transform image based on image
 and crop geometries. Crop geometry is optional.</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
-&amp;imageGeometry_, const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
+&amp;imageGeometry_, const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;cropGeometry_&#160;</font></td>
     </tr>
     <tr>
       <td style="text-align: center;">
       <center><a name="transparent"></a> <font size="-1">transparent</font></center>
       </td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;color_</font></td>
       <td><font size="-1">Add matte image to image, setting pixels
 matching color to transparent.</font></td>
@@ -1569,9 +1569,9 @@
 original if this is a problem.</font></td>
     </tr>
     <tr>
-      <td><font size="-1"><a href="Blob.html">Blob</a> *blob_</font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> *blob_</font></td>
       <td rowspan="3"><font size="-1">Write image to a in-memory <a
- href="Blob.html"> BLOB</a> stored in <i>blob_</i>. The <i>magick</i>_
+ href="http://www.imagemagick.org/Magick++/Blob.html"> BLOB</a> stored in <i>blob_</i>. The <i>magick</i>_
 parameter specifies the image format to write (defaults to <a
  href="Image++.html#magick">magick</a> ). The depth_ parameter species the image
 depth (defaults to <a href="Image++.html#depth"> depth</a> ).</font> <br />
@@ -1582,11 +1582,11 @@
 original if this is a problem.</font></td>
     </tr>
     <tr>
-      <td><font size="-1"><a href="Blob.html">Blob</a> *blob_,
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> *blob_,
 std::string &amp;magick_</font></td>
     </tr>
     <tr>
-      <td><font size="-1"><a href="Blob.html">Blob</a> *blob_,
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> *blob_,
 std::string &amp;magick_, size_t depth_</font></td>
     </tr>
     <tr>
@@ -1651,7 +1651,7 @@
       <td style="text-align: center;">
       <center><a name="resize"></a> <font size="-1">resize</font></center>
       </td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">Resize image to specified size.</font></td>
     </tr>
@@ -1767,9 +1767,9 @@
       <br />
       <font size="-1">Color</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;color_</font></td>
       <td><font size="-1">Image background color</font></td>
     </tr>
@@ -1816,9 +1816,9 @@
       <td>
       <center><a name="borderColor"></a> <font size="-1">borderColor</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">&#160;const <a href="Color.html">Color</a>
+      <td><font size="-1">&#160;const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;color_</font></td>
       <td><font size="-1">Image border color</font></td>
     </tr>
@@ -1836,9 +1836,9 @@
       <td>
       <center><a name="boxColor"></a> <font size="-1">boxColor</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;boxColor_</font></td>
       <td><font size="-1">Base color that annotation text is rendered
 on.</font></td>
@@ -1933,10 +1933,10 @@
       <td>
       <center><a name="classType"></a> <font size="-1">classType</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ClassType">ClassType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ClassType">ClassType</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">&#160;<a href="Enumerations.html#ClassType">ClassType</a>
+      <td><font size="-1">&#160;<a href="http://www.imagemagick.org/Magick++/Enumerations.html#ClassType">ClassType</a>
 class_</font></td>
       <td><font size="-1">Image storage class.&#160; Note that
 conversion from a DirectClass image to a PseudoClass image may result
@@ -1972,10 +1972,10 @@
       <td>
       <center><a name="colorMap"></a> <font size="-1">colorMap</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">size_t index_</font></td>
       <td><font size="-1">size_t index_, const <a
- href="Color.html"> Color</a> &amp;color_</font></td>
+ href="http://www.imagemagick.org/Magick++/Color.html"> Color</a> &amp;color_</font></td>
       <td><font size="-1">Color at colormap index.</font></td>
     </tr>
     <tr>
@@ -2003,10 +2003,10 @@
       <td>
       <center><a name="colorSpace"></a> <font size="-1">colorSpace</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ColorspaceType">ColorspaceType</a>
 colorSpace_</font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ColorspaceType">ColorspaceType</a>
 colorSpace_</font></td>
       <td><font size="-1">The colorspace (e.g. CMYK) used to represent
 the image pixel colors. Image pixels are always stored as RGB(A) except
@@ -2034,11 +2034,11 @@
       <td>
       <center><a name="compose"></a> <font size="-1">compose</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#CompositeOperator">CompositeOperator</a>
       </font></td>
       <td><small><font size="-1"><small>void</small></font></small></td>
       <td><small><font size="-1"><small><a
- href="Enumerations.html#CompositeOperator">CompositeOperator</a>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#CompositeOperator">CompositeOperator</a>
 compose_</small></font></small></td>
       <td><font size="-1">Composition operator to be used when
 composition is implicitly used (such as for image flattening).</font></td>
@@ -2049,11 +2049,11 @@
       <br />
       <font size="-1">Type</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#CompressionType">CompressionType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#CompressionType">CompressionType</a>
       </font></td>
       <td><small><font size="-1"><small>void</small></font></small></td>
       <td><small><font size="-1"><small><a
- href="Enumerations.html#CompressionType">CompressionType</a>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#CompressionType">CompressionType</a>
 compressType_</small></font></small></td>
       <td><font size="-1">Image compresion type. The default is the
 compression type of the specified image file.</font></td>
@@ -2119,10 +2119,10 @@
       <td>
       <center><a name="density"></a> <font size="-1">density</font></center>
       </td>
-      <td><font size="-1"><a href="Geometry.html">Geometry</a> &#160;
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> &#160;
 (default 72x72)</font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;density_</font></td>
       <td><font size="-1">Vertical and horizontal resolution in pixels
 of the image. This option specifies an image density when decoding a
@@ -2144,10 +2144,10 @@
       <td>
       <center><a name="endian"></a> <font size="-1">endian</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#EndianType">EndianType</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#EndianType">EndianType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#EndianType">EndianType</a>
 endian_</font></td>
       <td><font size="-1">Specify (or obtain) endian option for formats
 which support it.</font></td>
@@ -2211,7 +2211,7 @@
       <td>
       <center><a name="fillRule"></a> <font size="-1">fillRule</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#FillRule">FillRule</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#FillRule">FillRule</a>
       </font></td>
       <td><font size="-1">void</font></td>
       <td><font size="-1">const Magick::FillRule &amp;fillRule_</font></td>
@@ -2221,10 +2221,10 @@
       <td>
       <center><a name="filterType"></a> <font size="-1">filterType</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#FilterTypes">FilterTypes</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#FilterTypes">FilterTypes</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#FilterTypes">FilterTypes</a>
 filterType_</font></td>
       <td><font size="-1">Filter to use when resizing image. The
 reduction filter employed has a sigificant effect on the time required
@@ -2258,9 +2258,9 @@
       <td>
       <center><a name="fontTypeMetrics"></a> <font size="-1">fontTypeMetrics</font></center>
       </td>
-      <td><font size="-1"><a href="TypeMetric.html">TypeMetric</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/TypeMetric.html">TypeMetric</a> </font></td>
       <td><font size="-1">const std::string &amp;text_, <a
- href="TypeMetric.html"> TypeMetric</a> *metrics</font></td>
+ href="http://www.imagemagick.org/Magick++/TypeMetric.html"> TypeMetric</a> *metrics</font></td>
       <td bgcolor="#666666"><font size="-1">&#160;</font></td>
       <td><font size="-1">Update metrics with font type metrics using
 specified <i>text</i>, and current <a href="Image++.html#font">font</a> and <a
@@ -2292,7 +2292,7 @@
       <td>
       <center><a name="geometry"></a> <font size="-1">geometry</font></center>
       </td>
-      <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> </font></td>
       <td><font size="-1">void</font></td>
       <td bgcolor="#666666"><font size="-1">&#160;</font></td>
       <td><font size="-1">Preferred size of the image when encoding.</font></td>
@@ -2319,12 +2319,12 @@
       <td>
       <center><a name="iccColorProfile"></a> <font size="-1">iccColorProfile</font></center>
       </td>
-      <td><font size="-1"><a href="Blob.html">Blob</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Blob.html">Blob</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a>
 &amp;colorProfile_</font></td>
       <td><font size="-1">ICC color profile. Supplied via a <a
- href="Blob.html"> Blob</a> since Magick++/ and ImageMagick do not
+ href="http://www.imagemagick.org/Magick++/Blob.html"> Blob</a> since Magick++/ and ImageMagick do not
 currently support formating this data structure directly.&#160;
 Specifications are available from the <a href="http://www.color.org/">
 International Color Consortium</a> for the format of ICC color profiles.</font></td>
@@ -2335,10 +2335,10 @@
       <br />
       <font size="-1">Type</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#InterlaceType">InterlaceType</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#InterlaceType">InterlaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#InterlaceType">InterlaceType</a>
 interlace_</font></td>
       <td><font size="-1">The type of interlacing scheme (default <i>NoInterlace</i>
 ). This option is used to specify the type of&#160; interlacing
@@ -2355,12 +2355,12 @@
       <td>
       <center><a name="iptcProfile"></a> <font size="-1">iptcProfile</font></center>
       </td>
-      <td><font size="-1"><a href="Blob.html">Blob</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Blob.html">Blob</a> &amp;
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Blob.html">Blob</a> &amp;
 iptcProfile_</font></td>
       <td><font size="-1">IPTC profile. Supplied via a <a
- href="Blob.html"> Blob</a> since Magick++ and ImageMagick do not
+ href="http://www.imagemagick.org/Magick++/Blob.html"> Blob</a> since Magick++ and ImageMagick do not
 currently&#160; support formating this data structure directly.
 Specifications are available from the <a href="http://www.iptc.org/">
 International Press Telecommunications Council</a> for IPTC profiles.</font></td>
@@ -2398,9 +2398,9 @@
       <td>
       <center><a name="matteColor"></a> <font size="-1">matteColor</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Color.html">Color</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Color.html">Color</a>
 &amp;matteColor_</font></td>
       <td><font size="-1">Image matte (frame) color</font></td>
     </tr>
@@ -2455,7 +2455,7 @@
       <br />
       <font size="-1">Geometry</font></center>
       </td>
-      <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> </font></td>
       <td><font size="-1">void</font></td>
       <td bgcolor="#666666"><font size="-1">&#160;</font></td>
       <td><font size="-1">Tile size and offset within an image montage.
@@ -2492,11 +2492,11 @@
  name="orientation"></a>orientation<br />
       </small></td>
       <td style="vertical-align: middle;"><small><a
- href="Enumerations.html#OrientationType">OrientationType</a></small></td>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#OrientationType">OrientationType</a></small></td>
       <td style="vertical-align: top;"><small>void</small><br />
       </td>
       <td style="vertical-align: middle;"><small><a
- href="Enumerations.html#OrientationType">OrientationType</a>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#OrientationType">OrientationType</a>
 orientation_</small></td>
       <td style="vertical-align: top;"><small>Image orientation.
 &#160;Supported by some file formats such as DPX and TIFF. Useful for
@@ -2527,11 +2527,11 @@
       <td>
       <center><a name="page"></a> <font size="-1">page</font></center>
       </td>
-      <td><font size="-1"><a href="Geometry.html#PostscriptPageSize">Geometry</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Geometry.html#PostscriptPageSize">Geometry</a>
       </font></td>
       <td><font size="-1">void</font></td>
       <td><font size="-1">const <a
- href="Geometry.html#PostscriptPageSize"> Geometry</a> &amp;pageSize_</font></td>
+ href="http://www.imagemagick.org/Magick++/Geometry.html#PostscriptPageSize"> Geometry</a> &amp;pageSize_</font></td>
       <td><font size="-1">Preferred size and location of an image
 canvas.</font>
       <p><font size="-1">Use this option to specify the dimensions
@@ -2546,10 +2546,10 @@
       <td>
       <center><a name="pixelColor"></a> <font size="-1">pixelColor</font></center>
       </td>
-      <td><font size="-1"><a href="Color.html">Color</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Color.html">Color</a> </font></td>
       <td><font size="-1">ssize_t x_, ssize_t y_</font></td>
       <td><font size="-1">ssize_t x_, ssize_t y_, const <a
- href="Color.html"> Color</a> &amp;color_</font></td>
+ href="http://www.imagemagick.org/Magick++/Color.html"> Color</a> &amp;color_</font></td>
       <td><font size="-1">Get/set pixel color at location x &amp; y.</font></td>
     </tr>
     <tr>
@@ -2557,7 +2557,7 @@
       <div style="text-align:center"><a name="profile"></a> <small>profile</small><br />
       </div>
       </td>
-      <td valign="top"><a href="Blob.html"><small> Blob</small><small><br />
+      <td valign="top"><a href="http://www.imagemagick.org/Magick++/Blob.html"><small> Blob</small><small><br />
       </small></a> </td>
       <td valign="top"><small>const std::string name_</small><small><br />
       </small></td>
@@ -2598,10 +2598,10 @@
       <br />
       <font size="-1">ColorSpace</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ColorspaceType">ColorspaceType</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#ColorspaceType">ColorspaceType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ColorspaceType">ColorspaceType</a>
 colorSpace_</font></td>
       <td><font size="-1">Colorspace to quantize colors in (default
 RGB). Empirical evidence suggests that distances in color spaces such
@@ -2648,10 +2648,10 @@
       <br />
       <font size="-1">Intent</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#RenderingIntent">RenderingIntent</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#RenderingIntent">RenderingIntent</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#RenderingIntent">RenderingIntent</a>
 render_</font></td>
       <td><font size="-1">The type of rendering intent</font></td>
     </tr>
@@ -2661,10 +2661,10 @@
       <br />
       <font size="-1">Units</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ResolutionType">ResolutionType</a>
       </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#ResolutionType">ResolutionType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ResolutionType">ResolutionType</a>
 units_</font></td>
       <td><font size="-1">Units of image resolution</font></td>
     </tr>
@@ -2700,9 +2700,9 @@
       <td>
       <center><a name="size"></a> <font size="-1">size</font></center>
       </td>
-      <td><font size="-1"><a href="Geometry.html">Geometry</a> </font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a> </font></td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1">const <a href="Geometry.html">Geometry</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Geometry.html">Geometry</a>
 &amp;geometry_</font></td>
       <td><font size="-1">Width and height of a raw image (an image
 which does not support width and height information).&#160; Size may
@@ -2877,11 +2877,11 @@
       <td>
       <center><a name="type"></a> <font size="-1">type</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#ImageType">ImageType</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#ImageType">ImageType</a>
       </font></td>
       <td><font size="-1">void</font></td>
       <td bgcolor="#ffffff"><font size="-1"><a
- href="Enumerations.html#ImageType"> ImageType</a> </font></td>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#ImageType"> ImageType</a> </font></td>
       <td><font size="-1">Image type.</font></td>
     </tr>
     <tr>
@@ -2906,11 +2906,11 @@
       <td>
       <center><a name="virtualPixelMethod"></a> <font size="-1">virtualPixelMethod</font></center>
       </td>
-      <td><font size="-1"><a href="Enumerations.html#VirtualPixelMethod">VirtualPixelMethod</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#VirtualPixelMethod">VirtualPixelMethod</a>
       </font></td>
       <td><small><font size="-1"><small>void</small></font></small></td>
       <td><small><font size="-1"><small><a
- href="Enumerations.html#VirtualPixelMethod">VirtualPixelMethod</a>
+ href="http://www.imagemagick.org/Magick++/Enumerations.html#VirtualPixelMethod">VirtualPixelMethod</a>
 virtualPixelMethod_</small></font></small></td>
       <td><font size="-1">Image virtual pixel method.</font></td>
     </tr>
@@ -2947,7 +2947,7 @@
 <center>
 <h3> <a name="Raw Image Pixel Access"></a> Low-Level Image Pixel Access</h3>
 </center>
-Image pixels (of type <i><a href="Quantum.html">Quantum</a> </i>)
+Image pixels (of type <i><a href="http://www.imagemagick.org/Magick++/Quantum.html">Quantum</a> </i>)
 may be accessed directly via the <i>Image Pixel Cache</i> .&#160; The
 image pixel cache is a rectangular window into the actual image pixels
 (which may be in memory, memory-mapped from a disk file, or entirely on
@@ -2955,12 +2955,12 @@
 The
 interface described here (part of the <i>Image</i> class) supports
 only
-one view at a time. See the <i><a href="Pixels.html">Pixels</a> </i>
+one view at a time. See the <i><a href="http://www.imagemagick.org/Magick++/Pixels.html">Pixels</a> </i>
 class for a more abstract interface which supports simultaneous pixel
 views (up to the number of rows). As an analogy, the interface
 described
-here relates to the <i><a href="Pixels.html">Pixels</a> </i> class as
-stdio's gets() relates to fgets(). The <i><a href="Pixels.html"> Pixels</a>
+here relates to the <i><a href="http://www.imagemagick.org/Magick++/Pixels.html">Pixels</a> </i> class as
+stdio's gets() relates to fgets(). The <i><a href="http://www.imagemagick.org/Magick++/Pixels.html"> Pixels</a>
 </i>class provides the more general form of the interface.
 <p>Obtain existing image pixels via <i>getPixels()</i>. Create a new
 pixel region using <i>setPixels().</i></p>
@@ -2985,7 +2985,7 @@
 may be accessed, addressed, and updated, as shown in the following
 example:</p>
 <pre class="code">
-<img class="icon" src="Cache.png" name="Graphic1" width="254" border="0" alt="cache" />
+<img class="icon" src="http://www.imagemagick.org/Magick++/Cache.png" name="Graphic1" width="254" border="0" alt="cache" />
 Image image("cow.png"); 
 // Ensure that there are no other references to this image.
 image.modifyImage();
@@ -3026,7 +3026,7 @@
       <td>
       <center><a name="getConstPixels"></a> <font size="-1">getConstPixels</font></center>
       </td>
-      <td><font size="-1">const <a href="Quantum.html">Quantum</a>
+      <td><font size="-1">const <a href="http://www.imagemagick.org/Magick++/Quantum.html">Quantum</a>
 *</font></td>
       <td><font size="-1">const ssize_t x_, const ssize_t y_, const size_t
 columns_, const size_t rows_</font></td>
@@ -3081,7 +3081,7 @@
       <td>
       <center><a name="getPixels"></a> <font size="-1">getPixels</font></center>
       </td>
-      <td><font size="-1"><a href="Quantum.html">Quantum</a> *</font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Quantum.html">Quantum</a> *</font></td>
       <td><font size="-1">const ssize_t x_, const ssize_t y_, const size_t
 columns_, const size_t rows_</font></td>
       <td><font size="-1">Transfers pixels from the image to the pixel
@@ -3096,7 +3096,7 @@
       <td>
       <center><a name="setPixels"></a> <font size="-1">setPixels</font></center>
       </td>
-      <td><font size="-1"><a href="Quantum.html">Quantum</a> *</font></td>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Quantum.html">Quantum</a> *</font></td>
       <td><font size="-1">const ssize_t x_, const ssize_t y_, const size_t
 columns_, const size_t rows_</font></td>
       <td><font size="-1">Allocates a pixel cache region to store image
@@ -3119,7 +3119,7 @@
       <center><a name="readPixels"></a> <font size="-1">readPixels</font></center>
       </td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#QuantumTypes">QuantumTypes</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#QuantumTypes">QuantumTypes</a>
 quantum_, unsigned char *source_,</font></td>
       <td><font size="-1">Transfers one or more pixel components from a
 buffer or file into the image pixel cache of an image. ReadPixels is
@@ -3131,7 +3131,7 @@
       <center><a name="writePixels"></a> <font size="-1">writePixels</font></center>
       </td>
       <td><font size="-1">void</font></td>
-      <td><font size="-1"><a href="Enumerations.html#QuantumTypes">QuantumTypes</a>
+      <td><font size="-1"><a href="http://www.imagemagick.org/Magick++/Enumerations.html#QuantumTypes">QuantumTypes</a>
 quantum_, unsigned char *destination_</font></td>
       <td><font size="-1">Transfers one or more pixel components from
 the image pixel cache to a buffer or file. WritePixels is typically
diff --git a/www/Magick++/Pixels.html b/www/Magick++/Pixels.html
index 48f7b21..1d74768 100644
--- a/www/Magick++/Pixels.html
+++ b/www/Magick++/Pixels.html
@@ -28,7 +28,7 @@
 <p>Setting a view using the Pixels class does not cause the number of
 references to the underlying image to be reduced to one. Therefore, in
 order to ensure that only the current generation of the image is
-modified, the Image's <a href="https://imagemagick.org/Magick++/Image++.html#modifyImage">modifyImage()</a>
+modified, the Image's <a href="Image++.html#modifyImage">modifyImage()</a>
 method should be invoked to reduce the reference count on the underlying
 image to one. If this is not done, then it is possible for a previous
 generation of the image to be modified due to the use of reference
@@ -213,7 +213,7 @@
 which is itself typedef <i>unsigned char</i>, or 			<i>unsigned short</i>,
 depending on the value of the <i>QuantumDepth 			</i>define) provide
 the <span lang="en-US">colormap</span> index 			(see <a
- href="https://imagemagick.org/Magick++/Image++.html#colorMap">colorMap</a>) for each pixel in 			the
+ href="Image++.html#colorMap">colorMap</a>) for each pixel in 			the
 image. For CMYKA images, the indexes represent the black 			
 channel. The value returned is intended for pixel access 			only. It
 should never be deallocated.</font></p>
diff --git a/www/Magick++/Quantum.html b/www/Magick++/Quantum.html
index 54a82fb..7f6ffae 100644
--- a/www/Magick++/Quantum.html
+++ b/www/Magick++/Quantum.html
@@ -59,7 +59,7 @@
 <td width="102">
 <p align="center"><a href="Enumerations.html#ColorspaceType">RGBColorspace</a></p></td>
 <td width="152">
-<p align="center"><a href="Enumerations.html#ColorspaceType">RGBColorspace</a> + <a href="https://imagemagick.org/Magick++/Image++.html#matte">matte</a></p></td>
+<p align="center"><a href="Enumerations.html#ColorspaceType">RGBColorspace</a> + <a href="Image++.html#matte">matte</a></p></td>
 <td width="119">
 <p align="center"><a href="Enumerations.html#ColorspaceType">CMYKColorspace</a></p></td></tr>
 <tr>
diff --git a/www/Magick++/STL.html b/www/Magick++/STL.html
index 85ed2e2..245ffa8 100644
--- a/www/Magick++/STL.html
+++ b/www/Magick++/STL.html
@@ -4,7 +4,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Magick++ API: STL Templates</title>
-<link rel="stylesheet" href="https://imagemagick.org/Magick++/magick.css" type="text/css" />
+<link rel="stylesheet" href="https://www.imagemagick.org/Magick++/magick.css" type="text/css" />
 </head>
 <body>
 <div class="doc-section">
@@ -100,7 +100,7 @@
       <td>
       <center><a name="appendImages"></a> <font size="-1">appendImages</font></center>
       </td>
-      <td><font size="-1"><a href="Image++.html">Image</a>
+      <td><font size="-1"><a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 *appendedImage_, <a
  href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
 first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
@@ -116,7 +116,7 @@
       <td>
       <center><a name="averageImages"></a> <font size="-1">averageImages</font></center>
       </td>
-      <td><font size="-1"><a href="Image++.html">Image</a>
+      <td><font size="-1"><a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 *averagedImage_, <a
  href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
 first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
@@ -181,7 +181,7 @@
       <td>
       <center><a name="flattenImages"></a> <font size="-1">flattenImages</font></center>
       </td>
-      <td><font size="-1"><a href="Image++.html">Image</a>
+      <td><font size="-1"><a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 *flattendImage_, <a
  href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
 first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
@@ -217,7 +217,7 @@
       <td><font size="-1"><a
  href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
 first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
-last_, const <a href="Image++.html">Image</a> &amp; mapImage_, bool
+last_, const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a> &amp; mapImage_, bool
 dither_,&#160; bool measureError_ = false</font></td>
       <td><font size="-1">Replace the colors of a sequence of images
 with the closest color from a reference image. Set <i>dither_</i> to <i>true</i>
@@ -239,11 +239,11 @@
 container <i> montageImages_ </i>depending on the tile setting and the
 number of image frames montaged. Montage options are provided via the
 parameter <i>montageOpts_</i> . Options set in the first image frame (<a
- href="Image++.html#backgroundColor"> backgroundColor,</a> <a
- href="Image++.html#borderColor">borderColor</a> , <a
- href="Image++.html#matteColor">matteColor</a> , <a
- href="Image++.html#penColor">penColor,</a> <a href="Image++.html#font">font,</a>
-and <a href="Image++.html#fontPointsize">fontPointsize</a> ) are also used
+ href="https://www.imagemagick.org/Magick++/Image++.html#backgroundColor"> backgroundColor,</a> <a
+ href="https://www.imagemagick.org/Magick++/Image++.html#borderColor">borderColor</a> , <a
+ href="https://www.imagemagick.org/Magick++/Image++.html#matteColor">matteColor</a> , <a
+ href="https://www.imagemagick.org/Magick++/Image++.html#penColor">penColor,</a> <a href="https://www.imagemagick.org/Magick++/Image++.html#font">font,</a>
+and <a href="https://www.imagemagick.org/Magick++/Image++.html#fontPointsize">fontPointsize</a> ) are also used
 as options by <i>montageImages().</i></font></td>
     </tr>
     <tr>
@@ -266,7 +266,7 @@
       <td>
       <center><a name="mosaicImages"></a> <font size="-1">mosaicImages</font></center>
       </td>
-      <td><font size="-1"><a href="Image++.html">Image</a> *mosaicImage_, <a
+      <td><font size="-1"><a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a> *mosaicImage_, <a
  href="http://www.sgi.com/tech/stl/InputIterator.html"> InputIterator</a>
 first_, <a href="http://www.sgi.com/tech/stl/InputIterator.html">InputIterator</a>
 last_</font></td>
@@ -370,7 +370,7 @@
 provide the means to construct an object which caches arguments for
 later use by an algorithm designed for use with unary function objects.
 There is a unary function object corresponding each algorithm provided
-by the <a href="Image++.html"> Image</a> class and there is a contructor
+by the <a href="https://www.imagemagick.org/Magick++/Image++.html"> Image</a> class and there is a contructor
 available compatable with each synonymous  method in the Image class. </p>
 <p>The unary function objects that Magick++ provides to support
 manipulating images are shown in the following table: <br />
@@ -526,7 +526,7 @@
       <td rowspan="2">
       <center><a name="compositeImage"></a> <font size="-1">compositeImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;compositeImage_, ssize_t xOffset_, ssize_t yOffset_, <a
  href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
 compose_ = <i>InCompositeOp</i></font></td>
@@ -534,7 +534,7 @@
 specified offset and using specified algorithm</font></td>
     </tr>
     <tr>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;compositeImage_, const Geometry &amp;offset_, <a
  href="Enumerations.html#CompositeOperator"> CompositeOperator</a>
 compose_ = <i>InCompositeOp</i></font></td>
@@ -670,7 +670,7 @@
       <font size="-1">TextureImage</font></center>
       </td>
       <td><font size="-1">ssize_t x_, ssize_t y_,&#160; const <a
- href="Image++.html"> Image</a> &amp;texture_</font></td>
+ href="https://www.imagemagick.org/Magick++/Image++.html"> Image</a> &amp;texture_</font></td>
       <td rowspan="2"><font size="-1">Flood-fill texture across pixels
 that match  the color of the target pixel and are neighbors of the
 target pixel. Uses  current fuzz setting when determining color match.</font></td>
@@ -747,7 +747,7 @@
       <td>
       <center><a name="inverseFourierTransformImage"></a> <font size="-1">inverseFourierTransformImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;phaseImage_, const bool magnitude_</font></td>
       <td><font size="-1">implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.</font></td>
     </tr>
@@ -826,7 +826,7 @@
       <td>
       <center><a name="mapImage"></a> <font size="-1">mapImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;mapImage_ , bool dither_ = false</font></td>
       <td><font size="-1">Remap image colors with closest color from
 reference image. Set dither_ to <i>true</i> in to apply Floyd/Steinberg
@@ -1064,7 +1064,7 @@
       <td>
       <center><a name="steganoImage"></a> <font size="-1">steganoImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;watermark_</font></td>
       <td><font size="-1">Add a digital watermark to the image (based
 on second  image)</font></td>
@@ -1073,7 +1073,7 @@
       <td>
       <center><a name="stereoImage"></a> <font size="-1">stereoImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;rightImage_</font></td>
       <td><font size="-1">Create an image which appears in stereo when
 viewed with red-blue glasses (Red image on left, blue on right)</font></td>
@@ -1090,7 +1090,7 @@
       <td>
       <center><a name="textureImage"></a> <font size="-1">textureImage</font></center>
       </td>
-      <td><font size="-1">const <a href="Image++.html">Image</a>
+      <td><font size="-1">const <a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a>
 &amp;texture_</font></td>
       <td><font size="-1">Layer a texture on image background</font></td>
     </tr>
@@ -1557,7 +1557,7 @@
       <td>
       <center><a name="penTexture"></a> <font size="-1">penTextureImage</font></center>
       </td>
-      <td><font size="-1"><a href="Image++.html">Image</a> </font></td>
+      <td><font size="-1"><a href="https://www.imagemagick.org/Magick++/Image++.html">Image</a> </font></td>
       <td><font size="-1">const Image &amp; penTexture_</font></td>
       <td><font size="-1">Texture image to paint with (similar to
 penColor).</font></td>
diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html
index 1a1b9da..6481c2c 100644
--- a/www/advanced-unix-installation.html
+++ b/www/advanced-unix-installation.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Advanced Unix Source Installation @ ImageMagick</title>
+  <title>ImageMagick - Advanced Unix Source Installation</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="advanced, unix, source, installation, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="advanced-unix-installation.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,19 +76,20 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="advanced-unix-installation.html#download">Download &amp; Unpack</a> • <a href="advanced-unix-installation.html#configure">Configure</a>  • <a href="advanced-unix-installation.html#build">Build</a> • <a href="advanced-unix-installation.html#install">Install</a> • <a href="advanced-unix-installation.html#linux">Linux-specific Build Instructions</a> • <a href="advanced-unix-installation.html#macosx">Mac OS X-specific Build Instructions</a> • <a href="advanced-unix-installation.html#mingw">MinGW-specific Build Instructions</a> • <a href="advanced-unix-installation.html#problems">Dealing with Unexpected Problems</a></p>
 
-<p  class="lead magick-description">It's possible you don't want to concern yourself with advanced installation under Unix or Linux systems.  If so, you also have the option of installing a pre-compiled <a href="../www/download.html#unix">binary release</a>  or if you still want to install from source without all the fuss see the simple <a href="install-source.html#unix">Install From Source</a> instructions.  However, if you want to customize the configuration and installation of ImageMagick under Unix or Linux systems, lets begin.</p>
+<p  class="lead magick-description">It's possible you don't want to concern yourself with advanced installation under Unix or Linux systems.  If so, you also have the option of installing a pre-compiled <a href="../www/download.html#unix">binary release</a>  or if you still want to install from source without all the fuss see the simple <a href="../www/install-source.html#unix">Install From Source</a> instructions.  However, if you want to customize the configuration and installation of ImageMagick under Unix or Linux systems, lets begin.</p>
 
 <h2><a class="anchor" id="download"></a>Download &amp; Unpack</h2>
 
@@ -101,7 +107,7 @@
 
 <p>The configure script looks at your environment and decides what it can cobble together to get ImageMagick compiled and installed on your system.  This includes finding a compiler, where your compiler header files are located (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick to use (e.g. JPEG, PNG, TIFF, etc.).  If you are willing to accept configure's default options, and build from within the source directory, you can simply type:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8-23</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9-14</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
 <p>Watch the configure script output to verify that it finds everything that
  you think it should.  Pay particular attention to the last lines of the script output.  For example, here is a recent report from our system:</p>
 
@@ -212,7 +218,7 @@
 
 <p>Here are the optional features you can configure:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>--enable-shared</td>
@@ -266,7 +272,7 @@
 
 <p>Here are the optional packages you can configure:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>--with-quantum-depth</td>
@@ -520,7 +526,7 @@
 
 <p>After the build you, locate the RPMS folder and install the ImageMagick binary RPM distribution:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -ivh ImageMagick-7.0.8-?.*.rpm</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -ivh ImageMagick-7.0.9-?.*.rpm</span></pre>
 <h2><a class="anchor" id="macosx"></a>Mac OS X-specific Build instructions</h2>
 
 <p>Perform these steps as an administrator or with the <tt>sudo</tt> command:</p>
@@ -545,7 +551,7 @@
 
 	  <p><a href="../www/download.html">Download</a> the ImageMagick source distribution and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
 	  <p>Unpack and change into the top-level ImageMagick directory:</p>
-		<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.8-23.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8-23</span></pre>	  <p>Configure ImageMagick:</p>
+		<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.9-14.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9-14</span></pre>	  <p>Configure ImageMagick:</p>
 <pre class="highlight"><code>./configure --prefix=/opt --with-quantum-depth=16 \
   --disable-dependency-tracking --with-x=yes \
   --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
@@ -572,7 +578,7 @@
 
 <p>Although you can download and install delegate libraries yourself, many are already available in the <a href="http://gnuwin32.sourceforge.net/">GnuWin32</a> distribution.  Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc.  Make sure you specify the development headers when you install a package.  Next type,</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.8-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8-23</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.9-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9-14</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
 <h2><a class="anchor" id="problems"></a>Dealing with Unexpected Problems</h2>
 
 <p>Chances are the download, configure, build, and install of ImageMagick went flawlessly as it is intended, however, certain systems and environments may cause one or more steps to fail.  We discuss a few problems we've run across and how to take corrective action to ensure you have a working release of ImageMagick</p>
@@ -621,21 +627,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="advanced-unix-installation.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="advanced-unix-installation.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:25 -->
\ No newline at end of file
diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html
index 5578917..d37f8e4 100644
--- a/www/advanced-windows-installation.html
+++ b/www/advanced-windows-installation.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Advanced Windows Source Installation @ ImageMagick</title>
+  <title>ImageMagick - Advanced Windows Source Installation</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="advanced, windows, source, installation, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="advanced-windows-installation.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -124,21 +130,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="advanced-windows-installation.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="advanced-windows-installation.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:34 -->
\ No newline at end of file
diff --git a/www/animate.html b/www/animate.html
index c3a05ac..66a3881 100644
--- a/www/animate.html
+++ b/www/animate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Animate @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Animate</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, animate, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="animate.html" rel="canonical" />
+  <link href="../www/animate.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,23 +72,24 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="animate.html#usage">Example Usage</a> • <a href="animate.html#options">Option Summary</a></p>
 
-<p class="lead magick-description">Use the <code>animate</code> program to animate an image sequence on any X server.   See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>animate</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">Use the <code>animate</code> program to animate an image sequence on any X server.   See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>animate</code> command or see below for example usages of the command.</p>
 
 <h2><a class="anchor" id="usage"></a>Example Usage</h2>
 
@@ -112,423 +118,423 @@
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#antialias">-antialias</a></td>
+    <td><a href="command-line-options.html#antialias">-antialias</a></td>
     <td>remove pixel-aliasing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decrypt image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#backdrop">-backdrop</a></td>
+    <td><a href="command-line-options.html#backdrop">-backdrop</a></td>
     <td>background color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#background">-background <var>color</var></a></td>
+    <td><a href="command-line-options.html#background">-background <var>color</var></a></td>
     <td>background color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#border">-border <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#border">-border <var>geometry</var></a></td>
     <td>surround image with a border of color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
     <td>border color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip">-clip</a></td>
+    <td><a href="command-line-options.html#clip">-clip</a></td>
     <td>clip along the first path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
+    <td><a href="command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
     <td>clip along a named path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#coalesce">-coalesce</a></td>
+    <td><a href="command-line-options.html#coalesce">-coalesce</a></td>
     <td>merge a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colormap">-colormap <var>type</var></a></td>
+    <td><a href="command-line-options.html#colormap">-colormap <var>type</var></a></td>
     <td>Shared or Private</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colors">-colors <var>value</var></a></td>
+    <td><a href="command-line-options.html#colors">-colors <var>value</var></a></td>
     <td>preferred number of colors in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#comment">-comment <var>string</var></a></td>
+    <td><a href="command-line-options.html#comment">-comment <var>string</var></a></td>
     <td>annotate image with comment</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compress">-compress <var>type</var></a></td>
+    <td><a href="command-line-options.html#compress">-compress <var>type</var></a></td>
     <td>image compression type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#contrast">-contrast</a></td>
+    <td><a href="command-line-options.html#contrast">-contrast</a></td>
     <td>enhance or reduce the image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#crop">-crop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#crop">-crop <var>geometry</var></a></td>
     <td>preferred size and location of the cropped image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>animate copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#decipher">-decipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#decipher">-decipher <var>filename</var></a></td>
     <td>convert cipher pixels to plain</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#delay">-delay <var>value</var></a></td>
+    <td><a href="command-line-options.html#delay">-delay <var>value</var></a></td>
     <td>animate the next image after pausing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#despeckle">-despeckle</a></td>
+    <td><a href="command-line-options.html#despeckle">-despeckle</a></td>
     <td>reduce the speckles within an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#animate">-display <var>server</var></a></td>
+    <td><a href="command-line-options.html#animate">-display <var>server</var></a></td>
     <td>get image or font from this X server</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dispose">-dispose <var>method</var></a></td>
+    <td><a href="command-line-options.html#dispose">-dispose <var>method</var></a></td>
     <td>layer disposal method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dither">-dither  <var>method</var></a></td>
+    <td><a href="command-line-options.html#dither">-dither  <var>method</var></a></td>
     <td>apply error diffusion to image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#edge">-edge <var>radius</var></a></td>
+    <td><a href="command-line-options.html#edge">-edge <var>radius</var></a></td>
     <td>apply a filter to detect edges in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#endian">-endian <var>type</var></a></td>
+    <td><a href="command-line-options.html#endian">-endian <var>type</var></a></td>
     <td>endianness (MSB or LSB) of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#enhance">-enhance</a></td>
+    <td><a href="command-line-options.html#enhance">-enhance</a></td>
     <td>apply a digital filter to enhance a noisy image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#filter">-filter <var>type</var></a></td>
+    <td><a href="command-line-options.html#filter">-filter <var>type</var></a></td>
     <td>use this filter when resizing an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flatten">-flatten</a></td>
+    <td><a href="command-line-options.html#flatten">-flatten</a></td>
     <td>flatten a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flip">-flip</a></td>
+    <td><a href="command-line-options.html#flip">-flip</a></td>
     <td>flip image in the vertical direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flop">-flop</a></td>
+    <td><a href="command-line-options.html#flop">-flop</a></td>
     <td>flop image in the horizontal direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#frame">-frame <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#frame">-frame <var>geometry</var></a></td>
     <td>surround image with an ornamental border</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gamma">-gamma <var>value</var></a></td>
+    <td><a href="command-line-options.html#gamma">-gamma <var>value</var></a></td>
     <td>level of gamma correction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
     <td>preferred size or location of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gravity">-gravity <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#gravity">-gravity <var>geometry</var></a></td>
     <td>horizontal and vertical backdrop placement</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#identify">-identify</a></td>
+    <td><a href="command-line-options.html#identify">-identify</a></td>
     <td>identify the format and characteristics of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#immutable">-immutable <var>type</var></a></td>
+    <td><a href="command-line-options.html#immutable">-immutable <var>type</var></a></td>
     <td>prohibit image edits</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#label">-label <var>name</var></a></td>
+    <td><a href="command-line-options.html#label">-label <var>name</var></a></td>
     <td>assign a label to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#map">-map <var>filename</var></a></td>
+    <td><a href="command-line-options.html#map">-map <var>filename</var></a></td>
     <td>transform image colors to match this set of colors</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
     <td>frame color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monochrome">-monochrome</a></td>
+    <td><a href="command-line-options.html#monochrome">-monochrome</a></td>
     <td>transform image to black and white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#page">-page <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#page">-page <var>geometry</var></a></td>
     <td>size and location of an image canvas (setting)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#profile">-profile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#profile">-profile <var>filename</var></a></td>
     <td>add, delete, or apply an image profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#raise">-raise <var>value</var></a></td>
+    <td><a href="command-line-options.html#raise">-raise <var>value</var></a></td>
     <td>lighten/darken image edges to create a 3-D effect</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#remote">-remote <var>command</var></a></td>
+    <td><a href="command-line-options.html#remote">-remote <var>command</var></a></td>
     <td>execute a command in an remote animate process</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resample">-resample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resample">-resample <var>geometry</var></a></td>
     <td>change the resolution of an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resize">-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resize">-resize <var>geometry</var></a></td>
     <td>resize the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#roll">-roll <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#roll">-roll <var>geometry</var></a></td>
     <td>roll an image vertically or horizontally</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
     <td>apply Paeth rotation to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sample">-sample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sample">-sample <var>geometry</var></a></td>
     <td>scale image with pixel sampling</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scene">-scene <var>value</var></a></td>
+    <td><a href="command-line-options.html#scene">-scene <var>value</var></a></td>
     <td>image scene number</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#segment">-segment <var>values</var></a></td>
+    <td><a href="command-line-options.html#segment">-segment <var>values</var></a></td>
     <td>segment an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strip">-strip</a></td>
+    <td><a href="command-line-options.html#strip">-strip</a></td>
     <td>strip image of all profiles and comments</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
     <td>create a thumbnail of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#trim">-trim</a></td>
+    <td><a href="command-line-options.html#trim">-trim</a></td>
     <td>trim image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#update">-update <var>seconds</var></a></td>
+    <td><a href="command-line-options.html#update">-update <var>seconds</var></a></td>
     <td>detect when image file is modified and reanimate</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#visual">-visual</a></td>
+    <td><a href="command-line-options.html#visual">-visual</a></td>
     <td>animate image using this visual type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write">-window <var>id</var></a></td>
+    <td><a href="command-line-options.html#write">-window <var>id</var></a></td>
     <td>animate images to background of this window</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write">-window-group <var>id</var></a></td>
+    <td><a href="command-line-options.html#write">-window-group <var>id</var></a></td>
     <td>exit program when this window id is destroyed</td>
   </tr>
 
@@ -538,22 +544,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="animate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:26 -->
\ No newline at end of file
diff --git a/www/api.html b/www/api.html
index 7238e1e..635b5ee 100644
--- a/www/api.html
+++ b/www/api.html
@@ -5,52 +5,87 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
+  <meta charset="utf-8"  />
+  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <title>ImageMagick - Application Program Interfaces</title>
+  <meta name="application-name" content="ImageMagick" />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
+  <meta name="application-url" content="https://imagemagick.org" />
+  <meta name="generator" content="PHP" />
+  <meta name="keywords" content="application, program, interfaces, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
+  <meta name="rating" content="GENERAL" />
+  <meta name="robots" content="INDEX, FOLLOW" />
+  <meta name="generator" content="ImageMagick Studio LLC" />
+  <meta name="author" content="ImageMagick Studio LLC" />
+  <meta name="revisit-after" content="2 DAYS" />
+  <meta name="resource-type" content="document" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
+  <meta name="distribution" content="Global" />
+  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-    <title>ImageMagick: Application Program Interfaces</title>
-  <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
-  <meta name="application-name" content="ImageMagick"/>
-  <meta name="description" content="ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 200) including PNG, JPEG, JPEG-2000, GIF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves."/>
-  <meta name="application-url" content="https://imagemagick.org"/>
-  <meta name="generator" content="PHP"/>
-  <meta name="keywords" content="application, program, interfaces, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert"/>
-  <meta name="rating" content="GENERAL"/>
-  <meta name="robots" content="INDEX, FOLLOW"/>
-  <meta name="generator" content="ImageMagick Studio LLC"/>
-  <meta name="author" content="ImageMagick Studio LLC"/>
-  <meta name="revisit-after" content="2 DAYS"/>
-  <meta name="resource-type" content="document"/>
-  <meta name="copyright" content="Copyright (c) 1999-2015 ImageMagick Studio LLC"/>
-  <meta name="distribution" content="Global"/>
-  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1"/>
-  <link rel="icon" href="../images/wand.png"/>
-  <link rel="shortcut icon" href="../images/wand.ico"/>
-  <link rel="stylesheet" href="css/magick.css"/>
+  <link href="api.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-<div class="main">
-<div class="magick-masthead">
+  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
+      <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="navbar-collapse collapse" id="navbarsMagick" style="">
+    <ul class="navbar-nav mr-auto">
+      <li class="nav-item ">
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/download.html">Download</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/resources.html">Resources</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/develop.html">Develop</a>
+      </li>
+      <li class="nav-item">
+        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
+      </li>
+    </ul>
+    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+      <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
+      <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
+    </form>
+    </div>
+  </nav>
   <div class="container">
-    <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
-    <nav class="magick-nav">
-      <a class="magick-nav-item " href="../index.html">Home</a>
-      <a class="magick-nav-item " href="binary-releases.html">Download</a>
-      <a class="magick-nav-item " href="command-line-tools.html">Tools</a>
-      <a class="magick-nav-item " href="command-line-processing.html">Command-line</a>
-      <a class="magick-nav-item " href="resources.html">Resources</a>
-      <a class="magick-nav-item active" href="api.html">Develop</a>
-      <a class="magick-nav-item " href="www/www/www/www/www/www/www/www/www/../www/../www/https://imagemagick.org/script/search.php">Search</a>
-      <a class="magick-nav-item pull-right" href="www/discourse-server/">Community</a>
-    </nav>
+
   </div>
-</div>
-<div class="container">
+
+  <main class="container">
+    <div class="magick-template">
 <div class="magick-header">
 
 <p class="lead magick-description">ImageMagick includes a number of ready-made interfaces. This makes it possible to modify or create images automagically and dynamically utilizing your favorite development platform.</p>
@@ -62,19 +97,19 @@
 
   <dt><a id="c"></a>C</dt>
 
-<dd>Use <a href="magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language.  There is also the low-level <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
+<dd>Use <a href="../www/magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language.  There is also the low-level <a href="../www/magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
 
   <dt><a id="ch"></a>Ch</dt>
 
-<dd><a href="www/ChMagick">ChMagick</a> is a <a href="http://www.softintegration.com/">Ch</a> binding to the MagickCore and MagickWand API.  Ch is an embeddable C/C++ interpreter for cross-platform scripting.</dd>
+<dd><a href="../ChMagick">ChMagick</a> is a <a href="http://www.softintegration.com/">Ch</a> binding to the MagickCore and MagickWand API.  Ch is an embeddable C/C++ interpreter for cross-platform scripting.</dd>
 
   <dt><a id="com_"></a>COM+</dt>
 
-<dd>Use <a href="ImageMagickObject.html">ImageMagickObject</a> to convert, compose, and edit images from a Windows COM+ compatible component.</dd>
+<dd>Use <a href="../www/ImageMagickObject.html">ImageMagickObject</a> to convert, compose, and edit images from a Windows COM+ compatible component.</dd>
 
   <dt><a id="c__"></a>C++</dt>
 
-<dd><a href="magick++.html">magick++</a> provides an object-oriented C++ interface to ImageMagick.  See <a href="www/Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="www/Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
+<dd><a href="../www/magick++.html">Magick++</a> provides an object-oriented C++ interface to ImageMagick.  See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
 
   <dt><a id="go"></a>GO</dt>
   <dd><a href="https://github.com/gographics/imagick">GoImagick</a> is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.</dd>
@@ -83,6 +118,10 @@
 
 <dd><a href="http://www.jmagick.org">JMagick</a> provides an object-oriented Java interface to ImageMagick.  <a href="http://im4java.sourceforge.net">Im4java</a> is a pure-java interface to the ImageMagick command-line.</dd>
 
+  <dt><a id="julia"></a>Julia</dt>
+
+<dd><a href="https://github.com/JuliaIO/ImageMagick.jl">JuliaIO</a> provides an object-oriented Julia interface to ImageMagick.</dd>
+
   <dt><a id="labview"></a>LabVIEW</dt>
 
 <dd><a href="http://forums.lavag.org/downloads-file90.html">LVOOP ImageMagick</a> is an object-oriented LabVIEW interface to ImageMagick.</dd>
@@ -111,7 +150,7 @@
 
   <dt><a id="perl"></a>Perl</dt>
 
-<dd>Use <a href="perl-magick.html">PerlMagick</a> to convert, compose, and edit images from the Perl language.</dd>
+<dd>Use <a href="../www/perl-magick.html">PerlMagick</a> to convert, compose, and edit images from the Perl language.</dd>
 
   <dt><a id="php"></a>PHP</dt>
 
@@ -126,8 +165,9 @@
 
 
 <dd><a href="http://wand-py.org/">Wand</a> is a ctypes-based ImagedMagick binding library for Python.</dd>
-<dd><a href="www/download/python/">PythonMagick</a> is an object-oriented Python interface to ImageMagick.</dd>
+<dd><a href="https://imagemagick.org/download/python/">PythonMagick</a> is an object-oriented Python interface to ImageMagick.</dd>
 <dd><a href="http://www.assembla.com/wiki/show/pythonmagickwand">PythonMagickWand</a> is an object-oriented Python interface to MagickWand based on ctypes.</dd>
+<dd><a href="http://siptoolbox.sourceforge.net/">Scilab Image Processing</a> toolbox utilizes ImageMagick to do imaging tasks such as filtering, blurring, edge detection, thresholding, histogram manipulation, segmentation, mathematical morphology, color image processing, etc..</dd>
 
   <dt><a id="realbasic"></a>REALbasic</dt>
 
@@ -135,9 +175,9 @@
 
   <dt><a id="ruby"></a>Ruby</dt>
 
-<dd><a href="https://rmagick.github.io/">RMagick</a> is an interface between the Ruby programming language and the <a href="magick-core.html">MagickCore</a> image processing libraries.  Get started with RMagick by perusing the <a href="https://rmagick.github.io/">documentation</a>.</dd>
+<dd><a href="https://rmagick.github.io/">RMagick</a> is an interface between the Ruby programming language and the <a href="../www/magick-core.html">MagickCore</a> image processing libraries.  Get started with RMagick by perusing the <a href="https://rmagick.github.io/">documentation</a>.</dd>
 
-<dd><a href="http://magickwand.rubyforge.org/">MagickWand for Ruby</a> is an interface between the Ruby programming language and the <a href="magick-wand.html">MagickWand</a> image processing libraries.  Get started with MagickWand for PHP by perusing the <a href="http://magickwand.rubyforge.org/">documentation</a>.</dd>
+<dd><a href="http://magickwand.rubyforge.org/">MagickWand for Ruby</a> is an interface between the Ruby programming language and the <a href="../www/magick-wand.html">MagickWand</a> image processing libraries.  Get started with MagickWand for PHP by perusing the <a href="http://magickwand.rubyforge.org/">documentation</a>.</dd>
 
 <dd><a href="https://github.com/minimagick">MiniMagick</a> is a Ruby wrapper for ImageMagick command line. MiniMagick gives you convenient access to all the command line options ImageMagick supports.</dd>
 
@@ -156,21 +196,27 @@
 <dd><a href="http://code.google.com/p/remotemagick/">RemoteMagick</a> is an XML-RPC web service that creates image thumbnails.</dd>
 </dl>
 </div>
+    </div>
+  </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="support.html">Donate</a> •
-     <a href="sitemap.html">Sitemap</a> •
-    <a href="links.html">Related</a> •
-    <a href="architecture.html">Architecture</a>
-</p>
-    <p><a href="api.html#">Back to top</a> •
-    <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="www/www/www/www/www/www/www/www/www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/https://imagemagick.org/script/contact.php">Contact Us</a></p>
-        <p><small>©  1999-2016 ImageMagick Studio LLC</small></p>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="api.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
+    <br/>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
-</div><!-- /.container -->
 
-  <script src="https://localhost/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
-  <script src="http://nextgen.imagemagick.org/js/magick.html"></script>
-</div>
+  <!-- Javascript assets -->
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:46 -->
\ No newline at end of file
diff --git a/www/api/Image++.html b/www/api/Image++.html
index 3f7cadb..a7938f1 100644
--- a/www/api/Image++.html
+++ b/www/api/Image++.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Magick++, C++ API for ImageMagick: Image Class @ ImageMagick</title>
+  <title>ImageMagick - Magick++, C++ API for ImageMagick: Image Class</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magick++, c++, api, for, imagemagick:, image, class, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="Image++.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <h1> Magick::Image Class</h1>
@@ -3214,22 +3220,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="Image++.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="Image++.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 07:43 -->
\ No newline at end of file
+<!-- Magick Cache 31st December 2019 19:38 -->
\ No newline at end of file
diff --git a/www/api/Magick++/annotated.html b/www/api/Magick++/annotated.html
index f5a825e..b6af59a 100644
--- a/www/api/Magick++/annotated.html
+++ b/www/api/Magick++/annotated.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Class List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('annotated.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -61,296 +55,291 @@
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9654;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceMagick.html" target="_self">Magick</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adaptiveBlurImage.html" target="_self">adaptiveBlurImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adaptiveThresholdImage.html" target="_self">adaptiveThresholdImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1addNoiseImage.html" target="_self">addNoiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adjoinImage.html" target="_self">adjoinImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1affineTransformImage.html" target="_self">affineTransformImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1alphaFlagImage.html" target="_self">alphaFlagImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1alphaImage.html" target="_self">alphaImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1animationDelayImage.html" target="_self">animationDelayImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1animationIterationsImage.html" target="_self">animationIterationsImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1annotateImage.html" target="_self">annotateImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1backgroundColorImage.html" target="_self">backgroundColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1backgroundTextureImage.html" target="_self">backgroundTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Blob.html" target="_self">Blob</a></td><td class="desc"></td></tr>
-<tr id="row_0_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1BlobRef.html" target="_self">BlobRef</a></td><td class="desc"></td></tr>
-<tr id="row_0_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1blurImage.html" target="_self">blurImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1borderColorImage.html" target="_self">borderColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1borderImage.html" target="_self">borderImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1boxColorImage.html" target="_self">boxColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cdlImage.html" target="_self">cdlImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1channelImage.html" target="_self">channelImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelMoments.html" target="_self">ChannelMoments</a></td><td class="desc"></td></tr>
-<tr id="row_0_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelPerceptualHash.html" target="_self">ChannelPerceptualHash</a></td><td class="desc"></td></tr>
-<tr id="row_0_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelStatistics.html" target="_self">ChannelStatistics</a></td><td class="desc"></td></tr>
-<tr id="row_0_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1charcoalImage.html" target="_self">charcoalImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chopImage.html" target="_self">chopImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html" target="_self">chromaBluePrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html" target="_self">chromaGreenPrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html" target="_self">chromaRedPrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaWhitePointImage.html" target="_self">chromaWhitePointImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1CoderInfo.html" target="_self">CoderInfo</a></td><td class="desc"></td></tr>
-<tr id="row_0_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Color.html" target="_self">Color</a></td><td class="desc"></td></tr>
-<tr id="row_0_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorCMYK.html" target="_self">ColorCMYK</a></td><td class="desc"></td></tr>
-<tr id="row_0_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorFuzzImage.html" target="_self">colorFuzzImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorGray.html" target="_self">ColorGray</a></td><td class="desc"></td></tr>
-<tr id="row_0_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorHSL.html" target="_self">ColorHSL</a></td><td class="desc"></td></tr>
-<tr id="row_0_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorizeImage.html" target="_self">colorizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorMapImage.html" target="_self">colorMapImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorMatrixImage.html" target="_self">colorMatrixImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorMono.html" target="_self">ColorMono</a></td><td class="desc"></td></tr>
-<tr id="row_0_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorRGB.html" target="_self">ColorRGB</a></td><td class="desc"></td></tr>
-<tr id="row_0_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorSpaceImage.html" target="_self">colorSpaceImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorYUV.html" target="_self">ColorYUV</a></td><td class="desc"></td></tr>
-<tr id="row_0_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1commentImage.html" target="_self">commentImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1composeImage.html" target="_self">composeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1compositeImage.html" target="_self">compositeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1compressTypeImage.html" target="_self">compressTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1contrastImage.html" target="_self">contrastImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Coordinate.html" target="_self">Coordinate</a></td><td class="desc"></td></tr>
-<tr id="row_0_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cropImage.html" target="_self">cropImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cycleColormapImage.html" target="_self">cycleColormapImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1densityImage.html" target="_self">densityImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1depthImage.html" target="_self">depthImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1despeckleImage.html" target="_self">despeckleImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1distortImage.html" target="_self">distortImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Drawable.html" target="_self">Drawable</a></td><td class="desc"></td></tr>
-<tr id="row_0_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableAffine.html" target="_self">DrawableAffine</a></td><td class="desc"></td></tr>
-<tr id="row_0_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableAlpha.html" target="_self">DrawableAlpha</a></td><td class="desc"></td></tr>
-<tr id="row_0_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableArc.html" target="_self">DrawableArc</a></td><td class="desc"></td></tr>
-<tr id="row_0_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBase.html" target="_self">DrawableBase</a></td><td class="desc"></td></tr>
-<tr id="row_0_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBezier.html" target="_self">DrawableBezier</a></td><td class="desc"></td></tr>
-<tr id="row_0_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBorderColor.html" target="_self">DrawableBorderColor</a></td><td class="desc"></td></tr>
-<tr id="row_0_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableCircle.html" target="_self">DrawableCircle</a></td><td class="desc"></td></tr>
-<tr id="row_0_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipPath.html" target="_self">DrawableClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_0_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipRule.html" target="_self">DrawableClipRule</a></td><td class="desc"></td></tr>
-<tr id="row_0_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipUnits.html" target="_self">DrawableClipUnits</a></td><td class="desc"></td></tr>
-<tr id="row_0_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableColor.html" target="_self">DrawableColor</a></td><td class="desc"></td></tr>
-<tr id="row_0_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableCompositeImage.html" target="_self">DrawableCompositeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableDensity.html" target="_self">DrawableDensity</a></td><td class="desc"></td></tr>
-<tr id="row_0_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableEllipse.html" target="_self">DrawableEllipse</a></td><td class="desc"></td></tr>
-<tr id="row_0_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillColor.html" target="_self">DrawableFillColor</a></td><td class="desc"></td></tr>
-<tr id="row_0_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillOpacity.html" target="_self">DrawableFillOpacity</a></td><td class="desc"></td></tr>
-<tr id="row_0_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillPatternUrl.html" target="_self">DrawableFillPatternUrl</a></td><td class="desc"></td></tr>
-<tr id="row_0_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillRule.html" target="_self">DrawableFillRule</a></td><td class="desc"></td></tr>
-<tr id="row_0_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFont.html" target="_self">DrawableFont</a></td><td class="desc"></td></tr>
-<tr id="row_0_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableGravity.html" target="_self">DrawableGravity</a></td><td class="desc"></td></tr>
-<tr id="row_0_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableLine.html" target="_self">DrawableLine</a></td><td class="desc"></td></tr>
-<tr id="row_0_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableMiterLimit.html" target="_self">DrawableMiterLimit</a></td><td class="desc"></td></tr>
-<tr id="row_0_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePath.html" target="_self">DrawablePath</a></td><td class="desc"></td></tr>
-<tr id="row_0_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePoint.html" target="_self">DrawablePoint</a></td><td class="desc"></td></tr>
-<tr id="row_0_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePointSize.html" target="_self">DrawablePointSize</a></td><td class="desc"></td></tr>
-<tr id="row_0_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePolygon.html" target="_self">DrawablePolygon</a></td><td class="desc"></td></tr>
-<tr id="row_0_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePolyline.html" target="_self">DrawablePolyline</a></td><td class="desc"></td></tr>
-<tr id="row_0_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopClipPath.html" target="_self">DrawablePopClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_0_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html" target="_self">DrawablePopGraphicContext</a></td><td class="desc"></td></tr>
-<tr id="row_0_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopPattern.html" target="_self">DrawablePopPattern</a></td><td class="desc"></td></tr>
-<tr id="row_0_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushClipPath.html" target="_self">DrawablePushClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_0_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html" target="_self">DrawablePushGraphicContext</a></td><td class="desc"></td></tr>
-<tr id="row_0_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushPattern.html" target="_self">DrawablePushPattern</a></td><td class="desc"></td></tr>
-<tr id="row_0_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRectangle.html" target="_self">DrawableRectangle</a></td><td class="desc"></td></tr>
-<tr id="row_0_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRotation.html" target="_self">DrawableRotation</a></td><td class="desc"></td></tr>
-<tr id="row_0_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRoundRectangle.html" target="_self">DrawableRoundRectangle</a></td><td class="desc"></td></tr>
-<tr id="row_0_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableScaling.html" target="_self">DrawableScaling</a></td><td class="desc"></td></tr>
-<tr id="row_0_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableSkewX.html" target="_self">DrawableSkewX</a></td><td class="desc"></td></tr>
-<tr id="row_0_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableSkewY.html" target="_self">DrawableSkewY</a></td><td class="desc"></td></tr>
-<tr id="row_0_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html" target="_self">DrawableStrokeAntialias</a></td><td class="desc"></td></tr>
-<tr id="row_0_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeColor.html" target="_self">DrawableStrokeColor</a></td><td class="desc"></td></tr>
-<tr id="row_0_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeDashArray.html" target="_self">DrawableStrokeDashArray</a></td><td class="desc"></td></tr>
-<tr id="row_0_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeDashOffset.html" target="_self">DrawableStrokeDashOffset</a></td><td class="desc"></td></tr>
-<tr id="row_0_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html" target="_self">DrawableStrokeLineCap</a></td><td class="desc"></td></tr>
-<tr id="row_0_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html" target="_self">DrawableStrokeLineJoin</a></td><td class="desc"></td></tr>
-<tr id="row_0_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html" target="_self">DrawableStrokeOpacity</a></td><td class="desc"></td></tr>
-<tr id="row_0_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokePatternUrl.html" target="_self">DrawableStrokePatternUrl</a></td><td class="desc"></td></tr>
-<tr id="row_0_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeWidth.html" target="_self">DrawableStrokeWidth</a></td><td class="desc"></td></tr>
-<tr id="row_0_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableText.html" target="_self">DrawableText</a></td><td class="desc"></td></tr>
-<tr id="row_0_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextAlignment.html" target="_self">DrawableTextAlignment</a></td><td class="desc"></td></tr>
-<tr id="row_0_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextAntialias.html" target="_self">DrawableTextAntialias</a></td><td class="desc"></td></tr>
-<tr id="row_0_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextDecoration.html" target="_self">DrawableTextDecoration</a></td><td class="desc"></td></tr>
-<tr id="row_0_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextDirection.html" target="_self">DrawableTextDirection</a></td><td class="desc"></td></tr>
-<tr id="row_0_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html" target="_self">DrawableTextInterlineSpacing</a></td><td class="desc"></td></tr>
-<tr id="row_0_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html" target="_self">DrawableTextInterwordSpacing</a></td><td class="desc"></td></tr>
-<tr id="row_0_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextKerning.html" target="_self">DrawableTextKerning</a></td><td class="desc"></td></tr>
-<tr id="row_0_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextUnderColor.html" target="_self">DrawableTextUnderColor</a></td><td class="desc"></td></tr>
-<tr id="row_0_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTranslation.html" target="_self">DrawableTranslation</a></td><td class="desc"></td></tr>
-<tr id="row_0_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableViewbox.html" target="_self">DrawableViewbox</a></td><td class="desc"></td></tr>
-<tr id="row_0_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1drawImage.html" target="_self">drawImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1edgeImage.html" target="_self">edgeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_116_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1embossImage.html" target="_self">embossImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_117_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1endianImage.html" target="_self">endianImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_118_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1enhanceImage.html" target="_self">enhanceImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_119_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1equalizeImage.html" target="_self">equalizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_120_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Error.html" target="_self">Error</a></td><td class="desc"></td></tr>
-<tr id="row_0_121_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorBlob.html" target="_self">ErrorBlob</a></td><td class="desc"></td></tr>
-<tr id="row_0_122_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCache.html" target="_self">ErrorCache</a></td><td class="desc"></td></tr>
-<tr id="row_0_123_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCoder.html" target="_self">ErrorCoder</a></td><td class="desc"></td></tr>
-<tr id="row_0_124_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorConfigure.html" target="_self">ErrorConfigure</a></td><td class="desc"></td></tr>
-<tr id="row_0_125_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCorruptImage.html" target="_self">ErrorCorruptImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorDelegate.html" target="_self">ErrorDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_0_127_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorDraw.html" target="_self">ErrorDraw</a></td><td class="desc"></td></tr>
-<tr id="row_0_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorFileOpen.html" target="_self">ErrorFileOpen</a></td><td class="desc"></td></tr>
-<tr id="row_0_129_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorImage.html" target="_self">ErrorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorMissingDelegate.html" target="_self">ErrorMissingDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_0_131_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorModule.html" target="_self">ErrorModule</a></td><td class="desc"></td></tr>
-<tr id="row_0_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorMonitor.html" target="_self">ErrorMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_0_133_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorOption.html" target="_self">ErrorOption</a></td><td class="desc"></td></tr>
-<tr id="row_0_134_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorPolicy.html" target="_self">ErrorPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_135_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorRegistry.html" target="_self">ErrorRegistry</a></td><td class="desc"></td></tr>
-<tr id="row_0_136_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorResourceLimit.html" target="_self">ErrorResourceLimit</a></td><td class="desc"></td></tr>
-<tr id="row_0_137_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorStream.html" target="_self">ErrorStream</a></td><td class="desc"></td></tr>
-<tr id="row_0_138_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorType.html" target="_self">ErrorType</a></td><td class="desc"></td></tr>
-<tr id="row_0_139_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorUndefined.html" target="_self">ErrorUndefined</a></td><td class="desc"></td></tr>
-<tr id="row_0_140_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorXServer.html" target="_self">ErrorXServer</a></td><td class="desc"></td></tr>
-<tr id="row_0_141_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Exception.html" target="_self">Exception</a></td><td class="desc"></td></tr>
-<tr id="row_0_142_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fileNameImage.html" target="_self">fileNameImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_143_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fillColorImage.html" target="_self">fillColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_144_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1filterTypeImage.html" target="_self">filterTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_145_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1flipImage.html" target="_self">flipImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_146_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillAlphaImage.html" target="_self">floodFillAlphaImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_147_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillColorImage.html" target="_self">floodFillColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_148_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillTextureImage.html" target="_self">floodFillTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_149_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1flopImage.html" target="_self">flopImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_150_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fontImage.html" target="_self">fontImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_151_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fontPointsizeImage.html" target="_self">fontPointsizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_152_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1frameImage.html" target="_self">frameImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_153_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gammaImage.html" target="_self">gammaImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_154_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gaussianBlurImage.html" target="_self">gaussianBlurImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_155_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Geometry.html" target="_self">Geometry</a></td><td class="desc"></td></tr>
-<tr id="row_0_156_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gifDisposeMethodImage.html" target="_self">gifDisposeMethodImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_157_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1haldClutImage.html" target="_self">haldClutImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_158_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Image.html" target="_self">Image</a></td><td class="desc"></td></tr>
-<tr id="row_0_159_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageMoments.html" target="_self">ImageMoments</a></td><td class="desc"></td></tr>
-<tr id="row_0_160_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImagePerceptualHash.html" target="_self">ImagePerceptualHash</a></td><td class="desc"></td></tr>
-<tr id="row_0_161_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageRef.html" target="_self">ImageRef</a></td><td class="desc"></td></tr>
-<tr id="row_0_162_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageStatistics.html" target="_self">ImageStatistics</a></td><td class="desc"></td></tr>
-<tr id="row_0_163_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1implodeImage.html" target="_self">implodeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_164_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1interlaceTypeImage.html" target="_self">interlaceTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_165_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1inverseFourierTransformImage.html" target="_self">inverseFourierTransformImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_166_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1isValidImage.html" target="_self">isValidImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_167_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1labelImage.html" target="_self">labelImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_168_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1levelImage.html" target="_self">levelImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_169_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1magickImage.html" target="_self">magickImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_170_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1magnifyImage.html" target="_self">magnifyImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_171_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1mapImage.html" target="_self">mapImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_172_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1matteColorImage.html" target="_self">matteColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_173_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1medianConvolveImage.html" target="_self">medianConvolveImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_174_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1mergeLayersImage.html" target="_self">mergeLayersImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_175_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1minifyImage.html" target="_self">minifyImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_176_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1modulateImage.html" target="_self">modulateImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_177_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1monochromeImage.html" target="_self">monochromeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_178_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Montage.html" target="_self">Montage</a></td><td class="desc"></td></tr>
-<tr id="row_0_179_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1MontageFramed.html" target="_self">MontageFramed</a></td><td class="desc"></td></tr>
-<tr id="row_0_180_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1MutexLock.html" target="_self">MutexLock</a></td><td class="desc"></td></tr>
-<tr id="row_0_181_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1negateImage.html" target="_self">negateImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_182_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1normalizeImage.html" target="_self">normalizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_183_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Offset.html" target="_self">Offset</a></td><td class="desc"></td></tr>
-<tr id="row_0_184_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1oilPaintImage.html" target="_self">oilPaintImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_185_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1opaqueImage.html" target="_self">opaqueImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_186_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Options.html" target="_self">Options</a></td><td class="desc"></td></tr>
-<tr id="row_0_187_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1pageImage.html" target="_self">pageImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_188_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcAbs.html" target="_self">PathArcAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_189_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcArgs.html" target="_self">PathArcArgs</a></td><td class="desc"></td></tr>
-<tr id="row_0_190_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcRel.html" target="_self">PathArcRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_191_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathClosePath.html" target="_self">PathClosePath</a></td><td class="desc"></td></tr>
-<tr id="row_0_192_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoAbs.html" target="_self">PathCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_193_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoArgs.html" target="_self">PathCurvetoArgs</a></td><td class="desc"></td></tr>
-<tr id="row_0_194_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoRel.html" target="_self">PathCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_195_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoAbs.html" target="_self">PathLinetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_196_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html" target="_self">PathLinetoHorizontalAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_197_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html" target="_self">PathLinetoHorizontalRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_198_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoRel.html" target="_self">PathLinetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_199_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html" target="_self">PathLinetoVerticalAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_200_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html" target="_self">PathLinetoVerticalRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_201_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathMovetoAbs.html" target="_self">PathMovetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_202_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathMovetoRel.html" target="_self">PathMovetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_203_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html" target="_self">PathQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_204_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html" target="_self">PathQuadraticCurvetoArgs</a></td><td class="desc"></td></tr>
-<tr id="row_0_205_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html" target="_self">PathQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_206_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html" target="_self">PathSmoothCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_207_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html" target="_self">PathSmoothCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_208_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html" target="_self">PathSmoothQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_0_209_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html" target="_self">PathSmoothQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_0_210_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1penColorImage.html" target="_self">penColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_211_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1penTextureImage.html" target="_self">penTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_212_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1pixelColorImage.html" target="_self">pixelColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_213_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PixelData.html" target="_self">PixelData</a></td><td class="desc"></td></tr>
-<tr id="row_0_214_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Pixels.html" target="_self">Pixels</a></td><td class="desc"></td></tr>
-<tr id="row_0_215_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Point.html" target="_self">Point</a></td><td class="desc"></td></tr>
-<tr id="row_0_216_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1qualityImage.html" target="_self">qualityImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_217_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeColorsImage.html" target="_self">quantizeColorsImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_218_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html" target="_self">quantizeColorSpaceImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_219_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeDitherImage.html" target="_self">quantizeDitherImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_220_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeImage.html" target="_self">quantizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_221_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html" target="_self">quantizeTreeDepthImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_222_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1raiseImage.html" target="_self">raiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_223_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ReadOptions.html" target="_self">ReadOptions</a></td><td class="desc"></td></tr>
-<tr id="row_0_224_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1reduceNoiseImage.html" target="_self">reduceNoiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_225_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1renderingIntentImage.html" target="_self">renderingIntentImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_226_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1resizeImage.html" target="_self">resizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_227_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1resolutionUnitsImage.html" target="_self">resolutionUnitsImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_228_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ResourceLimits.html" target="_self">ResourceLimits</a></td><td class="desc"></td></tr>
-<tr id="row_0_229_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1rollImage.html" target="_self">rollImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_230_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1rotateImage.html" target="_self">rotateImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_231_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sampleImage.html" target="_self">sampleImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_232_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1scaleImage.html" target="_self">scaleImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_233_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sceneImage.html" target="_self">sceneImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_234_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1SecurityPolicy.html" target="_self">SecurityPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_235_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1segmentImage.html" target="_self">segmentImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_236_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shadeImage.html" target="_self">shadeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_237_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shadowImage.html" target="_self">shadowImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_238_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sharpenImage.html" target="_self">sharpenImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_239_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shaveImage.html" target="_self">shaveImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_240_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shearImage.html" target="_self">shearImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_241_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sigmoidalContrastImage.html" target="_self">sigmoidalContrastImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_242_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sizeImage.html" target="_self">sizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_243_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1solarizeImage.html" target="_self">solarizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_244_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1spliceImage.html" target="_self">spliceImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_245_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1spreadImage.html" target="_self">spreadImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_246_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1steganoImage.html" target="_self">steganoImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_247_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1stereoImage.html" target="_self">stereoImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_248_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1stripImage.html" target="_self">stripImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_249_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1strokeColorImage.html" target="_self">strokeColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_250_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1subImageImage.html" target="_self">subImageImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_251_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1subRangeImage.html" target="_self">subRangeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_252_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1swirlImage.html" target="_self">swirlImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_253_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1textAntiAliasImage.html" target="_self">textAntiAliasImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_254_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1textureImage.html" target="_self">textureImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_255_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1thresholdImage.html" target="_self">thresholdImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_256_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1transparentImage.html" target="_self">transparentImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_257_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1trimImage.html" target="_self">trimImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_258_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1typeImage.html" target="_self">typeImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_259_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1TypeMetric.html" target="_self">TypeMetric</a></td><td class="desc"></td></tr>
-<tr id="row_0_260_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1verboseImage.html" target="_self">verboseImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_261_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1VPath.html" target="_self">VPath</a></td><td class="desc"></td></tr>
-<tr id="row_0_262_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1VPathBase.html" target="_self">VPathBase</a></td><td class="desc"></td></tr>
-<tr id="row_0_263_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Warning.html" target="_self">Warning</a></td><td class="desc"></td></tr>
-<tr id="row_0_264_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningBlob.html" target="_self">WarningBlob</a></td><td class="desc"></td></tr>
-<tr id="row_0_265_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCache.html" target="_self">WarningCache</a></td><td class="desc"></td></tr>
-<tr id="row_0_266_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCoder.html" target="_self">WarningCoder</a></td><td class="desc"></td></tr>
-<tr id="row_0_267_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningConfigure.html" target="_self">WarningConfigure</a></td><td class="desc"></td></tr>
-<tr id="row_0_268_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCorruptImage.html" target="_self">WarningCorruptImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_269_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningDelegate.html" target="_self">WarningDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_0_270_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningDraw.html" target="_self">WarningDraw</a></td><td class="desc"></td></tr>
-<tr id="row_0_271_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningFileOpen.html" target="_self">WarningFileOpen</a></td><td class="desc"></td></tr>
-<tr id="row_0_272_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningImage.html" target="_self">WarningImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_273_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningMissingDelegate.html" target="_self">WarningMissingDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_0_274_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningModule.html" target="_self">WarningModule</a></td><td class="desc"></td></tr>
-<tr id="row_0_275_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningMonitor.html" target="_self">WarningMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_0_276_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningOption.html" target="_self">WarningOption</a></td><td class="desc"></td></tr>
-<tr id="row_0_277_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningPolicy.html" target="_self">WarningPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_278_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningRegistry.html" target="_self">WarningRegistry</a></td><td class="desc"></td></tr>
-<tr id="row_0_279_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningResourceLimit.html" target="_self">WarningResourceLimit</a></td><td class="desc"></td></tr>
-<tr id="row_0_280_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningStream.html" target="_self">WarningStream</a></td><td class="desc"></td></tr>
-<tr id="row_0_281_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningType.html" target="_self">WarningType</a></td><td class="desc"></td></tr>
-<tr id="row_0_282_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningUndefined.html" target="_self">WarningUndefined</a></td><td class="desc"></td></tr>
-<tr id="row_0_283_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningXServer.html" target="_self">WarningXServer</a></td><td class="desc"></td></tr>
-<tr id="row_0_284_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1waveImage.html" target="_self">waveImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_285_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1x11DisplayImage.html" target="_self">x11DisplayImage</a></td><td class="desc"></td></tr>
-<tr id="row_0_286_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1zoomImage.html" target="_self">zoomImage</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEncoderFormat.html" target="_self">EncoderFormat</a></td><td class="desc"></td></tr>
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceMagick.html" target="_self">Magick</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Blob.html" target="_self">Blob</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1BlobRef.html" target="_self">BlobRef</a></td><td class="desc"></td></tr>
+<tr id="row_0_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ChannelMoments.html" target="_self">ChannelMoments</a></td><td class="desc"></td></tr>
+<tr id="row_0_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ImageMoments.html" target="_self">ImageMoments</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1CoderInfo.html" target="_self">CoderInfo</a></td><td class="desc"></td></tr>
+<tr id="row_0_5_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Color.html" target="_self">Color</a></td><td class="desc"></td></tr>
+<tr id="row_0_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorGray.html" target="_self">ColorGray</a></td><td class="desc"></td></tr>
+<tr id="row_0_7_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorHSL.html" target="_self">ColorHSL</a></td><td class="desc"></td></tr>
+<tr id="row_0_8_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorMono.html" target="_self">ColorMono</a></td><td class="desc"></td></tr>
+<tr id="row_0_9_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorRGB.html" target="_self">ColorRGB</a></td><td class="desc"></td></tr>
+<tr id="row_0_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorYUV.html" target="_self">ColorYUV</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Coordinate.html" target="_self">Coordinate</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableBase.html" target="_self">DrawableBase</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Drawable.html" target="_self">Drawable</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1VPathBase.html" target="_self">VPathBase</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1VPath.html" target="_self">VPath</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableAffine.html" target="_self">DrawableAffine</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableArc.html" target="_self">DrawableArc</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableBezier.html" target="_self">DrawableBezier</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopClipPath.html" target="_self">DrawablePopClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushClipPath.html" target="_self">DrawablePushClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableClipPath.html" target="_self">DrawableClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_0_22_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableCircle.html" target="_self">DrawableCircle</a></td><td class="desc"></td></tr>
+<tr id="row_0_23_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableColor.html" target="_self">DrawableColor</a></td><td class="desc"></td></tr>
+<tr id="row_0_24_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableCompositeImage.html" target="_self">DrawableCompositeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_25_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDensity.html" target="_self">DrawableDensity</a></td><td class="desc"></td></tr>
+<tr id="row_0_26_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableEllipse.html" target="_self">DrawableEllipse</a></td><td class="desc"></td></tr>
+<tr id="row_0_27_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillColor.html" target="_self">DrawableFillColor</a></td><td class="desc"></td></tr>
+<tr id="row_0_28_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillRule.html" target="_self">DrawableFillRule</a></td><td class="desc"></td></tr>
+<tr id="row_0_29_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillOpacity.html" target="_self">DrawableFillOpacity</a></td><td class="desc"></td></tr>
+<tr id="row_0_30_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFont.html" target="_self">DrawableFont</a></td><td class="desc"></td></tr>
+<tr id="row_0_31_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableGravity.html" target="_self">DrawableGravity</a></td><td class="desc"></td></tr>
+<tr id="row_0_32_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableLine.html" target="_self">DrawableLine</a></td><td class="desc"></td></tr>
+<tr id="row_0_33_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableMatte.html" target="_self">DrawableMatte</a></td><td class="desc"></td></tr>
+<tr id="row_0_34_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePath.html" target="_self">DrawablePath</a></td><td class="desc"></td></tr>
+<tr id="row_0_35_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePoint.html" target="_self">DrawablePoint</a></td><td class="desc"></td></tr>
+<tr id="row_0_36_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePointSize.html" target="_self">DrawablePointSize</a></td><td class="desc"></td></tr>
+<tr id="row_0_37_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePolygon.html" target="_self">DrawablePolygon</a></td><td class="desc"></td></tr>
+<tr id="row_0_38_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePolyline.html" target="_self">DrawablePolyline</a></td><td class="desc"></td></tr>
+<tr id="row_0_39_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html" target="_self">DrawablePopGraphicContext</a></td><td class="desc"></td></tr>
+<tr id="row_0_40_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html" target="_self">DrawablePushGraphicContext</a></td><td class="desc"></td></tr>
+<tr id="row_0_41_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopPattern.html" target="_self">DrawablePopPattern</a></td><td class="desc"></td></tr>
+<tr id="row_0_42_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushPattern.html" target="_self">DrawablePushPattern</a></td><td class="desc"></td></tr>
+<tr id="row_0_43_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRectangle.html" target="_self">DrawableRectangle</a></td><td class="desc"></td></tr>
+<tr id="row_0_44_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRotation.html" target="_self">DrawableRotation</a></td><td class="desc"></td></tr>
+<tr id="row_0_45_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRoundRectangle.html" target="_self">DrawableRoundRectangle</a></td><td class="desc"></td></tr>
+<tr id="row_0_46_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableScaling.html" target="_self">DrawableScaling</a></td><td class="desc"></td></tr>
+<tr id="row_0_47_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableSkewX.html" target="_self">DrawableSkewX</a></td><td class="desc"></td></tr>
+<tr id="row_0_48_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableSkewY.html" target="_self">DrawableSkewY</a></td><td class="desc"></td></tr>
+<tr id="row_0_49_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDashArray.html" target="_self">DrawableDashArray</a></td><td class="desc"></td></tr>
+<tr id="row_0_50_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDashOffset.html" target="_self">DrawableDashOffset</a></td><td class="desc"></td></tr>
+<tr id="row_0_51_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html" target="_self">DrawableStrokeLineCap</a></td><td class="desc"></td></tr>
+<tr id="row_0_52_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html" target="_self">DrawableStrokeLineJoin</a></td><td class="desc"></td></tr>
+<tr id="row_0_53_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableMiterLimit.html" target="_self">DrawableMiterLimit</a></td><td class="desc"></td></tr>
+<tr id="row_0_54_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html" target="_self">DrawableStrokeAntialias</a></td><td class="desc"></td></tr>
+<tr id="row_0_55_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeColor.html" target="_self">DrawableStrokeColor</a></td><td class="desc"></td></tr>
+<tr id="row_0_56_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html" target="_self">DrawableStrokeOpacity</a></td><td class="desc"></td></tr>
+<tr id="row_0_57_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeWidth.html" target="_self">DrawableStrokeWidth</a></td><td class="desc"></td></tr>
+<tr id="row_0_58_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableText.html" target="_self">DrawableText</a></td><td class="desc"></td></tr>
+<tr id="row_0_59_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextAntialias.html" target="_self">DrawableTextAntialias</a></td><td class="desc"></td></tr>
+<tr id="row_0_60_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextDecoration.html" target="_self">DrawableTextDecoration</a></td><td class="desc"></td></tr>
+<tr id="row_0_61_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextDirection.html" target="_self">DrawableTextDirection</a></td><td class="desc"></td></tr>
+<tr id="row_0_62_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html" target="_self">DrawableTextInterlineSpacing</a></td><td class="desc"></td></tr>
+<tr id="row_0_63_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html" target="_self">DrawableTextInterwordSpacing</a></td><td class="desc"></td></tr>
+<tr id="row_0_64_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextKerning.html" target="_self">DrawableTextKerning</a></td><td class="desc"></td></tr>
+<tr id="row_0_65_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextUnderColor.html" target="_self">DrawableTextUnderColor</a></td><td class="desc"></td></tr>
+<tr id="row_0_66_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTranslation.html" target="_self">DrawableTranslation</a></td><td class="desc"></td></tr>
+<tr id="row_0_67_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableViewbox.html" target="_self">DrawableViewbox</a></td><td class="desc"></td></tr>
+<tr id="row_0_68_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcArgs.html" target="_self">PathArcArgs</a></td><td class="desc"></td></tr>
+<tr id="row_0_69_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcAbs.html" target="_self">PathArcAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_70_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcRel.html" target="_self">PathArcRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_71_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathClosePath.html" target="_self">PathClosePath</a></td><td class="desc"></td></tr>
+<tr id="row_0_72_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoArgs.html" target="_self">PathCurvetoArgs</a></td><td class="desc"></td></tr>
+<tr id="row_0_73_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoAbs.html" target="_self">PathCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_74_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoRel.html" target="_self">PathCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_75_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html" target="_self">PathSmoothCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_76_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html" target="_self">PathSmoothCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_77_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html" target="_self">PathQuadraticCurvetoArgs</a></td><td class="desc"></td></tr>
+<tr id="row_0_78_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html" target="_self">PathQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_79_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html" target="_self">PathQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_80_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html" target="_self">PathSmoothQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_81_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html" target="_self">PathSmoothQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_82_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoAbs.html" target="_self">PathLinetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_83_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoRel.html" target="_self">PathLinetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_84_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html" target="_self">PathLinetoHorizontalAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_85_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html" target="_self">PathLinetoHorizontalRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_86_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html" target="_self">PathLinetoVerticalAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_87_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html" target="_self">PathLinetoVerticalRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_88_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathMovetoAbs.html" target="_self">PathMovetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_0_89_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathMovetoRel.html" target="_self">PathMovetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_0_90_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Exception.html" target="_self">Exception</a></td><td class="desc"></td></tr>
+<tr id="row_0_91_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Error.html" target="_self">Error</a></td><td class="desc"></td></tr>
+<tr id="row_0_92_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorBlob.html" target="_self">ErrorBlob</a></td><td class="desc"></td></tr>
+<tr id="row_0_93_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCache.html" target="_self">ErrorCache</a></td><td class="desc"></td></tr>
+<tr id="row_0_94_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCoder.html" target="_self">ErrorCoder</a></td><td class="desc"></td></tr>
+<tr id="row_0_95_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorConfigure.html" target="_self">ErrorConfigure</a></td><td class="desc"></td></tr>
+<tr id="row_0_96_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCorruptImage.html" target="_self">ErrorCorruptImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_97_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorDelegate.html" target="_self">ErrorDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_0_98_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorDraw.html" target="_self">ErrorDraw</a></td><td class="desc"></td></tr>
+<tr id="row_0_99_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorFileOpen.html" target="_self">ErrorFileOpen</a></td><td class="desc"></td></tr>
+<tr id="row_0_100_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorImage.html" target="_self">ErrorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_101_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorMissingDelegate.html" target="_self">ErrorMissingDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_0_102_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorModule.html" target="_self">ErrorModule</a></td><td class="desc"></td></tr>
+<tr id="row_0_103_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorMonitor.html" target="_self">ErrorMonitor</a></td><td class="desc"></td></tr>
+<tr id="row_0_104_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorOption.html" target="_self">ErrorOption</a></td><td class="desc"></td></tr>
+<tr id="row_0_105_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorPolicy.html" target="_self">ErrorPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_106_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorRegistry.html" target="_self">ErrorRegistry</a></td><td class="desc"></td></tr>
+<tr id="row_0_107_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorResourceLimit.html" target="_self">ErrorResourceLimit</a></td><td class="desc"></td></tr>
+<tr id="row_0_108_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorStream.html" target="_self">ErrorStream</a></td><td class="desc"></td></tr>
+<tr id="row_0_109_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorType.html" target="_self">ErrorType</a></td><td class="desc"></td></tr>
+<tr id="row_0_110_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorUndefined.html" target="_self">ErrorUndefined</a></td><td class="desc"></td></tr>
+<tr id="row_0_111_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorXServer.html" target="_self">ErrorXServer</a></td><td class="desc"></td></tr>
+<tr id="row_0_112_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Warning.html" target="_self">Warning</a></td><td class="desc"></td></tr>
+<tr id="row_0_113_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningBlob.html" target="_self">WarningBlob</a></td><td class="desc"></td></tr>
+<tr id="row_0_114_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCache.html" target="_self">WarningCache</a></td><td class="desc"></td></tr>
+<tr id="row_0_115_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCoder.html" target="_self">WarningCoder</a></td><td class="desc"></td></tr>
+<tr id="row_0_116_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningConfigure.html" target="_self">WarningConfigure</a></td><td class="desc"></td></tr>
+<tr id="row_0_117_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCorruptImage.html" target="_self">WarningCorruptImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_118_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningDelegate.html" target="_self">WarningDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_0_119_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningDraw.html" target="_self">WarningDraw</a></td><td class="desc"></td></tr>
+<tr id="row_0_120_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningFileOpen.html" target="_self">WarningFileOpen</a></td><td class="desc"></td></tr>
+<tr id="row_0_121_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningImage.html" target="_self">WarningImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_122_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningMissingDelegate.html" target="_self">WarningMissingDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_0_123_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningModule.html" target="_self">WarningModule</a></td><td class="desc"></td></tr>
+<tr id="row_0_124_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningMonitor.html" target="_self">WarningMonitor</a></td><td class="desc"></td></tr>
+<tr id="row_0_125_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningOption.html" target="_self">WarningOption</a></td><td class="desc"></td></tr>
+<tr id="row_0_126_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningPolicy.html" target="_self">WarningPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_127_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningRegistry.html" target="_self">WarningRegistry</a></td><td class="desc"></td></tr>
+<tr id="row_0_128_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningResourceLimit.html" target="_self">WarningResourceLimit</a></td><td class="desc"></td></tr>
+<tr id="row_0_129_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningStream.html" target="_self">WarningStream</a></td><td class="desc"></td></tr>
+<tr id="row_0_130_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningType.html" target="_self">WarningType</a></td><td class="desc"></td></tr>
+<tr id="row_0_131_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningUndefined.html" target="_self">WarningUndefined</a></td><td class="desc"></td></tr>
+<tr id="row_0_132_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningXServer.html" target="_self">WarningXServer</a></td><td class="desc"></td></tr>
+<tr id="row_0_133_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Geometry.html" target="_self">Geometry</a></td><td class="desc"></td></tr>
+<tr id="row_0_134_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Offset.html" target="_self">Offset</a></td><td class="desc"></td></tr>
+<tr id="row_0_135_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_135_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_135_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Image.html" target="_self">Image</a></td><td class="desc"></td></tr>
+<tr id="row_0_135_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structMagick_1_1Image_1_1__ImageChannelStatistics.html" target="_self">_ImageChannelStatistics</a></td><td class="desc"></td></tr>
+<tr id="row_0_135_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structMagick_1_1Image_1_1__ImageStatistics.html" target="_self">_ImageStatistics</a></td><td class="desc"></td></tr>
+<tr id="row_0_136_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ImageRef.html" target="_self">ImageRef</a></td><td class="desc"></td></tr>
+<tr id="row_0_137_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Montage.html" target="_self">Montage</a></td><td class="desc"></td></tr>
+<tr id="row_0_138_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1MontageFramed.html" target="_self">MontageFramed</a></td><td class="desc"></td></tr>
+<tr id="row_0_139_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Options.html" target="_self">Options</a></td><td class="desc"></td></tr>
+<tr id="row_0_140_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Pixels.html" target="_self">Pixels</a></td><td class="desc"></td></tr>
+<tr id="row_0_141_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PixelData.html" target="_self">PixelData</a></td><td class="desc"></td></tr>
+<tr id="row_0_142_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ResourceLimits.html" target="_self">ResourceLimits</a></td><td class="desc"></td></tr>
+<tr id="row_0_143_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adaptiveBlurImage.html" target="_self">adaptiveBlurImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_144_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adaptiveThresholdImage.html" target="_self">adaptiveThresholdImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_145_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1addNoiseImage.html" target="_self">addNoiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_146_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1affineTransformImage.html" target="_self">affineTransformImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_147_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1annotateImage.html" target="_self">annotateImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_148_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1blurImage.html" target="_self">blurImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_149_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1borderImage.html" target="_self">borderImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_150_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1channelImage.html" target="_self">channelImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_151_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1charcoalImage.html" target="_self">charcoalImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_152_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chopImage.html" target="_self">chopImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_153_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cdlImage.html" target="_self">cdlImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_154_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorizeImage.html" target="_self">colorizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_155_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorMatrixImage.html" target="_self">colorMatrixImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_156_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorSpaceImage.html" target="_self">colorSpaceImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_157_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1commentImage.html" target="_self">commentImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_158_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1compositeImage.html" target="_self">compositeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_159_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1contrastImage.html" target="_self">contrastImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_160_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cropImage.html" target="_self">cropImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_161_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cycleColormapImage.html" target="_self">cycleColormapImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_162_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1despeckleImage.html" target="_self">despeckleImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_163_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1distortImage.html" target="_self">distortImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_164_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1drawImage.html" target="_self">drawImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_165_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1edgeImage.html" target="_self">edgeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_166_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1embossImage.html" target="_self">embossImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_167_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1enhanceImage.html" target="_self">enhanceImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_168_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1equalizeImage.html" target="_self">equalizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_169_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fillColorImage.html" target="_self">fillColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_170_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1flipImage.html" target="_self">flipImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_171_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1floodFillColorImage.html" target="_self">floodFillColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_172_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1floodFillTextureImage.html" target="_self">floodFillTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_173_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1flopImage.html" target="_self">flopImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_174_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1frameImage.html" target="_self">frameImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_175_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gammaImage.html" target="_self">gammaImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_176_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gaussianBlurImage.html" target="_self">gaussianBlurImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_177_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1haldClutImage.html" target="_self">haldClutImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_178_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1implodeImage.html" target="_self">implodeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_179_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1inverseFourierTransformImage.html" target="_self">inverseFourierTransformImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_180_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1isValidImage.html" target="_self">isValidImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_181_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1labelImage.html" target="_self">labelImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_182_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1levelImage.html" target="_self">levelImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_183_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1levelChannelImage.html" target="_self">levelChannelImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_184_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1magnifyImage.html" target="_self">magnifyImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_185_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1mapImage.html" target="_self">mapImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_186_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteFloodfillImage.html" target="_self">matteFloodfillImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_187_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1medianFilterImage.html" target="_self">medianFilterImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_188_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1mergeLayersImage.html" target="_self">mergeLayersImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_189_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1minifyImage.html" target="_self">minifyImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_190_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1modulateImage.html" target="_self">modulateImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_191_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1negateImage.html" target="_self">negateImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_192_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1normalizeImage.html" target="_self">normalizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_193_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1oilPaintImage.html" target="_self">oilPaintImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_194_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1opacityImage.html" target="_self">opacityImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_195_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1opaqueImage.html" target="_self">opaqueImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_196_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeImage.html" target="_self">quantizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_197_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1raiseImage.html" target="_self">raiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_198_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ReadOptions.html" target="_self">ReadOptions</a></td><td class="desc"></td></tr>
+<tr id="row_0_199_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1reduceNoiseImage.html" target="_self">reduceNoiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_200_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1resizeImage.html" target="_self">resizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_201_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1rollImage.html" target="_self">rollImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_202_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1rotateImage.html" target="_self">rotateImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_203_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sampleImage.html" target="_self">sampleImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_204_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1scaleImage.html" target="_self">scaleImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_205_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1segmentImage.html" target="_self">segmentImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_206_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shadeImage.html" target="_self">shadeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_207_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shadowImage.html" target="_self">shadowImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_208_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sharpenImage.html" target="_self">sharpenImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_209_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shaveImage.html" target="_self">shaveImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_210_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shearImage.html" target="_self">shearImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_211_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1solarizeImage.html" target="_self">solarizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_212_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1spliceImage.html" target="_self">spliceImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_213_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1spreadImage.html" target="_self">spreadImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_214_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1steganoImage.html" target="_self">steganoImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_215_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1stereoImage.html" target="_self">stereoImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_216_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1strokeColorImage.html" target="_self">strokeColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_217_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1swirlImage.html" target="_self">swirlImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_218_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1textureImage.html" target="_self">textureImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_219_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1thresholdImage.html" target="_self">thresholdImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_220_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1transformImage.html" target="_self">transformImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_221_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1transparentImage.html" target="_self">transparentImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_222_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1trimImage.html" target="_self">trimImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_223_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1waveImage.html" target="_self">waveImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_224_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1zoomImage.html" target="_self">zoomImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_225_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1antiAliasImage.html" target="_self">antiAliasImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_226_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adjoinImage.html" target="_self">adjoinImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_227_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1animationDelayImage.html" target="_self">animationDelayImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_228_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1animationIterationsImage.html" target="_self">animationIterationsImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_229_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1backgroundColorImage.html" target="_self">backgroundColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_230_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1backgroundTextureImage.html" target="_self">backgroundTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_231_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1borderColorImage.html" target="_self">borderColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_232_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1boxColorImage.html" target="_self">boxColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_233_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html" target="_self">chromaBluePrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_234_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html" target="_self">chromaGreenPrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_235_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html" target="_self">chromaRedPrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_236_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaWhitePointImage.html" target="_self">chromaWhitePointImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_237_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorFuzzImage.html" target="_self">colorFuzzImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_238_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorMapImage.html" target="_self">colorMapImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_239_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1composeImage.html" target="_self">composeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_240_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1compressTypeImage.html" target="_self">compressTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_241_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1densityImage.html" target="_self">densityImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_242_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1depthImage.html" target="_self">depthImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_243_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1endianImage.html" target="_self">endianImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_244_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fileNameImage.html" target="_self">fileNameImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_245_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1filterTypeImage.html" target="_self">filterTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_246_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fontImage.html" target="_self">fontImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_247_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fontPointsizeImage.html" target="_self">fontPointsizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_248_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gifDisposeMethodImage.html" target="_self">gifDisposeMethodImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_249_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1interlaceTypeImage.html" target="_self">interlaceTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_250_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1lineWidthImage.html" target="_self">lineWidthImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_251_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1magickImage.html" target="_self">magickImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_252_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteImage.html" target="_self">matteImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_253_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteColorImage.html" target="_self">matteColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_254_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1monochromeImage.html" target="_self">monochromeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_255_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1penColorImage.html" target="_self">penColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_256_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1penTextureImage.html" target="_self">penTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_257_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1pixelColorImage.html" target="_self">pixelColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_258_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1pageImage.html" target="_self">pageImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_259_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1qualityImage.html" target="_self">qualityImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_260_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeColorsImage.html" target="_self">quantizeColorsImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_261_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html" target="_self">quantizeColorSpaceImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_262_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeDitherImage.html" target="_self">quantizeDitherImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_263_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html" target="_self">quantizeTreeDepthImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_264_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1renderingIntentImage.html" target="_self">renderingIntentImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_265_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1resolutionUnitsImage.html" target="_self">resolutionUnitsImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_266_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sceneImage.html" target="_self">sceneImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_267_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sigmoidalContrastImage.html" target="_self">sigmoidalContrastImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_268_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sizeImage.html" target="_self">sizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_269_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1stripImage.html" target="_self">stripImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_270_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1subImageImage.html" target="_self">subImageImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_271_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1subRangeImage.html" target="_self">subRangeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_272_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1tileNameImage.html" target="_self">tileNameImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_273_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1typeImage.html" target="_self">typeImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_274_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1verboseImage.html" target="_self">verboseImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_275_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1viewImage.html" target="_self">viewImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_276_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1x11DisplayImage.html" target="_self">x11DisplayImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_277_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1MutexLock.html" target="_self">MutexLock</a></td><td class="desc"></td></tr>
+<tr id="row_0_278_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Lock.html" target="_self">Lock</a></td><td class="desc"></td></tr>
+<tr id="row_0_279_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1TypeMetric.html" target="_self">TypeMetric</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceMagickCore.html" target="_self">MagickCore</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -360,7 +349,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/classes.html b/www/api/Magick++/classes.html
index 2d98f66..0c69f8e 100644
--- a/www/api/Magick++/classes.html
+++ b/www/api/Magick++/classes.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Class Index</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('classes.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -60,76 +54,77 @@
 <div class="title">Class Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="classes.html#letter_a">a</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_b">b</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_c">c</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_d">d</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_e">e</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_f">f</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_g">g</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_h">h</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_i">i</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_l">l</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_m">m</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_n">n</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_o">o</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_p">p</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_q">q</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_r">r</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_s">s</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_t">t</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_v">v</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_w">w</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_x">x</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_z">z</a></div>
-<table class="classindex">
-<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1colorMapImage.html">colorMapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableMiterLimit.html">DrawableMiterLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1embossImage.html">embossImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1gaussianBlurImage.html">gaussianBlurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1oilPaintImage.html">oilPaintImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1typeImage.html">typeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1colorMatrixImage.html">colorMatrixImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePath.html">DrawablePath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classEncoderFormat.html">EncoderFormat</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Geometry.html">Geometry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1opaqueImage.html">opaqueImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1TypeMetric.html">TypeMetric</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1adaptiveBlurImage.html">adaptiveBlurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ColorMono.html">ColorMono</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePoint.html">DrawablePoint</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1endianImage.html">endianImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1gifDisposeMethodImage.html">gifDisposeMethodImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Options.html">Options</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1raiseImage.html">raiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
+<div class="qindex"><a class="qindex" href="classes.html#letter_A">A</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_B">B</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_C">C</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_D">D</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_E">E</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_F">F</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_G">G</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_H">H</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_I">I</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_L">L</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_M">M</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_N">N</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_O">O</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_P">P</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_R">R</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_S">S</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_T">T</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_V">V</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_W">W</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_X">X</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_Z">Z</a>&#160;|&#160;<a class="qindex" href="classes.html#letter__">_</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1ColorRGB.html">ColorRGB</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePolygon.html">DrawablePolygon</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCoder.html">ErrorCoder</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImageMoments.html">ImageMoments</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathArcAbs.html">PathArcAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1resizeImage.html">resizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1viewImage.html">viewImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1colorSpaceImage.html">colorSpaceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePolyline.html">DrawablePolyline</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorConfigure.html">ErrorConfigure</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImageRef.html">ImageRef</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1resolutionUnitsImage.html">resolutionUnitsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1VPath.html">VPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1adaptiveBlurImage.html">adaptiveBlurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ColorYUV.html">ColorYUV</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopClipPath.html">DrawablePopClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCorruptImage.html">ErrorCorruptImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1implodeImage.html">implodeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathArcRel.html">PathArcRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ResourceLimits.html">ResourceLimits</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1VPathBase.html">VPathBase</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1adaptiveThresholdImage.html">adaptiveThresholdImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1commentImage.html">commentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html">DrawablePopGraphicContext</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorDelegate.html">ErrorDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1interlaceTypeImage.html">interlaceTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathClosePath.html">PathClosePath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1rollImage.html">rollImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1adaptiveThresholdImage.html">adaptiveThresholdImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ColorRGB.html">ColorRGB</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePointSize.html">DrawablePointSize</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1enhanceImage.html">enhanceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1addNoiseImage.html">addNoiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1colorSpaceImage.html">colorSpaceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePolygon.html">DrawablePolygon</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1equalizeImage.html">equalizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1reduceNoiseImage.html">reduceNoiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1verboseImage.html">verboseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1adjoinImage.html">adjoinImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ColorYUV.html">ColorYUV</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePolyline.html">DrawablePolyline</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Error.html">Error</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1haldClutImage.html">haldClutImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1pageImage.html">pageImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1renderingIntentImage.html">renderingIntentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1VPath.html">VPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1affineTransformImage.html">affineTransformImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1commentImage.html">commentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopClipPath.html">DrawablePopClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorBlob.html">ErrorBlob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1PathArcAbs.html">PathArcAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1resizeImage.html">resizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1VPathBase.html">VPathBase</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1alphaFlagImage.html">alphaFlagImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1composeImage.html">composeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html">DrawablePopGraphicContext</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCache.html">ErrorCache</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1resolutionUnitsImage.html">resolutionUnitsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classMagick_1_1addNoiseImage.html">addNoiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1composeImage.html">composeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopPattern.html">DrawablePopPattern</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorDraw.html">ErrorDraw</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1inverseFourierTransformImage.html">inverseFourierTransformImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoAbs.html">PathCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1rotateImage.html">rotateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1adjoinImage.html">adjoinImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1compositeImage.html">compositeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushClipPath.html">DrawablePushClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorFileOpen.html">ErrorFileOpen</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1isValidImage.html">isValidImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1Warning.html">Warning</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1affineTransformImage.html">affineTransformImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1compressTypeImage.html">compressTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html">DrawablePushGraphicContext</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorImage.html">ErrorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoRel.html">PathCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningBlob.html">WarningBlob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1animationDelayImage.html">animationDelayImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1contrastImage.html">contrastImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushPattern.html">DrawablePushPattern</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorMissingDelegate.html">ErrorMissingDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoAbs.html">PathLinetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sampleImage.html">sampleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningCache.html">WarningCache</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1animationIterationsImage.html">animationIterationsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRectangle.html">DrawableRectangle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorModule.html">ErrorModule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1labelImage.html">labelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html">PathLinetoHorizontalAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1scaleImage.html">scaleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningCoder.html">WarningCoder</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1annotateImage.html">annotateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1cropImage.html">cropImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRotation.html">DrawableRotation</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorMonitor.html">ErrorMonitor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1levelChannelImage.html">levelChannelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html">PathLinetoHorizontalRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sceneImage.html">sceneImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningConfigure.html">WarningConfigure</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1antiAliasImage.html">antiAliasImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1cycleColormapImage.html">cycleColormapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRoundRectangle.html">DrawableRoundRectangle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorOption.html">ErrorOption</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1levelImage.html">levelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoRel.html">PathLinetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1segmentImage.html">segmentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningCorruptImage.html">WarningCorruptImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1DrawableScaling.html">DrawableScaling</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorPolicy.html">ErrorPolicy</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1lineWidthImage.html">lineWidthImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html">PathLinetoVerticalAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shadeImage.html">shadeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningDelegate.html">WarningDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1DrawableSkewX.html">DrawableSkewX</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorRegistry.html">ErrorRegistry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Lock.html">Lock</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html">PathLinetoVerticalRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shadowImage.html">shadowImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningDraw.html">WarningDraw</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1backgroundColorImage.html">backgroundColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1densityImage.html">densityImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableSkewY.html">DrawableSkewY</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorResourceLimit.html">ErrorResourceLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1PathMovetoAbs.html">PathMovetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sharpenImage.html">sharpenImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningFileOpen.html">WarningFileOpen</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1backgroundTextureImage.html">backgroundTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1depthImage.html">depthImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html">DrawableStrokeAntialias</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorStream.html">ErrorStream</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathMovetoRel.html">PathMovetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shaveImage.html">shaveImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningImage.html">WarningImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1Blob.html">Blob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1despeckleImage.html">despeckleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeColor.html">DrawableStrokeColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorType.html">ErrorType</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1magickImage.html">magickImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html">PathQuadraticCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shearImage.html">shearImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningMissingDelegate.html">WarningMissingDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1BlobRef.html">BlobRef</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1distortImage.html">distortImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html">DrawableStrokeLineCap</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorUndefined.html">ErrorUndefined</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1magnifyImage.html">magnifyImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sigmoidalContrastImage.html">sigmoidalContrastImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningModule.html">WarningModule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1blurImage.html">blurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Drawable.html">Drawable</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html">DrawableStrokeLineJoin</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorXServer.html">ErrorXServer</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1mapImage.html">mapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html">PathQuadraticCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sizeImage.html">sizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningMonitor.html">WarningMonitor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1borderColorImage.html">borderColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableAffine.html">DrawableAffine</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html">DrawableStrokeOpacity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Exception.html">Exception</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1matteColorImage.html">matteColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html">PathSmoothCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1solarizeImage.html">solarizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningOption.html">WarningOption</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1borderImage.html">borderImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableArc.html">DrawableArc</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeWidth.html">DrawableStrokeWidth</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1matteFloodfillImage.html">matteFloodfillImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html">PathSmoothCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1spliceImage.html">spliceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningPolicy.html">WarningPolicy</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1boxColorImage.html">boxColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableBase.html">DrawableBase</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableText.html">DrawableText</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1matteImage.html">matteImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html">PathSmoothQuadraticCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1spreadImage.html">spreadImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningRegistry.html">WarningRegistry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1DrawableBezier.html">DrawableBezier</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextAntialias.html">DrawableTextAntialias</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fileNameImage.html">fileNameImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1medianFilterImage.html">medianFilterImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html">PathSmoothQuadraticCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1steganoImage.html">steganoImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningResourceLimit.html">WarningResourceLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1DrawableCircle.html">DrawableCircle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextDecoration.html">DrawableTextDecoration</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fillColorImage.html">fillColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1mergeLayersImage.html">mergeLayersImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1penColorImage.html">penColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1stereoImage.html">stereoImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningStream.html">WarningStream</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1cdlImage.html">cdlImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableClipPath.html">DrawableClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextDirection.html">DrawableTextDirection</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1filterTypeImage.html">filterTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1minifyImage.html">minifyImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1penTextureImage.html">penTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1stripImage.html">stripImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningType.html">WarningType</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1channelImage.html">channelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableColor.html">DrawableColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html">DrawableTextInterlineSpacing</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1flipImage.html">flipImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1modulateImage.html">modulateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1pixelColorImage.html">pixelColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1strokeColorImage.html">strokeColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningUndefined.html">WarningUndefined</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1ChannelMoments.html">ChannelMoments</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableCompositeImage.html">DrawableCompositeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html">DrawableTextInterwordSpacing</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1floodFillColorImage.html">floodFillColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1monochromeImage.html">monochromeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PixelData.html">PixelData</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1subImageImage.html">subImageImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningXServer.html">WarningXServer</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1charcoalImage.html">charcoalImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableDashArray.html">DrawableDashArray</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextKerning.html">DrawableTextKerning</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1floodFillTextureImage.html">floodFillTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Montage.html">Montage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Pixels.html">Pixels</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1subRangeImage.html">subRangeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1waveImage.html">waveImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1chopImage.html">chopImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableDashOffset.html">DrawableDashOffset</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextUnderColor.html">DrawableTextUnderColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1flopImage.html">flopImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1MontageFramed.html">MontageFramed</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;Q&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1swirlImage.html">swirlImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_X"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;X&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1alphaImage.html">alphaImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1compositeImage.html">compositeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePopPattern.html">DrawablePopPattern</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCoder.html">ErrorCoder</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Image.html">Image</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathArcRel.html">PathArcRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ResourceLimits.html">ResourceLimits</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1animationDelayImage.html">animationDelayImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1compressTypeImage.html">compressTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushClipPath.html">DrawablePushClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorConfigure.html">ErrorConfigure</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImageMoments.html">ImageMoments</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathClosePath.html">PathClosePath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1rollImage.html">rollImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Warning.html">Warning</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1animationIterationsImage.html">animationIterationsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1contrastImage.html">contrastImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html">DrawablePushGraphicContext</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCorruptImage.html">ErrorCorruptImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImagePerceptualHash.html">ImagePerceptualHash</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoAbs.html">PathCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1rotateImage.html">rotateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningBlob.html">WarningBlob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1annotateImage.html">annotateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePushPattern.html">DrawablePushPattern</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorDelegate.html">ErrorDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImageRef.html">ImageRef</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1WarningCache.html">WarningCache</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1cropImage.html">cropImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRectangle.html">DrawableRectangle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorDraw.html">ErrorDraw</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ImageStatistics.html">ImageStatistics</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathCurvetoRel.html">PathCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningCoder.html">WarningCoder</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1cycleColormapImage.html">cycleColormapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRotation.html">DrawableRotation</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorFileOpen.html">ErrorFileOpen</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1implodeImage.html">implodeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoAbs.html">PathLinetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sampleImage.html">sampleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningConfigure.html">WarningConfigure</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1backgroundColorImage.html">backgroundColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1DrawableRoundRectangle.html">DrawableRoundRectangle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorImage.html">ErrorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1interlaceTypeImage.html">interlaceTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html">PathLinetoHorizontalAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1scaleImage.html">scaleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningCorruptImage.html">WarningCorruptImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1backgroundTextureImage.html">backgroundTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableScaling.html">DrawableScaling</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorMissingDelegate.html">ErrorMissingDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1inverseFourierTransformImage.html">inverseFourierTransformImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html">PathLinetoHorizontalRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sceneImage.html">sceneImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningDelegate.html">WarningDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1Blob.html">Blob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1densityImage.html">densityImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableSkewX.html">DrawableSkewX</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorModule.html">ErrorModule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1isValidImage.html">isValidImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoRel.html">PathLinetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1SecurityPolicy.html">SecurityPolicy</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningDraw.html">WarningDraw</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1BlobRef.html">BlobRef</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1depthImage.html">depthImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableSkewY.html">DrawableSkewY</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorMonitor.html">ErrorMonitor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html">PathLinetoVerticalAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1segmentImage.html">segmentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningFileOpen.html">WarningFileOpen</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1blurImage.html">blurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1despeckleImage.html">despeckleImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html">DrawableStrokeAntialias</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorOption.html">ErrorOption</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html">PathLinetoVerticalRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shadeImage.html">shadeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningImage.html">WarningImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1borderColorImage.html">borderColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1distortImage.html">distortImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeColor.html">DrawableStrokeColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorPolicy.html">ErrorPolicy</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1labelImage.html">labelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathMovetoAbs.html">PathMovetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shadowImage.html">shadowImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningMissingDelegate.html">WarningMissingDelegate</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1borderImage.html">borderImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Drawable.html">Drawable</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeDashArray.html">DrawableStrokeDashArray</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorRegistry.html">ErrorRegistry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1levelImage.html">levelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathMovetoRel.html">PathMovetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sharpenImage.html">sharpenImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningModule.html">WarningModule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1boxColorImage.html">boxColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableAffine.html">DrawableAffine</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeDashOffset.html">DrawableStrokeDashOffset</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorResourceLimit.html">ErrorResourceLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html">PathQuadraticCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shaveImage.html">shaveImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningMonitor.html">WarningMonitor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1DrawableAlpha.html">DrawableAlpha</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html">DrawableStrokeLineCap</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorStream.html">ErrorStream</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1shearImage.html">shearImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningOption.html">WarningOption</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1DrawableArc.html">DrawableArc</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html">DrawableStrokeLineJoin</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorType.html">ErrorType</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1magickImage.html">magickImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html">PathQuadraticCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sigmoidalContrastImage.html">sigmoidalContrastImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningPolicy.html">WarningPolicy</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1cdlImage.html">cdlImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableBase.html">DrawableBase</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html">DrawableStrokeOpacity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorUndefined.html">ErrorUndefined</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1magnifyImage.html">magnifyImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html">PathSmoothCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1sizeImage.html">sizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningRegistry.html">WarningRegistry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1channelImage.html">channelImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableBezier.html">DrawableBezier</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokePatternUrl.html">DrawableStrokePatternUrl</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorXServer.html">ErrorXServer</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1mapImage.html">mapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html">PathSmoothCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1solarizeImage.html">solarizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningResourceLimit.html">WarningResourceLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ChannelMoments.html">ChannelMoments</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableBorderColor.html">DrawableBorderColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableStrokeWidth.html">DrawableStrokeWidth</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Exception.html">Exception</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1matteColorImage.html">matteColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html">PathSmoothQuadraticCurvetoAbs</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1spliceImage.html">spliceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningStream.html">WarningStream</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ChannelPerceptualHash.html">ChannelPerceptualHash</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableCircle.html">DrawableCircle</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableText.html">DrawableText</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1medianConvolveImage.html">medianConvolveImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html">PathSmoothQuadraticCurvetoRel</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1spreadImage.html">spreadImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningType.html">WarningType</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ChannelStatistics.html">ChannelStatistics</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableClipPath.html">DrawableClipPath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextAlignment.html">DrawableTextAlignment</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1mergeLayersImage.html">mergeLayersImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1penColorImage.html">penColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1steganoImage.html">steganoImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningUndefined.html">WarningUndefined</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1charcoalImage.html">charcoalImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableClipRule.html">DrawableClipRule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextAntialias.html">DrawableTextAntialias</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fileNameImage.html">fileNameImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1minifyImage.html">minifyImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1penTextureImage.html">penTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1stereoImage.html">stereoImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1WarningXServer.html">WarningXServer</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1chopImage.html">chopImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableClipUnits.html">DrawableClipUnits</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextDecoration.html">DrawableTextDecoration</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fillColorImage.html">fillColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1modulateImage.html">modulateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1pixelColorImage.html">pixelColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1stripImage.html">stripImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1waveImage.html">waveImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html">chromaBluePrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableColor.html">DrawableColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextDirection.html">DrawableTextDirection</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1filterTypeImage.html">filterTypeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1monochromeImage.html">monochromeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1PixelData.html">PixelData</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1strokeColorImage.html">strokeColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_x"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;x&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html">chromaBluePrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableDensity.html">DrawableDensity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTranslation.html">DrawableTranslation</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fontImage.html">fontImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1MutexLock.html">MutexLock</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html">chromaGreenPrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableCompositeImage.html">DrawableCompositeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html">DrawableTextInterlineSpacing</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1flipImage.html">flipImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Montage.html">Montage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Pixels.html">Pixels</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1subImageImage.html">subImageImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html">chromaRedPrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableDensity.html">DrawableDensity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html">DrawableTextInterwordSpacing</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1floodFillAlphaImage.html">floodFillAlphaImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1MontageFramed.html">MontageFramed</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Point.html">Point</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1subRangeImage.html">subRangeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1x11DisplayImage.html">x11DisplayImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1chromaWhitePointImage.html">chromaWhitePointImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableEllipse.html">DrawableEllipse</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextKerning.html">DrawableTextKerning</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1floodFillColorImage.html">floodFillColorImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1MutexLock.html">MutexLock</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;q&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1swirlImage.html">swirlImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_z"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;z&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html">chromaGreenPrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableEllipse.html">DrawableEllipse</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableViewbox.html">DrawableViewbox</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fontPointsizeImage.html">fontPointsizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;N&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1qualityImage.html">qualityImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1x11DisplayImage.html">x11DisplayImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html">chromaRedPrimaryImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillColor.html">DrawableFillColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1drawImage.html">drawImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1frameImage.html">frameImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeColorsImage.html">quantizeColorsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1textureImage.html">textureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_Z"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;Z&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1CoderInfo.html">CoderInfo</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillColor.html">DrawableFillColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTextUnderColor.html">DrawableTextUnderColor</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1floodFillTextureImage.html">floodFillTextureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classMagick_1_1chromaWhitePointImage.html">chromaWhitePointImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillOpacity.html">DrawableFillOpacity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1negateImage.html">negateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html">quantizeColorSpaceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1thresholdImage.html">thresholdImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1CoderInfo.html">CoderInfo</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillRule.html">DrawableFillRule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1normalizeImage.html">normalizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeDitherImage.html">quantizeDitherImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1tileNameImage.html">tileNameImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1zoomImage.html">zoomImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1Color.html">Color</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFont.html">DrawableFont</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1edgeImage.html">edgeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1gammaImage.html">gammaImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1quantizeImage.html">quantizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1transformImage.html">transformImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;_&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1Color.html">Color</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillOpacity.html">DrawableFillOpacity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableTranslation.html">DrawableTranslation</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1flopImage.html">flopImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1qualityImage.html">qualityImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1zoomImage.html">zoomImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ColorCMYK.html">ColorCMYK</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillPatternUrl.html">DrawableFillPatternUrl</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableViewbox.html">DrawableViewbox</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fontImage.html">fontImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1negateImage.html">negateImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeColorsImage.html">quantizeColorsImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1textAntiAliasImage.html">textAntiAliasImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1colorFuzzImage.html">colorFuzzImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFillRule.html">DrawableFillRule</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1drawImage.html">drawImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1fontPointsizeImage.html">fontPointsizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1normalizeImage.html">normalizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html">quantizeColorSpaceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1textureImage.html">textureImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ColorGray.html">ColorGray</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableFont.html">DrawableFont</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1frameImage.html">frameImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1quantizeDitherImage.html">quantizeDitherImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1thresholdImage.html">thresholdImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1ColorHSL.html">ColorHSL</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableGravity.html">DrawableGravity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classMagick_1_1quantizeImage.html">quantizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1transparentImage.html">transparentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classMagick_1_1colorizeImage.html">colorizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableLine.html">DrawableLine</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1edgeImage.html">edgeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Offset.html">Offset</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html">quantizeTreeDepthImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1trimImage.html">trimImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classMagick_1_1gammaImage.html">gammaImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1colorFuzzImage.html">colorFuzzImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableGravity.html">DrawableGravity</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1embossImage.html">embossImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1gaussianBlurImage.html">gaussianBlurImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html">quantizeTreeDepthImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1transparentImage.html">transparentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1ColorGray.html">ColorGray</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableLine.html">DrawableLine</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1endianImage.html">endianImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Geometry.html">Geometry</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Offset.html">Offset</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1trimImage.html">trimImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structMagick_1_1Image_1_1__ImageChannelStatistics.html">Image::_ImageChannelStatistics</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1ColorHSL.html">ColorHSL</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableMatte.html">DrawableMatte</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1enhanceImage.html">enhanceImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1gifDisposeMethodImage.html">gifDisposeMethodImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1oilPaintImage.html">oilPaintImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1typeImage.html">typeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structMagick_1_1Image_1_1__ImageStatistics.html">Image::_ImageStatistics</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1colorizeImage.html">colorizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawableMiterLimit.html">DrawableMiterLimit</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1equalizeImage.html">equalizeImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_H"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;H&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1opacityImage.html">opacityImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1raiseImage.html">raiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1TypeMetric.html">TypeMetric</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1colorMapImage.html">colorMapImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePath.html">DrawablePath</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Error.html">Error</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1opaqueImage.html">opaqueImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_V"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;V&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1colorMatrixImage.html">colorMatrixImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePoint.html">DrawablePoint</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorBlob.html">ErrorBlob</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1haldClutImage.html">haldClutImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1Options.html">Options</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1reduceNoiseImage.html">reduceNoiseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classMagick_1_1ColorMono.html">ColorMono</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1DrawablePointSize.html">DrawablePointSize</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1ErrorCache.html">ErrorCache</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classMagick_1_1renderingIntentImage.html">renderingIntentImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1verboseImage.html">verboseImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="classMagick_1_1Image.html">Image</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classMagick_1_1pageImage.html">pageImage</a> (<a class="el" href="namespaceMagick.html">Magick</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
-<div class="qindex"><a class="qindex" href="classes.html#letter_a">a</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_b">b</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_c">c</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_d">d</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_e">e</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_f">f</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_g">g</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_h">h</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_i">i</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_l">l</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_m">m</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_n">n</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_o">o</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_p">p</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_q">q</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_r">r</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_s">s</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_t">t</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_v">v</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_w">w</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_x">x</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_z">z</a></div>
+<div class="qindex"><a class="qindex" href="classes.html#letter_A">A</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_B">B</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_C">C</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_D">D</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_E">E</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_F">F</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_G">G</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_H">H</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_I">I</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_L">L</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_M">M</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_N">N</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_O">O</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_P">P</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_R">R</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_S">S</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_T">T</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_V">V</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_W">W</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_X">X</a>&#160;|&#160;<a class="qindex" href="classes.html#letter_Z">Z</a>&#160;|&#160;<a class="qindex" href="classes.html#letter__">_</a></div>
 </div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
@@ -137,7 +132,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/files.html b/www/api/Magick++/files.html
index 9d95485..7fc4364 100644
--- a/www/api/Magick++/files.html
+++ b/www/api/Magick++/files.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: File List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('files.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -62,56 +56,53 @@
 <div class="contents">
 <div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
 <table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="analyze_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="analyze_8cpp.html" target="_self">analyze.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Blob_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Blob_8cpp.html" target="_self">Blob.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Blob_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Blob_8h.html" target="_self">Blob.h</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="BlobRef_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="BlobRef_8cpp.html" target="_self">BlobRef.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="BlobRef_8h_source.html"><span class="icondoc"></span></a><a class="el" href="BlobRef_8h.html" target="_self">BlobRef.h</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="button_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="button_8cpp.html" target="_self">button.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="CoderInfo_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="CoderInfo_8cpp.html" target="_self">CoderInfo.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="CoderInfo_8h_source.html"><span class="icondoc"></span></a><a class="el" href="CoderInfo_8h.html" target="_self">CoderInfo.h</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Color_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Color_8cpp.html" target="_self">Color.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Color_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Color_8h.html" target="_self">Color.h</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="demo_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="demo_8cpp.html" target="_self">demo.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="detrans_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="detrans_8cpp.html" target="_self">detrans.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Drawable_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Drawable_8cpp.html" target="_self">Drawable.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Drawable_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Drawable_8h.html" target="_self">Drawable.h</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="encoder__format_8h_source.html"><span class="icondoc"></span></a><a class="el" href="encoder__format_8h.html" target="_self">encoder_format.h</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Exception_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Exception_8cpp.html" target="_self">Exception.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Exception_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Exception_8h.html" target="_self">Exception.h</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="flip_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="flip_8cpp.html" target="_self">flip.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Functions_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Functions_8cpp.html" target="_self">Functions.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Functions_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Functions_8h.html" target="_self">Functions.h</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Geometry_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Geometry_8cpp.html" target="_self">Geometry.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Geometry_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Geometry_8h.html" target="_self">Geometry.h</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="gravity_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="gravity_8cpp.html" target="_self">gravity.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Image_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Image_8cpp.html" target="_self">Image.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Image_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Image_8h.html" target="_self">Image.h</a></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="ImageRef_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="ImageRef_8cpp.html" target="_self">ImageRef.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="ImageRef_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ImageRef_8h.html" target="_self">ImageRef.h</a></td><td class="desc"></td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Include_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Include_8h.html" target="_self">Include.h</a></td><td class="desc"></td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Magick_09_09_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Magick_09_09_8h.html" target="_self">Magick++.h</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Montage_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Montage_8cpp.html" target="_self">Montage.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Montage_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Montage_8h.html" target="_self">Montage.h</a></td><td class="desc"></td></tr>
-<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Options_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Options_8cpp.html" target="_self">Options.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Options_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Options_8h.html" target="_self">Options.h</a></td><td class="desc"></td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="piddle_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="piddle_8cpp.html" target="_self">piddle.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Pixels_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Pixels_8cpp.html" target="_self">Pixels.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Pixels_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Pixels_8h.html" target="_self">Pixels.h</a></td><td class="desc"></td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="ResourceLimits_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="ResourceLimits_8cpp.html" target="_self">ResourceLimits.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="ResourceLimits_8h_source.html"><span class="icondoc"></span></a><a class="el" href="ResourceLimits_8h.html" target="_self">ResourceLimits.h</a></td><td class="desc"></td></tr>
-<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="SecurityPolicy_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="SecurityPolicy_8cpp.html" target="_self">SecurityPolicy.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="SecurityPolicy_8h_source.html"><span class="icondoc"></span></a><a class="el" href="SecurityPolicy_8h.html" target="_self">SecurityPolicy.h</a></td><td class="desc"></td></tr>
-<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="shapes_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="shapes_8cpp.html" target="_self">shapes.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Statistic_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Statistic_8cpp.html" target="_self">Statistic.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Statistic_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Statistic_8h.html" target="_self">Statistic.h</a></td><td class="desc"></td></tr>
-<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="STL_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="STL_8cpp.html" target="_self">STL.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="STL_8h_source.html"><span class="icondoc"></span></a><a class="el" href="STL_8h.html" target="_self">STL.h</a></td><td class="desc"></td></tr>
-<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Thread_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="Thread_8cpp.html" target="_self">Thread.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="Thread_8h_source.html"><span class="icondoc"></span></a><a class="el" href="Thread_8h.html" target="_self">Thread.h</a></td><td class="desc"></td></tr>
-<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="TypeMetric_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="TypeMetric_8cpp.html" target="_self">TypeMetric.cpp</a></td><td class="desc"></td></tr>
-<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="TypeMetric_8h_source.html"><span class="icondoc"></span></a><a class="el" href="TypeMetric_8h.html" target="_self">TypeMetric.h</a></td><td class="desc"></td></tr>
-<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="zoom_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="zoom_8cpp.html" target="_self">zoom.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="analyze_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="analyze_8cpp.html" target="_self">analyze.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Blob_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Blob_8cpp.html" target="_self">Blob.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Blob_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Blob_8h.html" target="_self">Blob.h</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="BlobRef_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="BlobRef_8cpp.html" target="_self">BlobRef.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="BlobRef_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="BlobRef_8h.html" target="_self">BlobRef.h</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="button_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="button_8cpp.html" target="_self">button.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ChannelMoments_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ChannelMoments_8cpp.html" target="_self">ChannelMoments.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ChannelMoments_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ChannelMoments_8h.html" target="_self">ChannelMoments.h</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="CoderInfo_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="CoderInfo_8cpp.html" target="_self">CoderInfo.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="CoderInfo_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="CoderInfo_8h.html" target="_self">CoderInfo.h</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Color_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Color_8cpp.html" target="_self">Color.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Color_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Color_8h.html" target="_self">Color.h</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="demo_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="demo_8cpp.html" target="_self">demo.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="detrans_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="detrans_8cpp.html" target="_self">detrans.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Drawable_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Drawable_8cpp.html" target="_self">Drawable.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Drawable_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Drawable_8h.html" target="_self">Drawable.h</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Exception_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Exception_8cpp.html" target="_self">Exception.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Exception_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Exception_8h.html" target="_self">Exception.h</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="flip_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="flip_8cpp.html" target="_self">flip.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Functions_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Functions_8cpp.html" target="_self">Functions.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Functions_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Functions_8h.html" target="_self">Functions.h</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Geometry_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Geometry_8cpp.html" target="_self">Geometry.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Geometry_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Geometry_8h.html" target="_self">Geometry.h</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="gravity_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="gravity_8cpp.html" target="_self">gravity.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Image_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Image_8cpp.html" target="_self">Image.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Image_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Image_8h.html" target="_self">Image.h</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ImageRef_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ImageRef_8cpp.html" target="_self">ImageRef.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ImageRef_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ImageRef_8h.html" target="_self">ImageRef.h</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Include_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Include_8h.html" target="_self">Include.h</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Magick_09_09_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Magick_09_09_8h.html" target="_self">Magick++.h</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Montage_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Montage_8cpp.html" target="_self">Montage.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Montage_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Montage_8h.html" target="_self">Montage.h</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Options_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Options_8cpp.html" target="_self">Options.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_33_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Options_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Options_8h.html" target="_self">Options.h</a></td><td class="desc"></td></tr>
+<tr id="row_34_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="piddle_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="piddle_8cpp.html" target="_self">piddle.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Pixels_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Pixels_8cpp.html" target="_self">Pixels.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_36_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Pixels_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Pixels_8h.html" target="_self">Pixels.h</a></td><td class="desc"></td></tr>
+<tr id="row_37_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ResourceLimits_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ResourceLimits_8cpp.html" target="_self">ResourceLimits.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_38_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="ResourceLimits_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="ResourceLimits_8h.html" target="_self">ResourceLimits.h</a></td><td class="desc"></td></tr>
+<tr id="row_39_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="shapes_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="shapes_8cpp.html" target="_self">shapes.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_40_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="STL_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="STL_8cpp.html" target="_self">STL.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_41_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="STL_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="STL_8h.html" target="_self">STL.h</a></td><td class="desc"></td></tr>
+<tr id="row_42_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Thread_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Thread_8cpp.html" target="_self">Thread.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_43_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="Thread_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="Thread_8h.html" target="_self">Thread.h</a></td><td class="desc"></td></tr>
+<tr id="row_44_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="TypeMetric_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="TypeMetric_8cpp.html" target="_self">TypeMetric.cpp</a></td><td class="desc"></td></tr>
+<tr id="row_45_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="TypeMetric_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="TypeMetric_8h.html" target="_self">TypeMetric.h</a></td><td class="desc"></td></tr>
+<tr id="row_46_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="zoom_8cpp_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="zoom_8cpp.html" target="_self">zoom.cpp</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -121,7 +112,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/functions.html b/www/api/Magick++/functions.html
index 3bf31de..637afe9 100644
--- a/www/api/Magick++/functions.html
+++ b/www/api/Magick++/functions.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Class Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,17 +46,30 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('functions.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="contents">
 <div class="textblock">Here is a list of all class members with links to the classes they belong to:</div>
 
-<h3><a id="index__"></a>- _ -</h3><ul>
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
+<li>_allocator
+: <a class="el" href="classMagick_1_1BlobRef.html#af0be02ffa9ca8dfb0761ec9c335d9683">Magick::BlobRef</a>
+</li>
+<li>_data
+: <a class="el" href="classMagick_1_1BlobRef.html#a38f45baaae3b437e2b3ec3771f5e2b68">Magick::BlobRef</a>
+</li>
+<li>_length
+: <a class="el" href="classMagick_1_1BlobRef.html#a76ec502d97c315a005bb1f27f9ca2dde">Magick::BlobRef</a>
+</li>
+<li>_mutexLock
+: <a class="el" href="classMagick_1_1BlobRef.html#a00ec07d921a6e64c399fee50f770dca5">Magick::BlobRef</a>
+</li>
 <li>_pixel
-: <a class="el" href="classMagick_1_1Color.html#a3729523e1a03a00253ae6dc9690f4174">Magick::Color</a>
+: <a class="el" href="classMagick_1_1Color.html#a4a914005227f04eb073e2345989dfaa6">Magick::Color</a>
+</li>
+<li>_refCount
+: <a class="el" href="classMagick_1_1BlobRef.html#a731766b4e1d85ac8be26f4069c9dc8eb">Magick::BlobRef</a>
 </li>
 </ul>
 </div><!-- contents -->
@@ -70,7 +79,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/globals.html b/www/api/Magick++/globals.html
index cd4e6c8..529c982 100644
--- a/www/api/Magick++/globals.html
+++ b/www/api/Magick++/globals.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: File Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,36 +46,27 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('globals.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="contents">
 <div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
 
-<h3><a id="index__"></a>- _ -</h3><ul>
+<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
 <li>_MAGICK_CONFIG_H
 : <a class="el" href="Include_8h.html#a4a7f8f0339306702d7d434c56a4566ac">Include.h</a>
 </li>
 </ul>
 
 
-<h3><a id="index_a"></a>- a -</h3><ul>
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
 <li>AbsoluteValue
 : <a class="el" href="Image_8cpp.html#a1f4174972ce317456cdcb9b28d857a5c">Image.cpp</a>
 </li>
 </ul>
 
 
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>ClonePPDrawException
-: <a class="el" href="Include_8h.html#ac47b9343890cf792b34e973b0bfb59a7">Include.h</a>
-</li>
-</ul>
-
-
-<h3><a id="index_d"></a>- d -</h3><ul>
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
 <li>DegreesToRadians
 : <a class="el" href="Image_8cpp.html#a4b45917df9c2dd996220e6da5b4afa80">Image.cpp</a>
 , <a class="el" href="Options_8cpp.html#a4b45917df9c2dd996220e6da5b4afa80">Options.cpp</a>
@@ -87,17 +74,14 @@
 </ul>
 
 
-<h3><a id="index_g"></a>- g -</h3><ul>
-<li>GetAndSetPPChannelMask
-: <a class="el" href="Include_8h.html#a78d026063ca9e752be3123cc01c4a4c2">Include.h</a>
-</li>
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
 <li>GetPPException
 : <a class="el" href="Include_8h.html#a66d0d226ad64af8c5d2be6180adca8b4">Include.h</a>
 </li>
 </ul>
 
 
-<h3><a id="index_m"></a>- m -</h3><ul>
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
 <li>MAGICK_DRAWABLE_IMPLEMENTATION
 : <a class="el" href="Drawable_8cpp.html#a4fb2947e2a8bb567935666931abfd048">Drawable.cpp</a>
 </li>
@@ -105,53 +89,51 @@
 : <a class="el" href="Functions_8cpp.html#a9789eda8e8572a0722fb55c29ba2f76c">Functions.cpp</a>
 </li>
 <li>MAGICK_PLUSPLUS_IMPLEMENTATION
-: <a class="el" href="Montage_8cpp.html#a99e08660df365803d576005502caf7e5">Montage.cpp</a>
-, <a class="el" href="TypeMetric_8cpp.html#a99e08660df365803d576005502caf7e5">TypeMetric.cpp</a>
-, <a class="el" href="Color_8cpp.html#a99e08660df365803d576005502caf7e5">Color.cpp</a>
-, <a class="el" href="ImageRef_8cpp.html#a99e08660df365803d576005502caf7e5">ImageRef.cpp</a>
-, <a class="el" href="STL_8cpp.html#a99e08660df365803d576005502caf7e5">STL.cpp</a>
-, <a class="el" href="Pixels_8cpp.html#a99e08660df365803d576005502caf7e5">Pixels.cpp</a>
+: <a class="el" href="BlobRef_8cpp.html#a99e08660df365803d576005502caf7e5">BlobRef.cpp</a>
 , <a class="el" href="Drawable_8cpp.html#a99e08660df365803d576005502caf7e5">Drawable.cpp</a>
+, <a class="el" href="Pixels_8cpp.html#a99e08660df365803d576005502caf7e5">Pixels.cpp</a>
 , <a class="el" href="ResourceLimits_8cpp.html#a99e08660df365803d576005502caf7e5">ResourceLimits.cpp</a>
-, <a class="el" href="CoderInfo_8cpp.html#a99e08660df365803d576005502caf7e5">CoderInfo.cpp</a>
-, <a class="el" href="Options_8cpp.html#a99e08660df365803d576005502caf7e5">Options.cpp</a>
-, <a class="el" href="BlobRef_8cpp.html#a99e08660df365803d576005502caf7e5">BlobRef.cpp</a>
-, <a class="el" href="Geometry_8cpp.html#a99e08660df365803d576005502caf7e5">Geometry.cpp</a>
-, <a class="el" href="Statistic_8cpp.html#a99e08660df365803d576005502caf7e5">Statistic.cpp</a>
-, <a class="el" href="SecurityPolicy_8cpp.html#a99e08660df365803d576005502caf7e5">SecurityPolicy.cpp</a>
-, <a class="el" href="Thread_8cpp.html#a99e08660df365803d576005502caf7e5">Thread.cpp</a>
-, <a class="el" href="Blob_8cpp.html#a99e08660df365803d576005502caf7e5">Blob.cpp</a>
-, <a class="el" href="Functions_8cpp.html#a99e08660df365803d576005502caf7e5">Functions.cpp</a>
-, <a class="el" href="Image_8cpp.html#a99e08660df365803d576005502caf7e5">Image.cpp</a>
 , <a class="el" href="Exception_8cpp.html#a99e08660df365803d576005502caf7e5">Exception.cpp</a>
+, <a class="el" href="STL_8cpp.html#a99e08660df365803d576005502caf7e5">STL.cpp</a>
+, <a class="el" href="Thread_8cpp.html#a99e08660df365803d576005502caf7e5">Thread.cpp</a>
+, <a class="el" href="ChannelMoments_8cpp.html#a99e08660df365803d576005502caf7e5">ChannelMoments.cpp</a>
+, <a class="el" href="Functions_8cpp.html#a99e08660df365803d576005502caf7e5">Functions.cpp</a>
+, <a class="el" href="TypeMetric_8cpp.html#a99e08660df365803d576005502caf7e5">TypeMetric.cpp</a>
+, <a class="el" href="Geometry_8cpp.html#a99e08660df365803d576005502caf7e5">Geometry.cpp</a>
+, <a class="el" href="Blob_8cpp.html#a99e08660df365803d576005502caf7e5">Blob.cpp</a>
+, <a class="el" href="CoderInfo_8cpp.html#a99e08660df365803d576005502caf7e5">CoderInfo.cpp</a>
+, <a class="el" href="Image_8cpp.html#a99e08660df365803d576005502caf7e5">Image.cpp</a>
+, <a class="el" href="ImageRef_8cpp.html#a99e08660df365803d576005502caf7e5">ImageRef.cpp</a>
+, <a class="el" href="Color_8cpp.html#a99e08660df365803d576005502caf7e5">Color.cpp</a>
+, <a class="el" href="Montage_8cpp.html#a99e08660df365803d576005502caf7e5">Montage.cpp</a>
+, <a class="el" href="Options_8cpp.html#a99e08660df365803d576005502caf7e5">Options.cpp</a>
 </li>
 <li>MAGICKCORE_IMPLEMENTATION
-: <a class="el" href="Options_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Options.cpp</a>
+: <a class="el" href="Montage_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Montage.cpp</a>
+, <a class="el" href="Options_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Options.cpp</a>
 , <a class="el" href="Pixels_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Pixels.cpp</a>
-, <a class="el" href="ResourceLimits_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">ResourceLimits.cpp</a>
-, <a class="el" href="SecurityPolicy_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">SecurityPolicy.cpp</a>
-, <a class="el" href="Functions_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Functions.cpp</a>
-, <a class="el" href="Image_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Image.cpp</a>
 , <a class="el" href="ImageRef_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">ImageRef.cpp</a>
+, <a class="el" href="ResourceLimits_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">ResourceLimits.cpp</a>
 , <a class="el" href="STL_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">STL.cpp</a>
+, <a class="el" href="Thread_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Thread.cpp</a>
+, <a class="el" href="Exception_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Exception.cpp</a>
 , <a class="el" href="TypeMetric_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">TypeMetric.cpp</a>
-, <a class="el" href="Geometry_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Geometry.cpp</a>
 , <a class="el" href="Blob_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Blob.cpp</a>
 , <a class="el" href="BlobRef_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">BlobRef.cpp</a>
+, <a class="el" href="ChannelMoments_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">ChannelMoments.cpp</a>
 , <a class="el" href="CoderInfo_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">CoderInfo.cpp</a>
 , <a class="el" href="Color_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Color.cpp</a>
-, <a class="el" href="Exception_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Exception.cpp</a>
-, <a class="el" href="Thread_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Thread.cpp</a>
-, <a class="el" href="Statistic_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Statistic.cpp</a>
 , <a class="el" href="Drawable_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Drawable.cpp</a>
-, <a class="el" href="Montage_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Montage.cpp</a>
+, <a class="el" href="Functions_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Functions.cpp</a>
+, <a class="el" href="Geometry_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Geometry.cpp</a>
+, <a class="el" href="Image_8cpp.html#a24d8db5449916b4dd0283f5f30a5edc7">Image.cpp</a>
 </li>
 <li>MagickDrawableExtern
 : <a class="el" href="Drawable_8h.html#a2f907bec461a7be8634d924a9d821263">Drawable.h</a>
 </li>
 <li>MagickPI
-: <a class="el" href="Options_8cpp.html#adddca64c32cd95a435965636f812fbde">Options.cpp</a>
-, <a class="el" href="Image_8cpp.html#adddca64c32cd95a435965636f812fbde">Image.cpp</a>
+: <a class="el" href="Image_8cpp.html#adddca64c32cd95a435965636f812fbde">Image.cpp</a>
+, <a class="el" href="Options_8cpp.html#adddca64c32cd95a435965636f812fbde">Options.cpp</a>
 </li>
 <li>MagickPlusPlus_Header
 : <a class="el" href="Magick_09_09_8h.html#ab4308cf54be8fb544e4064b081ee5661">Magick++.h</a>
@@ -163,54 +145,37 @@
 : <a class="el" href="Include_8h.html#ad622bd58c20427b41d8254cf81c077d1">Include.h</a>
 </li>
 <li>main()
-: <a class="el" href="demo_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">demo.cpp</a>
-, <a class="el" href="analyze_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">analyze.cpp</a>
-, <a class="el" href="shapes_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">shapes.cpp</a>
-, <a class="el" href="zoom_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">zoom.cpp</a>
-, <a class="el" href="piddle_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">piddle.cpp</a>
-, <a class="el" href="flip_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">flip.cpp</a>
-, <a class="el" href="detrans_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">detrans.cpp</a>
+: <a class="el" href="detrans_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">detrans.cpp</a>
 , <a class="el" href="gravity_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">gravity.cpp</a>
+, <a class="el" href="piddle_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">piddle.cpp</a>
+, <a class="el" href="demo_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">demo.cpp</a>
+, <a class="el" href="shapes_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">shapes.cpp</a>
+, <a class="el" href="analyze_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">analyze.cpp</a>
+, <a class="el" href="flip_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">flip.cpp</a>
 , <a class="el" href="button_8cpp.html#a51a0c03e82a49c8df1aee64a078f33e7">button.cpp</a>
+, <a class="el" href="zoom_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">zoom.cpp</a>
 </li>
 </ul>
 
 
-<h3><a id="index_p"></a>- p -</h3><ul>
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
 <li>ParseError()
 : <a class="el" href="zoom_8cpp.html#aae00e57f09e2e0aee50ff112715113e3">zoom.cpp</a>
 </li>
 </ul>
 
 
-<h3><a id="index_r"></a>- r -</h3><ul>
-<li>RestorePPChannelMask
-: <a class="el" href="Include_8h.html#ad22b5f77f12a3528d7de40bd809f157d">Include.h</a>
-</li>
-</ul>
-
-
-<h3><a id="index_s"></a>- s -</h3><ul>
-<li>SetPPChannelMask
-: <a class="el" href="Include_8h.html#ae22b9ddfe96d6ec4b5db712c23c641ad">Include.h</a>
-</li>
-</ul>
-
-
-<h3><a id="index_t"></a>- t -</h3><ul>
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
 <li>ThrowImageException
 : <a class="el" href="Image_8cpp.html#ab11894e7dd8a462ecd0e0980acdee411">Image.cpp</a>
 </li>
-<li>ThrowPPDrawException
-: <a class="el" href="Include_8h.html#a8a1f622707e607d5337af2bc7e050260">Include.h</a>
-</li>
 <li>ThrowPPException
 : <a class="el" href="Include_8h.html#a6a4b81920dd51d0f026cf21a015b194a">Include.h</a>
 </li>
 </ul>
 
 
-<h3><a id="index_u"></a>- u -</h3><ul>
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
 <li>Usage()
 : <a class="el" href="zoom_8cpp.html#a2212cadf18ac91aea061ec8f8ec06784">zoom.cpp</a>
 </li>
@@ -222,7 +187,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/hierarchy.html b/www/api/Magick++/hierarchy.html
index c0052bd..41df63f 100644
--- a/www/api/Magick++/hierarchy.html
+++ b/www/api/Magick++/hierarchy.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Class Hierarchy</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('hierarchy.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -64,295 +58,289 @@
 <p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
 This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adaptiveBlurImage.html" target="_self">Magick::adaptiveBlurImage</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adaptiveThresholdImage.html" target="_self">Magick::adaptiveThresholdImage</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1addNoiseImage.html" target="_self">Magick::addNoiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1adjoinImage.html" target="_self">Magick::adjoinImage</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1affineTransformImage.html" target="_self">Magick::affineTransformImage</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1alphaFlagImage.html" target="_self">Magick::alphaFlagImage</a></td><td class="desc"></td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1alphaImage.html" target="_self">Magick::alphaImage</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1animationDelayImage.html" target="_self">Magick::animationDelayImage</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1animationIterationsImage.html" target="_self">Magick::animationIterationsImage</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1annotateImage.html" target="_self">Magick::annotateImage</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1backgroundColorImage.html" target="_self">Magick::backgroundColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1backgroundTextureImage.html" target="_self">Magick::backgroundTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Blob.html" target="_self">Magick::Blob</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1BlobRef.html" target="_self">Magick::BlobRef</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1blurImage.html" target="_self">Magick::blurImage</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1borderColorImage.html" target="_self">Magick::borderColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1borderImage.html" target="_self">Magick::borderImage</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1boxColorImage.html" target="_self">Magick::boxColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cdlImage.html" target="_self">Magick::cdlImage</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1channelImage.html" target="_self">Magick::channelImage</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelMoments.html" target="_self">Magick::ChannelMoments</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelPerceptualHash.html" target="_self">Magick::ChannelPerceptualHash</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ChannelStatistics.html" target="_self">Magick::ChannelStatistics</a></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1charcoalImage.html" target="_self">Magick::charcoalImage</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chopImage.html" target="_self">Magick::chopImage</a></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html" target="_self">Magick::chromaBluePrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html" target="_self">Magick::chromaGreenPrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html" target="_self">Magick::chromaRedPrimaryImage</a></td><td class="desc"></td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1chromaWhitePointImage.html" target="_self">Magick::chromaWhitePointImage</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1CoderInfo.html" target="_self">Magick::CoderInfo</a></td><td class="desc"></td></tr>
-<tr id="row_30_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_30_" class="arrow" onclick="toggleFolder('30_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Color.html" target="_self">Magick::Color</a></td><td class="desc"></td></tr>
-<tr id="row_30_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorCMYK.html" target="_self">Magick::ColorCMYK</a></td><td class="desc"></td></tr>
-<tr id="row_30_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorGray.html" target="_self">Magick::ColorGray</a></td><td class="desc"></td></tr>
-<tr id="row_30_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorHSL.html" target="_self">Magick::ColorHSL</a></td><td class="desc"></td></tr>
-<tr id="row_30_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorMono.html" target="_self">Magick::ColorMono</a></td><td class="desc"></td></tr>
-<tr id="row_30_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorRGB.html" target="_self">Magick::ColorRGB</a></td><td class="desc"></td></tr>
-<tr id="row_30_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ColorYUV.html" target="_self">Magick::ColorYUV</a></td><td class="desc"></td></tr>
-<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorFuzzImage.html" target="_self">Magick::colorFuzzImage</a></td><td class="desc"></td></tr>
-<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorizeImage.html" target="_self">Magick::colorizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorMapImage.html" target="_self">Magick::colorMapImage</a></td><td class="desc"></td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorMatrixImage.html" target="_self">Magick::colorMatrixImage</a></td><td class="desc"></td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1colorSpaceImage.html" target="_self">Magick::colorSpaceImage</a></td><td class="desc"></td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1commentImage.html" target="_self">Magick::commentImage</a></td><td class="desc"></td></tr>
-<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1composeImage.html" target="_self">Magick::composeImage</a></td><td class="desc"></td></tr>
-<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1compositeImage.html" target="_self">Magick::compositeImage</a></td><td class="desc"></td></tr>
-<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1compressTypeImage.html" target="_self">Magick::compressTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1contrastImage.html" target="_self">Magick::contrastImage</a></td><td class="desc"></td></tr>
-<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Coordinate.html" target="_self">Magick::Coordinate</a></td><td class="desc"></td></tr>
-<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cropImage.html" target="_self">Magick::cropImage</a></td><td class="desc"></td></tr>
-<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1cycleColormapImage.html" target="_self">Magick::cycleColormapImage</a></td><td class="desc"></td></tr>
-<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1densityImage.html" target="_self">Magick::densityImage</a></td><td class="desc"></td></tr>
-<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1depthImage.html" target="_self">Magick::depthImage</a></td><td class="desc"></td></tr>
-<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1despeckleImage.html" target="_self">Magick::despeckleImage</a></td><td class="desc"></td></tr>
-<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1distortImage.html" target="_self">Magick::distortImage</a></td><td class="desc"></td></tr>
-<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Drawable.html" target="_self">Magick::Drawable</a></td><td class="desc"></td></tr>
-<tr id="row_49_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_49_" class="arrow" onclick="toggleFolder('49_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBase.html" target="_self">Magick::DrawableBase</a></td><td class="desc"></td></tr>
-<tr id="row_49_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableAffine.html" target="_self">Magick::DrawableAffine</a></td><td class="desc"></td></tr>
-<tr id="row_49_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableAlpha.html" target="_self">Magick::DrawableAlpha</a></td><td class="desc"></td></tr>
-<tr id="row_49_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableArc.html" target="_self">Magick::DrawableArc</a></td><td class="desc"></td></tr>
-<tr id="row_49_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBezier.html" target="_self">Magick::DrawableBezier</a></td><td class="desc"></td></tr>
-<tr id="row_49_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableBorderColor.html" target="_self">Magick::DrawableBorderColor</a></td><td class="desc"></td></tr>
-<tr id="row_49_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableCircle.html" target="_self">Magick::DrawableCircle</a></td><td class="desc"></td></tr>
-<tr id="row_49_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipPath.html" target="_self">Magick::DrawableClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_49_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipRule.html" target="_self">Magick::DrawableClipRule</a></td><td class="desc"></td></tr>
-<tr id="row_49_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableClipUnits.html" target="_self">Magick::DrawableClipUnits</a></td><td class="desc"></td></tr>
-<tr id="row_49_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableColor.html" target="_self">Magick::DrawableColor</a></td><td class="desc"></td></tr>
-<tr id="row_49_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableCompositeImage.html" target="_self">Magick::DrawableCompositeImage</a></td><td class="desc"></td></tr>
-<tr id="row_49_11_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableDensity.html" target="_self">Magick::DrawableDensity</a></td><td class="desc"></td></tr>
-<tr id="row_49_12_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableEllipse.html" target="_self">Magick::DrawableEllipse</a></td><td class="desc"></td></tr>
-<tr id="row_49_13_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillColor.html" target="_self">Magick::DrawableFillColor</a></td><td class="desc"></td></tr>
-<tr id="row_49_14_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillOpacity.html" target="_self">Magick::DrawableFillOpacity</a></td><td class="desc"></td></tr>
-<tr id="row_49_15_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillPatternUrl.html" target="_self">Magick::DrawableFillPatternUrl</a></td><td class="desc"></td></tr>
-<tr id="row_49_16_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFillRule.html" target="_self">Magick::DrawableFillRule</a></td><td class="desc"></td></tr>
-<tr id="row_49_17_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableFont.html" target="_self">Magick::DrawableFont</a></td><td class="desc"></td></tr>
-<tr id="row_49_18_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableGravity.html" target="_self">Magick::DrawableGravity</a></td><td class="desc"></td></tr>
-<tr id="row_49_19_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableLine.html" target="_self">Magick::DrawableLine</a></td><td class="desc"></td></tr>
-<tr id="row_49_20_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableMiterLimit.html" target="_self">Magick::DrawableMiterLimit</a></td><td class="desc"></td></tr>
-<tr id="row_49_21_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePath.html" target="_self">Magick::DrawablePath</a></td><td class="desc"></td></tr>
-<tr id="row_49_22_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePoint.html" target="_self">Magick::DrawablePoint</a></td><td class="desc"></td></tr>
-<tr id="row_49_23_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePointSize.html" target="_self">Magick::DrawablePointSize</a></td><td class="desc"></td></tr>
-<tr id="row_49_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePolygon.html" target="_self">Magick::DrawablePolygon</a></td><td class="desc"></td></tr>
-<tr id="row_49_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePolyline.html" target="_self">Magick::DrawablePolyline</a></td><td class="desc"></td></tr>
-<tr id="row_49_26_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopClipPath.html" target="_self">Magick::DrawablePopClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_49_27_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html" target="_self">Magick::DrawablePopGraphicContext</a></td><td class="desc"></td></tr>
-<tr id="row_49_28_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePopPattern.html" target="_self">Magick::DrawablePopPattern</a></td><td class="desc"></td></tr>
-<tr id="row_49_29_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushClipPath.html" target="_self">Magick::DrawablePushClipPath</a></td><td class="desc"></td></tr>
-<tr id="row_49_30_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html" target="_self">Magick::DrawablePushGraphicContext</a></td><td class="desc"></td></tr>
-<tr id="row_49_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawablePushPattern.html" target="_self">Magick::DrawablePushPattern</a></td><td class="desc"></td></tr>
-<tr id="row_49_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRectangle.html" target="_self">Magick::DrawableRectangle</a></td><td class="desc"></td></tr>
-<tr id="row_49_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRotation.html" target="_self">Magick::DrawableRotation</a></td><td class="desc"></td></tr>
-<tr id="row_49_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableRoundRectangle.html" target="_self">Magick::DrawableRoundRectangle</a></td><td class="desc"></td></tr>
-<tr id="row_49_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableScaling.html" target="_self">Magick::DrawableScaling</a></td><td class="desc"></td></tr>
-<tr id="row_49_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableSkewX.html" target="_self">Magick::DrawableSkewX</a></td><td class="desc"></td></tr>
-<tr id="row_49_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableSkewY.html" target="_self">Magick::DrawableSkewY</a></td><td class="desc"></td></tr>
-<tr id="row_49_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html" target="_self">Magick::DrawableStrokeAntialias</a></td><td class="desc"></td></tr>
-<tr id="row_49_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeColor.html" target="_self">Magick::DrawableStrokeColor</a></td><td class="desc"></td></tr>
-<tr id="row_49_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeDashArray.html" target="_self">Magick::DrawableStrokeDashArray</a></td><td class="desc"></td></tr>
-<tr id="row_49_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeDashOffset.html" target="_self">Magick::DrawableStrokeDashOffset</a></td><td class="desc"></td></tr>
-<tr id="row_49_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html" target="_self">Magick::DrawableStrokeLineCap</a></td><td class="desc"></td></tr>
-<tr id="row_49_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html" target="_self">Magick::DrawableStrokeLineJoin</a></td><td class="desc"></td></tr>
-<tr id="row_49_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html" target="_self">Magick::DrawableStrokeOpacity</a></td><td class="desc"></td></tr>
-<tr id="row_49_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokePatternUrl.html" target="_self">Magick::DrawableStrokePatternUrl</a></td><td class="desc"></td></tr>
-<tr id="row_49_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableStrokeWidth.html" target="_self">Magick::DrawableStrokeWidth</a></td><td class="desc"></td></tr>
-<tr id="row_49_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableText.html" target="_self">Magick::DrawableText</a></td><td class="desc"></td></tr>
-<tr id="row_49_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextAlignment.html" target="_self">Magick::DrawableTextAlignment</a></td><td class="desc"></td></tr>
-<tr id="row_49_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextAntialias.html" target="_self">Magick::DrawableTextAntialias</a></td><td class="desc"></td></tr>
-<tr id="row_49_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextDecoration.html" target="_self">Magick::DrawableTextDecoration</a></td><td class="desc"></td></tr>
-<tr id="row_49_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextDirection.html" target="_self">Magick::DrawableTextDirection</a></td><td class="desc"></td></tr>
-<tr id="row_49_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html" target="_self">Magick::DrawableTextInterlineSpacing</a></td><td class="desc"></td></tr>
-<tr id="row_49_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html" target="_self">Magick::DrawableTextInterwordSpacing</a></td><td class="desc"></td></tr>
-<tr id="row_49_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextKerning.html" target="_self">Magick::DrawableTextKerning</a></td><td class="desc"></td></tr>
-<tr id="row_49_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTextUnderColor.html" target="_self">Magick::DrawableTextUnderColor</a></td><td class="desc"></td></tr>
-<tr id="row_49_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableTranslation.html" target="_self">Magick::DrawableTranslation</a></td><td class="desc"></td></tr>
-<tr id="row_49_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1DrawableViewbox.html" target="_self">Magick::DrawableViewbox</a></td><td class="desc"></td></tr>
-<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1drawImage.html" target="_self">Magick::drawImage</a></td><td class="desc"></td></tr>
-<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1edgeImage.html" target="_self">Magick::edgeImage</a></td><td class="desc"></td></tr>
-<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1embossImage.html" target="_self">Magick::embossImage</a></td><td class="desc"></td></tr>
-<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classEncoderFormat.html" target="_self">EncoderFormat</a></td><td class="desc"></td></tr>
-<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1endianImage.html" target="_self">Magick::endianImage</a></td><td class="desc"></td></tr>
-<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1enhanceImage.html" target="_self">Magick::enhanceImage</a></td><td class="desc"></td></tr>
-<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1equalizeImage.html" target="_self">Magick::equalizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_57_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_57_" class="arrow" onclick="toggleFolder('57_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><b>std::exception</b></td><td class="desc">STL class </td></tr>
-<tr id="row_57_0_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_57_0_" class="arrow" onclick="toggleFolder('57_0_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Exception.html" target="_self">Magick::Exception</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_57_0_0_" class="arrow" onclick="toggleFolder('57_0_0_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Error.html" target="_self">Magick::Error</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorBlob.html" target="_self">Magick::ErrorBlob</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCache.html" target="_self">Magick::ErrorCache</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCoder.html" target="_self">Magick::ErrorCoder</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorConfigure.html" target="_self">Magick::ErrorConfigure</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorCorruptImage.html" target="_self">Magick::ErrorCorruptImage</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorDelegate.html" target="_self">Magick::ErrorDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorDraw.html" target="_self">Magick::ErrorDraw</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorFileOpen.html" target="_self">Magick::ErrorFileOpen</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorImage.html" target="_self">Magick::ErrorImage</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorMissingDelegate.html" target="_self">Magick::ErrorMissingDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorModule.html" target="_self">Magick::ErrorModule</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorMonitor.html" target="_self">Magick::ErrorMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorOption.html" target="_self">Magick::ErrorOption</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorPolicy.html" target="_self">Magick::ErrorPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorRegistry.html" target="_self">Magick::ErrorRegistry</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorResourceLimit.html" target="_self">Magick::ErrorResourceLimit</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorStream.html" target="_self">Magick::ErrorStream</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorType.html" target="_self">Magick::ErrorType</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorUndefined.html" target="_self">Magick::ErrorUndefined</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_0_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ErrorXServer.html" target="_self">Magick::ErrorXServer</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_57_0_1_" class="arrow" onclick="toggleFolder('57_0_1_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Warning.html" target="_self">Magick::Warning</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningBlob.html" target="_self">Magick::WarningBlob</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCache.html" target="_self">Magick::WarningCache</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCoder.html" target="_self">Magick::WarningCoder</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningConfigure.html" target="_self">Magick::WarningConfigure</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningCorruptImage.html" target="_self">Magick::WarningCorruptImage</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningDelegate.html" target="_self">Magick::WarningDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningDraw.html" target="_self">Magick::WarningDraw</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningFileOpen.html" target="_self">Magick::WarningFileOpen</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningImage.html" target="_self">Magick::WarningImage</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningMissingDelegate.html" target="_self">Magick::WarningMissingDelegate</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningModule.html" target="_self">Magick::WarningModule</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningMonitor.html" target="_self">Magick::WarningMonitor</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningOption.html" target="_self">Magick::WarningOption</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningPolicy.html" target="_self">Magick::WarningPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_14_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningRegistry.html" target="_self">Magick::WarningRegistry</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningResourceLimit.html" target="_self">Magick::WarningResourceLimit</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningStream.html" target="_self">Magick::WarningStream</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningType.html" target="_self">Magick::WarningType</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningUndefined.html" target="_self">Magick::WarningUndefined</a></td><td class="desc"></td></tr>
-<tr id="row_57_0_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1WarningXServer.html" target="_self">Magick::WarningXServer</a></td><td class="desc"></td></tr>
-<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fileNameImage.html" target="_self">Magick::fileNameImage</a></td><td class="desc"></td></tr>
-<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fillColorImage.html" target="_self">Magick::fillColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1filterTypeImage.html" target="_self">Magick::filterTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1flipImage.html" target="_self">Magick::flipImage</a></td><td class="desc"></td></tr>
-<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillAlphaImage.html" target="_self">Magick::floodFillAlphaImage</a></td><td class="desc"></td></tr>
-<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillColorImage.html" target="_self">Magick::floodFillColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1floodFillTextureImage.html" target="_self">Magick::floodFillTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1flopImage.html" target="_self">Magick::flopImage</a></td><td class="desc"></td></tr>
-<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fontImage.html" target="_self">Magick::fontImage</a></td><td class="desc"></td></tr>
-<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1fontPointsizeImage.html" target="_self">Magick::fontPointsizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1frameImage.html" target="_self">Magick::frameImage</a></td><td class="desc"></td></tr>
-<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gammaImage.html" target="_self">Magick::gammaImage</a></td><td class="desc"></td></tr>
-<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gaussianBlurImage.html" target="_self">Magick::gaussianBlurImage</a></td><td class="desc"></td></tr>
-<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Geometry.html" target="_self">Magick::Geometry</a></td><td class="desc"></td></tr>
-<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1gifDisposeMethodImage.html" target="_self">Magick::gifDisposeMethodImage</a></td><td class="desc"></td></tr>
-<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1haldClutImage.html" target="_self">Magick::haldClutImage</a></td><td class="desc"></td></tr>
-<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Image.html" target="_self">Magick::Image</a></td><td class="desc"></td></tr>
-<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageMoments.html" target="_self">Magick::ImageMoments</a></td><td class="desc"></td></tr>
-<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImagePerceptualHash.html" target="_self">Magick::ImagePerceptualHash</a></td><td class="desc"></td></tr>
-<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageRef.html" target="_self">Magick::ImageRef</a></td><td class="desc"></td></tr>
-<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ImageStatistics.html" target="_self">Magick::ImageStatistics</a></td><td class="desc"></td></tr>
-<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1implodeImage.html" target="_self">Magick::implodeImage</a></td><td class="desc"></td></tr>
-<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1interlaceTypeImage.html" target="_self">Magick::interlaceTypeImage</a></td><td class="desc"></td></tr>
-<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1inverseFourierTransformImage.html" target="_self">Magick::inverseFourierTransformImage</a></td><td class="desc"></td></tr>
-<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1isValidImage.html" target="_self">Magick::isValidImage</a></td><td class="desc"></td></tr>
-<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1labelImage.html" target="_self">Magick::labelImage</a></td><td class="desc"></td></tr>
-<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1levelImage.html" target="_self">Magick::levelImage</a></td><td class="desc"></td></tr>
-<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1magickImage.html" target="_self">Magick::magickImage</a></td><td class="desc"></td></tr>
-<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1magnifyImage.html" target="_self">Magick::magnifyImage</a></td><td class="desc"></td></tr>
-<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1mapImage.html" target="_self">Magick::mapImage</a></td><td class="desc"></td></tr>
-<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1matteColorImage.html" target="_self">Magick::matteColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1medianConvolveImage.html" target="_self">Magick::medianConvolveImage</a></td><td class="desc"></td></tr>
-<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1mergeLayersImage.html" target="_self">Magick::mergeLayersImage</a></td><td class="desc"></td></tr>
-<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1minifyImage.html" target="_self">Magick::minifyImage</a></td><td class="desc"></td></tr>
-<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1modulateImage.html" target="_self">Magick::modulateImage</a></td><td class="desc"></td></tr>
-<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1monochromeImage.html" target="_self">Magick::monochromeImage</a></td><td class="desc"></td></tr>
-<tr id="row_94_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_94_" class="arrow" onclick="toggleFolder('94_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Montage.html" target="_self">Magick::Montage</a></td><td class="desc"></td></tr>
-<tr id="row_94_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1MontageFramed.html" target="_self">Magick::MontageFramed</a></td><td class="desc"></td></tr>
-<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1MutexLock.html" target="_self">Magick::MutexLock</a></td><td class="desc"></td></tr>
-<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1negateImage.html" target="_self">Magick::negateImage</a></td><td class="desc"></td></tr>
-<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1normalizeImage.html" target="_self">Magick::normalizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Offset.html" target="_self">Magick::Offset</a></td><td class="desc"></td></tr>
-<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1oilPaintImage.html" target="_self">Magick::oilPaintImage</a></td><td class="desc"></td></tr>
-<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1opaqueImage.html" target="_self">Magick::opaqueImage</a></td><td class="desc"></td></tr>
-<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Options.html" target="_self">Magick::Options</a></td><td class="desc"></td></tr>
-<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1pageImage.html" target="_self">Magick::pageImage</a></td><td class="desc"></td></tr>
-<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcArgs.html" target="_self">Magick::PathArcArgs</a></td><td class="desc"></td></tr>
-<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoArgs.html" target="_self">Magick::PathCurvetoArgs</a></td><td class="desc"></td></tr>
-<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html" target="_self">Magick::PathQuadraticCurvetoArgs</a></td><td class="desc"></td></tr>
-<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1penColorImage.html" target="_self">Magick::penColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1penTextureImage.html" target="_self">Magick::penTextureImage</a></td><td class="desc"></td></tr>
-<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1pixelColorImage.html" target="_self">Magick::pixelColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PixelData.html" target="_self">Magick::PixelData</a></td><td class="desc"></td></tr>
-<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Pixels.html" target="_self">Magick::Pixels</a></td><td class="desc"></td></tr>
-<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1Point.html" target="_self">Magick::Point</a></td><td class="desc"></td></tr>
-<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1qualityImage.html" target="_self">Magick::qualityImage</a></td><td class="desc"></td></tr>
-<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeColorsImage.html" target="_self">Magick::quantizeColorsImage</a></td><td class="desc"></td></tr>
-<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html" target="_self">Magick::quantizeColorSpaceImage</a></td><td class="desc"></td></tr>
-<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeDitherImage.html" target="_self">Magick::quantizeDitherImage</a></td><td class="desc"></td></tr>
-<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeImage.html" target="_self">Magick::quantizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html" target="_self">Magick::quantizeTreeDepthImage</a></td><td class="desc"></td></tr>
-<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1raiseImage.html" target="_self">Magick::raiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_119_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ReadOptions.html" target="_self">Magick::ReadOptions</a></td><td class="desc"></td></tr>
-<tr id="row_120_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1reduceNoiseImage.html" target="_self">Magick::reduceNoiseImage</a></td><td class="desc"></td></tr>
-<tr id="row_121_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1renderingIntentImage.html" target="_self">Magick::renderingIntentImage</a></td><td class="desc"></td></tr>
-<tr id="row_122_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1resizeImage.html" target="_self">Magick::resizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_123_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1resolutionUnitsImage.html" target="_self">Magick::resolutionUnitsImage</a></td><td class="desc"></td></tr>
-<tr id="row_124_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1ResourceLimits.html" target="_self">Magick::ResourceLimits</a></td><td class="desc"></td></tr>
-<tr id="row_125_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1rollImage.html" target="_self">Magick::rollImage</a></td><td class="desc"></td></tr>
-<tr id="row_126_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1rotateImage.html" target="_self">Magick::rotateImage</a></td><td class="desc"></td></tr>
-<tr id="row_127_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sampleImage.html" target="_self">Magick::sampleImage</a></td><td class="desc"></td></tr>
-<tr id="row_128_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1scaleImage.html" target="_self">Magick::scaleImage</a></td><td class="desc"></td></tr>
-<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sceneImage.html" target="_self">Magick::sceneImage</a></td><td class="desc"></td></tr>
-<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1SecurityPolicy.html" target="_self">Magick::SecurityPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1segmentImage.html" target="_self">Magick::segmentImage</a></td><td class="desc"></td></tr>
-<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shadeImage.html" target="_self">Magick::shadeImage</a></td><td class="desc"></td></tr>
-<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shadowImage.html" target="_self">Magick::shadowImage</a></td><td class="desc"></td></tr>
-<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sharpenImage.html" target="_self">Magick::sharpenImage</a></td><td class="desc"></td></tr>
-<tr id="row_135_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shaveImage.html" target="_self">Magick::shaveImage</a></td><td class="desc"></td></tr>
-<tr id="row_136_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1shearImage.html" target="_self">Magick::shearImage</a></td><td class="desc"></td></tr>
-<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sigmoidalContrastImage.html" target="_self">Magick::sigmoidalContrastImage</a></td><td class="desc"></td></tr>
-<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1sizeImage.html" target="_self">Magick::sizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_139_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1solarizeImage.html" target="_self">Magick::solarizeImage</a></td><td class="desc"></td></tr>
-<tr id="row_140_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1spliceImage.html" target="_self">Magick::spliceImage</a></td><td class="desc"></td></tr>
-<tr id="row_141_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1spreadImage.html" target="_self">Magick::spreadImage</a></td><td class="desc"></td></tr>
-<tr id="row_142_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1steganoImage.html" target="_self">Magick::steganoImage</a></td><td class="desc"></td></tr>
-<tr id="row_143_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1stereoImage.html" target="_self">Magick::stereoImage</a></td><td class="desc"></td></tr>
-<tr id="row_144_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1stripImage.html" target="_self">Magick::stripImage</a></td><td class="desc"></td></tr>
-<tr id="row_145_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1strokeColorImage.html" target="_self">Magick::strokeColorImage</a></td><td class="desc"></td></tr>
-<tr id="row_146_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1subImageImage.html" target="_self">Magick::subImageImage</a></td><td class="desc"></td></tr>
-<tr id="row_147_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1subRangeImage.html" target="_self">Magick::subRangeImage</a></td><td class="desc"></td></tr>
-<tr id="row_148_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1swirlImage.html" target="_self">Magick::swirlImage</a></td><td class="desc"></td></tr>
-<tr id="row_149_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1textAntiAliasImage.html" target="_self">Magick::textAntiAliasImage</a></td><td class="desc"></td></tr>
-<tr id="row_150_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1textureImage.html" target="_self">Magick::textureImage</a></td><td class="desc"></td></tr>
-<tr id="row_151_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1thresholdImage.html" target="_self">Magick::thresholdImage</a></td><td class="desc"></td></tr>
-<tr id="row_152_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1transparentImage.html" target="_self">Magick::transparentImage</a></td><td class="desc"></td></tr>
-<tr id="row_153_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1trimImage.html" target="_self">Magick::trimImage</a></td><td class="desc"></td></tr>
-<tr id="row_154_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1typeImage.html" target="_self">Magick::typeImage</a></td><td class="desc"></td></tr>
-<tr id="row_155_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1TypeMetric.html" target="_self">Magick::TypeMetric</a></td><td class="desc"></td></tr>
-<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1verboseImage.html" target="_self">Magick::verboseImage</a></td><td class="desc"></td></tr>
-<tr id="row_157_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1VPath.html" target="_self">Magick::VPath</a></td><td class="desc"></td></tr>
-<tr id="row_158_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_158_" class="arrow" onclick="toggleFolder('158_')">&#9654;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1VPathBase.html" target="_self">Magick::VPathBase</a></td><td class="desc"></td></tr>
-<tr id="row_158_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcAbs.html" target="_self">Magick::PathArcAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathArcRel.html" target="_self">Magick::PathArcRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathClosePath.html" target="_self">Magick::PathClosePath</a></td><td class="desc"></td></tr>
-<tr id="row_158_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoAbs.html" target="_self">Magick::PathCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathCurvetoRel.html" target="_self">Magick::PathCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoAbs.html" target="_self">Magick::PathLinetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html" target="_self">Magick::PathLinetoHorizontalAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html" target="_self">Magick::PathLinetoHorizontalRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoRel.html" target="_self">Magick::PathLinetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html" target="_self">Magick::PathLinetoVerticalAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html" target="_self">Magick::PathLinetoVerticalRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathMovetoAbs.html" target="_self">Magick::PathMovetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathMovetoRel.html" target="_self">Magick::PathMovetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html" target="_self">Magick::PathQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html" target="_self">Magick::PathQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html" target="_self">Magick::PathSmoothCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html" target="_self">Magick::PathSmoothCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_158_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html" target="_self">Magick::PathSmoothQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
-<tr id="row_158_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html" target="_self">Magick::PathSmoothQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
-<tr id="row_159_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1waveImage.html" target="_self">Magick::waveImage</a></td><td class="desc"></td></tr>
-<tr id="row_160_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1x11DisplayImage.html" target="_self">Magick::x11DisplayImage</a></td><td class="desc"></td></tr>
-<tr id="row_161_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classMagick_1_1zoomImage.html" target="_self">Magick::zoomImage</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structMagick_1_1Image_1_1__ImageChannelStatistics.html" target="_self">Magick::Image::_ImageChannelStatistics</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structMagick_1_1Image_1_1__ImageStatistics.html" target="_self">Magick::Image::_ImageStatistics</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adaptiveBlurImage.html" target="_self">Magick::adaptiveBlurImage</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adaptiveThresholdImage.html" target="_self">Magick::adaptiveThresholdImage</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1addNoiseImage.html" target="_self">Magick::addNoiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1adjoinImage.html" target="_self">Magick::adjoinImage</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1affineTransformImage.html" target="_self">Magick::affineTransformImage</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1animationDelayImage.html" target="_self">Magick::animationDelayImage</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1animationIterationsImage.html" target="_self">Magick::animationIterationsImage</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1annotateImage.html" target="_self">Magick::annotateImage</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1antiAliasImage.html" target="_self">Magick::antiAliasImage</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1backgroundColorImage.html" target="_self">Magick::backgroundColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1backgroundTextureImage.html" target="_self">Magick::backgroundTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Blob.html" target="_self">Magick::Blob</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1BlobRef.html" target="_self">Magick::BlobRef</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1blurImage.html" target="_self">Magick::blurImage</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1borderColorImage.html" target="_self">Magick::borderColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1borderImage.html" target="_self">Magick::borderImage</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1boxColorImage.html" target="_self">Magick::boxColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cdlImage.html" target="_self">Magick::cdlImage</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1channelImage.html" target="_self">Magick::channelImage</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ChannelMoments.html" target="_self">Magick::ChannelMoments</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1charcoalImage.html" target="_self">Magick::charcoalImage</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chopImage.html" target="_self">Magick::chopImage</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html" target="_self">Magick::chromaBluePrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html" target="_self">Magick::chromaGreenPrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html" target="_self">Magick::chromaRedPrimaryImage</a></td><td class="desc"></td></tr>
+<tr id="row_27_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1chromaWhitePointImage.html" target="_self">Magick::chromaWhitePointImage</a></td><td class="desc"></td></tr>
+<tr id="row_28_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1CoderInfo.html" target="_self">Magick::CoderInfo</a></td><td class="desc"></td></tr>
+<tr id="row_29_"><td class="entry"><img id="arr_29_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('29_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Color.html" target="_self">Magick::Color</a></td><td class="desc"></td></tr>
+<tr id="row_29_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorGray.html" target="_self">Magick::ColorGray</a></td><td class="desc"></td></tr>
+<tr id="row_29_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorHSL.html" target="_self">Magick::ColorHSL</a></td><td class="desc"></td></tr>
+<tr id="row_29_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorMono.html" target="_self">Magick::ColorMono</a></td><td class="desc"></td></tr>
+<tr id="row_29_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorRGB.html" target="_self">Magick::ColorRGB</a></td><td class="desc"></td></tr>
+<tr id="row_29_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ColorYUV.html" target="_self">Magick::ColorYUV</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorFuzzImage.html" target="_self">Magick::colorFuzzImage</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorizeImage.html" target="_self">Magick::colorizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorMapImage.html" target="_self">Magick::colorMapImage</a></td><td class="desc"></td></tr>
+<tr id="row_33_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorMatrixImage.html" target="_self">Magick::colorMatrixImage</a></td><td class="desc"></td></tr>
+<tr id="row_34_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1colorSpaceImage.html" target="_self">Magick::colorSpaceImage</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1commentImage.html" target="_self">Magick::commentImage</a></td><td class="desc"></td></tr>
+<tr id="row_36_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1composeImage.html" target="_self">Magick::composeImage</a></td><td class="desc"></td></tr>
+<tr id="row_37_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1compositeImage.html" target="_self">Magick::compositeImage</a></td><td class="desc"></td></tr>
+<tr id="row_38_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1compressTypeImage.html" target="_self">Magick::compressTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_39_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1contrastImage.html" target="_self">Magick::contrastImage</a></td><td class="desc"></td></tr>
+<tr id="row_40_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Coordinate.html" target="_self">Magick::Coordinate</a></td><td class="desc"></td></tr>
+<tr id="row_41_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cropImage.html" target="_self">Magick::cropImage</a></td><td class="desc"></td></tr>
+<tr id="row_42_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1cycleColormapImage.html" target="_self">Magick::cycleColormapImage</a></td><td class="desc"></td></tr>
+<tr id="row_43_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1densityImage.html" target="_self">Magick::densityImage</a></td><td class="desc"></td></tr>
+<tr id="row_44_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1depthImage.html" target="_self">Magick::depthImage</a></td><td class="desc"></td></tr>
+<tr id="row_45_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1despeckleImage.html" target="_self">Magick::despeckleImage</a></td><td class="desc"></td></tr>
+<tr id="row_46_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1distortImage.html" target="_self">Magick::distortImage</a></td><td class="desc"></td></tr>
+<tr id="row_47_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Drawable.html" target="_self">Magick::Drawable</a></td><td class="desc"></td></tr>
+<tr id="row_48_" class="even"><td class="entry"><img id="arr_48_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('48_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableBase.html" target="_self">Magick::DrawableBase</a></td><td class="desc"></td></tr>
+<tr id="row_48_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableAffine.html" target="_self">Magick::DrawableAffine</a></td><td class="desc"></td></tr>
+<tr id="row_48_1_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableArc.html" target="_self">Magick::DrawableArc</a></td><td class="desc"></td></tr>
+<tr id="row_48_2_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableBezier.html" target="_self">Magick::DrawableBezier</a></td><td class="desc"></td></tr>
+<tr id="row_48_3_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableCircle.html" target="_self">Magick::DrawableCircle</a></td><td class="desc"></td></tr>
+<tr id="row_48_4_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableClipPath.html" target="_self">Magick::DrawableClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_48_5_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableColor.html" target="_self">Magick::DrawableColor</a></td><td class="desc"></td></tr>
+<tr id="row_48_6_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableCompositeImage.html" target="_self">Magick::DrawableCompositeImage</a></td><td class="desc"></td></tr>
+<tr id="row_48_7_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDashArray.html" target="_self">Magick::DrawableDashArray</a></td><td class="desc"></td></tr>
+<tr id="row_48_8_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDashOffset.html" target="_self">Magick::DrawableDashOffset</a></td><td class="desc"></td></tr>
+<tr id="row_48_9_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableDensity.html" target="_self">Magick::DrawableDensity</a></td><td class="desc"></td></tr>
+<tr id="row_48_10_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableEllipse.html" target="_self">Magick::DrawableEllipse</a></td><td class="desc"></td></tr>
+<tr id="row_48_11_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillColor.html" target="_self">Magick::DrawableFillColor</a></td><td class="desc"></td></tr>
+<tr id="row_48_12_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillOpacity.html" target="_self">Magick::DrawableFillOpacity</a></td><td class="desc"></td></tr>
+<tr id="row_48_13_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFillRule.html" target="_self">Magick::DrawableFillRule</a></td><td class="desc"></td></tr>
+<tr id="row_48_14_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableFont.html" target="_self">Magick::DrawableFont</a></td><td class="desc"></td></tr>
+<tr id="row_48_15_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableGravity.html" target="_self">Magick::DrawableGravity</a></td><td class="desc"></td></tr>
+<tr id="row_48_16_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableLine.html" target="_self">Magick::DrawableLine</a></td><td class="desc"></td></tr>
+<tr id="row_48_17_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableMatte.html" target="_self">Magick::DrawableMatte</a></td><td class="desc"></td></tr>
+<tr id="row_48_18_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableMiterLimit.html" target="_self">Magick::DrawableMiterLimit</a></td><td class="desc"></td></tr>
+<tr id="row_48_19_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePath.html" target="_self">Magick::DrawablePath</a></td><td class="desc"></td></tr>
+<tr id="row_48_20_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePoint.html" target="_self">Magick::DrawablePoint</a></td><td class="desc"></td></tr>
+<tr id="row_48_21_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePointSize.html" target="_self">Magick::DrawablePointSize</a></td><td class="desc"></td></tr>
+<tr id="row_48_22_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePolygon.html" target="_self">Magick::DrawablePolygon</a></td><td class="desc"></td></tr>
+<tr id="row_48_23_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePolyline.html" target="_self">Magick::DrawablePolyline</a></td><td class="desc"></td></tr>
+<tr id="row_48_24_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopClipPath.html" target="_self">Magick::DrawablePopClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_48_25_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html" target="_self">Magick::DrawablePopGraphicContext</a></td><td class="desc"></td></tr>
+<tr id="row_48_26_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePopPattern.html" target="_self">Magick::DrawablePopPattern</a></td><td class="desc"></td></tr>
+<tr id="row_48_27_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushClipPath.html" target="_self">Magick::DrawablePushClipPath</a></td><td class="desc"></td></tr>
+<tr id="row_48_28_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html" target="_self">Magick::DrawablePushGraphicContext</a></td><td class="desc"></td></tr>
+<tr id="row_48_29_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawablePushPattern.html" target="_self">Magick::DrawablePushPattern</a></td><td class="desc"></td></tr>
+<tr id="row_48_30_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRectangle.html" target="_self">Magick::DrawableRectangle</a></td><td class="desc"></td></tr>
+<tr id="row_48_31_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRotation.html" target="_self">Magick::DrawableRotation</a></td><td class="desc"></td></tr>
+<tr id="row_48_32_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableRoundRectangle.html" target="_self">Magick::DrawableRoundRectangle</a></td><td class="desc"></td></tr>
+<tr id="row_48_33_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableScaling.html" target="_self">Magick::DrawableScaling</a></td><td class="desc"></td></tr>
+<tr id="row_48_34_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableSkewX.html" target="_self">Magick::DrawableSkewX</a></td><td class="desc"></td></tr>
+<tr id="row_48_35_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableSkewY.html" target="_self">Magick::DrawableSkewY</a></td><td class="desc"></td></tr>
+<tr id="row_48_36_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html" target="_self">Magick::DrawableStrokeAntialias</a></td><td class="desc"></td></tr>
+<tr id="row_48_37_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeColor.html" target="_self">Magick::DrawableStrokeColor</a></td><td class="desc"></td></tr>
+<tr id="row_48_38_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html" target="_self">Magick::DrawableStrokeLineCap</a></td><td class="desc"></td></tr>
+<tr id="row_48_39_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html" target="_self">Magick::DrawableStrokeLineJoin</a></td><td class="desc"></td></tr>
+<tr id="row_48_40_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html" target="_self">Magick::DrawableStrokeOpacity</a></td><td class="desc"></td></tr>
+<tr id="row_48_41_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableStrokeWidth.html" target="_self">Magick::DrawableStrokeWidth</a></td><td class="desc"></td></tr>
+<tr id="row_48_42_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableText.html" target="_self">Magick::DrawableText</a></td><td class="desc"></td></tr>
+<tr id="row_48_43_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextAntialias.html" target="_self">Magick::DrawableTextAntialias</a></td><td class="desc"></td></tr>
+<tr id="row_48_44_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextDecoration.html" target="_self">Magick::DrawableTextDecoration</a></td><td class="desc"></td></tr>
+<tr id="row_48_45_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextDirection.html" target="_self">Magick::DrawableTextDirection</a></td><td class="desc"></td></tr>
+<tr id="row_48_46_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextInterlineSpacing.html" target="_self">Magick::DrawableTextInterlineSpacing</a></td><td class="desc"></td></tr>
+<tr id="row_48_47_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextInterwordSpacing.html" target="_self">Magick::DrawableTextInterwordSpacing</a></td><td class="desc"></td></tr>
+<tr id="row_48_48_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextKerning.html" target="_self">Magick::DrawableTextKerning</a></td><td class="desc"></td></tr>
+<tr id="row_48_49_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTextUnderColor.html" target="_self">Magick::DrawableTextUnderColor</a></td><td class="desc"></td></tr>
+<tr id="row_48_50_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableTranslation.html" target="_self">Magick::DrawableTranslation</a></td><td class="desc"></td></tr>
+<tr id="row_48_51_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1DrawableViewbox.html" target="_self">Magick::DrawableViewbox</a></td><td class="desc"></td></tr>
+<tr id="row_49_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1drawImage.html" target="_self">Magick::drawImage</a></td><td class="desc"></td></tr>
+<tr id="row_50_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1edgeImage.html" target="_self">Magick::edgeImage</a></td><td class="desc"></td></tr>
+<tr id="row_51_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1embossImage.html" target="_self">Magick::embossImage</a></td><td class="desc"></td></tr>
+<tr id="row_52_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1endianImage.html" target="_self">Magick::endianImage</a></td><td class="desc"></td></tr>
+<tr id="row_53_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1enhanceImage.html" target="_self">Magick::enhanceImage</a></td><td class="desc"></td></tr>
+<tr id="row_54_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1equalizeImage.html" target="_self">Magick::equalizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_55_"><td class="entry"><img id="arr_55_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('55_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><b>std::exception</b></td><td class="desc">STL class </td></tr>
+<tr id="row_55_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_55_0_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('55_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Exception.html" target="_self">Magick::Exception</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_55_0_0_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('55_0_0_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Error.html" target="_self">Magick::Error</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorBlob.html" target="_self">Magick::ErrorBlob</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCache.html" target="_self">Magick::ErrorCache</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCoder.html" target="_self">Magick::ErrorCoder</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorConfigure.html" target="_self">Magick::ErrorConfigure</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorCorruptImage.html" target="_self">Magick::ErrorCorruptImage</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorDelegate.html" target="_self">Magick::ErrorDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorDraw.html" target="_self">Magick::ErrorDraw</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorFileOpen.html" target="_self">Magick::ErrorFileOpen</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorImage.html" target="_self">Magick::ErrorImage</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorMissingDelegate.html" target="_self">Magick::ErrorMissingDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorModule.html" target="_self">Magick::ErrorModule</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorMonitor.html" target="_self">Magick::ErrorMonitor</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorOption.html" target="_self">Magick::ErrorOption</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorPolicy.html" target="_self">Magick::ErrorPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorRegistry.html" target="_self">Magick::ErrorRegistry</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorResourceLimit.html" target="_self">Magick::ErrorResourceLimit</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorStream.html" target="_self">Magick::ErrorStream</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorType.html" target="_self">Magick::ErrorType</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorUndefined.html" target="_self">Magick::ErrorUndefined</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_0_19_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ErrorXServer.html" target="_self">Magick::ErrorXServer</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_55_0_1_" src="ftv2plastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('55_0_1_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Warning.html" target="_self">Magick::Warning</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningBlob.html" target="_self">Magick::WarningBlob</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCache.html" target="_self">Magick::WarningCache</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCoder.html" target="_self">Magick::WarningCoder</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningConfigure.html" target="_self">Magick::WarningConfigure</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningCorruptImage.html" target="_self">Magick::WarningCorruptImage</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningDelegate.html" target="_self">Magick::WarningDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningDraw.html" target="_self">Magick::WarningDraw</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningFileOpen.html" target="_self">Magick::WarningFileOpen</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningImage.html" target="_self">Magick::WarningImage</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningMissingDelegate.html" target="_self">Magick::WarningMissingDelegate</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningModule.html" target="_self">Magick::WarningModule</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningMonitor.html" target="_self">Magick::WarningMonitor</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningOption.html" target="_self">Magick::WarningOption</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningPolicy.html" target="_self">Magick::WarningPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningRegistry.html" target="_self">Magick::WarningRegistry</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningResourceLimit.html" target="_self">Magick::WarningResourceLimit</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningStream.html" target="_self">Magick::WarningStream</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningType.html" target="_self">Magick::WarningType</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningUndefined.html" target="_self">Magick::WarningUndefined</a></td><td class="desc"></td></tr>
+<tr id="row_55_0_1_19_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1WarningXServer.html" target="_self">Magick::WarningXServer</a></td><td class="desc"></td></tr>
+<tr id="row_56_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fileNameImage.html" target="_self">Magick::fileNameImage</a></td><td class="desc"></td></tr>
+<tr id="row_57_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fillColorImage.html" target="_self">Magick::fillColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_58_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1filterTypeImage.html" target="_self">Magick::filterTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_59_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1flipImage.html" target="_self">Magick::flipImage</a></td><td class="desc"></td></tr>
+<tr id="row_60_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1floodFillColorImage.html" target="_self">Magick::floodFillColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_61_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1floodFillTextureImage.html" target="_self">Magick::floodFillTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_62_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1flopImage.html" target="_self">Magick::flopImage</a></td><td class="desc"></td></tr>
+<tr id="row_63_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fontImage.html" target="_self">Magick::fontImage</a></td><td class="desc"></td></tr>
+<tr id="row_64_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1fontPointsizeImage.html" target="_self">Magick::fontPointsizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_65_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1frameImage.html" target="_self">Magick::frameImage</a></td><td class="desc"></td></tr>
+<tr id="row_66_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gammaImage.html" target="_self">Magick::gammaImage</a></td><td class="desc"></td></tr>
+<tr id="row_67_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gaussianBlurImage.html" target="_self">Magick::gaussianBlurImage</a></td><td class="desc"></td></tr>
+<tr id="row_68_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Geometry.html" target="_self">Magick::Geometry</a></td><td class="desc"></td></tr>
+<tr id="row_69_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1gifDisposeMethodImage.html" target="_self">Magick::gifDisposeMethodImage</a></td><td class="desc"></td></tr>
+<tr id="row_70_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1haldClutImage.html" target="_self">Magick::haldClutImage</a></td><td class="desc"></td></tr>
+<tr id="row_71_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Image.html" target="_self">Magick::Image</a></td><td class="desc"></td></tr>
+<tr id="row_72_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ImageMoments.html" target="_self">Magick::ImageMoments</a></td><td class="desc"></td></tr>
+<tr id="row_73_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ImageRef.html" target="_self">Magick::ImageRef</a></td><td class="desc"></td></tr>
+<tr id="row_74_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1implodeImage.html" target="_self">Magick::implodeImage</a></td><td class="desc"></td></tr>
+<tr id="row_75_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1interlaceTypeImage.html" target="_self">Magick::interlaceTypeImage</a></td><td class="desc"></td></tr>
+<tr id="row_76_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1inverseFourierTransformImage.html" target="_self">Magick::inverseFourierTransformImage</a></td><td class="desc"></td></tr>
+<tr id="row_77_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1isValidImage.html" target="_self">Magick::isValidImage</a></td><td class="desc"></td></tr>
+<tr id="row_78_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1labelImage.html" target="_self">Magick::labelImage</a></td><td class="desc"></td></tr>
+<tr id="row_79_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1levelChannelImage.html" target="_self">Magick::levelChannelImage</a></td><td class="desc"></td></tr>
+<tr id="row_80_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1levelImage.html" target="_self">Magick::levelImage</a></td><td class="desc"></td></tr>
+<tr id="row_81_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1lineWidthImage.html" target="_self">Magick::lineWidthImage</a></td><td class="desc"></td></tr>
+<tr id="row_82_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Lock.html" target="_self">Magick::Lock</a></td><td class="desc"></td></tr>
+<tr id="row_83_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1magickImage.html" target="_self">Magick::magickImage</a></td><td class="desc"></td></tr>
+<tr id="row_84_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1magnifyImage.html" target="_self">Magick::magnifyImage</a></td><td class="desc"></td></tr>
+<tr id="row_85_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1mapImage.html" target="_self">Magick::mapImage</a></td><td class="desc"></td></tr>
+<tr id="row_86_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteColorImage.html" target="_self">Magick::matteColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_87_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteFloodfillImage.html" target="_self">Magick::matteFloodfillImage</a></td><td class="desc"></td></tr>
+<tr id="row_88_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1matteImage.html" target="_self">Magick::matteImage</a></td><td class="desc"></td></tr>
+<tr id="row_89_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1medianFilterImage.html" target="_self">Magick::medianFilterImage</a></td><td class="desc"></td></tr>
+<tr id="row_90_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1mergeLayersImage.html" target="_self">Magick::mergeLayersImage</a></td><td class="desc"></td></tr>
+<tr id="row_91_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1minifyImage.html" target="_self">Magick::minifyImage</a></td><td class="desc"></td></tr>
+<tr id="row_92_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1modulateImage.html" target="_self">Magick::modulateImage</a></td><td class="desc"></td></tr>
+<tr id="row_93_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1monochromeImage.html" target="_self">Magick::monochromeImage</a></td><td class="desc"></td></tr>
+<tr id="row_94_" class="even"><td class="entry"><img id="arr_94_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('94_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Montage.html" target="_self">Magick::Montage</a></td><td class="desc"></td></tr>
+<tr id="row_94_0_" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1MontageFramed.html" target="_self">Magick::MontageFramed</a></td><td class="desc"></td></tr>
+<tr id="row_95_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1MutexLock.html" target="_self">Magick::MutexLock</a></td><td class="desc"></td></tr>
+<tr id="row_96_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1negateImage.html" target="_self">Magick::negateImage</a></td><td class="desc"></td></tr>
+<tr id="row_97_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1normalizeImage.html" target="_self">Magick::normalizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_98_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Offset.html" target="_self">Magick::Offset</a></td><td class="desc"></td></tr>
+<tr id="row_99_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1oilPaintImage.html" target="_self">Magick::oilPaintImage</a></td><td class="desc"></td></tr>
+<tr id="row_100_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1opacityImage.html" target="_self">Magick::opacityImage</a></td><td class="desc"></td></tr>
+<tr id="row_101_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1opaqueImage.html" target="_self">Magick::opaqueImage</a></td><td class="desc"></td></tr>
+<tr id="row_102_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Options.html" target="_self">Magick::Options</a></td><td class="desc"></td></tr>
+<tr id="row_103_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1pageImage.html" target="_self">Magick::pageImage</a></td><td class="desc"></td></tr>
+<tr id="row_104_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcArgs.html" target="_self">Magick::PathArcArgs</a></td><td class="desc"></td></tr>
+<tr id="row_105_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoArgs.html" target="_self">Magick::PathCurvetoArgs</a></td><td class="desc"></td></tr>
+<tr id="row_106_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html" target="_self">Magick::PathQuadraticCurvetoArgs</a></td><td class="desc"></td></tr>
+<tr id="row_107_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1penColorImage.html" target="_self">Magick::penColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_108_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1penTextureImage.html" target="_self">Magick::penTextureImage</a></td><td class="desc"></td></tr>
+<tr id="row_109_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1pixelColorImage.html" target="_self">Magick::pixelColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_110_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PixelData.html" target="_self">Magick::PixelData</a></td><td class="desc"></td></tr>
+<tr id="row_111_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1Pixels.html" target="_self">Magick::Pixels</a></td><td class="desc"></td></tr>
+<tr id="row_112_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1qualityImage.html" target="_self">Magick::qualityImage</a></td><td class="desc"></td></tr>
+<tr id="row_113_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeColorsImage.html" target="_self">Magick::quantizeColorsImage</a></td><td class="desc"></td></tr>
+<tr id="row_114_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html" target="_self">Magick::quantizeColorSpaceImage</a></td><td class="desc"></td></tr>
+<tr id="row_115_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeDitherImage.html" target="_self">Magick::quantizeDitherImage</a></td><td class="desc"></td></tr>
+<tr id="row_116_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeImage.html" target="_self">Magick::quantizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_117_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html" target="_self">Magick::quantizeTreeDepthImage</a></td><td class="desc"></td></tr>
+<tr id="row_118_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1raiseImage.html" target="_self">Magick::raiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_119_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ReadOptions.html" target="_self">Magick::ReadOptions</a></td><td class="desc"></td></tr>
+<tr id="row_120_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1reduceNoiseImage.html" target="_self">Magick::reduceNoiseImage</a></td><td class="desc"></td></tr>
+<tr id="row_121_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1renderingIntentImage.html" target="_self">Magick::renderingIntentImage</a></td><td class="desc"></td></tr>
+<tr id="row_122_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1resizeImage.html" target="_self">Magick::resizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_123_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1resolutionUnitsImage.html" target="_self">Magick::resolutionUnitsImage</a></td><td class="desc"></td></tr>
+<tr id="row_124_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1ResourceLimits.html" target="_self">Magick::ResourceLimits</a></td><td class="desc"></td></tr>
+<tr id="row_125_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1rollImage.html" target="_self">Magick::rollImage</a></td><td class="desc"></td></tr>
+<tr id="row_126_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1rotateImage.html" target="_self">Magick::rotateImage</a></td><td class="desc"></td></tr>
+<tr id="row_127_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sampleImage.html" target="_self">Magick::sampleImage</a></td><td class="desc"></td></tr>
+<tr id="row_128_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1scaleImage.html" target="_self">Magick::scaleImage</a></td><td class="desc"></td></tr>
+<tr id="row_129_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sceneImage.html" target="_self">Magick::sceneImage</a></td><td class="desc"></td></tr>
+<tr id="row_130_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1segmentImage.html" target="_self">Magick::segmentImage</a></td><td class="desc"></td></tr>
+<tr id="row_131_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shadeImage.html" target="_self">Magick::shadeImage</a></td><td class="desc"></td></tr>
+<tr id="row_132_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shadowImage.html" target="_self">Magick::shadowImage</a></td><td class="desc"></td></tr>
+<tr id="row_133_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sharpenImage.html" target="_self">Magick::sharpenImage</a></td><td class="desc"></td></tr>
+<tr id="row_134_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shaveImage.html" target="_self">Magick::shaveImage</a></td><td class="desc"></td></tr>
+<tr id="row_135_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1shearImage.html" target="_self">Magick::shearImage</a></td><td class="desc"></td></tr>
+<tr id="row_136_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sigmoidalContrastImage.html" target="_self">Magick::sigmoidalContrastImage</a></td><td class="desc"></td></tr>
+<tr id="row_137_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1sizeImage.html" target="_self">Magick::sizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_138_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1solarizeImage.html" target="_self">Magick::solarizeImage</a></td><td class="desc"></td></tr>
+<tr id="row_139_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1spliceImage.html" target="_self">Magick::spliceImage</a></td><td class="desc"></td></tr>
+<tr id="row_140_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1spreadImage.html" target="_self">Magick::spreadImage</a></td><td class="desc"></td></tr>
+<tr id="row_141_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1steganoImage.html" target="_self">Magick::steganoImage</a></td><td class="desc"></td></tr>
+<tr id="row_142_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1stereoImage.html" target="_self">Magick::stereoImage</a></td><td class="desc"></td></tr>
+<tr id="row_143_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1stripImage.html" target="_self">Magick::stripImage</a></td><td class="desc"></td></tr>
+<tr id="row_144_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1strokeColorImage.html" target="_self">Magick::strokeColorImage</a></td><td class="desc"></td></tr>
+<tr id="row_145_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1subImageImage.html" target="_self">Magick::subImageImage</a></td><td class="desc"></td></tr>
+<tr id="row_146_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1subRangeImage.html" target="_self">Magick::subRangeImage</a></td><td class="desc"></td></tr>
+<tr id="row_147_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1swirlImage.html" target="_self">Magick::swirlImage</a></td><td class="desc"></td></tr>
+<tr id="row_148_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1textureImage.html" target="_self">Magick::textureImage</a></td><td class="desc"></td></tr>
+<tr id="row_149_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1thresholdImage.html" target="_self">Magick::thresholdImage</a></td><td class="desc"></td></tr>
+<tr id="row_150_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1tileNameImage.html" target="_self">Magick::tileNameImage</a></td><td class="desc"></td></tr>
+<tr id="row_151_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1transformImage.html" target="_self">Magick::transformImage</a></td><td class="desc"></td></tr>
+<tr id="row_152_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1transparentImage.html" target="_self">Magick::transparentImage</a></td><td class="desc"></td></tr>
+<tr id="row_153_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1trimImage.html" target="_self">Magick::trimImage</a></td><td class="desc"></td></tr>
+<tr id="row_154_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1typeImage.html" target="_self">Magick::typeImage</a></td><td class="desc"></td></tr>
+<tr id="row_155_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1TypeMetric.html" target="_self">Magick::TypeMetric</a></td><td class="desc"></td></tr>
+<tr id="row_156_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1verboseImage.html" target="_self">Magick::verboseImage</a></td><td class="desc"></td></tr>
+<tr id="row_157_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1viewImage.html" target="_self">Magick::viewImage</a></td><td class="desc"></td></tr>
+<tr id="row_158_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1VPath.html" target="_self">Magick::VPath</a></td><td class="desc"></td></tr>
+<tr id="row_159_"><td class="entry"><img id="arr_159_" src="ftv2pnode.png" alt="o" width="16" height="22" onclick="toggleFolder('159_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1VPathBase.html" target="_self">Magick::VPathBase</a></td><td class="desc"></td></tr>
+<tr id="row_159_0_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcAbs.html" target="_self">Magick::PathArcAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_1_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathArcRel.html" target="_self">Magick::PathArcRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_2_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathClosePath.html" target="_self">Magick::PathClosePath</a></td><td class="desc"></td></tr>
+<tr id="row_159_3_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoAbs.html" target="_self">Magick::PathCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_4_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathCurvetoRel.html" target="_self">Magick::PathCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_5_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoAbs.html" target="_self">Magick::PathLinetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_6_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html" target="_self">Magick::PathLinetoHorizontalAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_7_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html" target="_self">Magick::PathLinetoHorizontalRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_8_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoRel.html" target="_self">Magick::PathLinetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_9_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html" target="_self">Magick::PathLinetoVerticalAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_10_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html" target="_self">Magick::PathLinetoVerticalRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_11_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathMovetoAbs.html" target="_self">Magick::PathMovetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_12_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathMovetoRel.html" target="_self">Magick::PathMovetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_13_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html" target="_self">Magick::PathQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_14_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html" target="_self">Magick::PathQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_15_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html" target="_self">Magick::PathSmoothCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_16_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html" target="_self">Magick::PathSmoothCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_159_17_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html" target="_self">Magick::PathSmoothQuadraticCurvetoAbs</a></td><td class="desc"></td></tr>
+<tr id="row_159_18_" class="even" style="display:none;"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html" target="_self">Magick::PathSmoothQuadraticCurvetoRel</a></td><td class="desc"></td></tr>
+<tr id="row_160_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1waveImage.html" target="_self">Magick::waveImage</a></td><td class="desc"></td></tr>
+<tr id="row_161_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1x11DisplayImage.html" target="_self">Magick::x11DisplayImage</a></td><td class="desc"></td></tr>
+<tr id="row_162_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classMagick_1_1zoomImage.html" target="_self">Magick::zoomImage</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -362,7 +350,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/index.html b/www/api/Magick++/index.html
index 228a87c..6a5c71f 100644
--- a/www/api/Magick++/index.html
+++ b/www/api/Magick++/index.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Main Page</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('index.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -83,7 +77,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/inherits.html b/www/api/Magick++/inherits.html
index 4c69a9e..21fca40 100644
--- a/www/api/Magick++/inherits.html
+++ b/www/api/Magick++/inherits.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Class Hierarchy</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('hierarchy.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -63,168 +57,658 @@
 <div class="textblock">
 <p><a href="hierarchy.html">Go to the textual class hierarchy</a></p>
 </div><table border="0" cellspacing="10" cellpadding="0">
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_0.svg" width="188" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_1.svg" width="186" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_2.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_3.svg" width="151" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_4.svg" width="204" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_5.svg" width="174" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_6.svg" width="148" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_7.svg" width="206" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_8.svg" width="190" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_9.svg" width="167" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_10.svg" width="214" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_11.svg" width="191" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_12.svg" width="107" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_13.svg" width="127" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_14.svg" width="138" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_15.svg" width="183" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_16.svg" width="154" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_17.svg" width="167" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_18.svg" width="134" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_19.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_20.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_21.svg" width="219" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_22.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_23.svg" width="166" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_24.svg" width="146" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_25.svg" width="194" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_26.svg" width="203" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_27.svg" width="191" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_28.svg" width="187" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_29.svg" width="138" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_30.svg" width="298" height="291"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_31.svg" width="172" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_32.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_33.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_34.svg" width="180" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_35.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_36.svg" width="171" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_37.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_38.svg" width="176" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_39.svg" width="200" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_40.svg" width="163" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_41.svg" width="143" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_42.svg" width="142" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_43.svg" width="202" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_44.svg" width="158" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_45.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_46.svg" width="175" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_47.svg" width="152" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_48.svg" width="134" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_49.svg" width="430" height="3051"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_50.svg" width="144" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_51.svg" width="146" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_52.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_53.svg" width="155" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_54.svg" width="166" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_55.svg" width="164" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_56.svg" width="710" height="2014"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_57.svg" width="710" height="2014"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_58.svg" width="159" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_59.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_60.svg" width="134" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_61.svg" width="194" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_62.svg" width="191" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_63.svg" width="168" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_64.svg" width="138" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_65.svg" width="139" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_66.svg" width="191" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_67.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_68.svg" width="160" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_69.svg" width="190" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_70.svg" width="138" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_71.svg" width="183" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_72.svg" width="164" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_73.svg" width="118" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_74.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_75.svg" width="208" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_76.svg" width="138" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_77.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_78.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_79.svg" width="194" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_80.svg" width="219" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_81.svg" width="154" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_82.svg" width="144" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_83.svg" width="143" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_84.svg" width="159" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_85.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_86.svg" width="142" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_87.svg" width="180" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_88.svg" width="211" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_89.svg" width="190" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_90.svg" width="151" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_91.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_92.svg" width="192" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_93.svg" width="343" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_94.svg" width="144" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_95.svg" width="156" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_96.svg" width="172" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_97.svg" width="114" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_98.svg" width="160" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_99.svg" width="159" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_100.svg" width="126" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_101.svg" width="146" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_102.svg" width="154" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_103.svg" width="178" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_104.svg" width="234" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_105.svg" width="168" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_106.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_107.svg" width="174" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_108.svg" width="136" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_109.svg" width="115" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_110.svg" width="111" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_111.svg" width="154" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_112.svg" width="202" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_113.svg" width="196" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_114.svg" width="199" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_115.svg" width="166" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_116.svg" width="190" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_117.svg" width="144" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_118.svg" width="155" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_119.svg" width="188" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_120.svg" width="203" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_121.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_122.svg" width="202" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_123.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_124.svg" width="134" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_125.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_126.svg" width="158" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_127.svg" width="147" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_128.svg" width="151" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_129.svg" width="166" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_130.svg" width="151" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_131.svg" width="160" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_132.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_133.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_134.svg" width="148" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_135.svg" width="183" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_136.svg" width="139" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_137.svg" width="160" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_138.svg" width="150" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_139.svg" width="155" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_140.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_141.svg" width="152" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_142.svg" width="142" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_143.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_144.svg" width="174" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_145.svg" width="174" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_146.svg" width="142" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_147.svg" width="190" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_148.svg" width="156" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_149.svg" width="170" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_150.svg" width="182" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_151.svg" width="139" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_152.svg" width="142" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_153.svg" width="146" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_154.svg" width="162" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_155.svg" width="116" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_156.svg" width="412" height="980"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_157.svg" width="146" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_158.svg" width="178" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_159.svg" width="148" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_160.svg" width="178" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
-<tr><td><iframe scrolling="no" frameborder="0" src="inherit_graph_161.svg" width="148" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></td></tr>
+<tr><td><img src="inherit_graph_0.png" border="0" alt="" usemap="#Magick_1_1adaptiveBlurImage"/>
+<map name="Magick_1_1adaptiveBlurImage" id="Magick_1_1adaptiveBlurImage">
+<area shape="rect" id="node1" href="classMagick_1_1adaptiveBlurImage.html" title="Magick::adaptiveBlurImage" alt="" coords="6,5,183,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_1.png" border="0" alt="" usemap="#Magick_1_1adaptiveThresholdImage"/>
+<map name="Magick_1_1adaptiveThresholdImage" id="Magick_1_1adaptiveThresholdImage">
+<area shape="rect" id="node1" href="classMagick_1_1adaptiveThresholdImage.html" title="Magick::adaptiveThreshold\lImage" alt="" coords="6,5,181,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_2.png" border="0" alt="" usemap="#Magick_1_1addNoiseImage"/>
+<map name="Magick_1_1addNoiseImage" id="Magick_1_1addNoiseImage">
+<area shape="rect" id="node1" href="classMagick_1_1addNoiseImage.html" title="Magick::addNoiseImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_3.png" border="0" alt="" usemap="#Magick_1_1adjoinImage"/>
+<map name="Magick_1_1adjoinImage" id="Magick_1_1adjoinImage">
+<area shape="rect" id="node1" href="classMagick_1_1adjoinImage.html" title="Magick::adjoinImage" alt="" coords="6,5,146,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_4.png" border="0" alt="" usemap="#Magick_1_1affineTransformImage"/>
+<map name="Magick_1_1affineTransformImage" id="Magick_1_1affineTransformImage">
+<area shape="rect" id="node1" href="classMagick_1_1affineTransformImage.html" title="Magick::affineTransformImage" alt="" coords="6,5,199,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_5.png" border="0" alt="" usemap="#Magick_1_1animationDelayImage"/>
+<map name="Magick_1_1animationDelayImage" id="Magick_1_1animationDelayImage">
+<area shape="rect" id="node1" href="classMagick_1_1animationDelayImage.html" title="Magick::animationDelayImage" alt="" coords="5,5,200,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_6.png" border="0" alt="" usemap="#Magick_1_1animationIterationsImage"/>
+<map name="Magick_1_1animationIterationsImage" id="Magick_1_1animationIterationsImage">
+<area shape="rect" id="node1" href="classMagick_1_1animationIterationsImage.html" title="Magick::animationIterations\lImage" alt="" coords="5,5,184,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_7.png" border="0" alt="" usemap="#Magick_1_1annotateImage"/>
+<map name="Magick_1_1annotateImage" id="Magick_1_1annotateImage">
+<area shape="rect" id="node1" href="classMagick_1_1annotateImage.html" title="Magick::annotateImage" alt="" coords="6,5,162,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_8.png" border="0" alt="" usemap="#Magick_1_1antiAliasImage"/>
+<map name="Magick_1_1antiAliasImage" id="Magick_1_1antiAliasImage">
+<area shape="rect" id="node1" href="classMagick_1_1antiAliasImage.html" title="Magick::antiAliasImage" alt="" coords="5,5,160,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_9.png" border="0" alt="" usemap="#Magick_1_1backgroundColorImage"/>
+<map name="Magick_1_1backgroundColorImage" id="Magick_1_1backgroundColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1backgroundColorImage.html" title="Magick::backgroundColorImage" alt="" coords="5,5,208,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_10.png" border="0" alt="" usemap="#Magick_1_1backgroundTextureImage"/>
+<map name="Magick_1_1backgroundTextureImage" id="Magick_1_1backgroundTextureImage">
+<area shape="rect" id="node1" href="classMagick_1_1backgroundTextureImage.html" title="Magick::backgroundTexture\lImage" alt="" coords="6,5,186,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_11.png" border="0" alt="" usemap="#Magick_1_1Blob"/>
+<map name="Magick_1_1Blob" id="Magick_1_1Blob">
+<area shape="rect" id="node1" href="classMagick_1_1Blob.html" title="Magick::Blob" alt="" coords="5,5,101,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_12.png" border="0" alt="" usemap="#Magick_1_1BlobRef"/>
+<map name="Magick_1_1BlobRef" id="Magick_1_1BlobRef">
+<area shape="rect" id="node1" href="classMagick_1_1BlobRef.html" title="Magick::BlobRef" alt="" coords="6,5,122,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_13.png" border="0" alt="" usemap="#Magick_1_1blurImage"/>
+<map name="Magick_1_1blurImage" id="Magick_1_1blurImage">
+<area shape="rect" id="node1" href="classMagick_1_1blurImage.html" title="Magick::blurImage" alt="" coords="6,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_14.png" border="0" alt="" usemap="#Magick_1_1borderColorImage"/>
+<map name="Magick_1_1borderColorImage" id="Magick_1_1borderColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1borderColorImage.html" title="Magick::borderColorImage" alt="" coords="6,5,178,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_15.png" border="0" alt="" usemap="#Magick_1_1borderImage"/>
+<map name="Magick_1_1borderImage" id="Magick_1_1borderImage">
+<area shape="rect" id="node1" href="classMagick_1_1borderImage.html" title="Magick::borderImage" alt="" coords="6,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_16.png" border="0" alt="" usemap="#Magick_1_1boxColorImage"/>
+<map name="Magick_1_1boxColorImage" id="Magick_1_1boxColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1boxColorImage.html" title="Magick::boxColorImage" alt="" coords="6,5,162,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_17.png" border="0" alt="" usemap="#Magick_1_1cdlImage"/>
+<map name="Magick_1_1cdlImage" id="Magick_1_1cdlImage">
+<area shape="rect" id="node1" href="classMagick_1_1cdlImage.html" title="Magick::cdlImage" alt="" coords="5,5,128,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_18.png" border="0" alt="" usemap="#Magick_1_1channelImage"/>
+<map name="Magick_1_1channelImage" id="Magick_1_1channelImage">
+<area shape="rect" id="node1" href="classMagick_1_1channelImage.html" title="Magick::channelImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_19.png" border="0" alt="" usemap="#Magick_1_1ChannelMoments"/>
+<map name="Magick_1_1ChannelMoments" id="Magick_1_1ChannelMoments">
+<area shape="rect" id="node1" href="classMagick_1_1ChannelMoments.html" title="Magick::ChannelMoments" alt="" coords="5,5,176,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_20.png" border="0" alt="" usemap="#Magick_1_1charcoalImage"/>
+<map name="Magick_1_1charcoalImage" id="Magick_1_1charcoalImage">
+<area shape="rect" id="node1" href="classMagick_1_1charcoalImage.html" title="Magick::charcoalImage" alt="" coords="5,5,160,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_21.png" border="0" alt="" usemap="#Magick_1_1chopImage"/>
+<map name="Magick_1_1chopImage" id="Magick_1_1chopImage">
+<area shape="rect" id="node1" href="classMagick_1_1chopImage.html" title="Magick::chopImage" alt="" coords="6,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_22.png" border="0" alt="" usemap="#Magick_1_1chromaBluePrimaryImage"/>
+<map name="Magick_1_1chromaBluePrimaryImage" id="Magick_1_1chromaBluePrimaryImage">
+<area shape="rect" id="node1" href="classMagick_1_1chromaBluePrimaryImage.html" title="Magick::chromaBluePrimary\lImage" alt="" coords="6,5,189,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#Magick_1_1chromaGreenPrimaryImage"/>
+<map name="Magick_1_1chromaGreenPrimaryImage" id="Magick_1_1chromaGreenPrimaryImage">
+<area shape="rect" id="node1" href="classMagick_1_1chromaGreenPrimaryImage.html" title="Magick::chromaGreenPrimary\lImage" alt="" coords="5,5,197,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#Magick_1_1chromaRedPrimaryImage"/>
+<map name="Magick_1_1chromaRedPrimaryImage" id="Magick_1_1chromaRedPrimaryImage">
+<area shape="rect" id="node1" href="classMagick_1_1chromaRedPrimaryImage.html" title="Magick::chromaRedPrimary\lImage" alt="" coords="6,5,186,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_25.png" border="0" alt="" usemap="#Magick_1_1chromaWhitePointImage"/>
+<map name="Magick_1_1chromaWhitePointImage" id="Magick_1_1chromaWhitePointImage">
+<area shape="rect" id="node1" href="classMagick_1_1chromaWhitePointImage.html" title="Magick::chromaWhitePoint\lImage" alt="" coords="5,5,181,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_26.png" border="0" alt="" usemap="#Magick_1_1CoderInfo"/>
+<map name="Magick_1_1CoderInfo" id="Magick_1_1CoderInfo">
+<area shape="rect" id="node1" href="classMagick_1_1CoderInfo.html" title="Magick::CoderInfo" alt="" coords="6,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_27.png" border="0" alt="" usemap="#Magick_1_1Color"/>
+<map name="Magick_1_1Color" id="Magick_1_1Color">
+<area shape="rect" id="node1" href="classMagick_1_1Color.html" title="Magick::Color" alt="" coords="6,107,106,133"/><area shape="rect" id="node2" href="classMagick_1_1ColorGray.html" title="Magick::ColorGray" alt="" coords="158,5,285,32"/><area shape="rect" id="node3" href="classMagick_1_1ColorHSL.html" title="Magick::ColorHSL" alt="" coords="159,56,284,83"/><area shape="rect" id="node4" href="classMagick_1_1ColorMono.html" title="Magick::ColorMono" alt="" coords="155,107,287,133"/><area shape="rect" id="node5" href="classMagick_1_1ColorRGB.html" title="Magick::ColorRGB" alt="" coords="157,157,285,184"/><area shape="rect" id="node6" href="classMagick_1_1ColorYUV.html" title="Magick::ColorYUV" alt="" coords="158,208,285,235"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_28.png" border="0" alt="" usemap="#Magick_1_1colorFuzzImage"/>
+<map name="Magick_1_1colorFuzzImage" id="Magick_1_1colorFuzzImage">
+<area shape="rect" id="node1" href="classMagick_1_1colorFuzzImage.html" title="Magick::colorFuzzImage" alt="" coords="6,5,167,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_29.png" border="0" alt="" usemap="#Magick_1_1colorizeImage"/>
+<map name="Magick_1_1colorizeImage" id="Magick_1_1colorizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1colorizeImage.html" title="Magick::colorizeImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_30.png" border="0" alt="" usemap="#Magick_1_1colorMapImage"/>
+<map name="Magick_1_1colorMapImage" id="Magick_1_1colorMapImage">
+<area shape="rect" id="node1" href="classMagick_1_1colorMapImage.html" title="Magick::colorMapImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_31.png" border="0" alt="" usemap="#Magick_1_1colorMatrixImage"/>
+<map name="Magick_1_1colorMatrixImage" id="Magick_1_1colorMatrixImage">
+<area shape="rect" id="node1" href="classMagick_1_1colorMatrixImage.html" title="Magick::colorMatrixImage" alt="" coords="6,5,175,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_32.png" border="0" alt="" usemap="#Magick_1_1colorSpaceImage"/>
+<map name="Magick_1_1colorSpaceImage" id="Magick_1_1colorSpaceImage">
+<area shape="rect" id="node1" href="classMagick_1_1colorSpaceImage.html" title="Magick::colorSpaceImage" alt="" coords="5,5,176,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_33.png" border="0" alt="" usemap="#Magick_1_1commentImage"/>
+<map name="Magick_1_1commentImage" id="Magick_1_1commentImage">
+<area shape="rect" id="node1" href="classMagick_1_1commentImage.html" title="Magick::commentImage" alt="" coords="5,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_34.png" border="0" alt="" usemap="#Magick_1_1composeImage"/>
+<map name="Magick_1_1composeImage" id="Magick_1_1composeImage">
+<area shape="rect" id="node1" href="classMagick_1_1composeImage.html" title="Magick::composeImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_35.png" border="0" alt="" usemap="#Magick_1_1compositeImage"/>
+<map name="Magick_1_1compositeImage" id="Magick_1_1compositeImage">
+<area shape="rect" id="node1" href="classMagick_1_1compositeImage.html" title="Magick::compositeImage" alt="" coords="5,5,171,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_36.png" border="0" alt="" usemap="#Magick_1_1compressTypeImage"/>
+<map name="Magick_1_1compressTypeImage" id="Magick_1_1compressTypeImage">
+<area shape="rect" id="node1" href="classMagick_1_1compressTypeImage.html" title="Magick::compressTypeImage" alt="" coords="5,5,195,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_37.png" border="0" alt="" usemap="#Magick_1_1contrastImage"/>
+<map name="Magick_1_1contrastImage" id="Magick_1_1contrastImage">
+<area shape="rect" id="node1" href="classMagick_1_1contrastImage.html" title="Magick::contrastImage" alt="" coords="5,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_38.png" border="0" alt="" usemap="#Magick_1_1Coordinate"/>
+<map name="Magick_1_1Coordinate" id="Magick_1_1Coordinate">
+<area shape="rect" id="node1" href="classMagick_1_1Coordinate.html" title="Magick::Coordinate" alt="" coords="6,5,138,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_39.png" border="0" alt="" usemap="#Magick_1_1cropImage"/>
+<map name="Magick_1_1cropImage" id="Magick_1_1cropImage">
+<area shape="rect" id="node1" href="classMagick_1_1cropImage.html" title="Magick::cropImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_40.png" border="0" alt="" usemap="#Magick_1_1cycleColormapImage"/>
+<map name="Magick_1_1cycleColormapImage" id="Magick_1_1cycleColormapImage">
+<area shape="rect" id="node1" href="classMagick_1_1cycleColormapImage.html" title="Magick::cycleColormapImage" alt="" coords="6,5,197,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_41.png" border="0" alt="" usemap="#Magick_1_1densityImage"/>
+<map name="Magick_1_1densityImage" id="Magick_1_1densityImage">
+<area shape="rect" id="node1" href="classMagick_1_1densityImage.html" title="Magick::densityImage" alt="" coords="5,5,152,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_42.png" border="0" alt="" usemap="#Magick_1_1depthImage"/>
+<map name="Magick_1_1depthImage" id="Magick_1_1depthImage">
+<area shape="rect" id="node1" href="classMagick_1_1depthImage.html" title="Magick::depthImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_43.png" border="0" alt="" usemap="#Magick_1_1despeckleImage"/>
+<map name="Magick_1_1despeckleImage" id="Magick_1_1despeckleImage">
+<area shape="rect" id="node1" href="classMagick_1_1despeckleImage.html" title="Magick::despeckleImage" alt="" coords="6,5,170,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_44.png" border="0" alt="" usemap="#Magick_1_1distortImage"/>
+<map name="Magick_1_1distortImage" id="Magick_1_1distortImage">
+<area shape="rect" id="node1" href="classMagick_1_1distortImage.html" title="Magick::distortImage" alt="" coords="5,5,147,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_45.png" border="0" alt="" usemap="#Magick_1_1Drawable"/>
+<map name="Magick_1_1Drawable" id="Magick_1_1Drawable">
+<area shape="rect" id="node1" href="classMagick_1_1Drawable.html" title="Magick::Drawable" alt="" coords="5,5,128,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_46.png" border="0" alt="" usemap="#Magick_1_1DrawableBase"/>
+<map name="Magick_1_1DrawableBase" id="Magick_1_1DrawableBase">
+<area shape="rect" id="node1" href="classMagick_1_1DrawableBase.html" title="Magick::DrawableBase" alt="" coords="5,1325,157,1352"/><area shape="rect" id="node2" href="classMagick_1_1DrawableAffine.html" title="Magick::DrawableAffine" alt="" coords="237,5,392,32"/><area shape="rect" id="node3" href="classMagick_1_1DrawableArc.html" title="Magick::DrawableArc" alt="" coords="243,56,386,83"/><area shape="rect" id="node4" href="classMagick_1_1DrawableBezier.html" title="Magick::DrawableBezier" alt="" coords="235,107,394,133"/><area shape="rect" id="node5" href="classMagick_1_1DrawableCircle.html" title="Magick::DrawableCircle" alt="" coords="237,157,393,184"/><area shape="rect" id="node6" href="classMagick_1_1DrawableClipPath.html" title="Magick::DrawableClipPath" alt="" coords="229,208,401,235"/><area shape="rect" id="node7" href="classMagick_1_1DrawableColor.html" title="Magick::DrawableColor" alt="" coords="238,259,391,285"/><area shape="rect" id="node8" href="classMagick_1_1DrawableCompositeImage.html" title="Magick::DrawableComposite\lImage" alt="" coords="223,310,407,351"/><area shape="rect" id="node9" href="classMagick_1_1DrawableDashArray.html" title="Magick::DrawableDashArray" alt="" coords="223,376,406,403"/><area shape="rect" id="node10" href="classMagick_1_1DrawableDashOffset.html" title="Magick::DrawableDashOffset" alt="" coords="222,427,407,453"/><area shape="rect" id="node11" href="classMagick_1_1DrawableDensity.html" title="Magick::DrawableDensity" alt="" coords="232,477,397,504"/><area shape="rect" id="node12" href="classMagick_1_1DrawableEllipse.html" title="Magick::DrawableEllipse" alt="" coords="235,528,395,555"/><area shape="rect" id="node13" href="classMagick_1_1DrawableFillColor.html" title="Magick::DrawableFillColor" alt="" coords="229,579,400,605"/><area shape="rect" id="node14" href="classMagick_1_1DrawableFillOpacity.html" title="Magick::DrawableFillOpacity" alt="" coords="223,629,407,656"/><area shape="rect" id="node15" href="classMagick_1_1DrawableFillRule.html" title="Magick::DrawableFillRule" alt="" coords="231,680,398,707"/><area shape="rect" id="node16" href="classMagick_1_1DrawableFont.html" title="Magick::DrawableFont" alt="" coords="240,731,389,757"/><area shape="rect" id="node17" href="classMagick_1_1DrawableGravity.html" title="Magick::DrawableGravity" alt="" coords="233,781,396,808"/><area shape="rect" id="node18" href="classMagick_1_1DrawableLine.html" title="Magick::DrawableLine" alt="" coords="241,832,388,859"/><area shape="rect" id="node19" href="classMagick_1_1DrawableMatte.html" title="Magick::DrawableMatte" alt="" coords="237,883,393,909"/><area shape="rect" id="node20" href="classMagick_1_1DrawableMiterLimit.html" title="Magick::DrawableMiterLimit" alt="" coords="225,933,405,960"/><area shape="rect" id="node21" href="classMagick_1_1DrawablePath.html" title="Magick::DrawablePath" alt="" coords="239,984,390,1011"/><area shape="rect" id="node22" href="classMagick_1_1DrawablePoint.html" title="Magick::DrawablePoint" alt="" coords="238,1035,391,1061"/><area shape="rect" id="node23" href="classMagick_1_1DrawablePointSize.html" title="Magick::DrawablePointSize" alt="" coords="225,1085,404,1112"/><area shape="rect" id="node24" href="classMagick_1_1DrawablePolygon.html" title="Magick::DrawablePolygon" alt="" coords="230,1136,399,1163"/><area shape="rect" id="node25" href="classMagick_1_1DrawablePolyline.html" title="Magick::DrawablePolyline" alt="" coords="231,1187,399,1213"/><area shape="rect" id="node26" href="classMagick_1_1DrawablePopClipPath.html" title="Magick::DrawablePopClipPath" alt="" coords="217,1237,412,1264"/><area shape="rect" id="node27" href="classMagick_1_1DrawablePopGraphicContext.html" title="Magick::DrawablePopGraphic\lContext" alt="" coords="219,1289,410,1330"/><area shape="rect" id="node28" href="classMagick_1_1DrawablePopPattern.html" title="Magick::DrawablePopPattern" alt="" coords="221,1355,409,1381"/><area shape="rect" id="node29" href="classMagick_1_1DrawablePushClipPath.html" title="Magick::DrawablePushClipPath" alt="" coords="214,1405,415,1432"/><area shape="rect" id="node30" href="classMagick_1_1DrawablePushGraphicContext.html" title="Magick::DrawablePushGraphic\lContext" alt="" coords="216,1457,413,1498"/><area shape="rect" id="node31" href="classMagick_1_1DrawablePushPattern.html" title="Magick::DrawablePushPattern" alt="" coords="217,1523,412,1549"/><area shape="rect" id="node32" href="classMagick_1_1DrawableRectangle.html" title="Magick::DrawableRectangle" alt="" coords="224,1573,405,1600"/><area shape="rect" id="node33" href="classMagick_1_1DrawableRotation.html" title="Magick::DrawableRotation" alt="" coords="229,1624,400,1651"/><area shape="rect" id="node34" href="classMagick_1_1DrawableRoundRectangle.html" title="Magick::DrawableRoundRectangle" alt="" coords="205,1675,424,1701"/><area shape="rect" id="node35" href="classMagick_1_1DrawableScaling.html" title="Magick::DrawableScaling" alt="" coords="231,1725,398,1752"/><area shape="rect" id="node36" href="classMagick_1_1DrawableSkewX.html" title="Magick::DrawableSkewX" alt="" coords="233,1776,397,1803"/><area shape="rect" id="node37" href="classMagick_1_1DrawableSkewY.html" title="Magick::DrawableSkewY" alt="" coords="233,1827,397,1853"/><area shape="rect" id="node38" href="classMagick_1_1DrawableStrokeAntialias.html" title="Magick::DrawableStrokeAntialias" alt="" coords="209,1877,420,1904"/><area shape="rect" id="node39" href="classMagick_1_1DrawableStrokeColor.html" title="Magick::DrawableStrokeColor" alt="" coords="219,1928,410,1955"/><area shape="rect" id="node40" href="classMagick_1_1DrawableStrokeLineCap.html" title="Magick::DrawableStrokeLineCap" alt="" coords="211,1979,419,2005"/><area shape="rect" id="node41" href="classMagick_1_1DrawableStrokeLineJoin.html" title="Magick::DrawableStrokeLineJoin" alt="" coords="210,2029,419,2056"/><area shape="rect" id="node42" href="classMagick_1_1DrawableStrokeOpacity.html" title="Magick::DrawableStrokeOpacity" alt="" coords="212,2080,417,2107"/><area shape="rect" id="node43" href="classMagick_1_1DrawableStrokeWidth.html" title="Magick::DrawableStrokeWidth" alt="" coords="217,2131,412,2157"/><area shape="rect" id="node44" href="classMagick_1_1DrawableText.html" title="Magick::DrawableText" alt="" coords="241,2181,389,2208"/><area shape="rect" id="node45" href="classMagick_1_1DrawableTextAntialias.html" title="Magick::DrawableTextAntialias" alt="" coords="216,2232,413,2259"/><area shape="rect" id="node46" href="classMagick_1_1DrawableTextDecoration.html" title="Magick::DrawableTextDecoration" alt="" coords="209,2283,420,2309"/><area shape="rect" id="node47" href="classMagick_1_1DrawableTextDirection.html" title="Magick::DrawableTextDirection" alt="" coords="215,2333,414,2360"/><area shape="rect" id="node48" href="classMagick_1_1DrawableTextInterlineSpacing.html" title="Magick::DrawableTextInterline\lSpacing" alt="" coords="217,2385,412,2426"/><area shape="rect" id="node49" href="classMagick_1_1DrawableTextInterwordSpacing.html" title="Magick::DrawableTextInterword\lSpacing" alt="" coords="214,2450,415,2491"/><area shape="rect" id="node50" href="classMagick_1_1DrawableTextKerning.html" title="Magick::DrawableTextKerning" alt="" coords="219,2516,411,2543"/><area shape="rect" id="node51" href="classMagick_1_1DrawableTextUnderColor.html" title="Magick::DrawableTextUnder\lColor" alt="" coords="223,2567,406,2609"/><area shape="rect" id="node52" href="classMagick_1_1DrawableTranslation.html" title="Magick::DrawableTranslation" alt="" coords="221,2633,408,2660"/><area shape="rect" id="node53" href="classMagick_1_1DrawableViewbox.html" title="Magick::DrawableViewbox" alt="" coords="229,2684,400,2711"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_47.png" border="0" alt="" usemap="#Magick_1_1drawImage"/>
+<map name="Magick_1_1drawImage" id="Magick_1_1drawImage">
+<area shape="rect" id="node1" href="classMagick_1_1drawImage.html" title="Magick::drawImage" alt="" coords="5,5,139,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_48.png" border="0" alt="" usemap="#Magick_1_1edgeImage"/>
+<map name="Magick_1_1edgeImage" id="Magick_1_1edgeImage">
+<area shape="rect" id="node1" href="classMagick_1_1edgeImage.html" title="Magick::edgeImage" alt="" coords="6,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_49.png" border="0" alt="" usemap="#Magick_1_1embossImage"/>
+<map name="Magick_1_1embossImage" id="Magick_1_1embossImage">
+<area shape="rect" id="node1" href="classMagick_1_1embossImage.html" title="Magick::embossImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_50.png" border="0" alt="" usemap="#Magick_1_1endianImage"/>
+<map name="Magick_1_1endianImage" id="Magick_1_1endianImage">
+<area shape="rect" id="node1" href="classMagick_1_1endianImage.html" title="Magick::endianImage" alt="" coords="5,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_51.png" border="0" alt="" usemap="#Magick_1_1enhanceImage"/>
+<map name="Magick_1_1enhanceImage" id="Magick_1_1enhanceImage">
+<area shape="rect" id="node1" href="classMagick_1_1enhanceImage.html" title="Magick::enhanceImage" alt="" coords="5,5,160,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_52.png" border="0" alt="" usemap="#Magick_1_1equalizeImage"/>
+<map name="Magick_1_1equalizeImage" id="Magick_1_1equalizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1equalizeImage.html" title="Magick::equalizeImage" alt="" coords="6,5,159,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_53.png" border="0" alt="" usemap="#Magick_1_1Exception"/>
+<map name="Magick_1_1Exception" id="Magick_1_1Exception">
+<area shape="rect" id="node1" title="STL class. " alt="" coords="6,993,106,1020"/><area shape="rect" id="node2" href="classMagick_1_1Exception.html" title="Magick::Exception" alt="" coords="155,993,282,1020"/><area shape="rect" id="node3" href="classMagick_1_1Error.html" title="Magick::Error" alt="" coords="341,512,438,539"/><area shape="rect" id="node24" href="classMagick_1_1Warning.html" title="Magick::Warning" alt="" coords="331,1475,448,1501"/><area shape="rect" id="node4" href="classMagick_1_1ErrorBlob.html" title="Magick::ErrorBlob" alt="" coords="540,5,663,32"/><area shape="rect" id="node5" href="classMagick_1_1ErrorCache.html" title="Magick::ErrorCache" alt="" coords="534,56,669,83"/><area shape="rect" id="node6" href="classMagick_1_1ErrorCoder.html" title="Magick::ErrorCoder" alt="" coords="536,107,667,133"/><area shape="rect" id="node7" href="classMagick_1_1ErrorConfigure.html" title="Magick::ErrorConfigure" alt="" coords="526,157,677,184"/><area shape="rect" id="node8" href="classMagick_1_1ErrorCorruptImage.html" title="Magick::ErrorCorruptImage" alt="" coords="514,208,689,235"/><area shape="rect" id="node9" href="classMagick_1_1ErrorDelegate.html" title="Magick::ErrorDelegate" alt="" coords="527,259,675,285"/><area shape="rect" id="node10" href="classMagick_1_1ErrorDraw.html" title="Magick::ErrorDraw" alt="" coords="538,309,665,336"/><area shape="rect" id="node11" href="classMagick_1_1ErrorFileOpen.html" title="Magick::ErrorFileOpen" alt="" coords="527,360,676,387"/><area shape="rect" id="node12" href="classMagick_1_1ErrorImage.html" title="Magick::ErrorImage" alt="" coords="535,411,668,437"/><area shape="rect" id="node13" href="classMagick_1_1ErrorMissingDelegate.html" title="Magick::ErrorMissingDelegate" alt="" coords="506,461,697,488"/><area shape="rect" id="node14" href="classMagick_1_1ErrorModule.html" title="Magick::ErrorModule" alt="" coords="532,512,671,539"/><area shape="rect" id="node15" href="classMagick_1_1ErrorMonitor.html" title="Magick::ErrorMonitor" alt="" coords="531,563,671,589"/><area shape="rect" id="node16" href="classMagick_1_1ErrorOption.html" title="Magick::ErrorOption" alt="" coords="534,613,669,640"/><area shape="rect" id="node17" href="classMagick_1_1ErrorPolicy.html" title="Magick::ErrorPolicy" alt="" coords="535,664,667,691"/><area shape="rect" id="node18" href="classMagick_1_1ErrorRegistry.html" title="Magick::ErrorRegistry" alt="" coords="530,715,673,741"/><area shape="rect" id="node19" href="classMagick_1_1ErrorResourceLimit.html" title="Magick::ErrorResourceLimit" alt="" coords="512,765,691,792"/><area shape="rect" id="node20" href="classMagick_1_1ErrorStream.html" title="Magick::ErrorStream" alt="" coords="532,816,671,843"/><area shape="rect" id="node21" href="classMagick_1_1ErrorType.html" title="Magick::ErrorType" alt="" coords="539,867,664,893"/><area shape="rect" id="node22" href="classMagick_1_1ErrorUndefined.html" title="Magick::ErrorUndefined" alt="" coords="524,917,679,944"/><area shape="rect" id="node23" href="classMagick_1_1ErrorXServer.html" title="Magick::ErrorXServer" alt="" coords="530,968,673,995"/><area shape="rect" id="node25" href="classMagick_1_1WarningBlob.html" title="Magick::WarningBlob" alt="" coords="530,1019,673,1045"/><area shape="rect" id="node26" href="classMagick_1_1WarningCache.html" title="Magick::WarningCache" alt="" coords="524,1069,679,1096"/><area shape="rect" id="node27" href="classMagick_1_1WarningCoder.html" title="Magick::WarningCoder" alt="" coords="526,1120,677,1147"/><area shape="rect" id="node28" href="classMagick_1_1WarningConfigure.html" title="Magick::WarningConfigure" alt="" coords="516,1171,687,1197"/><area shape="rect" id="node29" href="classMagick_1_1WarningCorruptImage.html" title="Magick::WarningCorruptImage" alt="" coords="504,1221,699,1248"/><area shape="rect" id="node30" href="classMagick_1_1WarningDelegate.html" title="Magick::WarningDelegate" alt="" coords="517,1272,685,1299"/><area shape="rect" id="node31" href="classMagick_1_1WarningDraw.html" title="Magick::WarningDraw" alt="" coords="528,1323,675,1349"/><area shape="rect" id="node32" href="classMagick_1_1WarningFileOpen.html" title="Magick::WarningFileOpen" alt="" coords="517,1373,686,1400"/><area shape="rect" id="node33" href="classMagick_1_1WarningImage.html" title="Magick::WarningImage" alt="" coords="525,1424,678,1451"/><area shape="rect" id="node34" href="classMagick_1_1WarningMissingDelegate.html" title="Magick::WarningMissingDelegate" alt="" coords="496,1475,707,1501"/><area shape="rect" id="node35" href="classMagick_1_1WarningModule.html" title="Magick::WarningModule" alt="" coords="522,1525,681,1552"/><area shape="rect" id="node36" href="classMagick_1_1WarningMonitor.html" title="Magick::WarningMonitor" alt="" coords="521,1576,681,1603"/><area shape="rect" id="node37" href="classMagick_1_1WarningOption.html" title="Magick::WarningOption" alt="" coords="524,1627,679,1653"/><area shape="rect" id="node38" href="classMagick_1_1WarningPolicy.html" title="Magick::WarningPolicy" alt="" coords="525,1677,677,1704"/><area shape="rect" id="node39" href="classMagick_1_1WarningRegistry.html" title="Magick::WarningRegistry" alt="" coords="520,1728,683,1755"/><area shape="rect" id="node40" href="classMagick_1_1WarningResourceLimit.html" title="Magick::WarningResourceLimit" alt="" coords="502,1779,701,1805"/><area shape="rect" id="node41" href="classMagick_1_1WarningStream.html" title="Magick::WarningStream" alt="" coords="522,1829,681,1856"/><area shape="rect" id="node42" href="classMagick_1_1WarningType.html" title="Magick::WarningType" alt="" coords="529,1880,674,1907"/><area shape="rect" id="node43" href="classMagick_1_1WarningUndefined.html" title="Magick::WarningUndefined" alt="" coords="514,1931,689,1957"/><area shape="rect" id="node44" href="classMagick_1_1WarningXServer.html" title="Magick::WarningXServer" alt="" coords="520,1981,683,2008"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_54.png" border="0" alt="" usemap="#Magick_1_1fileNameImage"/>
+<map name="Magick_1_1fileNameImage" id="Magick_1_1fileNameImage">
+<area shape="rect" id="node1" href="classMagick_1_1fileNameImage.html" title="Magick::fileNameImage" alt="" coords="6,5,162,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_55.png" border="0" alt="" usemap="#Magick_1_1fillColorImage"/>
+<map name="Magick_1_1fillColorImage" id="Magick_1_1fillColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1fillColorImage.html" title="Magick::fillColorImage" alt="" coords="6,5,154,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_56.png" border="0" alt="" usemap="#Magick_1_1filterTypeImage"/>
+<map name="Magick_1_1filterTypeImage" id="Magick_1_1filterTypeImage">
+<area shape="rect" id="node1" href="classMagick_1_1filterTypeImage.html" title="Magick::filterTypeImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_57.png" border="0" alt="" usemap="#Magick_1_1flipImage"/>
+<map name="Magick_1_1flipImage" id="Magick_1_1flipImage">
+<area shape="rect" id="node1" href="classMagick_1_1flipImage.html" title="Magick::flipImage" alt="" coords="5,5,128,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_58.png" border="0" alt="" usemap="#Magick_1_1floodFillColorImage"/>
+<map name="Magick_1_1floodFillColorImage" id="Magick_1_1floodFillColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1floodFillColorImage.html" title="Magick::floodFillColorImage" alt="" coords="6,5,186,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_59.png" border="0" alt="" usemap="#Magick_1_1floodFillTextureImage"/>
+<map name="Magick_1_1floodFillTextureImage" id="Magick_1_1floodFillTextureImage">
+<area shape="rect" id="node1" href="classMagick_1_1floodFillTextureImage.html" title="Magick::floodFillTexture\lImage" alt="" coords="5,5,163,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_60.png" border="0" alt="" usemap="#Magick_1_1flopImage"/>
+<map name="Magick_1_1flopImage" id="Magick_1_1flopImage">
+<area shape="rect" id="node1" href="classMagick_1_1flopImage.html" title="Magick::flopImage" alt="" coords="6,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_61.png" border="0" alt="" usemap="#Magick_1_1fontImage"/>
+<map name="Magick_1_1fontImage" id="Magick_1_1fontImage">
+<area shape="rect" id="node1" href="classMagick_1_1fontImage.html" title="Magick::fontImage" alt="" coords="5,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_62.png" border="0" alt="" usemap="#Magick_1_1fontPointsizeImage"/>
+<map name="Magick_1_1fontPointsizeImage" id="Magick_1_1fontPointsizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1fontPointsizeImage.html" title="Magick::fontPointsizeImage" alt="" coords="6,5,186,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_63.png" border="0" alt="" usemap="#Magick_1_1frameImage"/>
+<map name="Magick_1_1frameImage" id="Magick_1_1frameImage">
+<area shape="rect" id="node1" href="classMagick_1_1frameImage.html" title="Magick::frameImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_64.png" border="0" alt="" usemap="#Magick_1_1gammaImage"/>
+<map name="Magick_1_1gammaImage" id="Magick_1_1gammaImage">
+<area shape="rect" id="node1" href="classMagick_1_1gammaImage.html" title="Magick::gammaImage" alt="" coords="5,5,155,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_65.png" border="0" alt="" usemap="#Magick_1_1gaussianBlurImage"/>
+<map name="Magick_1_1gaussianBlurImage" id="Magick_1_1gaussianBlurImage">
+<area shape="rect" id="node1" href="classMagick_1_1gaussianBlurImage.html" title="Magick::gaussianBlurImage" alt="" coords="5,5,184,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_66.png" border="0" alt="" usemap="#Magick_1_1Geometry"/>
+<map name="Magick_1_1Geometry" id="Magick_1_1Geometry">
+<area shape="rect" id="node1" href="classMagick_1_1Geometry.html" title="Magick::Geometry" alt="" coords="6,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_67.png" border="0" alt="" usemap="#Magick_1_1gifDisposeMethodImage"/>
+<map name="Magick_1_1gifDisposeMethodImage" id="Magick_1_1gifDisposeMethodImage">
+<area shape="rect" id="node1" href="classMagick_1_1gifDisposeMethodImage.html" title="Magick::gifDisposeMethod\lImage" alt="" coords="6,5,178,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_68.png" border="0" alt="" usemap="#Magick_1_1haldClutImage"/>
+<map name="Magick_1_1haldClutImage" id="Magick_1_1haldClutImage">
+<area shape="rect" id="node1" href="classMagick_1_1haldClutImage.html" title="Magick::haldClutImage" alt="" coords="6,5,159,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_69.png" border="0" alt="" usemap="#Magick_1_1Image"/>
+<map name="Magick_1_1Image" id="Magick_1_1Image">
+<area shape="rect" id="node1" href="classMagick_1_1Image.html" title="Magick::Image" alt="" coords="5,5,112,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_70.png" border="0" alt="" usemap="#Magick_1_1Image_1_1__ImageChannelStatistics"/>
+<map name="Magick_1_1Image_1_1__ImageChannelStatistics" id="Magick_1_1Image_1_1__ImageChannelStatistics">
+<area shape="rect" id="node1" href="structMagick_1_1Image_1_1__ImageChannelStatistics.html" title="Magick::Image::_ImageChannel\lStatistics" alt="" coords="5,5,208,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_71.png" border="0" alt="" usemap="#Magick_1_1Image_1_1__ImageStatistics"/>
+<map name="Magick_1_1Image_1_1__ImageStatistics" id="Magick_1_1Image_1_1__ImageStatistics">
+<area shape="rect" id="node1" href="structMagick_1_1Image_1_1__ImageStatistics.html" title="Magick::Image::_ImageStatistics" alt="" coords="5,5,213,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_72.png" border="0" alt="" usemap="#Magick_1_1ImageMoments"/>
+<map name="Magick_1_1ImageMoments" id="Magick_1_1ImageMoments">
+<area shape="rect" id="node1" href="classMagick_1_1ImageMoments.html" title="Magick::ImageMoments" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_73.png" border="0" alt="" usemap="#Magick_1_1ImageRef"/>
+<map name="Magick_1_1ImageRef" id="Magick_1_1ImageRef">
+<area shape="rect" id="node1" href="classMagick_1_1ImageRef.html" title="Magick::ImageRef" alt="" coords="6,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_74.png" border="0" alt="" usemap="#Magick_1_1implodeImage"/>
+<map name="Magick_1_1implodeImage" id="Magick_1_1implodeImage">
+<area shape="rect" id="node1" href="classMagick_1_1implodeImage.html" title="Magick::implodeImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_75.png" border="0" alt="" usemap="#Magick_1_1interlaceTypeImage"/>
+<map name="Magick_1_1interlaceTypeImage" id="Magick_1_1interlaceTypeImage">
+<area shape="rect" id="node1" href="classMagick_1_1interlaceTypeImage.html" title="Magick::interlaceTypeImage" alt="" coords="6,5,189,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_76.png" border="0" alt="" usemap="#Magick_1_1inverseFourierTransformImage"/>
+<map name="Magick_1_1inverseFourierTransformImage" id="Magick_1_1inverseFourierTransformImage">
+<area shape="rect" id="node1" href="classMagick_1_1inverseFourierTransformImage.html" title="Magick::inverseFourierTransform\lImage" alt="" coords="5,5,213,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_77.png" border="0" alt="" usemap="#Magick_1_1isValidImage"/>
+<map name="Magick_1_1isValidImage" id="Magick_1_1isValidImage">
+<area shape="rect" id="node1" href="classMagick_1_1isValidImage.html" title="Magick::isValidImage" alt="" coords="6,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_78.png" border="0" alt="" usemap="#Magick_1_1labelImage"/>
+<map name="Magick_1_1labelImage" id="Magick_1_1labelImage">
+<area shape="rect" id="node1" href="classMagick_1_1labelImage.html" title="Magick::labelImage" alt="" coords="5,5,139,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_79.png" border="0" alt="" usemap="#Magick_1_1levelChannelImage"/>
+<map name="Magick_1_1levelChannelImage" id="Magick_1_1levelChannelImage">
+<area shape="rect" id="node1" href="classMagick_1_1levelChannelImage.html" title="Magick::levelChannelImage" alt="" coords="5,5,184,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_80.png" border="0" alt="" usemap="#Magick_1_1levelImage"/>
+<map name="Magick_1_1levelImage" id="Magick_1_1levelImage">
+<area shape="rect" id="node1" href="classMagick_1_1levelImage.html" title="Magick::levelImage" alt="" coords="6,5,138,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_81.png" border="0" alt="" usemap="#Magick_1_1lineWidthImage"/>
+<map name="Magick_1_1lineWidthImage" id="Magick_1_1lineWidthImage">
+<area shape="rect" id="node1" href="classMagick_1_1lineWidthImage.html" title="Magick::lineWidthImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_82.png" border="0" alt="" usemap="#Magick_1_1Lock"/>
+<map name="Magick_1_1Lock" id="Magick_1_1Lock">
+<area shape="rect" id="node1" href="classMagick_1_1Lock.html" title="Magick::Lock" alt="" coords="5,5,104,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_83.png" border="0" alt="" usemap="#Magick_1_1magickImage"/>
+<map name="Magick_1_1magickImage" id="Magick_1_1magickImage">
+<area shape="rect" id="node1" href="classMagick_1_1magickImage.html" title="Magick::magickImage" alt="" coords="6,5,154,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_84.png" border="0" alt="" usemap="#Magick_1_1magnifyImage"/>
+<map name="Magick_1_1magnifyImage" id="Magick_1_1magnifyImage">
+<area shape="rect" id="node1" href="classMagick_1_1magnifyImage.html" title="Magick::magnifyImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_85.png" border="0" alt="" usemap="#Magick_1_1mapImage"/>
+<map name="Magick_1_1mapImage" id="Magick_1_1mapImage">
+<area shape="rect" id="node1" href="classMagick_1_1mapImage.html" title="Magick::mapImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_86.png" border="0" alt="" usemap="#Magick_1_1matteColorImage"/>
+<map name="Magick_1_1matteColorImage" id="Magick_1_1matteColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1matteColorImage.html" title="Magick::matteColorImage" alt="" coords="6,5,175,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_87.png" border="0" alt="" usemap="#Magick_1_1matteFloodfillImage"/>
+<map name="Magick_1_1matteFloodfillImage" id="Magick_1_1matteFloodfillImage">
+<area shape="rect" id="node1" href="classMagick_1_1matteFloodfillImage.html" title="Magick::matteFloodfillImage" alt="" coords="6,5,189,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_88.png" border="0" alt="" usemap="#Magick_1_1matteImage"/>
+<map name="Magick_1_1matteImage" id="Magick_1_1matteImage">
+<area shape="rect" id="node1" href="classMagick_1_1matteImage.html" title="Magick::matteImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_89.png" border="0" alt="" usemap="#Magick_1_1medianFilterImage"/>
+<map name="Magick_1_1medianFilterImage" id="Magick_1_1medianFilterImage">
+<area shape="rect" id="node1" href="classMagick_1_1medianFilterImage.html" title="Magick::medianFilterImage" alt="" coords="6,5,183,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_90.png" border="0" alt="" usemap="#Magick_1_1mergeLayersImage"/>
+<map name="Magick_1_1mergeLayersImage" id="Magick_1_1mergeLayersImage">
+<area shape="rect" id="node1" href="classMagick_1_1mergeLayersImage.html" title="Magick::mergeLayersImage" alt="" coords="5,5,184,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_91.png" border="0" alt="" usemap="#Magick_1_1minifyImage"/>
+<map name="Magick_1_1minifyImage" id="Magick_1_1minifyImage">
+<area shape="rect" id="node1" href="classMagick_1_1minifyImage.html" title="Magick::minifyImage" alt="" coords="6,5,146,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_92.png" border="0" alt="" usemap="#Magick_1_1modulateImage"/>
+<map name="Magick_1_1modulateImage" id="Magick_1_1modulateImage">
+<area shape="rect" id="node1" href="classMagick_1_1modulateImage.html" title="Magick::modulateImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_93.png" border="0" alt="" usemap="#Magick_1_1monochromeImage"/>
+<map name="Magick_1_1monochromeImage" id="Magick_1_1monochromeImage">
+<area shape="rect" id="node1" href="classMagick_1_1monochromeImage.html" title="Magick::monochromeImage" alt="" coords="5,5,187,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_94.png" border="0" alt="" usemap="#Magick_1_1Montage"/>
+<map name="Magick_1_1Montage" id="Magick_1_1Montage">
+<area shape="rect" id="node1" href="classMagick_1_1Montage.html" title="Magick::Montage" alt="" coords="5,5,125,32"/><area shape="rect" id="node2" href="classMagick_1_1MontageFramed.html" title="Magick::MontageFramed" alt="" coords="174,5,338,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_95.png" border="0" alt="" usemap="#Magick_1_1MutexLock"/>
+<map name="Magick_1_1MutexLock" id="Magick_1_1MutexLock">
+<area shape="rect" id="node1" href="classMagick_1_1MutexLock.html" title="Magick::MutexLock" alt="" coords="5,5,139,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_96.png" border="0" alt="" usemap="#Magick_1_1negateImage"/>
+<map name="Magick_1_1negateImage" id="Magick_1_1negateImage">
+<area shape="rect" id="node1" href="classMagick_1_1negateImage.html" title="Magick::negateImage" alt="" coords="6,5,151,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_97.png" border="0" alt="" usemap="#Magick_1_1normalizeImage"/>
+<map name="Magick_1_1normalizeImage" id="Magick_1_1normalizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1normalizeImage.html" title="Magick::normalizeImage" alt="" coords="6,5,167,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_98.png" border="0" alt="" usemap="#Magick_1_1Offset"/>
+<map name="Magick_1_1Offset" id="Magick_1_1Offset">
+<area shape="rect" id="node1" href="classMagick_1_1Offset.html" title="Magick::Offset" alt="" coords="6,5,109,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_99.png" border="0" alt="" usemap="#Magick_1_1oilPaintImage"/>
+<map name="Magick_1_1oilPaintImage" id="Magick_1_1oilPaintImage">
+<area shape="rect" id="node1" href="classMagick_1_1oilPaintImage.html" title="Magick::oilPaintImage" alt="" coords="5,5,155,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_100.png" border="0" alt="" usemap="#Magick_1_1opacityImage"/>
+<map name="Magick_1_1opacityImage" id="Magick_1_1opacityImage">
+<area shape="rect" id="node1" href="classMagick_1_1opacityImage.html" title="Magick::opacityImage" alt="" coords="5,5,152,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_101.png" border="0" alt="" usemap="#Magick_1_1opaqueImage"/>
+<map name="Magick_1_1opaqueImage" id="Magick_1_1opaqueImage">
+<area shape="rect" id="node1" href="classMagick_1_1opaqueImage.html" title="Magick::opaqueImage" alt="" coords="6,5,154,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_102.png" border="0" alt="" usemap="#Magick_1_1Options"/>
+<map name="Magick_1_1Options" id="Magick_1_1Options">
+<area shape="rect" id="node1" href="classMagick_1_1Options.html" title="Magick::Options" alt="" coords="5,5,120,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_103.png" border="0" alt="" usemap="#Magick_1_1pageImage"/>
+<map name="Magick_1_1pageImage" id="Magick_1_1pageImage">
+<area shape="rect" id="node1" href="classMagick_1_1pageImage.html" title="Magick::pageImage" alt="" coords="6,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_104.png" border="0" alt="" usemap="#Magick_1_1PathArcArgs"/>
+<map name="Magick_1_1PathArcArgs" id="Magick_1_1PathArcArgs">
+<area shape="rect" id="node1" href="classMagick_1_1PathArcArgs.html" title="Magick::PathArcArgs" alt="" coords="6,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_105.png" border="0" alt="" usemap="#Magick_1_1PathCurvetoArgs"/>
+<map name="Magick_1_1PathCurvetoArgs" id="Magick_1_1PathCurvetoArgs">
+<area shape="rect" id="node1" href="classMagick_1_1PathCurvetoArgs.html" title="Magick::PathCurvetoArgs" alt="" coords="6,5,173,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_106.png" border="0" alt="" usemap="#Magick_1_1PathQuadraticCurvetoArgs"/>
+<map name="Magick_1_1PathQuadraticCurvetoArgs" id="Magick_1_1PathQuadraticCurvetoArgs">
+<area shape="rect" id="node1" href="classMagick_1_1PathQuadraticCurvetoArgs.html" title="Magick::PathQuadraticCurvetoArgs" alt="" coords="6,5,229,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_107.png" border="0" alt="" usemap="#Magick_1_1penColorImage"/>
+<map name="Magick_1_1penColorImage" id="Magick_1_1penColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1penColorImage.html" title="Magick::penColorImage" alt="" coords="5,5,163,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_108.png" border="0" alt="" usemap="#Magick_1_1penTextureImage"/>
+<map name="Magick_1_1penTextureImage" id="Magick_1_1penTextureImage">
+<area shape="rect" id="node1" href="classMagick_1_1penTextureImage.html" title="Magick::penTextureImage" alt="" coords="5,5,176,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_109.png" border="0" alt="" usemap="#Magick_1_1pixelColorImage"/>
+<map name="Magick_1_1pixelColorImage" id="Magick_1_1pixelColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1pixelColorImage.html" title="Magick::pixelColorImage" alt="" coords="5,5,168,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_110.png" border="0" alt="" usemap="#Magick_1_1PixelData"/>
+<map name="Magick_1_1PixelData" id="Magick_1_1PixelData">
+<area shape="rect" id="node1" href="classMagick_1_1PixelData.html" title="Magick::PixelData" alt="" coords="5,5,131,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_111.png" border="0" alt="" usemap="#Magick_1_1Pixels"/>
+<map name="Magick_1_1Pixels" id="Magick_1_1Pixels">
+<area shape="rect" id="node1" href="classMagick_1_1Pixels.html" title="Magick::Pixels" alt="" coords="5,5,109,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_112.png" border="0" alt="" usemap="#Magick_1_1qualityImage"/>
+<map name="Magick_1_1qualityImage" id="Magick_1_1qualityImage">
+<area shape="rect" id="node1" href="classMagick_1_1qualityImage.html" title="Magick::qualityImage" alt="" coords="6,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_113.png" border="0" alt="" usemap="#Magick_1_1quantizeColorsImage"/>
+<map name="Magick_1_1quantizeColorsImage" id="Magick_1_1quantizeColorsImage">
+<area shape="rect" id="node1" href="classMagick_1_1quantizeColorsImage.html" title="Magick::quantizeColorsImage" alt="" coords="6,5,197,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_114.png" border="0" alt="" usemap="#Magick_1_1quantizeColorSpaceImage"/>
+<map name="Magick_1_1quantizeColorSpaceImage" id="Magick_1_1quantizeColorSpaceImage">
+<area shape="rect" id="node1" href="classMagick_1_1quantizeColorSpaceImage.html" title="Magick::quantizeColorSpace\lImage" alt="" coords="6,5,191,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_115.png" border="0" alt="" usemap="#Magick_1_1quantizeDitherImage"/>
+<map name="Magick_1_1quantizeDitherImage" id="Magick_1_1quantizeDitherImage">
+<area shape="rect" id="node1" href="classMagick_1_1quantizeDitherImage.html" title="Magick::quantizeDitherImage" alt="" coords="6,5,194,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_116.png" border="0" alt="" usemap="#Magick_1_1quantizeImage"/>
+<map name="Magick_1_1quantizeImage" id="Magick_1_1quantizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1quantizeImage.html" title="Magick::quantizeImage" alt="" coords="5,5,160,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_117.png" border="0" alt="" usemap="#Magick_1_1quantizeTreeDepthImage"/>
+<map name="Magick_1_1quantizeTreeDepthImage" id="Magick_1_1quantizeTreeDepthImage">
+<area shape="rect" id="node1" href="classMagick_1_1quantizeTreeDepthImage.html" title="Magick::quantizeTreeDepth\lImage" alt="" coords="5,5,184,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_118.png" border="0" alt="" usemap="#Magick_1_1raiseImage"/>
+<map name="Magick_1_1raiseImage" id="Magick_1_1raiseImage">
+<area shape="rect" id="node1" href="classMagick_1_1raiseImage.html" title="Magick::raiseImage" alt="" coords="5,5,139,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_119.png" border="0" alt="" usemap="#Magick_1_1ReadOptions"/>
+<map name="Magick_1_1ReadOptions" id="Magick_1_1ReadOptions">
+<area shape="rect" id="node1" href="classMagick_1_1ReadOptions.html" title="Magick::ReadOptions" alt="" coords="5,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_120.png" border="0" alt="" usemap="#Magick_1_1reduceNoiseImage"/>
+<map name="Magick_1_1reduceNoiseImage" id="Magick_1_1reduceNoiseImage">
+<area shape="rect" id="node1" href="classMagick_1_1reduceNoiseImage.html" title="Magick::reduceNoiseImage" alt="" coords="6,5,183,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_121.png" border="0" alt="" usemap="#Magick_1_1renderingIntentImage"/>
+<map name="Magick_1_1renderingIntentImage" id="Magick_1_1renderingIntentImage">
+<area shape="rect" id="node1" href="classMagick_1_1renderingIntentImage.html" title="Magick::renderingIntentImage" alt="" coords="5,5,197,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_122.png" border="0" alt="" usemap="#Magick_1_1resizeImage"/>
+<map name="Magick_1_1resizeImage" id="Magick_1_1resizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1resizeImage.html" title="Magick::resizeImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_123.png" border="0" alt="" usemap="#Magick_1_1resolutionUnitsImage"/>
+<map name="Magick_1_1resolutionUnitsImage" id="Magick_1_1resolutionUnitsImage">
+<area shape="rect" id="node1" href="classMagick_1_1resolutionUnitsImage.html" title="Magick::resolutionUnitsImage" alt="" coords="6,5,197,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_124.png" border="0" alt="" usemap="#Magick_1_1ResourceLimits"/>
+<map name="Magick_1_1ResourceLimits" id="Magick_1_1ResourceLimits">
+<area shape="rect" id="node1" href="classMagick_1_1ResourceLimits.html" title="Magick::ResourceLimits" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_125.png" border="0" alt="" usemap="#Magick_1_1rollImage"/>
+<map name="Magick_1_1rollImage" id="Magick_1_1rollImage">
+<area shape="rect" id="node1" href="classMagick_1_1rollImage.html" title="Magick::rollImage" alt="" coords="5,5,128,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_126.png" border="0" alt="" usemap="#Magick_1_1rotateImage"/>
+<map name="Magick_1_1rotateImage" id="Magick_1_1rotateImage">
+<area shape="rect" id="node1" href="classMagick_1_1rotateImage.html" title="Magick::rotateImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_127.png" border="0" alt="" usemap="#Magick_1_1sampleImage"/>
+<map name="Magick_1_1sampleImage" id="Magick_1_1sampleImage">
+<area shape="rect" id="node1" href="classMagick_1_1sampleImage.html" title="Magick::sampleImage" alt="" coords="5,5,152,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_128.png" border="0" alt="" usemap="#Magick_1_1scaleImage"/>
+<map name="Magick_1_1scaleImage" id="Magick_1_1scaleImage">
+<area shape="rect" id="node1" href="classMagick_1_1scaleImage.html" title="Magick::scaleImage" alt="" coords="5,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_129.png" border="0" alt="" usemap="#Magick_1_1sceneImage"/>
+<map name="Magick_1_1sceneImage" id="Magick_1_1sceneImage">
+<area shape="rect" id="node1" href="classMagick_1_1sceneImage.html" title="Magick::sceneImage" alt="" coords="6,5,146,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_130.png" border="0" alt="" usemap="#Magick_1_1segmentImage"/>
+<map name="Magick_1_1segmentImage" id="Magick_1_1segmentImage">
+<area shape="rect" id="node1" href="classMagick_1_1segmentImage.html" title="Magick::segmentImage" alt="" coords="5,5,160,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_131.png" border="0" alt="" usemap="#Magick_1_1shadeImage"/>
+<map name="Magick_1_1shadeImage" id="Magick_1_1shadeImage">
+<area shape="rect" id="node1" href="classMagick_1_1shadeImage.html" title="Magick::shadeImage" alt="" coords="6,5,146,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_132.png" border="0" alt="" usemap="#Magick_1_1shadowImage"/>
+<map name="Magick_1_1shadowImage" id="Magick_1_1shadowImage">
+<area shape="rect" id="node1" href="classMagick_1_1shadowImage.html" title="Magick::shadowImage" alt="" coords="5,5,155,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_133.png" border="0" alt="" usemap="#Magick_1_1sharpenImage"/>
+<map name="Magick_1_1sharpenImage" id="Magick_1_1sharpenImage">
+<area shape="rect" id="node1" href="classMagick_1_1sharpenImage.html" title="Magick::sharpenImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_134.png" border="0" alt="" usemap="#Magick_1_1shaveImage"/>
+<map name="Magick_1_1shaveImage" id="Magick_1_1shaveImage">
+<area shape="rect" id="node1" href="classMagick_1_1shaveImage.html" title="Magick::shaveImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_135.png" border="0" alt="" usemap="#Magick_1_1shearImage"/>
+<map name="Magick_1_1shearImage" id="Magick_1_1shearImage">
+<area shape="rect" id="node1" href="classMagick_1_1shearImage.html" title="Magick::shearImage" alt="" coords="6,5,143,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_136.png" border="0" alt="" usemap="#Magick_1_1sigmoidalContrastImage"/>
+<map name="Magick_1_1sigmoidalContrastImage" id="Magick_1_1sigmoidalContrastImage">
+<area shape="rect" id="node1" href="classMagick_1_1sigmoidalContrastImage.html" title="Magick::sigmoidalContrast\lImage" alt="" coords="6,5,178,46"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_137.png" border="0" alt="" usemap="#Magick_1_1sizeImage"/>
+<map name="Magick_1_1sizeImage" id="Magick_1_1sizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1sizeImage.html" title="Magick::sizeImage" alt="" coords="5,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_138.png" border="0" alt="" usemap="#Magick_1_1solarizeImage"/>
+<map name="Magick_1_1solarizeImage" id="Magick_1_1solarizeImage">
+<area shape="rect" id="node1" href="classMagick_1_1solarizeImage.html" title="Magick::solarizeImage" alt="" coords="5,5,155,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_139.png" border="0" alt="" usemap="#Magick_1_1spliceImage"/>
+<map name="Magick_1_1spliceImage" id="Magick_1_1spliceImage">
+<area shape="rect" id="node1" href="classMagick_1_1spliceImage.html" title="Magick::spliceImage" alt="" coords="5,5,144,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_140.png" border="0" alt="" usemap="#Magick_1_1spreadImage"/>
+<map name="Magick_1_1spreadImage" id="Magick_1_1spreadImage">
+<area shape="rect" id="node1" href="classMagick_1_1spreadImage.html" title="Magick::spreadImage" alt="" coords="5,5,149,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_141.png" border="0" alt="" usemap="#Magick_1_1steganoImage"/>
+<map name="Magick_1_1steganoImage" id="Magick_1_1steganoImage">
+<area shape="rect" id="node1" href="classMagick_1_1steganoImage.html" title="Magick::steganoImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_142.png" border="0" alt="" usemap="#Magick_1_1stereoImage"/>
+<map name="Magick_1_1stereoImage" id="Magick_1_1stereoImage">
+<area shape="rect" id="node1" href="classMagick_1_1stereoImage.html" title="Magick::stereoImage" alt="" coords="5,5,147,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_143.png" border="0" alt="" usemap="#Magick_1_1stripImage"/>
+<map name="Magick_1_1stripImage" id="Magick_1_1stripImage">
+<area shape="rect" id="node1" href="classMagick_1_1stripImage.html" title="Magick::stripImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_144.png" border="0" alt="" usemap="#Magick_1_1strokeColorImage"/>
+<map name="Magick_1_1strokeColorImage" id="Magick_1_1strokeColorImage">
+<area shape="rect" id="node1" href="classMagick_1_1strokeColorImage.html" title="Magick::strokeColorImage" alt="" coords="5,5,176,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_145.png" border="0" alt="" usemap="#Magick_1_1subImageImage"/>
+<map name="Magick_1_1subImageImage" id="Magick_1_1subImageImage">
+<area shape="rect" id="node1" href="classMagick_1_1subImageImage.html" title="Magick::subImageImage" alt="" coords="5,5,168,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_146.png" border="0" alt="" usemap="#Magick_1_1subRangeImage"/>
+<map name="Magick_1_1subRangeImage" id="Magick_1_1subRangeImage">
+<area shape="rect" id="node1" href="classMagick_1_1subRangeImage.html" title="Magick::subRangeImage" alt="" coords="5,5,168,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_147.png" border="0" alt="" usemap="#Magick_1_1swirlImage"/>
+<map name="Magick_1_1swirlImage" id="Magick_1_1swirlImage">
+<area shape="rect" id="node1" href="classMagick_1_1swirlImage.html" title="Magick::swirlImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_148.png" border="0" alt="" usemap="#Magick_1_1textureImage"/>
+<map name="Magick_1_1textureImage" id="Magick_1_1textureImage">
+<area shape="rect" id="node1" href="classMagick_1_1textureImage.html" title="Magick::textureImage" alt="" coords="6,5,151,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_149.png" border="0" alt="" usemap="#Magick_1_1thresholdImage"/>
+<map name="Magick_1_1thresholdImage" id="Magick_1_1thresholdImage">
+<area shape="rect" id="node1" href="classMagick_1_1thresholdImage.html" title="Magick::thresholdImage" alt="" coords="6,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_150.png" border="0" alt="" usemap="#Magick_1_1tileNameImage"/>
+<map name="Magick_1_1tileNameImage" id="Magick_1_1tileNameImage">
+<area shape="rect" id="node1" href="classMagick_1_1tileNameImage.html" title="Magick::tileNameImage" alt="" coords="5,5,163,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_151.png" border="0" alt="" usemap="#Magick_1_1transformImage"/>
+<map name="Magick_1_1transformImage" id="Magick_1_1transformImage">
+<area shape="rect" id="node1" href="classMagick_1_1transformImage.html" title="Magick::transformImage" alt="" coords="5,5,165,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_152.png" border="0" alt="" usemap="#Magick_1_1transparentImage"/>
+<map name="Magick_1_1transparentImage" id="Magick_1_1transparentImage">
+<area shape="rect" id="node1" href="classMagick_1_1transparentImage.html" title="Magick::transparentImage" alt="" coords="5,5,176,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_153.png" border="0" alt="" usemap="#Magick_1_1trimImage"/>
+<map name="Magick_1_1trimImage" id="Magick_1_1trimImage">
+<area shape="rect" id="node1" href="classMagick_1_1trimImage.html" title="Magick::trimImage" alt="" coords="5,5,133,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_154.png" border="0" alt="" usemap="#Magick_1_1typeImage"/>
+<map name="Magick_1_1typeImage" id="Magick_1_1typeImage">
+<area shape="rect" id="node1" href="classMagick_1_1typeImage.html" title="Magick::typeImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_155.png" border="0" alt="" usemap="#Magick_1_1TypeMetric"/>
+<map name="Magick_1_1TypeMetric" id="Magick_1_1TypeMetric">
+<area shape="rect" id="node1" href="classMagick_1_1TypeMetric.html" title="Magick::TypeMetric" alt="" coords="6,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_156.png" border="0" alt="" usemap="#Magick_1_1verboseImage"/>
+<map name="Magick_1_1verboseImage" id="Magick_1_1verboseImage">
+<area shape="rect" id="node1" href="classMagick_1_1verboseImage.html" title="Magick::verboseImage" alt="" coords="6,5,157,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_157.png" border="0" alt="" usemap="#Magick_1_1viewImage"/>
+<map name="Magick_1_1viewImage" id="Magick_1_1viewImage">
+<area shape="rect" id="node1" href="classMagick_1_1viewImage.html" title="Magick::viewImage" alt="" coords="5,5,136,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_158.png" border="0" alt="" usemap="#Magick_1_1VPath"/>
+<map name="Magick_1_1VPath" id="Magick_1_1VPath">
+<area shape="rect" id="node1" href="classMagick_1_1VPath.html" title="Magick::VPath" alt="" coords="6,5,111,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_159.png" border="0" alt="" usemap="#Magick_1_1VPathBase"/>
+<map name="Magick_1_1VPathBase" id="Magick_1_1VPathBase">
+<area shape="rect" id="node1" href="classMagick_1_1VPathBase.html" title="Magick::VPathBase" alt="" coords="6,461,141,488"/><area shape="rect" id="node2" href="classMagick_1_1PathArcAbs.html" title="Magick::PathArcAbs" alt="" coords="229,5,368,32"/><area shape="rect" id="node3" href="classMagick_1_1PathArcRel.html" title="Magick::PathArcRel" alt="" coords="231,56,367,83"/><area shape="rect" id="node4" href="classMagick_1_1PathClosePath.html" title="Magick::PathClosePath" alt="" coords="221,107,377,133"/><area shape="rect" id="node5" href="classMagick_1_1PathCurvetoAbs.html" title="Magick::PathCurvetoAbs" alt="" coords="217,157,380,184"/><area shape="rect" id="node6" href="classMagick_1_1PathCurvetoRel.html" title="Magick::PathCurvetoRel" alt="" coords="219,208,379,235"/><area shape="rect" id="node7" href="classMagick_1_1PathLinetoAbs.html" title="Magick::PathLinetoAbs" alt="" coords="221,259,376,285"/><area shape="rect" id="node8" href="classMagick_1_1PathLinetoHorizontalAbs.html" title="Magick::PathLinetoHorizontalAbs" alt="" coords="193,309,404,336"/><area shape="rect" id="node9" href="classMagick_1_1PathLinetoHorizontalRel.html" title="Magick::PathLinetoHorizontalRel" alt="" coords="195,360,403,387"/><area shape="rect" id="node10" href="classMagick_1_1PathLinetoRel.html" title="Magick::PathLinetoRel" alt="" coords="223,411,374,437"/><area shape="rect" id="node11" href="classMagick_1_1PathLinetoVerticalAbs.html" title="Magick::PathLinetoVerticalAbs" alt="" coords="200,461,397,488"/><area shape="rect" id="node12" href="classMagick_1_1PathLinetoVerticalRel.html" title="Magick::PathLinetoVerticalRel" alt="" coords="201,512,396,539"/><area shape="rect" id="node13" href="classMagick_1_1PathMovetoAbs.html" title="Magick::PathMovetoAbs" alt="" coords="218,563,379,589"/><area shape="rect" id="node14" href="classMagick_1_1PathMovetoRel.html" title="Magick::PathMovetoRel" alt="" coords="219,613,378,640"/><area shape="rect" id="node15" href="classMagick_1_1PathQuadraticCurvetoAbs.html" title="Magick::PathQuadraticCurvetoAbs" alt="" coords="189,664,408,691"/><area shape="rect" id="node16" href="classMagick_1_1PathQuadraticCurvetoRel.html" title="Magick::PathQuadraticCurvetoRel" alt="" coords="191,715,407,741"/><area shape="rect" id="node17" href="classMagick_1_1PathSmoothCurvetoAbs.html" title="Magick::PathSmoothCurvetoAbs" alt="" coords="195,765,403,792"/><area shape="rect" id="node18" href="classMagick_1_1PathSmoothCurvetoRel.html" title="Magick::PathSmoothCurvetoRel" alt="" coords="196,816,401,843"/><area shape="rect" id="node19" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html" title="Magick::PathSmoothQuadratic\lCurvetoAbs" alt="" coords="199,867,398,909"/><area shape="rect" id="node20" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html" title="Magick::PathSmoothQuadratic\lCurvetoRel" alt="" coords="199,933,398,974"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_160.png" border="0" alt="" usemap="#Magick_1_1waveImage"/>
+<map name="Magick_1_1waveImage" id="Magick_1_1waveImage">
+<area shape="rect" id="node1" href="classMagick_1_1waveImage.html" title="Magick::waveImage" alt="" coords="6,5,141,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_161.png" border="0" alt="" usemap="#Magick_1_1x11DisplayImage"/>
+<map name="Magick_1_1x11DisplayImage" id="Magick_1_1x11DisplayImage">
+<area shape="rect" id="node1" href="classMagick_1_1x11DisplayImage.html" title="Magick::x11DisplayImage" alt="" coords="6,5,173,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_162.png" border="0" alt="" usemap="#Magick_1_1zoomImage"/>
+<map name="Magick_1_1zoomImage" id="Magick_1_1zoomImage">
+<area shape="rect" id="node1" href="classMagick_1_1zoomImage.html" title="Magick::zoomImage" alt="" coords="6,5,143,32"/></map>
+</td></tr>
 </table>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -233,7 +717,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/namespaceMagick.html b/www/api/Magick++/namespaceMagick.html
index a69e258..b91fbb9 100644
--- a/www/api/Magick++/namespaceMagick.html
+++ b/www/api/Magick++/namespaceMagick.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Magick Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('namespaceMagick.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -68,135 +62,51 @@
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
 Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adaptiveBlurImage.html">adaptiveBlurImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adaptiveThresholdImage.html">adaptiveThresholdImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1addNoiseImage.html">addNoiseImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adjoinImage.html">adjoinImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1affineTransformImage.html">affineTransformImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1alphaFlagImage.html">alphaFlagImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1alphaImage.html">alphaImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1animationDelayImage.html">animationDelayImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1animationIterationsImage.html">animationIterationsImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1annotateImage.html">annotateImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1backgroundColorImage.html">backgroundColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1backgroundTextureImage.html">backgroundTextureImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Blob.html">Blob</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1BlobRef.html">BlobRef</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1blurImage.html">blurImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1borderColorImage.html">borderColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1borderImage.html">borderImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1boxColorImage.html">boxColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cdlImage.html">cdlImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1channelImage.html">channelImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ChannelMoments.html">ChannelMoments</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ChannelPerceptualHash.html">ChannelPerceptualHash</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ChannelStatistics.html">ChannelStatistics</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1charcoalImage.html">charcoalImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chopImage.html">chopImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html">chromaBluePrimaryImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html">chromaGreenPrimaryImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html">chromaRedPrimaryImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaWhitePointImage.html">chromaWhitePointImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImageMoments.html">ImageMoments</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1CoderInfo.html">CoderInfo</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Color.html">Color</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorCMYK.html">ColorCMYK</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorFuzzImage.html">colorFuzzImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorGray.html">ColorGray</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorHSL.html">ColorHSL</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorizeImage.html">colorizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorMapImage.html">colorMapImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorMatrixImage.html">colorMatrixImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorMono.html">ColorMono</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorRGB.html">ColorRGB</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorSpaceImage.html">colorSpaceImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ColorYUV.html">ColorYUV</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1commentImage.html">commentImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1composeImage.html">composeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1compositeImage.html">compositeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1compressTypeImage.html">compressTypeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1contrastImage.html">contrastImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cropImage.html">cropImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cycleColormapImage.html">cycleColormapImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1densityImage.html">densityImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1depthImage.html">depthImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1despeckleImage.html">despeckleImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1distortImage.html">distortImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableBase.html">DrawableBase</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Drawable.html">Drawable</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableAffine.html">DrawableAffine</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1VPathBase.html">VPathBase</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableAlpha.html">DrawableAlpha</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1VPath.html">VPath</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableAffine.html">DrawableAffine</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableArc.html">DrawableArc</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableBase.html">DrawableBase</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableBezier.html">DrawableBezier</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableBorderColor.html">DrawableBorderColor</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePopClipPath.html">DrawablePopClipPath</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableCircle.html">DrawableCircle</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePushClipPath.html">DrawablePushClipPath</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableClipPath.html">DrawableClipPath</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableClipRule.html">DrawableClipRule</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableClipUnits.html">DrawableClipUnits</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableCircle.html">DrawableCircle</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableColor.html">DrawableColor</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -208,19 +118,17 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFillColor.html">DrawableFillColor</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFillOpacity.html">DrawableFillOpacity</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFillPatternUrl.html">DrawableFillPatternUrl</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFillRule.html">DrawableFillRule</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFillOpacity.html">DrawableFillOpacity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableFont.html">DrawableFont</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableGravity.html">DrawableGravity</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableLine.html">DrawableLine</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableMiterLimit.html">DrawableMiterLimit</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableMatte.html">DrawableMatte</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePath.html">DrawablePath</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -232,16 +140,12 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePolyline.html">DrawablePolyline</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePopClipPath.html">DrawablePopClipPath</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePopGraphicContext.html">DrawablePopGraphicContext</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePopPattern.html">DrawablePopPattern</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePushClipPath.html">DrawablePushClipPath</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePushGraphicContext.html">DrawablePushGraphicContext</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePopPattern.html">DrawablePopPattern</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawablePushPattern.html">DrawablePushPattern</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableRectangle.html">DrawableRectangle</a></td></tr>
@@ -256,28 +160,26 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableSkewY.html">DrawableSkewY</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html">DrawableStrokeAntialias</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableDashArray.html">DrawableDashArray</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeColor.html">DrawableStrokeColor</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeDashArray.html">DrawableStrokeDashArray</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeDashOffset.html">DrawableStrokeDashOffset</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableDashOffset.html">DrawableDashOffset</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeLineCap.html">DrawableStrokeLineCap</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeLineJoin.html">DrawableStrokeLineJoin</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html">DrawableStrokeOpacity</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableMiterLimit.html">DrawableMiterLimit</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokePatternUrl.html">DrawableStrokePatternUrl</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeAntialias.html">DrawableStrokeAntialias</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeColor.html">DrawableStrokeColor</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeOpacity.html">DrawableStrokeOpacity</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableStrokeWidth.html">DrawableStrokeWidth</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableText.html">DrawableText</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableTextAlignment.html">DrawableTextAlignment</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableTextAntialias.html">DrawableTextAntialias</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableTextDecoration.html">DrawableTextDecoration</a></td></tr>
@@ -296,17 +198,51 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1DrawableViewbox.html">DrawableViewbox</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1drawImage.html">drawImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1edgeImage.html">edgeImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcAbs.html">PathArcAbs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1embossImage.html">embossImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcRel.html">PathArcRel</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1endianImage.html">endianImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathClosePath.html">PathClosePath</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1enhanceImage.html">enhanceImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1equalizeImage.html">equalizeImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoAbs.html">PathCurvetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoRel.html">PathCurvetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html">PathSmoothCurvetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html">PathSmoothCurvetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html">PathQuadraticCurvetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html">PathQuadraticCurvetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html">PathSmoothQuadraticCurvetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html">PathSmoothQuadraticCurvetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoAbs.html">PathLinetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoRel.html">PathLinetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html">PathLinetoHorizontalAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html">PathLinetoHorizontalRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html">PathLinetoVerticalAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html">PathLinetoVerticalRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathMovetoAbs.html">PathMovetoAbs</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathMovetoRel.html">PathMovetoRel</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Exception.html">Exception</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Error.html">Error</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -350,250 +286,6 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ErrorXServer.html">ErrorXServer</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Exception.html">Exception</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fileNameImage.html">fileNameImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fillColorImage.html">fillColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1filterTypeImage.html">filterTypeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1flipImage.html">flipImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1floodFillAlphaImage.html">floodFillAlphaImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1floodFillColorImage.html">floodFillColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1floodFillTextureImage.html">floodFillTextureImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1flopImage.html">flopImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fontImage.html">fontImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fontPointsizeImage.html">fontPointsizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1frameImage.html">frameImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gammaImage.html">gammaImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gaussianBlurImage.html">gaussianBlurImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Geometry.html">Geometry</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gifDisposeMethodImage.html">gifDisposeMethodImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1haldClutImage.html">haldClutImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Image.html">Image</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImageMoments.html">ImageMoments</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImagePerceptualHash.html">ImagePerceptualHash</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImageRef.html">ImageRef</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImageStatistics.html">ImageStatistics</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1implodeImage.html">implodeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1interlaceTypeImage.html">interlaceTypeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1inverseFourierTransformImage.html">inverseFourierTransformImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1isValidImage.html">isValidImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1labelImage.html">labelImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1levelImage.html">levelImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1magickImage.html">magickImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1magnifyImage.html">magnifyImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1mapImage.html">mapImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1matteColorImage.html">matteColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1medianConvolveImage.html">medianConvolveImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1mergeLayersImage.html">mergeLayersImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1minifyImage.html">minifyImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1modulateImage.html">modulateImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1monochromeImage.html">monochromeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Montage.html">Montage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1MontageFramed.html">MontageFramed</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1MutexLock.html">MutexLock</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1negateImage.html">negateImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1normalizeImage.html">normalizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Offset.html">Offset</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1oilPaintImage.html">oilPaintImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1opaqueImage.html">opaqueImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Options.html">Options</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1pageImage.html">pageImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcAbs.html">PathArcAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathArcRel.html">PathArcRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathClosePath.html">PathClosePath</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoAbs.html">PathCurvetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathCurvetoRel.html">PathCurvetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoAbs.html">PathLinetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoHorizontalAbs.html">PathLinetoHorizontalAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoHorizontalRel.html">PathLinetoHorizontalRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoRel.html">PathLinetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoVerticalAbs.html">PathLinetoVerticalAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathLinetoVerticalRel.html">PathLinetoVerticalRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathMovetoAbs.html">PathMovetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathMovetoRel.html">PathMovetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoAbs.html">PathQuadraticCurvetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathQuadraticCurvetoRel.html">PathQuadraticCurvetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothCurvetoAbs.html">PathSmoothCurvetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothCurvetoRel.html">PathSmoothCurvetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoAbs.html">PathSmoothQuadraticCurvetoAbs</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PathSmoothQuadraticCurvetoRel.html">PathSmoothQuadraticCurvetoRel</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1penColorImage.html">penColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1penTextureImage.html">penTextureImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1pixelColorImage.html">pixelColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PixelData.html">PixelData</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Pixels.html">Pixels</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Point.html">Point</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1qualityImage.html">qualityImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeColorsImage.html">quantizeColorsImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html">quantizeColorSpaceImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeDitherImage.html">quantizeDitherImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeImage.html">quantizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html">quantizeTreeDepthImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1raiseImage.html">raiseImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1reduceNoiseImage.html">reduceNoiseImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1renderingIntentImage.html">renderingIntentImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1resizeImage.html">resizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1resolutionUnitsImage.html">resolutionUnitsImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ResourceLimits.html">ResourceLimits</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1rollImage.html">rollImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1rotateImage.html">rotateImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sampleImage.html">sampleImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1scaleImage.html">scaleImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sceneImage.html">sceneImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1SecurityPolicy.html">SecurityPolicy</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1segmentImage.html">segmentImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shadeImage.html">shadeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shadowImage.html">shadowImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sharpenImage.html">sharpenImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shaveImage.html">shaveImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shearImage.html">shearImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sigmoidalContrastImage.html">sigmoidalContrastImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sizeImage.html">sizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1solarizeImage.html">solarizeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1spliceImage.html">spliceImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1spreadImage.html">spreadImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1steganoImage.html">steganoImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1stereoImage.html">stereoImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1stripImage.html">stripImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1strokeColorImage.html">strokeColorImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1subImageImage.html">subImageImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1subRangeImage.html">subRangeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1swirlImage.html">swirlImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1textAntiAliasImage.html">textAntiAliasImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1textureImage.html">textureImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1thresholdImage.html">thresholdImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1transparentImage.html">transparentImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1trimImage.html">trimImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1typeImage.html">typeImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1TypeMetric.html">TypeMetric</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1verboseImage.html">verboseImage</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1VPath.html">VPath</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1VPathBase.html">VPathBase</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Warning.html">Warning</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1WarningBlob.html">WarningBlob</a></td></tr>
@@ -636,27 +328,320 @@
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1WarningXServer.html">WarningXServer</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Geometry.html">Geometry</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Offset.html">Offset</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Image.html">Image</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ImageRef.html">ImageRef</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Montage.html">Montage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1MontageFramed.html">MontageFramed</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Options.html">Options</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Pixels.html">Pixels</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1PixelData.html">PixelData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ResourceLimits.html">ResourceLimits</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adaptiveBlurImage.html">adaptiveBlurImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adaptiveThresholdImage.html">adaptiveThresholdImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1addNoiseImage.html">addNoiseImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1affineTransformImage.html">affineTransformImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1annotateImage.html">annotateImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1blurImage.html">blurImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1borderImage.html">borderImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1channelImage.html">channelImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1charcoalImage.html">charcoalImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chopImage.html">chopImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cdlImage.html">cdlImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorizeImage.html">colorizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorMatrixImage.html">colorMatrixImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorSpaceImage.html">colorSpaceImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1commentImage.html">commentImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1compositeImage.html">compositeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1contrastImage.html">contrastImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cropImage.html">cropImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1cycleColormapImage.html">cycleColormapImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1despeckleImage.html">despeckleImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1distortImage.html">distortImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1drawImage.html">drawImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1edgeImage.html">edgeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1embossImage.html">embossImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1enhanceImage.html">enhanceImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1equalizeImage.html">equalizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fillColorImage.html">fillColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1flipImage.html">flipImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1floodFillColorImage.html">floodFillColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1floodFillTextureImage.html">floodFillTextureImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1flopImage.html">flopImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1frameImage.html">frameImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gammaImage.html">gammaImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gaussianBlurImage.html">gaussianBlurImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1haldClutImage.html">haldClutImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1implodeImage.html">implodeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1inverseFourierTransformImage.html">inverseFourierTransformImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1isValidImage.html">isValidImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1labelImage.html">labelImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1levelImage.html">levelImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1levelChannelImage.html">levelChannelImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1magnifyImage.html">magnifyImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1mapImage.html">mapImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1matteFloodfillImage.html">matteFloodfillImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1medianFilterImage.html">medianFilterImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1mergeLayersImage.html">mergeLayersImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1minifyImage.html">minifyImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1modulateImage.html">modulateImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1negateImage.html">negateImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1normalizeImage.html">normalizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1oilPaintImage.html">oilPaintImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1opacityImage.html">opacityImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1opaqueImage.html">opaqueImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeImage.html">quantizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1raiseImage.html">raiseImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1reduceNoiseImage.html">reduceNoiseImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1resizeImage.html">resizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1rollImage.html">rollImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1rotateImage.html">rotateImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sampleImage.html">sampleImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1scaleImage.html">scaleImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1segmentImage.html">segmentImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shadeImage.html">shadeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shadowImage.html">shadowImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sharpenImage.html">sharpenImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shaveImage.html">shaveImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1shearImage.html">shearImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1solarizeImage.html">solarizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1spliceImage.html">spliceImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1spreadImage.html">spreadImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1steganoImage.html">steganoImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1stereoImage.html">stereoImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1strokeColorImage.html">strokeColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1swirlImage.html">swirlImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1textureImage.html">textureImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1thresholdImage.html">thresholdImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1transformImage.html">transformImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1transparentImage.html">transparentImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1trimImage.html">trimImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1waveImage.html">waveImage</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1zoomImage.html">zoomImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1antiAliasImage.html">antiAliasImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1adjoinImage.html">adjoinImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1animationDelayImage.html">animationDelayImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1animationIterationsImage.html">animationIterationsImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1backgroundColorImage.html">backgroundColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1backgroundTextureImage.html">backgroundTextureImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1borderColorImage.html">borderColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1boxColorImage.html">boxColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaBluePrimaryImage.html">chromaBluePrimaryImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaGreenPrimaryImage.html">chromaGreenPrimaryImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaRedPrimaryImage.html">chromaRedPrimaryImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1chromaWhitePointImage.html">chromaWhitePointImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorFuzzImage.html">colorFuzzImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1colorMapImage.html">colorMapImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1composeImage.html">composeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1compressTypeImage.html">compressTypeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1densityImage.html">densityImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1depthImage.html">depthImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1endianImage.html">endianImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fileNameImage.html">fileNameImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1filterTypeImage.html">filterTypeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fontImage.html">fontImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1fontPointsizeImage.html">fontPointsizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1gifDisposeMethodImage.html">gifDisposeMethodImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1interlaceTypeImage.html">interlaceTypeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1lineWidthImage.html">lineWidthImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1magickImage.html">magickImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1matteImage.html">matteImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1matteColorImage.html">matteColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1monochromeImage.html">monochromeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1penColorImage.html">penColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1penTextureImage.html">penTextureImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1pixelColorImage.html">pixelColorImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1pageImage.html">pageImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1qualityImage.html">qualityImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeColorsImage.html">quantizeColorsImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeColorSpaceImage.html">quantizeColorSpaceImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeDitherImage.html">quantizeDitherImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1quantizeTreeDepthImage.html">quantizeTreeDepthImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1renderingIntentImage.html">renderingIntentImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1resolutionUnitsImage.html">resolutionUnitsImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sceneImage.html">sceneImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sigmoidalContrastImage.html">sigmoidalContrastImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1sizeImage.html">sizeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1stripImage.html">stripImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1subImageImage.html">subImageImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1subRangeImage.html">subRangeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1tileNameImage.html">tileNameImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1typeImage.html">typeImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1verboseImage.html">verboseImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1viewImage.html">viewImage</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1x11DisplayImage.html">x11DisplayImage</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1zoomImage.html">zoomImage</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1MutexLock.html">MutexLock</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1Lock.html">Lock</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMagick_1_1TypeMetric.html">TypeMetric</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:a68cadc31d8829341d1faba35618af7b1"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1Coordinate.html">Magick::Coordinate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a68cadc31d8829341d1faba35618af7b1">CoordinateList</a></td></tr>
-<tr class="separator:a68cadc31d8829341d1faba35618af7b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a276bd0424953aa7c0499f84a05d91918"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1Drawable.html">Magick::Drawable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a276bd0424953aa7c0499f84a05d91918">DrawableList</a></td></tr>
-<tr class="separator:a276bd0424953aa7c0499f84a05d91918"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2315b94c36be63d8caae300274cd94f1"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1VPath.html">Magick::VPath</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2315b94c36be63d8caae300274cd94f1">VPathList</a></td></tr>
-<tr class="separator:a2315b94c36be63d8caae300274cd94f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a40749dfdc7f056fa5aee9b6d344fbaf5"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1PathArcArgs.html">Magick::PathArcArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a40749dfdc7f056fa5aee9b6d344fbaf5">PathArcArgsList</a></td></tr>
-<tr class="separator:a40749dfdc7f056fa5aee9b6d344fbaf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a297641e20272f1c24e5677c16ee7b00e"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1PathCurvetoArgs.html">Magick::PathCurvetoArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a297641e20272f1c24e5677c16ee7b00e">PathCurveToArgsList</a></td></tr>
-<tr class="separator:a297641e20272f1c24e5677c16ee7b00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aab20fd385fcad8bf38d8e04752f2ef38"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">Magick::PathQuadraticCurvetoArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aab20fd385fcad8bf38d8e04752f2ef38">PathQuadraticCurvetoArgsList</a></td></tr>
-<tr class="separator:aab20fd385fcad8bf38d8e04752f2ef38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad25a1de5284a65c707091652ab4a8890"><td class="memItemLeft" align="right" valign="top">typedef std::list<br class="typebreak"/>
+&lt; <a class="el" href="classMagick_1_1Coordinate.html">Magick::Coordinate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ad25a1de5284a65c707091652ab4a8890">CoordinateList</a></td></tr>
+<tr class="separator:ad25a1de5284a65c707091652ab4a8890"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9324c6bef2f2c6f3b1ec4697a3932c1a"><td class="memItemLeft" align="right" valign="top">typedef std::list<br class="typebreak"/>
+&lt; <a class="el" href="classMagick_1_1Drawable.html">Magick::Drawable</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9324c6bef2f2c6f3b1ec4697a3932c1a">DrawableList</a></td></tr>
+<tr class="separator:a9324c6bef2f2c6f3b1ec4697a3932c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1fbe7aba872d47fc7a33929a3f20e29"><td class="memItemLeft" align="right" valign="top">typedef std::list&lt; <a class="el" href="classMagick_1_1VPath.html">Magick::VPath</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#af1fbe7aba872d47fc7a33929a3f20e29">VPathList</a></td></tr>
+<tr class="separator:af1fbe7aba872d47fc7a33929a3f20e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc6967df9561c7a5dbc64e4cf616fff2"><td class="memItemLeft" align="right" valign="top">typedef std::list<br class="typebreak"/>
+&lt; <a class="el" href="classMagick_1_1PathArcArgs.html">Magick::PathArcArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#afc6967df9561c7a5dbc64e4cf616fff2">PathArcArgsList</a></td></tr>
+<tr class="separator:afc6967df9561c7a5dbc64e4cf616fff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abef478b25a92921fecf769ed1bd73b2c"><td class="memItemLeft" align="right" valign="top">typedef std::list<br class="typebreak"/>
+&lt; <a class="el" href="classMagick_1_1PathCurvetoArgs.html">Magick::PathCurvetoArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#abef478b25a92921fecf769ed1bd73b2c">PathCurveToArgsList</a></td></tr>
+<tr class="separator:abef478b25a92921fecf769ed1bd73b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd21029343e4fb680e2c975111be3b3b"><td class="memItemLeft" align="right" valign="top">typedef std::list<br class="typebreak"/>
+&lt; <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">Magick::PathQuadraticCurvetoArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#abd21029343e4fb680e2c975111be3b3b">PathQuadraticCurvetoArgsList</a></td></tr>
+<tr class="separator:abd21029343e4fb680e2c975111be3b3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
 Functions</h2></td></tr>
@@ -684,6 +669,30 @@
 <tr class="separator:a97da8fcdb4b4bd6ca8c873c1f69d7ec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a43c9fe3c8b720ad9d64c60a0a041b1c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a43c9fe3c8b720ad9d64c60a0a041b1c6">operator&lt;=</a> (const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;left_, const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;right_)</td></tr>
 <tr class="separator:a43c9fe3c8b720ad9d64c60a0a041b1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa132fef5f3b4ac1751979a37fe0f321"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#afa132fef5f3b4ac1751979a37fe0f321">operator==</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:afa132fef5f3b4ac1751979a37fe0f321"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60d0a8da4bebf60b0c0c3ef27e5bb533"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a60d0a8da4bebf60b0c0c3ef27e5bb533">operator!=</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:a60d0a8da4bebf60b0c0c3ef27e5bb533"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa235f9e1cd51e8e3671c4ab9976347e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aa235f9e1cd51e8e3671c4ab9976347e5">operator&gt;</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:aa235f9e1cd51e8e3671c4ab9976347e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f66d346e9c40a38232d2e39e23e764e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a5f66d346e9c40a38232d2e39e23e764e">operator&lt;</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:a5f66d346e9c40a38232d2e39e23e764e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9664d4dad94390af609c325949d6c77b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9664d4dad94390af609c325949d6c77b">operator&gt;=</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:a9664d4dad94390af609c325949d6c77b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae563f3acefede0f9e8d6f91d50627e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aae563f3acefede0f9e8d6f91d50627e1">operator&lt;=</a> (const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;left_, const <a class="el" href="classMagick_1_1Drawable.html">Drawable</a> &amp;right_)</td></tr>
+<tr class="separator:aae563f3acefede0f9e8d6f91d50627e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac2c97a2c68eaa34ebe563bb39dfaa99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aac2c97a2c68eaa34ebe563bb39dfaa99">operator==</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:aac2c97a2c68eaa34ebe563bb39dfaa99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a779fd757475b3c0d074d7ed5034eb06c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a779fd757475b3c0d074d7ed5034eb06c">operator!=</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:a779fd757475b3c0d074d7ed5034eb06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02502793ae4007ee305ea056b444dc02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a02502793ae4007ee305ea056b444dc02">operator&gt;</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:a02502793ae4007ee305ea056b444dc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a7ba4304a34f3d1be4bf72236bb60e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a07a7ba4304a34f3d1be4bf72236bb60e">operator&lt;</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:a07a7ba4304a34f3d1be4bf72236bb60e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6cdebe6ac046142c537a7c1af35d5e83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a6cdebe6ac046142c537a7c1af35d5e83">operator&gt;=</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:a6cdebe6ac046142c537a7c1af35d5e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f2ff86d75ede3b098791b78da179889"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a4f2ff86d75ede3b098791b78da179889">operator&lt;=</a> (const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;left_, const <a class="el" href="classMagick_1_1VPath.html">VPath</a> &amp;right_)</td></tr>
+<tr class="separator:a4f2ff86d75ede3b098791b78da179889"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ace191331abd936292ce01ad776cda5f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ace191331abd936292ce01ad776cda5f9">operator==</a> (const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;left_, const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;right_)</td></tr>
 <tr class="separator:ace191331abd936292ce01ad776cda5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a2fd231d4d66954680135ccabdc4b551d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2fd231d4d66954680135ccabdc4b551d">operator!=</a> (const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;left_, const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;right_)</td></tr>
@@ -732,14 +741,12 @@
 <tr class="separator:a7c22815e81dd2dcc911a3d83986fb343"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a619d5f55f1f0971b2e0d72e8bed0051a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a619d5f55f1f0971b2e0d72e8bed0051a">DisableOpenCL</a> (void)</td></tr>
 <tr class="separator:a619d5f55f1f0971b2e0d72e8bed0051a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a60f25d23a489a4287fb658b922a2a4a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a60f25d23a489a4287fb658b922a2a4a5">EnableOpenCL</a> (void)</td></tr>
-<tr class="separator:a60f25d23a489a4287fb658b922a2a4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8db47cc183547a1f5a1c6b5a5a81871f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a8db47cc183547a1f5a1c6b5a5a81871f">EnableOpenCL</a> (const bool useCache_=true)</td></tr>
+<tr class="separator:a8db47cc183547a1f5a1c6b5a5a81871f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae9a4f92303d2fc6074f91181db864be1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ae9a4f92303d2fc6074f91181db864be1">InitializeMagick</a> (const char *path_)</td></tr>
 <tr class="separator:ae9a4f92303d2fc6074f91181db864be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a8df77532f69bfc1138f62e202111bc71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a8df77532f69bfc1138f62e202111bc71">SetRandomSeed</a> (const unsigned long seed)</td></tr>
 <tr class="separator:a8df77532f69bfc1138f62e202111bc71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9fa651529716cf6d7e4a8e5a18d1bdd5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9fa651529716cf6d7e4a8e5a18d1bdd5">SetSecurityPolicy</a> (const std::string &amp;policy_)</td></tr>
-<tr class="separator:a9fa651529716cf6d7e4a8e5a18d1bdd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ab2ba5f1b607df720ab1f562e2d232980"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ab2ba5f1b607df720ab1f562e2d232980">TerminateMagick</a> ()</td></tr>
 <tr class="separator:ab2ba5f1b607df720ab1f562e2d232980"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa5d769d2336c366d396b6a790ad85745"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aa5d769d2336c366d396b6a790ad85745">operator==</a> (const <a class="el" href="classMagick_1_1Geometry.html">Magick::Geometry</a> &amp;left_, const <a class="el" href="classMagick_1_1Geometry.html">Magick::Geometry</a> &amp;right_)</td></tr>
@@ -758,10 +765,6 @@
 <tr class="separator:a5b911d154f1b86aab8f82cc3cdff3f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae25f7dd29750ae670cc6e762bc742623"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ae25f7dd29750ae670cc6e762bc742623">operator!=</a> (const <a class="el" href="classMagick_1_1Offset.html">Magick::Offset</a> &amp;left_, const <a class="el" href="classMagick_1_1Offset.html">Magick::Offset</a> &amp;right_)</td></tr>
 <tr class="separator:ae25f7dd29750ae670cc6e762bc742623"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66c961e340d5302d48c950fea4e16f54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a66c961e340d5302d48c950fea4e16f54">operator==</a> (const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;left_, const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;right_)</td></tr>
-<tr class="separator:a66c961e340d5302d48c950fea4e16f54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2b3e512059f7d55f053fdef294362beb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2b3e512059f7d55f053fdef294362beb">operator!=</a> (const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;left_, const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;right_)</td></tr>
-<tr class="separator:a2b3e512059f7d55f053fdef294362beb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6b69c8f4da1fe79508d04f3768997a85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a6b69c8f4da1fe79508d04f3768997a85">operator==</a> (const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;left_, const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;right_)</td></tr>
 <tr class="separator:a6b69c8f4da1fe79508d04f3768997a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:adac06da2d36756b736383a4ad1193650"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#adac06da2d36756b736383a4ad1193650">operator!=</a> (const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;left_, const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;right_)</td></tr>
@@ -774,21 +777,15 @@
 <tr class="separator:a68a7ad53dcb7303349b2b812a180698f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9de28a29d12f49e7216e38b73ef4733a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9de28a29d12f49e7216e38b73ef4733a">operator&lt;=</a> (const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;left_, const <a class="el" href="classMagick_1_1Image.html">Magick::Image</a> &amp;right_)</td></tr>
 <tr class="separator:a9de28a29d12f49e7216e38b73ef4733a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae6d1d85502b46b1d71a2cfe768d85c23"><td class="memTemplParams" colspan="2">template&lt;class InputIterator , class Container &gt; </td></tr>
-<tr class="memitem:ae6d1d85502b46b1d71a2cfe768d85c23"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ae6d1d85502b46b1d71a2cfe768d85c23">channelMaskImages</a> (InputIterator first_, InputIterator last_, Container *container_, const ChannelType channel_)</td></tr>
-<tr class="separator:ae6d1d85502b46b1d71a2cfe768d85c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2b0247538229a8bdd8e4f0adc3215702"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:a2b0247538229a8bdd8e4f0adc3215702"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2b0247538229a8bdd8e4f0adc3215702">insertImages</a> (Container *sequence_, MagickCore::Image *images_)</td></tr>
-<tr class="separator:a2b0247538229a8bdd8e4f0adc3215702"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a7a43dbf4aafe85d75e55d634e42dc79e"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:a7a43dbf4aafe85d75e55d634e42dc79e"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a7a43dbf4aafe85d75e55d634e42dc79e">linkImages</a> (InputIterator first_, InputIterator last_)</td></tr>
 <tr class="separator:a7a43dbf4aafe85d75e55d634e42dc79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a85bef917f95cc15eb4ada1426dc6f9a2"><td class="memTemplParams" colspan="2">template&lt;class InputIterator , class Container &gt; </td></tr>
-<tr class="memitem:a85bef917f95cc15eb4ada1426dc6f9a2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a85bef917f95cc15eb4ada1426dc6f9a2">restoreChannelMaskImages</a> (InputIterator first_, InputIterator last_, Container *container_)</td></tr>
-<tr class="separator:a85bef917f95cc15eb4ada1426dc6f9a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac47606010574520166cc42f207e26043"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:ac47606010574520166cc42f207e26043"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ac47606010574520166cc42f207e26043">unlinkImages</a> (InputIterator first_, InputIterator last_)</td></tr>
 <tr class="separator:ac47606010574520166cc42f207e26043"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b0247538229a8bdd8e4f0adc3215702"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
+<tr class="memitem:a2b0247538229a8bdd8e4f0adc3215702"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2b0247538229a8bdd8e4f0adc3215702">insertImages</a> (Container *sequence_, MagickCore::Image *images_)</td></tr>
+<tr class="separator:a2b0247538229a8bdd8e4f0adc3215702"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9ca40d51373df1cd97fd566758f2a2e3"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:a9ca40d51373df1cd97fd566758f2a2e3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9ca40d51373df1cd97fd566758f2a2e3">animateImages</a> (InputIterator first_, InputIterator last_)</td></tr>
 <tr class="separator:a9ca40d51373df1cd97fd566758f2a2e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -813,9 +810,9 @@
 <tr class="memitem:a182ce19ab46b91d24e49c586668ea419"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
 <tr class="memitem:a182ce19ab46b91d24e49c586668ea419"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a182ce19ab46b91d24e49c586668ea419">colorHistogram</a> (Container *histogram_, const <a class="el" href="classMagick_1_1Image.html">Image</a> image)</td></tr>
 <tr class="separator:a182ce19ab46b91d24e49c586668ea419"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a683fc2d2921aa0b16e7d9d4c00cdf1b8"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
-<tr class="memitem:a683fc2d2921aa0b16e7d9d4c00cdf1b8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a683fc2d2921aa0b16e7d9d4c00cdf1b8">combineImages</a> (<a class="el" href="classMagick_1_1Image.html">Image</a> *combinedImage_, InputIterator first_, InputIterator last_, const ChannelType channel_, const ColorspaceType colorspace_)</td></tr>
-<tr class="separator:a683fc2d2921aa0b16e7d9d4c00cdf1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90036200730f4dee3aa1a9ac77dff0c1"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
+<tr class="memitem:a90036200730f4dee3aa1a9ac77dff0c1"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a90036200730f4dee3aa1a9ac77dff0c1">combineImages</a> (<a class="el" href="classMagick_1_1Image.html">Image</a> *combinedImage_, InputIterator first_, InputIterator last_, const ChannelType channel_)</td></tr>
+<tr class="separator:a90036200730f4dee3aa1a9ac77dff0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a4f5cf3b3fbf237b5fc2b06218348d876"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
 <tr class="memitem:a4f5cf3b3fbf237b5fc2b06218348d876"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a4f5cf3b3fbf237b5fc2b06218348d876">cropToTiles</a> (Container *tiledImages_, const <a class="el" href="classMagick_1_1Image.html">Image</a> image_, const <a class="el" href="classMagick_1_1Geometry.html">Geometry</a> &amp;geometry_)</td></tr>
 <tr class="separator:a4f5cf3b3fbf237b5fc2b06218348d876"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -843,9 +840,9 @@
 <tr class="memitem:abeff1d421ce2999145680472593168c0"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:abeff1d421ce2999145680472593168c0"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#abeff1d421ce2999145680472593168c0">mapImages</a> (InputIterator first_, InputIterator last_, const <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;mapImage_, bool dither_=false, bool measureError_=false)</td></tr>
 <tr class="separator:abeff1d421ce2999145680472593168c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3b31af689cd1e2cae3cc60f55d46b3a7"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
-<tr class="memitem:a3b31af689cd1e2cae3cc60f55d46b3a7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a3b31af689cd1e2cae3cc60f55d46b3a7">mergeImageLayers</a> (<a class="el" href="classMagick_1_1Image.html">Image</a> *mergedImage_, InputIterator first_, InputIterator last_, const LayerMethod method_)</td></tr>
-<tr class="separator:a3b31af689cd1e2cae3cc60f55d46b3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae92181250d02d2458f6d525af540b04d"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
+<tr class="memitem:ae92181250d02d2458f6d525af540b04d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ae92181250d02d2458f6d525af540b04d">mergeImageLayers</a> (<a class="el" href="classMagick_1_1Image.html">Image</a> *mergedImage_, InputIterator first_, InputIterator last_, const ImageLayerMethod method_)</td></tr>
+<tr class="separator:ae92181250d02d2458f6d525af540b04d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa624917ecf1fd5b11376cca3341c651b"><td class="memTemplParams" colspan="2">template&lt;class Container , class InputIterator &gt; </td></tr>
 <tr class="memitem:aa624917ecf1fd5b11376cca3341c651b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#aa624917ecf1fd5b11376cca3341c651b">montageImages</a> (Container *montageImages_, InputIterator first_, InputIterator last_, const <a class="el" href="classMagick_1_1Montage.html">Montage</a> &amp;options_)</td></tr>
 <tr class="separator:aa624917ecf1fd5b11376cca3341c651b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -864,18 +861,6 @@
 <tr class="memitem:a495095c218d249f495959e5695810e5d"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:a495095c218d249f495959e5695810e5d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a495095c218d249f495959e5695810e5d">optimizeTransparency</a> (InputIterator first_, InputIterator last_)</td></tr>
 <tr class="separator:a495095c218d249f495959e5695810e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2047d3a09e1bac9c0eb35ecd779312a3"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:a2047d3a09e1bac9c0eb35ecd779312a3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2047d3a09e1bac9c0eb35ecd779312a3">pingImages</a> (Container *sequence_, const std::string &amp;imageSpec_, <a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;options)</td></tr>
-<tr class="separator:a2047d3a09e1bac9c0eb35ecd779312a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac93b63e827a12099c4f433d8acb0bad1"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:ac93b63e827a12099c4f433d8acb0bad1"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ac93b63e827a12099c4f433d8acb0bad1">pingImages</a> (Container *sequence_, const std::string &amp;imageSpec_)</td></tr>
-<tr class="separator:ac93b63e827a12099c4f433d8acb0bad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2ac6ed318263c5358b28371f3f719d47"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:a2ac6ed318263c5358b28371f3f719d47"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a2ac6ed318263c5358b28371f3f719d47">pingImages</a> (Container *sequence_, const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;blob_, <a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;options)</td></tr>
-<tr class="separator:a2ac6ed318263c5358b28371f3f719d47"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5bcbb6c0d3e9475d135b196375629539"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:a5bcbb6c0d3e9475d135b196375629539"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a5bcbb6c0d3e9475d135b196375629539">pingImages</a> (Container *sequence_, const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;blob_)</td></tr>
-<tr class="separator:a5bcbb6c0d3e9475d135b196375629539"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a94bba48d3cf2ccb8a7f6e65c5e416eff"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
 <tr class="memitem:a94bba48d3cf2ccb8a7f6e65c5e416eff"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a94bba48d3cf2ccb8a7f6e65c5e416eff">profileNames</a> (Container *names_, const <a class="el" href="classMagick_1_1Image.html">Image</a> *image_)</td></tr>
 <tr class="separator:a94bba48d3cf2ccb8a7f6e65c5e416eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -894,9 +879,9 @@
 <tr class="memitem:a4248fae36242321ab9e5aab817d07995"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
 <tr class="memitem:a4248fae36242321ab9e5aab817d07995"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a4248fae36242321ab9e5aab817d07995">readImages</a> (Container *sequence_, const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;blob_)</td></tr>
 <tr class="separator:a4248fae36242321ab9e5aab817d07995"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a663ce7a67e6732f5b27490610ce721de"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
-<tr class="memitem:a663ce7a67e6732f5b27490610ce721de"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a663ce7a67e6732f5b27490610ce721de">separateImages</a> (Container *separatedImages_, <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;image_, const ChannelType channel_)</td></tr>
-<tr class="separator:a663ce7a67e6732f5b27490610ce721de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7c8985448def5735445808ddd769bbd"><td class="memTemplParams" colspan="2">template&lt;class Container &gt; </td></tr>
+<tr class="memitem:af7c8985448def5735445808ddd769bbd"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#af7c8985448def5735445808ddd769bbd">separateImages</a> (Container *separatedImages_, const <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;image_, const ChannelType channel_)</td></tr>
+<tr class="separator:af7c8985448def5735445808ddd769bbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a9c8aba8238c35a5bc5754f30a694435f"><td class="memTemplParams" colspan="2">template&lt;class InputIterator &gt; </td></tr>
 <tr class="memitem:a9c8aba8238c35a5bc5754f30a694435f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a9c8aba8238c35a5bc5754f30a694435f">smushImages</a> (<a class="el" href="classMagick_1_1Image.html">Image</a> *smushedImage_, InputIterator first_, InputIterator last_, const ssize_t offset_, bool stack_=false)</td></tr>
 <tr class="separator:a9c8aba8238c35a5bc5754f30a694435f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -917,8 +902,6 @@
 <tr class="separator:a3af933f0beb32b965e32f79f95e9871c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3ee492c8fe7be1773705f97e70243cd1"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a3ee492c8fe7be1773705f97e70243cd1">Offset</a></td></tr>
 <tr class="separator:a3ee492c8fe7be1773705f97e70243cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af3972e1334f3bc1e4b724deba6737410"><td class="memItemLeft" align="right" valign="top">class <a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#af3972e1334f3bc1e4b724deba6737410">Point</a></td></tr>
-<tr class="separator:af3972e1334f3bc1e4b724deba6737410"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ac395e62fbdf4d3264b2e9f88555e4313"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#ac395e62fbdf4d3264b2e9f88555e4313">borderGeometryDefault</a> =&quot;6x6+0+0&quot;</td></tr>
 <tr class="separator:ac395e62fbdf4d3264b2e9f88555e4313"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0e7450e18b963f8cca30bd2a7bfef619"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceMagick.html#a0e7450e18b963f8cca30bd2a7bfef619">frameGeometryDefault</a> =&quot;25x25+6+6&quot;</td></tr>
@@ -927,106 +910,92 @@
 <tr class="separator:addf16f642a7ed582559edb81fe2de6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="a68cadc31d8829341d1faba35618af7b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a68cadc31d8829341d1faba35618af7b1">&#9670;&nbsp;</a></span>CoordinateList</h2>
-
+<a class="anchor" id="ad25a1de5284a65c707091652ab4a8890"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1Coordinate.html">Magick::Coordinate</a>&gt; <a class="el" href="namespaceMagick.html#a68cadc31d8829341d1faba35618af7b1">Magick::CoordinateList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1Coordinate.html">Magick::Coordinate</a>&gt; <a class="el" href="namespaceMagick.html#ad25a1de5284a65c707091652ab4a8890">Magick::CoordinateList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l00071">71</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l00084">84</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
-<a id="a276bd0424953aa7c0499f84a05d91918"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a276bd0424953aa7c0499f84a05d91918">&#9670;&nbsp;</a></span>DrawableList</h2>
-
+<a class="anchor" id="a9324c6bef2f2c6f3b1ec4697a3932c1a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1Drawable.html">Magick::Drawable</a>&gt; <a class="el" href="namespaceMagick.html#a276bd0424953aa7c0499f84a05d91918">Magick::DrawableList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1Drawable.html">Magick::Drawable</a>&gt; <a class="el" href="namespaceMagick.html#a9324c6bef2f2c6f3b1ec4697a3932c1a">Magick::DrawableList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l00144">144</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l00173">173</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
-<a id="a40749dfdc7f056fa5aee9b6d344fbaf5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a40749dfdc7f056fa5aee9b6d344fbaf5">&#9670;&nbsp;</a></span>PathArcArgsList</h2>
-
+<a class="anchor" id="afc6967df9561c7a5dbc64e4cf616fff2"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1PathArcArgs.html">Magick::PathArcArgs</a>&gt; <a class="el" href="namespaceMagick.html#a40749dfdc7f056fa5aee9b6d344fbaf5">Magick::PathArcArgsList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1PathArcArgs.html">Magick::PathArcArgs</a>&gt; <a class="el" href="namespaceMagick.html#afc6967df9561c7a5dbc64e4cf616fff2">Magick::PathArcArgsList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l02454">2454</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l02357">2357</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
-<a id="a297641e20272f1c24e5677c16ee7b00e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a297641e20272f1c24e5677c16ee7b00e">&#9670;&nbsp;</a></span>PathCurveToArgsList</h2>
-
+<a class="anchor" id="abef478b25a92921fecf769ed1bd73b2c"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1PathCurvetoArgs.html">Magick::PathCurvetoArgs</a>&gt; <a class="el" href="namespaceMagick.html#a297641e20272f1c24e5677c16ee7b00e">Magick::PathCurveToArgsList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1PathCurvetoArgs.html">Magick::PathCurvetoArgs</a>&gt; <a class="el" href="namespaceMagick.html#abef478b25a92921fecf769ed1bd73b2c">Magick::PathCurveToArgsList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l02628">2628</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l02531">2531</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
-<a id="aab20fd385fcad8bf38d8e04752f2ef38"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aab20fd385fcad8bf38d8e04752f2ef38">&#9670;&nbsp;</a></span>PathQuadraticCurvetoArgsList</h2>
-
+<a class="anchor" id="abd21029343e4fb680e2c975111be3b3b"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">Magick::PathQuadraticCurvetoArgs</a>&gt; <a class="el" href="namespaceMagick.html#aab20fd385fcad8bf38d8e04752f2ef38">Magick::PathQuadraticCurvetoArgsList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">Magick::PathQuadraticCurvetoArgs</a>&gt; <a class="el" href="namespaceMagick.html#abd21029343e4fb680e2c975111be3b3b">Magick::PathQuadraticCurvetoArgsList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l02809">2809</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l02712">2712</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
-<a id="a2315b94c36be63d8caae300274cd94f1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2315b94c36be63d8caae300274cd94f1">&#9670;&nbsp;</a></span>VPathList</h2>
-
+<a class="anchor" id="af1fbe7aba872d47fc7a33929a3f20e29"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef std::vector&lt;<a class="el" href="classMagick_1_1VPath.html">Magick::VPath</a>&gt; <a class="el" href="namespaceMagick.html#a2315b94c36be63d8caae300274cd94f1">Magick::VPathList</a></td>
+          <td class="memname">typedef std::list&lt;<a class="el" href="classMagick_1_1VPath.html">Magick::VPath</a>&gt; <a class="el" href="namespaceMagick.html#af1fbe7aba872d47fc7a33929a3f20e29">Magick::VPathList</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l00207">207</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l00253">253</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="a9ca40d51373df1cd97fd566758f2a2e3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a9ca40d51373df1cd97fd566758f2a2e3">&#9670;&nbsp;</a></span>animateImages()</h2>
-
+<a class="anchor" id="a9ca40d51373df1cd97fd566758f2a2e3"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1052,15 +1021,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01975">1975</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l01998">1998</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="acc023e4b94fa14ef23979e5d3fb5f5e7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#acc023e4b94fa14ef23979e5d3fb5f5e7">&#9670;&nbsp;</a></span>appendImages()</h2>
-
+<a class="anchor" id="acc023e4b94fa14ef23979e5d3fb5f5e7"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1069,7 +1036,7 @@
         <tr>
           <td class="memname">void Magick::appendImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>appendedImage_</em>, </td>
         </tr>
         <tr>
@@ -1098,15 +1065,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01989">1989</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02012">2012</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a08f0e7ad44bf591b7d188ba9fd71cabe"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a08f0e7ad44bf591b7d188ba9fd71cabe">&#9670;&nbsp;</a></span>artifactNames()</h2>
-
+<a class="anchor" id="a08f0e7ad44bf591b7d188ba9fd71cabe"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1121,7 +1086,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">const Image *&#160;</td>
           <td class="paramname"><em>image_</em>&#160;</td>
         </tr>
         <tr>
@@ -1132,15 +1097,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02006">2006</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02029">2029</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>.</p>
 
 </div>
 </div>
-<a id="ad7e7d6004c5fd324b71c3e7d482c3fac"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ad7e7d6004c5fd324b71c3e7d482c3fac">&#9670;&nbsp;</a></span>attributeNames()</h2>
-
+<a class="anchor" id="ad7e7d6004c5fd324b71c3e7d482c3fac"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1155,7 +1118,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">const Image *&#160;</td>
           <td class="paramname"><em>image_</em>&#160;</td>
         </tr>
         <tr>
@@ -1166,15 +1129,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02024">2024</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02047">2047</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>.</p>
 
 </div>
 </div>
-<a id="a1f15352ac9847df4cef3b31e522d55d7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a1f15352ac9847df4cef3b31e522d55d7">&#9670;&nbsp;</a></span>averageImages()</h2>
-
+<a class="anchor" id="a1f15352ac9847df4cef3b31e522d55d7"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1183,7 +1144,7 @@
         <tr>
           <td class="memname">void Magick::averageImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>averagedImage_</em>, </td>
         </tr>
         <tr>
@@ -1206,61 +1167,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02043">2043</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02066">2066</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="ae6d1d85502b46b1d71a2cfe768d85c23"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ae6d1d85502b46b1d71a2cfe768d85c23">&#9670;&nbsp;</a></span>channelMaskImages()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class InputIterator , class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::channelMaskImages </td>
-          <td>(</td>
-          <td class="paramtype">InputIterator&#160;</td>
-          <td class="paramname"><em>first_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">InputIterator&#160;</td>
-          <td class="paramname"><em>last_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>container_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const ChannelType&#160;</td>
-          <td class="paramname"><em>channel_</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01852">1852</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l02237">combineImages()</a>.</p>
-
-</div>
-</div>
-<a id="a7c22815e81dd2dcc911a3d83986fb343"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a7c22815e81dd2dcc911a3d83986fb343">&#9670;&nbsp;</a></span>CloneString()</h2>
-
+<a class="anchor" id="a7c22815e81dd2dcc911a3d83986fb343"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -1284,15 +1197,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00023">23</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00022">22</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="Options_8cpp_source.html#l00096">Magick::Options::backgroundTexture()</a>, <a class="el" href="Options_8cpp_source.html#l00178">Magick::Options::density()</a>, <a class="el" href="STL_8cpp_source.html#l00807">Magick::ReadOptions::density()</a>, <a class="el" href="Options_8cpp_source.html#l00285">Magick::Options::font()</a>, <a class="el" href="Options_8cpp_source.html#l00307">Magick::Options::fontFamily()</a>, <a class="el" href="Options_8cpp_source.html#l00425">Magick::Options::page()</a>, <a class="el" href="Options_8cpp_source.html#l00523">Magick::Options::samplingFactor()</a>, <a class="el" href="Options_8cpp_source.html#l00540">Magick::Options::size()</a>, <a class="el" href="STL_8cpp_source.html#l00853">Magick::ReadOptions::size()</a>, <a class="el" href="Options_8cpp_source.html#l00721">Magick::Options::textEncoding()</a>, <a class="el" href="Montage_8cpp_source.html#l00180">Magick::Montage::updateMontageInfo()</a>, <a class="el" href="Montage_8cpp_source.html#l00284">Magick::MontageFramed::updateMontageInfo()</a>, and <a class="el" href="Options_8cpp_source.html#l00926">Magick::Options::x11Display()</a>.</p>
+<p>Referenced by <a class="el" href="Options_8cpp_source.html#l00097">Magick::Options::backgroundTexture()</a>, <a class="el" href="Options_8cpp_source.html#l00180">Magick::Options::density()</a>, <a class="el" href="STL_8cpp_source.html#l00843">Magick::ReadOptions::density()</a>, <a class="el" href="Options_8cpp_source.html#l00289">Magick::Options::font()</a>, <a class="el" href="Options_8cpp_source.html#l00311">Magick::Options::fontFamily()</a>, <a class="el" href="Options_8cpp_source.html#l00440">Magick::Options::page()</a>, <a class="el" href="Options_8cpp_source.html#l00537">Magick::Options::samplingFactor()</a>, <a class="el" href="Options_8cpp_source.html#l00554">Magick::Options::size()</a>, <a class="el" href="STL_8cpp_source.html#l00879">Magick::ReadOptions::size()</a>, <a class="el" href="Options_8cpp_source.html#l00724">Magick::Options::textEncoding()</a>, <a class="el" href="Options_8cpp_source.html#l00795">Magick::Options::tileName()</a>, <a class="el" href="Montage_8cpp_source.html#l00041">Magick::Montage::updateMontageInfo()</a>, <a class="el" href="Montage_8cpp_source.html#l00105">Magick::MontageFramed::updateMontageInfo()</a>, <a class="el" href="Options_8cpp_source.html#l00976">Magick::Options::view()</a>, and <a class="el" href="Options_8cpp_source.html#l00992">Magick::Options::x11Display()</a>.</p>
 
 </div>
 </div>
-<a id="a223f3dbd00c5479e7eb9a138741d9bc6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a223f3dbd00c5479e7eb9a138741d9bc6">&#9670;&nbsp;</a></span>coalesceImages()</h2>
-
+<a class="anchor" id="a223f3dbd00c5479e7eb9a138741d9bc6"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1324,15 +1235,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02062">2062</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02084">2084</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a0770ce2c08c9e18d30d61715b52db7ad"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a0770ce2c08c9e18d30d61715b52db7ad">&#9670;&nbsp;</a></span>coderInfoList()</h2>
-
+<a class="anchor" id="a0770ce2c08c9e18d30d61715b52db7ad"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1347,20 +1256,20 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161">CoderInfo::MatchType</a>&#160;</td>
-          <td class="paramname"><em>isReadable_</em> = <code><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161a112cfe9e44070b888a4b019c41310bc4">CoderInfo::AnyMatch</a></code>, </td>
+          <td class="paramtype">CoderInfo::MatchType&#160;</td>
+          <td class="paramname"><em>isReadable_</em> = <code>CoderInfo::AnyMatch</code>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161">CoderInfo::MatchType</a>&#160;</td>
-          <td class="paramname"><em>isWritable_</em> = <code><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161a112cfe9e44070b888a4b019c41310bc4">CoderInfo::AnyMatch</a></code>, </td>
+          <td class="paramtype">CoderInfo::MatchType&#160;</td>
+          <td class="paramname"><em>isWritable_</em> = <code>CoderInfo::AnyMatch</code>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161">CoderInfo::MatchType</a>&#160;</td>
-          <td class="paramname"><em>isMultiFrame_</em> = <code><a class="el" href="classMagick_1_1CoderInfo.html#a901bb8cb1e13209791d353933715f161a112cfe9e44070b888a4b019c41310bc4">CoderInfo::AnyMatch</a></code>&#160;</td>
+          <td class="paramtype">CoderInfo::MatchType&#160;</td>
+          <td class="paramname"><em>isMultiFrame_</em> = <code>CoderInfo::AnyMatch</code>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1370,15 +1279,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02101">2101</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02123">2123</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="CoderInfo_8h_source.html#l00024">Magick::CoderInfo::AnyMatch</a>, <a class="el" href="CoderInfo_8h_source.html#l00026">Magick::CoderInfo::FalseMatch</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00130">Magick::CoderInfo::isMultiFrame()</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00120">Magick::CoderInfo::isReadable()</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00125">Magick::CoderInfo::isWritable()</a>, <a class="el" href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">throwException()</a>, <a class="el" href="Exception_8cpp_source.html#l00806">throwExceptionExplicit()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="CoderInfo_8h_source.html#l00025">Magick::CoderInfo::TrueMatch</a>.</p>
+<p>References <a class="el" href="CoderInfo_8h_source.html#l00024">Magick::CoderInfo::AnyMatch</a>, <a class="el" href="CoderInfo_8h_source.html#l00026">Magick::CoderInfo::FalseMatch</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00101">Magick::CoderInfo::isMultiFrame()</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00091">Magick::CoderInfo::isReadable()</a>, <a class="el" href="CoderInfo_8cpp_source.html#l00096">Magick::CoderInfo::isWritable()</a>, <a class="el" href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">throwException()</a>, <a class="el" href="namespaceMagick.html#acf038b43e710ea498bb5b9914e54ee3a">throwExceptionExplicit()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="CoderInfo_8h_source.html#l00025">Magick::CoderInfo::TrueMatch</a>.</p>
 
 </div>
 </div>
-<a id="a182ce19ab46b91d24e49c586668ea419"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a182ce19ab46b91d24e49c586668ea419">&#9670;&nbsp;</a></span>colorHistogram()</h2>
-
+<a class="anchor" id="a182ce19ab46b91d24e49c586668ea419"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1393,7 +1300,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a>&#160;</td>
+          <td class="paramtype">const Image&#160;</td>
           <td class="paramname"><em>image</em>&#160;</td>
         </tr>
         <tr>
@@ -1404,15 +1311,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02207">2207</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02229">2229</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Color_8h_source.html#l00016">Color</a>, <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Color_8h_source.html#l00015">Color</a>, <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a683fc2d2921aa0b16e7d9d4c00cdf1b8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a683fc2d2921aa0b16e7d9d4c00cdf1b8">&#9670;&nbsp;</a></span>combineImages()</h2>
-
+<a class="anchor" id="a90036200730f4dee3aa1a9ac77dff0c1"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1421,7 +1326,7 @@
         <tr>
           <td class="memname">void Magick::combineImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>combinedImage_</em>, </td>
         </tr>
         <tr>
@@ -1440,13 +1345,7 @@
           <td class="paramkey"></td>
           <td></td>
           <td class="paramtype">const ChannelType&#160;</td>
-          <td class="paramname"><em>channel_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const ColorspaceType&#160;</td>
-          <td class="paramname"><em>colorspace_</em>&#160;</td>
+          <td class="paramname"><em>channel_</em>&#160;</td>
         </tr>
         <tr>
           <td></td>
@@ -1456,15 +1355,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02237">2237</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02259">2259</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="STL_8h_source.html#l01852">channelMaskImages()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="STL_8h_source.html#l01935">restoreChannelMaskImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a3a1ac5d0be573455c1a7cc93a35445ab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3a1ac5d0be573455c1a7cc93a35445ab">&#9670;&nbsp;</a></span>createException()</h2>
-
+<a class="anchor" id="a3a1ac5d0be573455c1a7cc93a35445ab"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -1478,15 +1375,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Exception_8cpp_source.html#l00700">700</a> of file <a class="el" href="Exception_8cpp_source.html">Exception.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Exception_8cpp_source.html#l00701">701</a> of file <a class="el" href="Exception_8cpp_source.html">Exception.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Exception_8cpp_source.html#l00685">formatExceptionMessage()</a>.</p>
+<p>References <a class="el" href="Exception_8cpp_source.html#l00686">formatExceptionMessage()</a>.</p>
 
 </div>
 </div>
-<a id="a4f5cf3b3fbf237b5fc2b06218348d876"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a4f5cf3b3fbf237b5fc2b06218348d876">&#9670;&nbsp;</a></span>cropToTiles()</h2>
-
+<a class="anchor" id="a4f5cf3b3fbf237b5fc2b06218348d876"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1501,13 +1396,13 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a>&#160;</td>
+          <td class="paramtype">const Image&#160;</td>
           <td class="paramname"><em>image_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Geometry.html">Geometry</a> &amp;&#160;</td>
+          <td class="paramtype">const Geometry &amp;&#160;</td>
           <td class="paramname"><em>geometry_</em>&#160;</td>
         </tr>
         <tr>
@@ -1518,15 +1413,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02259">2259</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02273">2273</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a4abe55c5b6785cac1ad80c8a4e3f63f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a4abe55c5b6785cac1ad80c8a4e3f63f0">&#9670;&nbsp;</a></span>deconstructImages()</h2>
-
+<a class="anchor" id="a4abe55c5b6785cac1ad80c8a4e3f63f0"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1558,15 +1451,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02273">2273</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02287">2287</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a619d5f55f1f0971b2e0d72e8bed0051a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a619d5f55f1f0971b2e0d72e8bed0051a">&#9670;&nbsp;</a></span>DisableOpenCL()</h2>
-
+<a class="anchor" id="a619d5f55f1f0971b2e0d72e8bed0051a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -1580,13 +1471,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00029">29</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00028">28</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a243d5ec32297f6e9b81dad35c0360c32"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a243d5ec32297f6e9b81dad35c0360c32">&#9670;&nbsp;</a></span>displayImages()</h2>
-
+<a class="anchor" id="a243d5ec32297f6e9b81dad35c0360c32"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1612,35 +1503,33 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02299">2299</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02320">2320</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a60f25d23a489a4287fb658b922a2a4a5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a60f25d23a489a4287fb658b922a2a4a5">&#9670;&nbsp;</a></span>EnableOpenCL()</h2>
-
+<a class="anchor" id="a8db47cc183547a1f5a1c6b5a5a81871f"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> bool Magick::EnableOpenCL </td>
           <td>(</td>
-          <td class="paramtype">void&#160;</td>
-          <td class="paramname"></td><td>)</td>
+          <td class="paramtype">const bool&#160;</td>
+          <td class="paramname"><em>useCache_</em> = <code>true</code></td><td>)</td>
           <td></td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00034">34</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00036">36</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a2c899be571090eb15c152b6ebabd2166"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2c899be571090eb15c152b6ebabd2166">&#9670;&nbsp;</a></span>evaluateImages()</h2>
-
+<a class="anchor" id="a2c899be571090eb15c152b6ebabd2166"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1649,7 +1538,7 @@
         <tr>
           <td class="memname">void Magick::evaluateImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>evaluatedImage_</em>, </td>
         </tr>
         <tr>
@@ -1678,15 +1567,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02315">2315</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02336">2336</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a77d4e5b74f8b925b579d04df7ecb93d7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a77d4e5b74f8b925b579d04df7ecb93d7">&#9670;&nbsp;</a></span>flattenImages()</h2>
-
+<a class="anchor" id="a77d4e5b74f8b925b579d04df7ecb93d7"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1695,7 +1582,7 @@
         <tr>
           <td class="memname">void Magick::flattenImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>flattendImage_</em>, </td>
         </tr>
         <tr>
@@ -1718,15 +1605,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02331">2331</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02352">2352</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a7979171ad653bd4efa8d2fa4319926ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a7979171ad653bd4efa8d2fa4319926ba">&#9670;&nbsp;</a></span>formatExceptionMessage()</h2>
-
+<a class="anchor" id="a7979171ad653bd4efa8d2fa4319926ba"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -1740,15 +1625,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Exception_8cpp_source.html#l00685">685</a> of file <a class="el" href="Exception_8cpp_source.html">Exception.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Exception_8cpp_source.html#l00686">686</a> of file <a class="el" href="Exception_8cpp_source.html">Exception.cpp</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="Exception_8cpp_source.html#l00700">createException()</a>.</p>
+<p>Referenced by <a class="el" href="Exception_8cpp_source.html#l00701">createException()</a>.</p>
 
 </div>
 </div>
-<a id="a44010670ee97e16bd3576fbf75bda60d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a44010670ee97e16bd3576fbf75bda60d">&#9670;&nbsp;</a></span>forwardFourierTransformImage() <span class="overload">[1/2]</span></h2>
-
+<a class="anchor" id="a44010670ee97e16bd3576fbf75bda60d"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1763,7 +1646,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;&#160;</td>
+          <td class="paramtype">const Image &amp;&#160;</td>
           <td class="paramname"><em>image_</em>&#160;</td>
         </tr>
         <tr>
@@ -1774,15 +1657,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02347">2347</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02368">2368</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a97ccc95996c978231264bbe683848c3c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a97ccc95996c978231264bbe683848c3c">&#9670;&nbsp;</a></span>forwardFourierTransformImage() <span class="overload">[2/2]</span></h2>
-
+<a class="anchor" id="a97ccc95996c978231264bbe683848c3c"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1797,7 +1678,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;&#160;</td>
+          <td class="paramtype">const Image &amp;&#160;</td>
           <td class="paramname"><em>image_</em>, </td>
         </tr>
         <tr>
@@ -1814,15 +1695,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02365">2365</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02386">2386</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a6994f0cb3187dd5702e456d95eb4fd0c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a6994f0cb3187dd5702e456d95eb4fd0c">&#9670;&nbsp;</a></span>fxImages()</h2>
-
+<a class="anchor" id="a6994f0cb3187dd5702e456d95eb4fd0c"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1831,7 +1710,7 @@
         <tr>
           <td class="memname">void Magick::fxImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>fxImage_</em>, </td>
         </tr>
         <tr>
@@ -1860,15 +1739,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02386">2386</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02407">2407</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="ae9a4f92303d2fc6074f91181db864be1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ae9a4f92303d2fc6074f91181db864be1">&#9670;&nbsp;</a></span>InitializeMagick()</h2>
-
+<a class="anchor" id="ae9a4f92303d2fc6074f91181db864be1"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -1882,17 +1759,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00043">43</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00054">54</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Functions_8cpp_source.html#l00020">magick_initialized</a>.</p>
+<p>References <a class="el" href="Functions_8cpp_source.html#l00020">magick_initialized</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="analyze_8cpp_source.html#l00016">main()</a>.</p>
+<p>Referenced by <a class="el" href="analyze_8cpp_source.html#l00016">main()</a>.</p>
 
 </div>
 </div>
-<a id="a2b0247538229a8bdd8e4f0adc3215702"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2b0247538229a8bdd8e4f0adc3215702">&#9670;&nbsp;</a></span>insertImages()</h2>
-
+<a class="anchor" id="a2b0247538229a8bdd8e4f0adc3215702"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1918,17 +1793,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01871">1871</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l01969">1969</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Drawable_8h_source.html#l00720">Image</a>.</p>
+<p>References <a class="el" href="Drawable_8h_source.html#l00642">Image</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l02062">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02259">cropToTiles()</a>, <a class="el" href="STL_8h_source.html#l02273">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02347">forwardFourierTransformImage()</a>, <a class="el" href="STL_8h_source.html#l02479">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02533">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02582">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02611">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02730">readImages()</a>, and <a class="el" href="STL_8h_source.html#l02777">separateImages()</a>.</p>
+<p>Referenced by <a class="el" href="STL_8h_source.html#l02084">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02273">cropToTiles()</a>, <a class="el" href="STL_8h_source.html#l02287">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02368">forwardFourierTransformImage()</a>, <a class="el" href="STL_8h_source.html#l02497">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02551">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02599">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02627">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02723">readImages()</a>, and <a class="el" href="STL_8h_source.html#l02770">separateImages()</a>.</p>
 
 </div>
 </div>
-<a id="a7a43dbf4aafe85d75e55d634e42dc79e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a7a43dbf4aafe85d75e55d634e42dc79e">&#9670;&nbsp;</a></span>linkImages()</h2>
-
+<a class="anchor" id="a7a43dbf4aafe85d75e55d634e42dc79e"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1954,17 +1827,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01901">1901</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l01925">1925</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Drawable_8h_source.html#l00720">Image</a>.</p>
+<p>References <a class="el" href="Drawable_8h_source.html#l00642">Image</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l01975">animateImages()</a>, <a class="el" href="STL_8h_source.html#l01989">appendImages()</a>, <a class="el" href="STL_8h_source.html#l02043">averageImages()</a>, <a class="el" href="STL_8h_source.html#l02062">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02237">combineImages()</a>, <a class="el" href="STL_8h_source.html#l02273">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02299">displayImages()</a>, <a class="el" href="STL_8h_source.html#l02315">evaluateImages()</a>, <a class="el" href="STL_8h_source.html#l02331">flattenImages()</a>, <a class="el" href="STL_8h_source.html#l02386">fxImages()</a>, <a class="el" href="STL_8h_source.html#l02406">mapImages()</a>, <a class="el" href="STL_8h_source.html#l02464">mergeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02479">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02533">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02564">mosaicImages()</a>, <a class="el" href="STL_8h_source.html#l02582">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02611">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02640">optimizeTransparency()</a>, <a class="el" href="STL_8h_source.html#l02702">quantizeImages()</a>, <a class="el" href="STL_8h_source.html#l02800">smushImages()</a>, and <a class="el" href="STL_8h_source.html#l02818">writeImages()</a>.</p>
+<p>Referenced by <a class="el" href="STL_8h_source.html#l01998">animateImages()</a>, <a class="el" href="STL_8h_source.html#l02012">appendImages()</a>, <a class="el" href="STL_8h_source.html#l02066">averageImages()</a>, <a class="el" href="STL_8h_source.html#l02084">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02259">combineImages()</a>, <a class="el" href="STL_8h_source.html#l02287">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02320">displayImages()</a>, <a class="el" href="STL_8h_source.html#l02336">evaluateImages()</a>, <a class="el" href="STL_8h_source.html#l02352">flattenImages()</a>, <a class="el" href="STL_8h_source.html#l02407">fxImages()</a>, <a class="el" href="STL_8h_source.html#l02428">mapImages()</a>, <a class="el" href="STL_8h_source.html#l02482">mergeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02497">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02551">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02581">mosaicImages()</a>, <a class="el" href="STL_8h_source.html#l02599">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02627">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02655">optimizeTransparency()</a>, <a class="el" href="STL_8h_source.html#l02687">quantizeImages()</a>, <a class="el" href="STL_8h_source.html#l02787">smushImages()</a>, and <a class="el" href="STL_8h_source.html#l02805">writeImages()</a>.</p>
 
 </div>
 </div>
-<a id="abeff1d421ce2999145680472593168c0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#abeff1d421ce2999145680472593168c0">&#9670;&nbsp;</a></span>mapImages()</h2>
-
+<a class="anchor" id="abeff1d421ce2999145680472593168c0"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -1985,7 +1856,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> &amp;&#160;</td>
+          <td class="paramtype">const Image &amp;&#160;</td>
           <td class="paramname"><em>mapImage_</em>, </td>
         </tr>
         <tr>
@@ -2008,15 +1879,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02406">2406</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02428">2428</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="Image_8cpp_source.html#l01074">Magick::Image::isValid()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">throwException()</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="Image_8cpp_source.html#l01034">Magick::Image::isValid()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">throwException()</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a3b31af689cd1e2cae3cc60f55d46b3a7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3b31af689cd1e2cae3cc60f55d46b3a7">&#9670;&nbsp;</a></span>mergeImageLayers()</h2>
-
+<a class="anchor" id="ae92181250d02d2458f6d525af540b04d"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -2025,7 +1894,7 @@
         <tr>
           <td class="memname">void Magick::mergeImageLayers </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>mergedImage_</em>, </td>
         </tr>
         <tr>
@@ -2043,7 +1912,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const LayerMethod&#160;</td>
+          <td class="paramtype">const ImageLayerMethod&#160;</td>
           <td class="paramname"><em>method_</em>&#160;</td>
         </tr>
         <tr>
@@ -2054,15 +1923,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02464">2464</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02482">2482</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="aa624917ecf1fd5b11376cca3341c651b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aa624917ecf1fd5b11376cca3341c651b">&#9670;&nbsp;</a></span>montageImages()</h2>
-
+<a class="anchor" id="aa624917ecf1fd5b11376cca3341c651b"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -2089,7 +1956,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Montage.html">Montage</a> &amp;&#160;</td>
+          <td class="paramtype">const Montage &amp;&#160;</td>
           <td class="paramname"><em>options_</em>&#160;</td>
         </tr>
         <tr>
@@ -2100,17 +1967,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02479">2479</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02497">2497</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Montage_8cpp_source.html#l00100">Magick::Montage::label()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, <a class="el" href="Montage_8cpp_source.html#l00170">Magick::Montage::transparentColor()</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, and <a class="el" href="Montage_8cpp_source.html#l00180">Magick::Montage::updateMontageInfo()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Montage_8h_source.html#l00238">Magick::Montage::label()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, <a class="el" href="Montage_8h_source.html#l00319">Magick::Montage::transparentColor()</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, and <a class="el" href="Montage_8cpp_source.html#l00041">Magick::Montage::updateMontageInfo()</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="demo_8cpp_source.html#l00022">main()</a>.</p>
+<p>Referenced by <a class="el" href="demo_8cpp_source.html#l00022">main()</a>.</p>
 
 </div>
 </div>
-<a id="a381b58ef0d0dda9672e71ffe20031e04"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a381b58ef0d0dda9672e71ffe20031e04">&#9670;&nbsp;</a></span>morphImages()</h2>
-
+<a class="anchor" id="a381b58ef0d0dda9672e71ffe20031e04"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -2148,17 +2013,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02533">2533</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02551">2551</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="flip_8cpp_source.html#l00021">main()</a>.</p>
+<p>Referenced by <a class="el" href="flip_8cpp_source.html#l00021">main()</a>.</p>
 
 </div>
 </div>
-<a id="ac3c6a7ff2c9407b41566890fc2b2470b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac3c6a7ff2c9407b41566890fc2b2470b">&#9670;&nbsp;</a></span>mosaicImages()</h2>
-
+<a class="anchor" id="ac3c6a7ff2c9407b41566890fc2b2470b"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -2167,7 +2030,7 @@
         <tr>
           <td class="memname">void Magick::mosaicImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>mosaicImage_</em>, </td>
         </tr>
         <tr>
@@ -2190,15 +2053,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02564">2564</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02581">2581</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="ac142178b77a9f733f1ff3a1c9e7b13a0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac142178b77a9f733f1ff3a1c9e7b13a0">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[1/9]</span></h2>
-
+<a class="anchor" id="ac142178b77a9f733f1ff3a1c9e7b13a0"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2222,13 +2083,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00036">36</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00036">36</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a475cec455a182daaf632b8040b4c7731"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a475cec455a182daaf632b8040b4c7731">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[2/9]</span></h2>
-
+<a class="anchor" id="a475cec455a182daaf632b8040b4c7731"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2252,13 +2111,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00040">40</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00042">42</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
 </div>
 </div>
-<a id="adac06da2d36756b736383a4ad1193650"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#adac06da2d36756b736383a4ad1193650">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[3/9]</span></h2>
-
+<a class="anchor" id="adac06da2d36756b736383a4ad1193650"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2282,26 +2139,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00045">45</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00046">46</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a61370efae5300488abcb52b36da52e8a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a61370efae5300488abcb52b36da52e8a">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[4/9]</span></h2>
-
+<a class="anchor" id="a61370efae5300488abcb52b36da52e8a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2312,13 +2167,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00028">28</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00027">27</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="ae25f7dd29750ae670cc6e762bc742623"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ae25f7dd29750ae670cc6e762bc742623">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[5/9]</span></h2>
-
+<a class="anchor" id="ae25f7dd29750ae670cc6e762bc742623"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2342,26 +2195,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00481">481</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00399">399</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a2b3e512059f7d55f053fdef294362beb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2b3e512059f7d55f053fdef294362beb">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[6/9]</span></h2>
-
+<a class="anchor" id="a60d0a8da4bebf60b0c0c3ef27e5bb533"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2372,26 +2223,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00581">581</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00109">109</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a2fd231d4d66954680135ccabdc4b551d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2fd231d4d66954680135ccabdc4b551d">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[7/9]</span></h2>
-
+<a class="anchor" id="a779fd757475b3c0d074d7ed5034eb06c"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2402,26 +2251,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01763">1763</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00189">189</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a46f52ebd8dcbcd6ecf8f6db4632ec432"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a46f52ebd8dcbcd6ecf8f6db4632ec432">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[8/9]</span></h2>
-
+<a class="anchor" id="a2fd231d4d66954680135ccabdc4b551d"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2432,26 +2279,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01914">1914</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01574">1574</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="adcf9eb0ff6cddfda9ddc05e9668b649d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#adcf9eb0ff6cddfda9ddc05e9668b649d">&#9670;&nbsp;</a></span>operator!=() <span class="overload">[9/9]</span></h2>
-
+<a class="anchor" id="a46f52ebd8dcbcd6ecf8f6db4632ec432"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2462,13 +2307,39 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02123">2123</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01725">1725</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a6867b085837673cabe0f2efc47ddebcd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a6867b085837673cabe0f2efc47ddebcd">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[1/7]</span></h2>
+<a class="anchor" id="adcf9eb0ff6cddfda9ddc05e9668b649d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator!= </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01934">1934</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6867b085837673cabe0f2efc47ddebcd"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2492,15 +2363,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00048">48</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00048">48</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Color_8cpp_source.html#l00339">Magick::Color::quantumBlue()</a>, <a class="el" href="Color_8cpp_source.html#l00350">Magick::Color::quantumGreen()</a>, and <a class="el" href="Color_8cpp_source.html#l00361">Magick::Color::quantumRed()</a>.</p>
+<p>References <a class="el" href="Color_8h_source.html#l00402">Magick::Color::blueQuantum()</a>, <a class="el" href="Color_8h_source.html#l00413">Magick::Color::greenQuantum()</a>, and <a class="el" href="Color_8h_source.html#l00424">Magick::Color::redQuantum()</a>.</p>
 
 </div>
 </div>
-<a id="a0ddd343cddafea18c3e40e8ce1b03761"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a0ddd343cddafea18c3e40e8ce1b03761">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[2/7]</span></h2>
-
+<a class="anchor" id="a0ddd343cddafea18c3e40e8ce1b03761"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2524,15 +2393,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00052">52</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00054">54</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Geometry_8cpp_source.html#l00357">Magick::Geometry::height()</a>, and <a class="el" href="Geometry_8cpp_source.html#l00397">Magick::Geometry::width()</a>.</p>
+<p>References <a class="el" href="Geometry_8h_source.html#l00243">Magick::Geometry::height()</a>, and <a class="el" href="Geometry_8h_source.html#l00283">Magick::Geometry::width()</a>.</p>
 
 </div>
 </div>
-<a id="a91ab2eb591bb308c34f102704977de83"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a91ab2eb591bb308c34f102704977de83">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[3/7]</span></h2>
-
+<a class="anchor" id="a91ab2eb591bb308c34f102704977de83"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2556,28 +2423,26 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00057">57</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00058">58</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l00588">Magick::Image::columns()</a>, and <a class="el" href="Image_8cpp_source.html#l01350">Magick::Image::rows()</a>.</p>
+<p>References <a class="el" href="Image_8h_source.html#l01623">Magick::Image::columns()</a>, and <a class="el" href="Image_8h_source.html#l01642">Magick::Image::rows()</a>.</p>
 
 </div>
 </div>
-<a id="a12ca0b7683c9f4373ef89846c34f8e35"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a12ca0b7683c9f4373ef89846c34f8e35">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[4/7]</span></h2>
-
+<a class="anchor" id="a12ca0b7683c9f4373ef89846c34f8e35"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2588,28 +2453,26 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00040">40</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00037">37</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Drawable_8h_source.html#l00060">Magick::Coordinate::x()</a>, and <a class="el" href="Drawable_8h_source.html#l00063">Magick::Coordinate::y()</a>.</p>
+<p>References <a class="el" href="Drawable_8h_source.html#l00061">Magick::Coordinate::x()</a>, and <a class="el" href="Drawable_8h_source.html#l00070">Magick::Coordinate::y()</a>.</p>
 
 </div>
 </div>
-<a id="aaaf83ebd5ca5c3fbfaf7908d72253e7a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aaaf83ebd5ca5c3fbfaf7908d72253e7a">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[5/7]</span></h2>
-
+<a class="anchor" id="a5f66d346e9c40a38232d2e39e23e764e"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2620,26 +2483,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01773">1773</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00119">119</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="ab4e83d244f2aa615d7931c2af70563f6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ab4e83d244f2aa615d7931c2af70563f6">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[6/7]</span></h2>
-
+<a class="anchor" id="a07a7ba4304a34f3d1be4bf72236bb60e"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2650,26 +2511,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01924">1924</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00199">199</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a84d152322c7897ab0af7d6fdbe6d7086"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a84d152322c7897ab0af7d6fdbe6d7086">&#9670;&nbsp;</a></span>operator&lt;() <span class="overload">[7/7]</span></h2>
-
+<a class="anchor" id="aaaf83ebd5ca5c3fbfaf7908d72253e7a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2680,13 +2539,67 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02135">2135</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01584">1584</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a49385d0c3be939293a9dbbcd00b7e2e5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a49385d0c3be939293a9dbbcd00b7e2e5">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[1/7]</span></h2>
+<a class="anchor" id="ab4e83d244f2aa615d7931c2af70563f6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
+          <td>(</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01735">1735</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a84d152322c7897ab0af7d6fdbe6d7086"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt; </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01946">1946</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49385d0c3be939293a9dbbcd00b7e2e5"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2710,13 +2623,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00070">70</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00070">70</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a21a596286fdd5a6b6137ca63da12a2b6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a21a596286fdd5a6b6137ca63da12a2b6">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[2/7]</span></h2>
-
+<a class="anchor" id="a21a596286fdd5a6b6137ca63da12a2b6"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2740,13 +2651,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00064">64</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00066">66</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a9de28a29d12f49e7216e38b73ef4733a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a9de28a29d12f49e7216e38b73ef4733a">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[3/7]</span></h2>
-
+<a class="anchor" id="a9de28a29d12f49e7216e38b73ef4733a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2770,26 +2679,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00071">71</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00072">72</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a43c9fe3c8b720ad9d64c60a0a041b1c6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a43c9fe3c8b720ad9d64c60a0a041b1c6">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[4/7]</span></h2>
-
+<a class="anchor" id="a43c9fe3c8b720ad9d64c60a0a041b1c6"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2800,26 +2707,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00054">54</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00049">49</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a6478bf2be853be3c48317ee7c48641ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a6478bf2be853be3c48317ee7c48641ba">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[5/7]</span></h2>
-
+<a class="anchor" id="aae563f3acefede0f9e8d6f91d50627e1"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2830,26 +2735,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01783">1783</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00129">129</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a1329bd5aa1d7b356f5a00fd98946ae6c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a1329bd5aa1d7b356f5a00fd98946ae6c">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[6/7]</span></h2>
-
+<a class="anchor" id="a4f2ff86d75ede3b098791b78da179889"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2860,26 +2763,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01934">1934</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00209">209</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a886ab7aec20113eb5fc933bc633c4adc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a886ab7aec20113eb5fc933bc633c4adc">&#9670;&nbsp;</a></span>operator&lt;=() <span class="overload">[7/7]</span></h2>
-
+<a class="anchor" id="a6478bf2be853be3c48317ee7c48641ba"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -2890,13 +2791,67 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02147">2147</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01594">1594</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a30d0616db4b51b6a826473f712d04611"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a30d0616db4b51b6a826473f712d04611">&#9670;&nbsp;</a></span>operator==() <span class="overload">[1/9]</span></h2>
+<a class="anchor" id="a1329bd5aa1d7b356f5a00fd98946ae6c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
+          <td>(</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01745">1745</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a886ab7aec20113eb5fc933bc633c4adc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&lt;= </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01958">1958</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a30d0616db4b51b6a826473f712d04611"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2920,15 +2875,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00020">20</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00020">20</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Color_8cpp_source.html#l00301">Magick::Color::isValid()</a>, <a class="el" href="Color_8cpp_source.html#l00339">Magick::Color::quantumBlue()</a>, <a class="el" href="Color_8cpp_source.html#l00350">Magick::Color::quantumGreen()</a>, and <a class="el" href="Color_8cpp_source.html#l00361">Magick::Color::quantumRed()</a>.</p>
+<p>References <a class="el" href="Color_8h_source.html#l00402">Magick::Color::blueQuantum()</a>, <a class="el" href="Color_8h_source.html#l00413">Magick::Color::greenQuantum()</a>, <a class="el" href="Color_8cpp_source.html#l00256">Magick::Color::isValid()</a>, and <a class="el" href="Color_8h_source.html#l00424">Magick::Color::redQuantum()</a>.</p>
 
 </div>
 </div>
-<a id="aa5d769d2336c366d396b6a790ad85745"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aa5d769d2336c366d396b6a790ad85745">&#9670;&nbsp;</a></span>operator==() <span class="overload">[2/9]</span></h2>
-
+<a class="anchor" id="aa5d769d2336c366d396b6a790ad85745"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2952,15 +2905,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00024">24</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00024">24</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Geometry_8cpp_source.html#l00327">Magick::Geometry::aspect()</a>, <a class="el" href="Geometry_8cpp_source.html#l00337">Magick::Geometry::fillArea()</a>, <a class="el" href="Geometry_8cpp_source.html#l00347">Magick::Geometry::greater()</a>, <a class="el" href="Geometry_8cpp_source.html#l00357">Magick::Geometry::height()</a>, <a class="el" href="Geometry_8cpp_source.html#l00367">Magick::Geometry::isValid()</a>, <a class="el" href="Geometry_8cpp_source.html#l00377">Magick::Geometry::less()</a>, <a class="el" href="Geometry_8cpp_source.html#l00387">Magick::Geometry::limitPixels()</a>, <a class="el" href="Geometry_8cpp_source.html#l00403">Magick::Geometry::percent()</a>, <a class="el" href="Geometry_8cpp_source.html#l00397">Magick::Geometry::width()</a>, <a class="el" href="Geometry_8cpp_source.html#l00418">Magick::Geometry::xOff()</a>, and <a class="el" href="Geometry_8cpp_source.html#l00428">Magick::Geometry::yOff()</a>.</p>
+<p>References <a class="el" href="Geometry_8h_source.html#l00213">Magick::Geometry::aspect()</a>, <a class="el" href="Geometry_8h_source.html#l00223">Magick::Geometry::fillArea()</a>, <a class="el" href="Geometry_8h_source.html#l00233">Magick::Geometry::greater()</a>, <a class="el" href="Geometry_8h_source.html#l00243">Magick::Geometry::height()</a>, <a class="el" href="Geometry_8h_source.html#l00253">Magick::Geometry::isValid()</a>, <a class="el" href="Geometry_8h_source.html#l00263">Magick::Geometry::less()</a>, <a class="el" href="Geometry_8h_source.html#l00273">Magick::Geometry::limitPixels()</a>, <a class="el" href="Geometry_8h_source.html#l00289">Magick::Geometry::percent()</a>, <a class="el" href="Geometry_8h_source.html#l00283">Magick::Geometry::width()</a>, <a class="el" href="Geometry_8h_source.html#l00304">Magick::Geometry::xNegative()</a>, <a class="el" href="Geometry_8h_source.html#l00314">Magick::Geometry::xOff()</a>, <a class="el" href="Geometry_8h_source.html#l00324">Magick::Geometry::yNegative()</a>, and <a class="el" href="Geometry_8h_source.html#l00334">Magick::Geometry::yOff()</a>.</p>
 
 </div>
 </div>
-<a id="a6b69c8f4da1fe79508d04f3768997a85"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a6b69c8f4da1fe79508d04f3768997a85">&#9670;&nbsp;</a></span>operator==() <span class="overload">[3/9]</span></h2>
-
+<a class="anchor" id="a6b69c8f4da1fe79508d04f3768997a85"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -2984,28 +2935,26 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00036">36</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00037">37</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l00588">Magick::Image::columns()</a>, <a class="el" href="Image_8cpp_source.html#l01350">Magick::Image::rows()</a>, and <a class="el" href="Image_8cpp_source.html#l04469">Magick::Image::signature()</a>.</p>
+<p>References <a class="el" href="Image_8h_source.html#l01623">Magick::Image::columns()</a>, <a class="el" href="Image_8h_source.html#l01642">Magick::Image::rows()</a>, and <a class="el" href="Image_8cpp_source.html#l04453">Magick::Image::signature()</a>.</p>
 
 </div>
 </div>
-<a id="a3a63730fdd75ed8b3151278bd630df9f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3a63730fdd75ed8b3151278bd630df9f">&#9670;&nbsp;</a></span>operator==() <span class="overload">[4/9]</span></h2>
-
+<a class="anchor" id="a3a63730fdd75ed8b3151278bd630df9f"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3016,15 +2965,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00022">22</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00022">22</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Drawable_8h_source.html#l00060">Magick::Coordinate::x()</a>, and <a class="el" href="Drawable_8h_source.html#l00063">Magick::Coordinate::y()</a>.</p>
+<p>References <a class="el" href="Drawable_8h_source.html#l00061">Magick::Coordinate::x()</a>, and <a class="el" href="Drawable_8h_source.html#l00070">Magick::Coordinate::y()</a>.</p>
 
 </div>
 </div>
-<a id="a5b911d154f1b86aab8f82cc3cdff3f8f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a5b911d154f1b86aab8f82cc3cdff3f8f">&#9670;&nbsp;</a></span>operator==() <span class="overload">[5/9]</span></h2>
-
+<a class="anchor" id="a5b911d154f1b86aab8f82cc3cdff3f8f"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3048,28 +2995,26 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00474">474</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00392">392</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Geometry_8cpp_source.html#l00556">Magick::Offset::x()</a>, and <a class="el" href="Geometry_8cpp_source.html#l00561">Magick::Offset::y()</a>.</p>
+<p>References <a class="el" href="Geometry_8cpp_source.html#l00474">Magick::Offset::x()</a>, and <a class="el" href="Geometry_8cpp_source.html#l00479">Magick::Offset::y()</a>.</p>
 
 </div>
 </div>
-<a id="a66c961e340d5302d48c950fea4e16f54"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a66c961e340d5302d48c950fea4e16f54">&#9670;&nbsp;</a></span>operator==() <span class="overload">[6/9]</span></h2>
-
+<a class="anchor" id="afa132fef5f3b4ac1751979a37fe0f321"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Point.html">Magick::Point</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3080,28 +3025,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00574">574</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
-
-<p class="reference">References <a class="el" href="Geometry_8cpp_source.html#l00701">Magick::Point::x()</a>, and <a class="el" href="Geometry_8cpp_source.html#l00706">Magick::Point::y()</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00104">104</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="ace191331abd936292ce01ad776cda5f9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ace191331abd936292ce01ad776cda5f9">&#9670;&nbsp;</a></span>operator==() <span class="overload">[7/9]</span></h2>
-
+<a class="anchor" id="aac2c97a2c68eaa34ebe563bb39dfaa99"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3112,26 +3053,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01758">1758</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00184">184</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a9381e0c4f2c2b7d0ae50eaf12b2adb1f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a9381e0c4f2c2b7d0ae50eaf12b2adb1f">&#9670;&nbsp;</a></span>operator==() <span class="overload">[8/9]</span></h2>
-
+<a class="anchor" id="ace191331abd936292ce01ad776cda5f9"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3142,26 +3081,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01909">1909</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01569">1569</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a091224b8bc8e7c62e3c5d065492a764c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a091224b8bc8e7c62e3c5d065492a764c">&#9670;&nbsp;</a></span>operator==() <span class="overload">[9/9]</span></h2>
-
+<a class="anchor" id="a9381e0c4f2c2b7d0ae50eaf12b2adb1f"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3172,13 +3109,39 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02117">2117</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01720">1720</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a674ec3ded14babb8fd77e749b2f01eab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a674ec3ded14babb8fd77e749b2f01eab">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[1/7]</span></h2>
+<a class="anchor" id="a091224b8bc8e7c62e3c5d065492a764c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator== </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01928">1928</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a674ec3ded14babb8fd77e749b2f01eab"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3202,13 +3165,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00042">42</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00042">42</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a38a368d041caeea9eab7082e054ed977"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a38a368d041caeea9eab7082e054ed977">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[2/7]</span></h2>
-
+<a class="anchor" id="a38a368d041caeea9eab7082e054ed977"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3232,13 +3193,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00046">46</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00048">48</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
 </div>
 </div>
-<a id="acf403c96c5e85071c2ca401f27ee2587"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#acf403c96c5e85071c2ca401f27ee2587">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[3/7]</span></h2>
-
+<a class="anchor" id="acf403c96c5e85071c2ca401f27ee2587"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3262,26 +3221,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00051">51</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00052">52</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="af7e9da938734b6e26c8a66dfe0b47061"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#af7e9da938734b6e26c8a66dfe0b47061">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[4/7]</span></h2>
-
+<a class="anchor" id="af7e9da938734b6e26c8a66dfe0b47061"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3292,26 +3249,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00034">34</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00032">32</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a94aa89b901a1c5b7e79c41b2a0c13c71"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a94aa89b901a1c5b7e79c41b2a0c13c71">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[5/7]</span></h2>
-
+<a class="anchor" id="aa235f9e1cd51e8e3671c4ab9976347e5"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3322,26 +3277,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01768">1768</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00114">114</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="ac0e2cc7110a4e23e84b0327e39c6442b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac0e2cc7110a4e23e84b0327e39c6442b">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[6/7]</span></h2>
-
+<a class="anchor" id="a02502793ae4007ee305ea056b444dc02"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3352,26 +3305,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01919">1919</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00194">194</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a4c4ae03454613bcc13c583cb774a5fd7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a4c4ae03454613bcc13c583cb774a5fd7">&#9670;&nbsp;</a></span>operator&gt;() <span class="overload">[7/7]</span></h2>
-
+<a class="anchor" id="a94aa89b901a1c5b7e79c41b2a0c13c71"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3382,13 +3333,67 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02129">2129</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01579">1579</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="aa36f15d804034945c97b698ac82309e6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aa36f15d804034945c97b698ac82309e6">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[1/7]</span></h2>
+<a class="anchor" id="ac0e2cc7110a4e23e84b0327e39c6442b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
+          <td>(</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01730">1730</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4c4ae03454613bcc13c583cb774a5fd7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt; </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01940">1940</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa36f15d804034945c97b698ac82309e6"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3412,13 +3417,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8cpp_source.html#l00064">64</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Color_8cpp_source.html#l00064">64</a> of file <a class="el" href="Color_8cpp_source.html">Color.cpp</a>.</p>
 
 </div>
 </div>
-<a id="ada6626582d944600959bf771fcbf12f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ada6626582d944600959bf771fcbf12f0">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[2/7]</span></h2>
-
+<a class="anchor" id="ada6626582d944600959bf771fcbf12f0"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3442,13 +3445,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8cpp_source.html#l00058">58</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8cpp_source.html#l00060">60</a> of file <a class="el" href="Geometry_8cpp_source.html">Geometry.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a68a7ad53dcb7303349b2b812a180698f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a68a7ad53dcb7303349b2b812a180698f">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[3/7]</span></h2>
-
+<a class="anchor" id="a68a7ad53dcb7303349b2b812a180698f"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -3472,26 +3473,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00065">65</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00066">66</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a97da8fcdb4b4bd6ca8c873c1f69d7ec4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a97da8fcdb4b4bd6ca8c873c1f69d7ec4">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[4/7]</span></h2>
-
+<a class="anchor" id="a97da8fcdb4b4bd6ca8c873c1f69d7ec4"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
+          <td class="paramtype">const Coordinate &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3502,26 +3501,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l00048">48</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00044">44</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a1b336afe662a1dbcc2d7ad6f03f974d5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a1b336afe662a1dbcc2d7ad6f03f974d5">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[5/7]</span></h2>
-
+<a class="anchor" id="a9664d4dad94390af609c325949d6c77b"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathArcArgs.html">PathArcArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const Drawable &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3532,26 +3529,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01778">1778</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00124">124</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="acce4ae6e59f2d897e6e642ea8e929bc5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#acce4ae6e59f2d897e6e642ea8e929bc5">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[6/7]</span></h2>
-
+<a class="anchor" id="a6cdebe6ac046142c537a7c1af35d5e83"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathCurvetoArgs.html">PathCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const VPath &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3562,26 +3557,24 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l01929">1929</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l00204">204</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a10a25a0aceb1f3244d7b9397c21762ab"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a10a25a0aceb1f3244d7b9397c21762ab">&#9670;&nbsp;</a></span>operator&gt;=() <span class="overload">[7/7]</span></h2>
-
+<a class="anchor" id="a1b336afe662a1dbcc2d7ad6f03f974d5"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
           <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
           <td>(</td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>left_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1PathQuadraticCurvetoArgs.html">PathQuadraticCurvetoArgs</a> &amp;&#160;</td>
+          <td class="paramtype">const PathArcArgs &amp;&#160;</td>
           <td class="paramname"><em>right_</em>&#160;</td>
         </tr>
         <tr>
@@ -3592,13 +3585,67 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8cpp_source.html#l02141">2141</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01589">1589</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a89cf920ec662308ffe2cbe713ef9e3be"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a89cf920ec662308ffe2cbe713ef9e3be">&#9670;&nbsp;</a></span>optimizeImageLayers()</h2>
+<a class="anchor" id="acce4ae6e59f2d897e6e642ea8e929bc5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
+          <td>(</td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
 
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01740">1740</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a10a25a0aceb1f3244d7b9397c21762ab"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> int Magick::operator&gt;= </td>
+          <td>(</td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>left_</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const PathQuadraticCurvetoArgs &amp;&#160;</td>
+          <td class="paramname"><em>right_</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="Drawable_8cpp_source.html#l01952">1952</a> of file <a class="el" href="Drawable_8cpp_source.html">Drawable.cpp</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a89cf920ec662308ffe2cbe713ef9e3be"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3630,15 +3677,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02582">2582</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02599">2599</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a77f323d5ab23958dc4f45b9abb17e45a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a77f323d5ab23958dc4f45b9abb17e45a">&#9670;&nbsp;</a></span>optimizePlusImageLayers()</h2>
-
+<a class="anchor" id="a77f323d5ab23958dc4f45b9abb17e45a"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3670,15 +3715,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02611">2611</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02627">2627</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a495095c218d249f495959e5695810e5d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a495095c218d249f495959e5695810e5d">&#9670;&nbsp;</a></span>optimizeTransparency()</h2>
-
+<a class="anchor" id="a495095c218d249f495959e5695810e5d"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3704,165 +3747,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02640">2640</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02655">2655</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a2047d3a09e1bac9c0eb35ecd779312a3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2047d3a09e1bac9c0eb35ecd779312a3">&#9670;&nbsp;</a></span>pingImages() <span class="overload">[1/4]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::pingImages </td>
-          <td>(</td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>sequence_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>imageSpec_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;&#160;</td>
-          <td class="paramname"><em>options</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02653">2653</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">References <a class="el" href="STL_8cpp_source.html#l00833">Magick::ReadOptions::ping()</a>, and <a class="el" href="STL_8h_source.html#l02730">readImages()</a>.</p>
-
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l02661">pingImages()</a>.</p>
-
-</div>
-</div>
-<a id="ac93b63e827a12099c4f433d8acb0bad1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac93b63e827a12099c4f433d8acb0bad1">&#9670;&nbsp;</a></span>pingImages() <span class="overload">[2/4]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::pingImages </td>
-          <td>(</td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>sequence_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>imageSpec_</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02661">2661</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">References <a class="el" href="STL_8h_source.html#l02653">pingImages()</a>.</p>
-
-</div>
-</div>
-<a id="a2ac6ed318263c5358b28371f3f719d47"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a2ac6ed318263c5358b28371f3f719d47">&#9670;&nbsp;</a></span>pingImages() <span class="overload">[3/4]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::pingImages </td>
-          <td>(</td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>sequence_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;&#160;</td>
-          <td class="paramname"><em>blob_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;&#160;</td>
-          <td class="paramname"><em>options</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02668">2668</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">References <a class="el" href="STL_8cpp_source.html#l00833">Magick::ReadOptions::ping()</a>, and <a class="el" href="STL_8h_source.html#l02730">readImages()</a>.</p>
-
-</div>
-</div>
-<a id="a5bcbb6c0d3e9475d135b196375629539"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a5bcbb6c0d3e9475d135b196375629539">&#9670;&nbsp;</a></span>pingImages() <span class="overload">[4/4]</span></h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::pingImages </td>
-          <td>(</td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>sequence_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;&#160;</td>
-          <td class="paramname"><em>blob_</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02675">2675</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">References <a class="el" href="STL_8h_source.html#l02653">pingImages()</a>.</p>
-
-</div>
-</div>
-<a id="a94bba48d3cf2ccb8a7f6e65c5e416eff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a94bba48d3cf2ccb8a7f6e65c5e416eff">&#9670;&nbsp;</a></span>profileNames()</h2>
-
+<a class="anchor" id="a94bba48d3cf2ccb8a7f6e65c5e416eff"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3877,7 +3768,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">const Image *&#160;</td>
           <td class="paramname"><em>image_</em>&#160;</td>
         </tr>
         <tr>
@@ -3888,15 +3779,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02683">2683</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02668">2668</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>.</p>
 
 </div>
 </div>
-<a id="acebefe1abb379c0f2c1e8e8c3b3fbf33"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#acebefe1abb379c0f2c1e8e8c3b3fbf33">&#9670;&nbsp;</a></span>quantizeImages()</h2>
-
+<a class="anchor" id="acebefe1abb379c0f2c1e8e8c3b3fbf33"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3928,15 +3817,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02702">2702</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02687">2687</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">throwException()</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="a6c7a46b842b0054b093e266a2f400642"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a6c7a46b842b0054b093e266a2f400642">&#9670;&nbsp;</a></span>readImages() <span class="overload">[1/4]</span></h2>
-
+<a class="anchor" id="a6c7a46b842b0054b093e266a2f400642"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -3957,7 +3844,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;&#160;</td>
+          <td class="paramtype">ReadOptions &amp;&#160;</td>
           <td class="paramname"><em>options</em>&#160;</td>
         </tr>
         <tr>
@@ -3968,17 +3855,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02730">2730</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02723">2723</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8cpp_source.html#l00869">Magick::ReadOptions::imageInfo()</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="STL_8cpp_source.html#l00843">Magick::ReadOptions::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8cpp_source.html#l00895">Magick::ReadOptions::imageInfo()</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="STL_8cpp_source.html#l00869">Magick::ReadOptions::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="flip_8cpp_source.html#l00021">main()</a>, <a class="el" href="STL_8h_source.html#l02653">pingImages()</a>, and <a class="el" href="STL_8h_source.html#l02749">readImages()</a>.</p>
+<p>Referenced by <a class="el" href="flip_8cpp_source.html#l00021">main()</a>, and <a class="el" href="STL_8h_source.html#l02742">readImages()</a>.</p>
 
 </div>
 </div>
-<a id="a3aa05c63343697c18d72a4ada52c9b13"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3aa05c63343697c18d72a4ada52c9b13">&#9670;&nbsp;</a></span>readImages() <span class="overload">[2/4]</span></h2>
-
+<a class="anchor" id="a3aa05c63343697c18d72a4ada52c9b13"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4004,15 +3889,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02749">2749</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02742">2742</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="STL_8h_source.html#l02730">readImages()</a>.</p>
+<p>References <a class="el" href="STL_8h_source.html#l02723">readImages()</a>.</p>
 
 </div>
 </div>
-<a id="a09540fccdbfe9764a0436db4a6cfe0c4"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a09540fccdbfe9764a0436db4a6cfe0c4">&#9670;&nbsp;</a></span>readImages() <span class="overload">[3/4]</span></h2>
-
+<a class="anchor" id="a09540fccdbfe9764a0436db4a6cfe0c4"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4027,13 +3910,13 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;&#160;</td>
+          <td class="paramtype">const Blob &amp;&#160;</td>
           <td class="paramname"><em>blob_</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1ReadOptions.html">ReadOptions</a> &amp;&#160;</td>
+          <td class="paramtype">ReadOptions &amp;&#160;</td>
           <td class="paramname"><em>options</em>&#160;</td>
         </tr>
         <tr>
@@ -4044,15 +3927,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02756">2756</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02749">2749</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Blob_8cpp_source.html#l00103">Magick::Blob::data()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8cpp_source.html#l00869">Magick::ReadOptions::imageInfo()</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Blob_8cpp_source.html#l00108">Magick::Blob::length()</a>, <a class="el" href="STL_8cpp_source.html#l00843">Magick::ReadOptions::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Blob_8cpp_source.html#l00118">Magick::Blob::data()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8cpp_source.html#l00895">Magick::ReadOptions::imageInfo()</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Blob_8cpp_source.html#l00123">Magick::Blob::length()</a>, <a class="el" href="STL_8cpp_source.html#l00869">Magick::ReadOptions::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a4248fae36242321ab9e5aab817d07995"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a4248fae36242321ab9e5aab817d07995">&#9670;&nbsp;</a></span>readImages() <span class="overload">[4/4]</span></h2>
-
+<a class="anchor" id="a4248fae36242321ab9e5aab817d07995"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4067,7 +3948,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">const <a class="el" href="classMagick_1_1Blob.html">Blob</a> &amp;&#160;</td>
+          <td class="paramtype">const Blob &amp;&#160;</td>
           <td class="paramname"><em>blob_</em>&#160;</td>
         </tr>
         <tr>
@@ -4078,55 +3959,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02769">2769</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02762">2762</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="STL_8h_source.html#l02730">readImages()</a>.</p>
+<p>References <a class="el" href="STL_8h_source.html#l02723">readImages()</a>.</p>
 
 </div>
 </div>
-<a id="a85bef917f95cc15eb4ada1426dc6f9a2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a85bef917f95cc15eb4ada1426dc6f9a2">&#9670;&nbsp;</a></span>restoreChannelMaskImages()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;class InputIterator , class Container &gt; </div>
-      <table class="memname">
-        <tr>
-          <td class="memname">void Magick::restoreChannelMaskImages </td>
-          <td>(</td>
-          <td class="paramtype">InputIterator&#160;</td>
-          <td class="paramname"><em>first_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">InputIterator&#160;</td>
-          <td class="paramname"><em>last_</em>, </td>
-        </tr>
-        <tr>
-          <td class="paramkey"></td>
-          <td></td>
-          <td class="paramtype">Container *&#160;</td>
-          <td class="paramname"><em>container_</em>&#160;</td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>)</td>
-          <td></td><td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01935">1935</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
-
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l02237">combineImages()</a>.</p>
-
-</div>
-</div>
-<a id="a663ce7a67e6732f5b27490610ce721de"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a663ce7a67e6732f5b27490610ce721de">&#9670;&nbsp;</a></span>separateImages()</h2>
-
+<a class="anchor" id="af7c8985448def5735445808ddd769bbd"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4141,7 +3980,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> &amp;&#160;</td>
+          <td class="paramtype">const Image &amp;&#160;</td>
           <td class="paramname"><em>image_</em>, </td>
         </tr>
         <tr>
@@ -4158,15 +3997,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02777">2777</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02770">2770</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Image_8cpp_source.html#l05013">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="Image_8cpp_source.html#l05008">Magick::Image::image()</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
+<p>References <a class="el" href="Image_8cpp_source.html#l05043">Magick::Image::constImage()</a>, <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, and <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>.</p>
 
 </div>
 </div>
-<a id="a8df77532f69bfc1138f62e202111bc71"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a8df77532f69bfc1138f62e202111bc71">&#9670;&nbsp;</a></span>SetRandomSeed()</h2>
-
+<a class="anchor" id="a8df77532f69bfc1138f62e202111bc71"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4180,35 +4017,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00050">50</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00061">61</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a9fa651529716cf6d7e4a8e5a18d1bdd5"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a9fa651529716cf6d7e4a8e5a18d1bdd5">&#9670;&nbsp;</a></span>SetSecurityPolicy()</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname"><a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> bool Magick::SetSecurityPolicy </td>
-          <td>(</td>
-          <td class="paramtype">const std::string &amp;&#160;</td>
-          <td class="paramname"><em>policy_</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00055">55</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
-
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
-
-</div>
-</div>
-<a id="a9c8aba8238c35a5bc5754f30a694435f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a9c8aba8238c35a5bc5754f30a694435f">&#9670;&nbsp;</a></span>smushImages()</h2>
-
+<a class="anchor" id="a9c8aba8238c35a5bc5754f30a694435f"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4217,7 +4030,7 @@
         <tr>
           <td class="memname">void Magick::smushImages </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Image.html">Image</a> *&#160;</td>
+          <td class="paramtype">Image *&#160;</td>
           <td class="paramname"><em>smushedImage_</em>, </td>
         </tr>
         <tr>
@@ -4252,15 +4065,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02800">2800</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02787">2787</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00720">Image</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01314">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="Drawable_8h_source.html#l00642">Image</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l01379">Magick::Image::quiet()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
 </div>
 </div>
-<a id="ab2ba5f1b607df720ab1f562e2d232980"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ab2ba5f1b607df720ab1f562e2d232980">&#9670;&nbsp;</a></span>TerminateMagick()</h2>
-
+<a class="anchor" id="ab2ba5f1b607df720ab1f562e2d232980"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4274,15 +4085,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Functions_8cpp_source.html#l00067">67</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Functions_8cpp_source.html#l00066">66</a> of file <a class="el" href="Functions_8cpp_source.html">Functions.cpp</a>.</p>
 
-<p class="reference">References <a class="el" href="Functions_8cpp_source.html#l00020">magick_initialized</a>.</p>
+<p>References <a class="el" href="Functions_8cpp_source.html#l00020">magick_initialized</a>.</p>
 
 </div>
 </div>
-<a id="a50d2b9a50e064715baa028e95d09c8c7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a50d2b9a50e064715baa028e95d09c8c7">&#9670;&nbsp;</a></span>throwException()</h2>
-
+<a class="anchor" id="a50d2b9a50e064715baa028e95d09c8c7"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4306,13 +4115,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l02101">coderInfoList()</a>, and <a class="el" href="STL_8h_source.html#l02406">mapImages()</a>.</p>
+<p>Referenced by <a class="el" href="STL_8h_source.html#l02123">coderInfoList()</a>, <a class="el" href="STL_8h_source.html#l02428">mapImages()</a>, <a class="el" href="STL_8h_source.html#l02687">quantizeImages()</a>, <a class="el" href="Image_8cpp_source.html#l04074">Magick::Image::read()</a>, and <a class="el" href="Image_8cpp_source.html#l05121">Magick::Image::throwImageException()</a>.</p>
 
 </div>
 </div>
-<a id="acf038b43e710ea498bb5b9914e54ee3a"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#acf038b43e710ea498bb5b9914e54ee3a">&#9670;&nbsp;</a></span>throwExceptionExplicit()</h2>
-
+<a class="anchor" id="acf038b43e710ea498bb5b9914e54ee3a"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4342,17 +4149,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Exception_8cpp_source.html#l00806">806</a> of file <a class="el" href="Exception_8cpp_source.html">Exception.cpp</a>.</p>
-
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, and <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>.</p>
-
-<p class="reference">Referenced by <a class="el" href="CoderInfo_8cpp_source.html#l00044">Magick::CoderInfo::CoderInfo()</a>, <a class="el" href="STL_8h_source.html#l02101">coderInfoList()</a>, <a class="el" href="Image_8cpp_source.html#l02350">Magick::Image::colorize()</a>, <a class="el" href="Image_8cpp_source.html#l02377">Magick::Image::colorMap()</a>, <a class="el" href="Image_8cpp_source.html#l00537">Magick::Image::colorMapSize()</a>, <a class="el" href="BlobRef_8cpp_source.html#l00044">Magick::BlobRef::decrease()</a>, <a class="el" href="ImageRef_8cpp_source.html#l00048">Magick::ImageRef::decrease()</a>, <a class="el" href="Image_8cpp_source.html#l00703">Magick::Image::directory()</a>, <a class="el" href="Image_8cpp_source.html#l00905">Magick::Image::format()</a>, <a class="el" href="Image_8cpp_source.html#l00950">Magick::Image::geometry()</a>, <a class="el" href="Image_8cpp_source.html#l03274">Magick::Image::getConstMetacontent()</a>, <a class="el" href="Image_8cpp_source.html#l03288">Magick::Image::getMetacontent()</a>, <a class="el" href="Thread_8cpp_source.html#l00076">Magick::MutexLock::lock()</a>, <a class="el" href="Options_8cpp_source.html#l00389">Magick::Options::magick()</a>, <a class="el" href="Image_8cpp_source.html#l01200">Magick::Image::montageGeometry()</a>, <a class="el" href="Image_8cpp_source.html#l03620">Magick::Image::morphology()</a>, <a class="el" href="Image_8cpp_source.html#l03664">Magick::Image::morphologyChannel()</a>, <a class="el" href="Thread_8cpp_source.html#l00018">Magick::MutexLock::MutexLock()</a>, <a class="el" href="Image_8cpp_source.html#l03767">Magick::Image::opaque()</a>, <a class="el" href="Geometry_8cpp_source.html#l00266">Magick::Geometry::operator std::string()</a>, <a class="el" href="Options_8cpp_source.html#l00580">Magick::Options::strokeDashArray()</a>, <a class="el" href="Image_8cpp_source.html#l04697">Magick::Image::transparent()</a>, <a class="el" href="Image_8cpp_source.html#l04719">Magick::Image::transparentChroma()</a>, and <a class="el" href="Thread_8cpp_source.html#l00095">Magick::MutexLock::unlock()</a>.</p>
+<p>Referenced by <a class="el" href="CoderInfo_8cpp_source.html#l00038">Magick::CoderInfo::CoderInfo()</a>, <a class="el" href="STL_8h_source.html#l02123">coderInfoList()</a>, <a class="el" href="Image_8cpp_source.html#l02348">Magick::Image::colorize()</a>, <a class="el" href="Image_8cpp_source.html#l02376">Magick::Image::colorMap()</a>, <a class="el" href="Image_8cpp_source.html#l00529">Magick::Image::colorMapSize()</a>, <a class="el" href="Image_8cpp_source.html#l00682">Magick::Image::directory()</a>, <a class="el" href="Image_8cpp_source.html#l00861">Magick::Image::format()</a>, <a class="el" href="Image_8cpp_source.html#l00924">Magick::Image::geometry()</a>, <a class="el" href="Thread_8cpp_source.html#l00071">Magick::MutexLock::lock()</a>, <a class="el" href="Options_8cpp_source.html#l00394">Magick::Options::magick()</a>, <a class="el" href="Image_8cpp_source.html#l01219">Magick::Image::montageGeometry()</a>, <a class="el" href="Image_8cpp_source.html#l03593">Magick::Image::morphology()</a>, <a class="el" href="Image_8cpp_source.html#l03638">Magick::Image::morphologyChannel()</a>, <a class="el" href="Thread_8cpp_source.html#l00018">Magick::MutexLock::MutexLock()</a>, <a class="el" href="Image_8cpp_source.html#l03737">Magick::Image::opaque()</a>, <a class="el" href="Geometry_8cpp_source.html#l00286">Magick::Geometry::operator std::string()</a>, <a class="el" href="Options_8cpp_source.html#l00594">Magick::Options::strokeDashArray()</a>, <a class="el" href="Image_8cpp_source.html#l04745">Magick::Image::transparent()</a>, <a class="el" href="Image_8cpp_source.html#l04765">Magick::Image::transparentChroma()</a>, and <a class="el" href="Thread_8cpp_source.html#l00088">Magick::MutexLock::unlock()</a>.</p>
 
 </div>
 </div>
-<a id="ac47606010574520166cc42f207e26043"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac47606010574520166cc42f207e26043">&#9670;&nbsp;</a></span>unlinkImages()</h2>
-
+<a class="anchor" id="ac47606010574520166cc42f207e26043"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4378,17 +4179,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l01955">1955</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l01955">1955</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Drawable_8h_source.html#l00720">Image</a>.</p>
+<p>References <a class="el" href="Drawable_8h_source.html#l00642">Image</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="STL_8h_source.html#l01975">animateImages()</a>, <a class="el" href="STL_8h_source.html#l01989">appendImages()</a>, <a class="el" href="STL_8h_source.html#l02043">averageImages()</a>, <a class="el" href="STL_8h_source.html#l02062">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02237">combineImages()</a>, <a class="el" href="STL_8h_source.html#l02273">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02299">displayImages()</a>, <a class="el" href="STL_8h_source.html#l02315">evaluateImages()</a>, <a class="el" href="STL_8h_source.html#l02331">flattenImages()</a>, <a class="el" href="STL_8h_source.html#l02386">fxImages()</a>, <a class="el" href="STL_8h_source.html#l02406">mapImages()</a>, <a class="el" href="STL_8h_source.html#l02464">mergeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02479">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02533">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02564">mosaicImages()</a>, <a class="el" href="STL_8h_source.html#l02582">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02611">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02640">optimizeTransparency()</a>, <a class="el" href="STL_8h_source.html#l02702">quantizeImages()</a>, <a class="el" href="STL_8h_source.html#l02800">smushImages()</a>, and <a class="el" href="STL_8h_source.html#l02818">writeImages()</a>.</p>
+<p>Referenced by <a class="el" href="STL_8h_source.html#l01998">animateImages()</a>, <a class="el" href="STL_8h_source.html#l02012">appendImages()</a>, <a class="el" href="STL_8h_source.html#l02066">averageImages()</a>, <a class="el" href="STL_8h_source.html#l02084">coalesceImages()</a>, <a class="el" href="STL_8h_source.html#l02259">combineImages()</a>, <a class="el" href="STL_8h_source.html#l02287">deconstructImages()</a>, <a class="el" href="STL_8h_source.html#l02320">displayImages()</a>, <a class="el" href="STL_8h_source.html#l02336">evaluateImages()</a>, <a class="el" href="STL_8h_source.html#l02352">flattenImages()</a>, <a class="el" href="STL_8h_source.html#l02407">fxImages()</a>, <a class="el" href="STL_8h_source.html#l02428">mapImages()</a>, <a class="el" href="STL_8h_source.html#l02482">mergeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02497">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02551">morphImages()</a>, <a class="el" href="STL_8h_source.html#l02581">mosaicImages()</a>, <a class="el" href="STL_8h_source.html#l02599">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02627">optimizePlusImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02655">optimizeTransparency()</a>, <a class="el" href="STL_8h_source.html#l02687">quantizeImages()</a>, <a class="el" href="STL_8h_source.html#l02787">smushImages()</a>, and <a class="el" href="STL_8h_source.html#l02805">writeImages()</a>.</p>
 
 </div>
 </div>
-<a id="a353443e61d8f8f6d93c6c4530a4a0911"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a353443e61d8f8f6d93c6c4530a4a0911">&#9670;&nbsp;</a></span>writeImages() <span class="overload">[1/2]</span></h2>
-
+<a class="anchor" id="a353443e61d8f8f6d93c6c4530a4a0911"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4426,17 +4225,15 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02818">2818</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02805">2805</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, and <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="demo_8cpp_source.html#l00022">main()</a>.</p>
+<p>Referenced by <a class="el" href="demo_8cpp_source.html#l00022">main()</a>.</p>
 
 </div>
 </div>
-<a id="aa128262a7c0d71cf0e4d71dec6345030"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#aa128262a7c0d71cf0e4d71dec6345030">&#9670;&nbsp;</a></span>writeImages() <span class="overload">[2/2]</span></h2>
-
+<a class="anchor" id="aa128262a7c0d71cf0e4d71dec6345030"></a>
 <div class="memitem">
 <div class="memproto">
 <div class="memtemplate">
@@ -4457,7 +4254,7 @@
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classMagick_1_1Blob.html">Blob</a> *&#160;</td>
+          <td class="paramtype">Blob *&#160;</td>
           <td class="paramname"><em>blob_</em>, </td>
         </tr>
         <tr>
@@ -4474,16 +4271,14 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="STL_8h_source.html#l02845">2845</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
+<p>Definition at line <a class="el" href="STL_8h_source.html#l02831">2831</a> of file <a class="el" href="STL_8h_source.html">STL.h</a>.</p>
 
-<p class="reference">References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Blob_8h_source.html#l00026">Magick::Blob::MallocAllocator</a>, <a class="el" href="Include_8h_source.html#l01542">ThrowPPException</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, and <a class="el" href="Blob_8cpp_source.html#l00121">Magick::Blob::updateNoCopy()</a>.</p>
+<p>References <a class="el" href="Include_8h_source.html#l01523">GetPPException</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Blob_8h_source.html#l00026">Magick::Blob::MallocAllocator</a>, <a class="el" href="Include_8h_source.html#l01527">ThrowPPException</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, and <a class="el" href="Blob_8cpp_source.html#l00148">Magick::Blob::updateNoCopy()</a>.</p>
 
 </div>
 </div>
 <h2 class="groupheader">Variable Documentation</h2>
-<a id="ac395e62fbdf4d3264b2e9f88555e4313"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#ac395e62fbdf4d3264b2e9f88555e4313">&#9670;&nbsp;</a></span>borderGeometryDefault</h2>
-
+<a class="anchor" id="ac395e62fbdf4d3264b2e9f88555e4313"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4493,13 +4288,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00032">32</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00033">33</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a22bc78976cc1764f7d0269292cde99a7"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a22bc78976cc1764f7d0269292cde99a7">&#9670;&nbsp;</a></span>Color</h2>
-
+<a class="anchor" id="a22bc78976cc1764f7d0269292cde99a7"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4509,15 +4302,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Color_8h_source.html#l00016">16</a> of file <a class="el" href="Color_8h_source.html">Color.h</a>.</p>
+<p>Definition at line <a class="el" href="Color_8h_source.html#l00015">15</a> of file <a class="el" href="Color_8h_source.html">Color.h</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="Options_8cpp_source.html#l00091">Magick::Options::backgroundColor()</a>, <a class="el" href="Image_8cpp_source.html#l00374">Magick::Image::backgroundColor()</a>, <a class="el" href="Options_8cpp_source.html#l00118">Magick::Options::borderColor()</a>, <a class="el" href="Image_8cpp_source.html#l00427">Magick::Image::borderColor()</a>, <a class="el" href="Options_8cpp_source.html#l00128">Magick::Options::boxColor()</a>, <a class="el" href="STL_8h_source.html#l02207">colorHistogram()</a>, <a class="el" href="Image_8cpp_source.html#l02402">Magick::Image::colorMap()</a>, <a class="el" href="Options_8cpp_source.html#l00242">Magick::Options::fillColor()</a>, <a class="el" href="demo_8cpp_source.html#l00022">main()</a>, <a class="el" href="Image_8cpp_source.html#l00347">Magick::Image::matteColor()</a>, <a class="el" href="Options_8cpp_source.html#l00567">Magick::Options::strokeColor()</a>, and <a class="el" href="Montage_8cpp_source.html#l00180">Magick::Montage::updateMontageInfo()</a>.</p>
+<p>Referenced by <a class="el" href="Image_8cpp_source.html#l00373">Magick::Image::backgroundColor()</a>, <a class="el" href="Image_8cpp_source.html#l00426">Magick::Image::borderColor()</a>, <a class="el" href="STL_8h_source.html#l02229">colorHistogram()</a>, <a class="el" href="Image_8cpp_source.html#l02395">Magick::Image::colorMap()</a>, <a class="el" href="demo_8cpp_source.html#l00022">main()</a>, <a class="el" href="Image_8cpp_source.html#l01179">Magick::Image::matteColor()</a>, <a class="el" href="Montage_8h_source.html#l00248">Magick::Montage::penColor()</a>, and <a class="el" href="Montage_8cpp_source.html#l00041">Magick::Montage::updateMontageInfo()</a>.</p>
 
 </div>
 </div>
-<a id="a0e7450e18b963f8cca30bd2a7bfef619"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a0e7450e18b963f8cca30bd2a7bfef619">&#9670;&nbsp;</a></span>frameGeometryDefault</h2>
-
+<a class="anchor" id="a0e7450e18b963f8cca30bd2a7bfef619"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4527,13 +4318,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00033">33</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00034">34</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
-<a id="a3af933f0beb32b965e32f79f95e9871c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3af933f0beb32b965e32f79f95e9871c">&#9670;&nbsp;</a></span>Geometry</h2>
-
+<a class="anchor" id="a3af933f0beb32b965e32f79f95e9871c"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4543,15 +4332,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8h_source.html#l00019">19</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00019">19</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="Image_8cpp_source.html#l00444">Magick::Image::boundingBox()</a>, <a class="el" href="TypeMetric_8cpp_source.html#l00030">Magick::TypeMetric::bounds()</a>, <a class="el" href="STL_8cpp_source.html#l00815">Magick::ReadOptions::density()</a>, <a class="el" href="Image_8cpp_source.html#l00950">Magick::Image::geometry()</a>, <a class="el" href="Image_8cpp_source.html#l01074">Magick::Image::isValid()</a>, <a class="el" href="demo_8cpp_source.html#l00022">main()</a>, <a class="el" href="Image_8cpp_source.html#l01200">Magick::Image::montageGeometry()</a>, <a class="el" href="Geometry_8cpp_source.html#l00178">Magick::Geometry::operator=()</a>, <a class="el" href="Options_8cpp_source.html#l00433">Magick::Options::page()</a>, <a class="el" href="Image_8cpp_source.html#l01240">Magick::Image::page()</a>, <a class="el" href="Image_8cpp_source.html#l04139">Magick::Image::repage()</a>, <a class="el" href="Options_8cpp_source.html#l00548">Magick::Options::size()</a>, and <a class="el" href="STL_8cpp_source.html#l00861">Magick::ReadOptions::size()</a>.</p>
+<p>Referenced by <a class="el" href="Image_8cpp_source.html#l00443">Magick::Image::boundingBox()</a>, <a class="el" href="Options_8cpp_source.html#l00188">Magick::Options::density()</a>, <a class="el" href="Image_8cpp_source.html#l00650">Magick::Image::density()</a>, <a class="el" href="STL_8cpp_source.html#l00851">Magick::ReadOptions::density()</a>, <a class="el" href="Image_8cpp_source.html#l00924">Magick::Image::geometry()</a>, <a class="el" href="Image_8cpp_source.html#l01034">Magick::Image::isValid()</a>, <a class="el" href="demo_8cpp_source.html#l00022">main()</a>, <a class="el" href="Geometry_8cpp_source.html#l00192">Magick::Geometry::operator=()</a>, <a class="el" href="Options_8cpp_source.html#l00448">Magick::Options::page()</a>, <a class="el" href="Image_8cpp_source.html#l01258">Magick::Image::page()</a>, <a class="el" href="Image_8cpp_source.html#l04127">Magick::Image::repage()</a>, <a class="el" href="Options_8cpp_source.html#l00562">Magick::Options::size()</a>, and <a class="el" href="STL_8cpp_source.html#l00887">Magick::ReadOptions::size()</a>.</p>
 
 </div>
 </div>
-<a id="a4848723142d4954f66b2dbb123fc29f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a4848723142d4954f66b2dbb123fc29f0">&#9670;&nbsp;</a></span>Image</h2>
-
+<a class="anchor" id="a4848723142d4954f66b2dbb123fc29f0"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4561,15 +4348,13 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Drawable_8h_source.html#l00720">720</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
+<p>Definition at line <a class="el" href="Drawable_8h_source.html#l00642">642</a> of file <a class="el" href="Drawable_8h_source.html">Drawable.h</a>.</p>
 
-<p class="reference">Referenced by <a class="el" href="Image_8cpp_source.html#l01711">Magick::Image::adaptiveBlur()</a>, <a class="el" href="Image_8cpp_source.html#l01722">Magick::Image::adaptiveResize()</a>, <a class="el" href="Image_8cpp_source.html#l01744">Magick::Image::adaptiveSharpen()</a>, <a class="el" href="Image_8cpp_source.html#l01755">Magick::Image::adaptiveSharpenChannel()</a>, <a class="el" href="Image_8cpp_source.html#l01769">Magick::Image::adaptiveThreshold()</a>, <a class="el" href="Image_8cpp_source.html#l01783">Magick::Image::addNoise()</a>, <a class="el" href="Image_8cpp_source.html#l01794">Magick::Image::addNoiseChannel()</a>, <a class="el" href="Image_8cpp_source.html#l01808">Magick::Image::affineTransform()</a>, <a class="el" href="STL_8h_source.html#l01989">appendImages()</a>, <a class="el" href="Image_8cpp_source.html#l02041">Magick::Image::autoOrient()</a>, <a class="el" href="STL_8h_source.html#l02043">averageImages()</a>, <a class="el" href="Image_8cpp_source.html#l02083">Magick::Image::blueShift()</a>, <a class="el" href="Image_8cpp_source.html#l02094">Magick::Image::blur()</a>, <a class="el" href="Image_8cpp_source.html#l02105">Magick::Image::blurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l02119">Magick::Image::border()</a>, <a class="el" href="Image_8cpp_source.html#l02154">Magick::Image::cannyEdge()</a>, <a class="el" href="Image_8cpp_source.html#l02176">Magick::Image::channel()</a>, <a class="el" href="Image_8cpp_source.html#l02187">Magick::Image::charcoal()</a>, <a class="el" href="Image_8cpp_source.html#l02198">Magick::Image::charcoalChannel()</a>, <a class="el" href="Image_8cpp_source.html#l02212">Magick::Image::chop()</a>, <a class="el" href="STL_8h_source.html#l02062">coalesceImages()</a>, <a class="el" href="Image_8cpp_source.html#l02350">Magick::Image::colorize()</a>, <a class="el" href="Image_8cpp_source.html#l02377">Magick::Image::colorMap()</a>, <a class="el" href="Image_8cpp_source.html#l02417">Magick::Image::colorMatrix()</a>, <a class="el" href="STL_8h_source.html#l02237">combineImages()</a>, <a class="el" href="Image_8cpp_source.html#l02488">Magick::Image::compare()</a>, <a class="el" href="Image_8cpp_source.html#l02504">Magick::Image::compareChannel()</a>, <a class="el" href="Image_8cpp_source.html#l02572">Magick::Image::connectedComponents()</a>, <a class="el" href="Image_8cpp_source.html#l02612">Magick::Image::convolve()</a>, <a class="el" href="Image_8cpp_source.html#l02654">Magick::Image::crop()</a>, <a class="el" href="STL_8h_source.html#l02259">cropToTiles()</a>, <a class="el" href="STL_8h_source.html#l02273">deconstructImages()</a>, <a class="el" href="Image_8cpp_source.html#l02743">Magick::Image::deskew()</a>, <a class="el" href="Image_8cpp_source.html#l02754">Magick::Image::despeckle()</a>, <a class="el" href="Image_8cpp_source.html#l02772">Magick::Image::distort()</a>, <a class="el" href="Image_8cpp_source.html#l02834">Magick::Image::edge()</a>, <a class="el" href="Image_8cpp_source.html#l02845">Magick::Image::emboss()</a>, <a class="el" href="Image_8cpp_source.html#l02864">Magick::Image::enhance()</a>, <a class="el" href="STL_8h_source.html#l02315">evaluateImages()</a>, <a class="el" href="Image_8cpp_source.html#l02940">Magick::Image::extent()</a>, <a class="el" href="Drawable_8cpp_source.html#l00592">Magick::DrawableCompositeImage::filename()</a>, <a class="el" href="Options_8cpp_source.html#l00242">Magick::Options::fillColor()</a>, <a class="el" href="Image_8cpp_source.html#l00815">Magick::Image::fillPattern()</a>, <a class="el" href="STL_8h_source.html#l02331">flattenImages()</a>, <a class="el" href="Image_8cpp_source.html#l02984">Magick::Image::flip()</a>, <a class="el" href="Image_8cpp_source.html#l03107">Magick::Image::flop()</a>, <a class="el" href="STL_8h_source.html#l02347">forwardFourierTransformImage()</a>, <a class="el" href="Image_8cpp_source.html#l03146">Magick::Image::frame()</a>, <a class="el" href="Image_8cpp_source.html#l03189">Magick::Image::fx()</a>, <a class="el" href="STL_8h_source.html#l02386">fxImages()</a>, <a class="el" href="Image_8cpp_source.html#l03237">Magick::Image::gaussianBlur()</a>, <a class="el" href="Image_8cpp_source.html#l03248">Magick::Image::gaussianBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l03332">Magick::Image::houghLine()</a>, <a class="el" href="Image_8cpp_source.html#l00206">Magick::Image::Image()</a>, <a class="el" href="Drawable_8cpp_source.html#l00603">Magick::DrawableCompositeImage::image()</a>, <a class="el" href="Image_8cpp_source.html#l03356">Magick::Image::implode()</a>, <a class="el" href="STL_8h_source.html#l01871">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l03373">Magick::Image::inverseFourierTransform()</a>, <a class="el" href="Image_8cpp_source.html#l03386">Magick::Image::kuwahara()</a>, <a class="el" href="Image_8cpp_source.html#l03397">Magick::Image::kuwaharaChannel()</a>, <a class="el" href="STL_8h_source.html#l01901">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l03496">Magick::Image::liquidRescale()</a>, <a class="el" href="Image_8cpp_source.html#l03518">Magick::Image::localContrast()</a>, <a class="el" href="Image_8cpp_source.html#l03529">Magick::Image::localContrastChannel()</a>, <a class="el" href="Image_8cpp_source.html#l03543">Magick::Image::magnify()</a>, <a class="el" href="STL_8h_source.html#l02406">mapImages()</a>, <a class="el" href="Image_8cpp_source.html#l03564">Magick::Image::meanShift()</a>, <a class="el" href="Image_8cpp_source.html#l03577">Magick::Image::medianFilter()</a>, <a class="el" href="STL_8h_source.html#l02464">mergeImageLayers()</a>, <a class="el" href="Image_8cpp_source.html#l03589">Magick::Image::minify()</a>, <a class="el" href="STL_8h_source.html#l02479">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02533">morphImages()</a>, <a class="el" href="Image_8cpp_source.html#l03620">Magick::Image::morphology()</a>, <a class="el" href="Image_8cpp_source.html#l03664">Magick::Image::morphologyChannel()</a>, <a class="el" href="STL_8h_source.html#l02564">mosaicImages()</a>, <a class="el" href="Image_8cpp_source.html#l03717">Magick::Image::motionBlur()</a>, <a class="el" href="Image_8cpp_source.html#l03756">Magick::Image::oilPaint()</a>, <a class="el" href="Drawable_8cpp_source.html#l00576">Magick::DrawableCompositeImage::operator=()</a>, <a class="el" href="STL_8h_source.html#l02582">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02611">optimizePlusImageLayers()</a>, <a class="el" href="Image_8cpp_source.html#l03843">Magick::Image::ping()</a>, <a class="el" href="Image_8cpp_source.html#l03912">Magick::Image::polaroid()</a>, <a class="el" href="STL_8h_source.html#l02702">quantizeImages()</a>, <a class="el" href="Image_8cpp_source.html#l04022">Magick::Image::read()</a>, <a class="el" href="STL_8h_source.html#l02730">readImages()</a>, <a class="el" href="Image_8cpp_source.html#l04127">Magick::Image::reduceNoise()</a>, <a class="el" href="ImageRef_8cpp_source.html#l00100">Magick::ImageRef::replaceImage()</a>, <a class="el" href="Image_8cpp_source.html#l05058">Magick::Image::replaceImage()</a>, <a class="el" href="Image_8cpp_source.html#l04149">Magick::Image::resample()</a>, <a class="el" href="Image_8cpp_source.html#l04161">Magick::Image::resize()</a>, <a class="el" href="Image_8cpp_source.html#l04186">Magick::Image::roll()</a>, <a class="el" href="Image_8cpp_source.html#l04209">Magick::Image::rotate()</a>, <a class="el" href="Image_8cpp_source.html#l04220">Magick::Image::rotationalBlur()</a>, <a class="el" href="Image_8cpp_source.html#l04231">Magick::Image::rotationalBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04245">Magick::Image::sample()</a>, <a class="el" href="Image_8cpp_source.html#l04267">Magick::Image::scale()</a>, <a class="el" href="Image_8cpp_source.html#l04301">Magick::Image::selectiveBlur()</a>, <a class="el" href="Image_8cpp_source.html#l04314">Magick::Image::selectiveBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04329">Magick::Image::separate()</a>, <a class="el" href="STL_8h_source.html#l02777">separateImages()</a>, <a class="el" href="Image_8cpp_source.html#l04343">Magick::Image::sepiaTone()</a>, <a class="el" href="Image_8cpp_source.html#l04383">Magick::Image::shade()</a>, <a class="el" href="Image_8cpp_source.html#l04396">Magick::Image::shadow()</a>, <a class="el" href="Image_8cpp_source.html#l04409">Magick::Image::sharpen()</a>, <a class="el" href="Image_8cpp_source.html#l04420">Magick::Image::sharpenChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04434">Magick::Image::shave()</a>, <a class="el" href="Image_8cpp_source.html#l04448">Magick::Image::shear()</a>, <a class="el" href="Image_8cpp_source.html#l04474">Magick::Image::sketch()</a>, <a class="el" href="STL_8h_source.html#l02800">smushImages()</a>, <a class="el" href="Image_8cpp_source.html#l04494">Magick::Image::sparseColor()</a>, <a class="el" href="Image_8cpp_source.html#l04510">Magick::Image::splice()</a>, <a class="el" href="Image_8cpp_source.html#l04539">Magick::Image::spread()</a>, <a class="el" href="Image_8cpp_source.html#l04555">Magick::Image::stegano()</a>, <a class="el" href="Image_8cpp_source.html#l04566">Magick::Image::stereo()</a>, <a class="el" href="Options_8cpp_source.html#l00567">Magick::Options::strokeColor()</a>, <a class="el" href="Image_8cpp_source.html#l01470">Magick::Image::strokePattern()</a>, <a class="el" href="Image_8cpp_source.html#l04585">Magick::Image::subImageSearch()</a>, <a class="el" href="Image_8cpp_source.html#l04607">Magick::Image::swirl()</a>, <a class="el" href="Image_8cpp_source.html#l04642">Magick::Image::thumbnail()</a>, <a class="el" href="Image_8cpp_source.html#l04664">Magick::Image::tint()</a>, <a class="el" href="Image_8cpp_source.html#l04748">Magick::Image::transpose()</a>, <a class="el" href="Image_8cpp_source.html#l04759">Magick::Image::transverse()</a>, <a class="el" href="Image_8cpp_source.html#l04770">Magick::Image::trim()</a>, <a class="el" href="Image_8cpp_source.html#l04781">Magick::Image::uniqueColors()</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, <a class="el" href="Image_8cpp_source.html#l04795">Magick::Image::unsharpmask()</a>, <a class="el" href="Image_8cpp_source.html#l04808">Magick::Image::unsharpmaskChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04824">Magick::Image::vignette()</a>, <a class="el" href="Image_8cpp_source.html#l04836">Magick::Image::wave()</a>, <a class="el" href="Image_8cpp_source.html#l04848">Magick::Image::waveletDenoise()</a>, <a class="el" href="Image_8cpp_source.html#l04981">Magick::Image::zoom()</a>, and <a class="el" href="ImageRef_8cpp_source.html#l00037">Magick::ImageRef::~ImageRef()</a>.</p>
+<p>Referenced by <a class="el" href="Image_8cpp_source.html#l01782">Magick::Image::adaptiveBlur()</a>, <a class="el" href="Image_8cpp_source.html#l01793">Magick::Image::adaptiveResize()</a>, <a class="el" href="Image_8cpp_source.html#l01815">Magick::Image::adaptiveSharpen()</a>, <a class="el" href="Image_8cpp_source.html#l01826">Magick::Image::adaptiveSharpenChannel()</a>, <a class="el" href="Image_8cpp_source.html#l01839">Magick::Image::adaptiveThreshold()</a>, <a class="el" href="Image_8cpp_source.html#l01852">Magick::Image::addNoise()</a>, <a class="el" href="Image_8cpp_source.html#l01863">Magick::Image::addNoiseChannel()</a>, <a class="el" href="Image_8cpp_source.html#l01876">Magick::Image::affineTransform()</a>, <a class="el" href="STL_8h_source.html#l02012">appendImages()</a>, <a class="el" href="Image_8cpp_source.html#l02083">Magick::Image::autoOrient()</a>, <a class="el" href="STL_8h_source.html#l02066">averageImages()</a>, <a class="el" href="Image_8cpp_source.html#l02115">Magick::Image::blueShift()</a>, <a class="el" href="Image_8cpp_source.html#l02127">Magick::Image::blur()</a>, <a class="el" href="Image_8cpp_source.html#l02138">Magick::Image::blurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l02151">Magick::Image::border()</a>, <a class="el" href="Image_8cpp_source.html#l02181">Magick::Image::cannyEdge()</a>, <a class="el" href="Image_8cpp_source.html#l02228">Magick::Image::charcoal()</a>, <a class="el" href="Image_8cpp_source.html#l02239">Magick::Image::chop()</a>, <a class="el" href="Image_8cpp_source.html#l00502">Magick::Image::clipMask()</a>, <a class="el" href="STL_8h_source.html#l02084">coalesceImages()</a>, <a class="el" href="Image_8cpp_source.html#l02348">Magick::Image::colorize()</a>, <a class="el" href="Image_8cpp_source.html#l02409">Magick::Image::colorMatrix()</a>, <a class="el" href="STL_8h_source.html#l02259">combineImages()</a>, <a class="el" href="Image_8cpp_source.html#l02474">Magick::Image::compare()</a>, <a class="el" href="Image_8cpp_source.html#l02490">Magick::Image::compareChannel()</a>, <a class="el" href="Image_8cpp_source.html#l02554">Magick::Image::connectedComponents()</a>, <a class="el" href="Image_8cpp_source.html#l02589">Magick::Image::convolve()</a>, <a class="el" href="Image_8cpp_source.html#l02616">Magick::Image::crop()</a>, <a class="el" href="STL_8h_source.html#l02273">cropToTiles()</a>, <a class="el" href="STL_8h_source.html#l02287">deconstructImages()</a>, <a class="el" href="Image_8cpp_source.html#l02702">Magick::Image::deskew()</a>, <a class="el" href="Image_8cpp_source.html#l02713">Magick::Image::despeckle()</a>, <a class="el" href="Image_8cpp_source.html#l02740">Magick::Image::distort()</a>, <a class="el" href="Image_8cpp_source.html#l02803">Magick::Image::edge()</a>, <a class="el" href="Image_8cpp_source.html#l02814">Magick::Image::emboss()</a>, <a class="el" href="Image_8cpp_source.html#l02833">Magick::Image::enhance()</a>, <a class="el" href="STL_8h_source.html#l02336">evaluateImages()</a>, <a class="el" href="Image_8cpp_source.html#l02858">Magick::Image::extent()</a>, <a class="el" href="Drawable_8cpp_source.html#l00506">Magick::DrawableCompositeImage::filename()</a>, <a class="el" href="Options_8cpp_source.html#l00244">Magick::Options::fillColor()</a>, <a class="el" href="Image_8cpp_source.html#l00791">Magick::Image::fillPattern()</a>, <a class="el" href="STL_8h_source.html#l02352">flattenImages()</a>, <a class="el" href="Image_8cpp_source.html#l02905">Magick::Image::flip()</a>, <a class="el" href="Image_8cpp_source.html#l03090">Magick::Image::flop()</a>, <a class="el" href="STL_8h_source.html#l02368">forwardFourierTransformImage()</a>, <a class="el" href="Image_8cpp_source.html#l03126">Magick::Image::frame()</a>, <a class="el" href="Image_8cpp_source.html#l03169">Magick::Image::fx()</a>, <a class="el" href="STL_8h_source.html#l02407">fxImages()</a>, <a class="el" href="Image_8cpp_source.html#l03219">Magick::Image::gaussianBlur()</a>, <a class="el" href="Image_8cpp_source.html#l03230">Magick::Image::gaussianBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l03307">Magick::Image::houghLine()</a>, <a class="el" href="Image_8cpp_source.html#l00210">Magick::Image::Image()</a>, <a class="el" href="Drawable_8cpp_source.html#l00517">Magick::DrawableCompositeImage::image()</a>, <a class="el" href="Image_8cpp_source.html#l03320">Magick::Image::implode()</a>, <a class="el" href="STL_8h_source.html#l01969">insertImages()</a>, <a class="el" href="Image_8cpp_source.html#l03336">Magick::Image::inverseFourierTransform()</a>, <a class="el" href="Image_8cpp_source.html#l03349">Magick::Image::kuwahara()</a>, <a class="el" href="Image_8cpp_source.html#l03360">Magick::Image::kuwaharaChannel()</a>, <a class="el" href="STL_8h_source.html#l01925">linkImages()</a>, <a class="el" href="Image_8cpp_source.html#l03480">Magick::Image::liquidRescale()</a>, <a class="el" href="Image_8cpp_source.html#l03502">Magick::Image::localContrast()</a>, <a class="el" href="Image_8cpp_source.html#l03513">Magick::Image::magnify()</a>, <a class="el" href="STL_8h_source.html#l02428">mapImages()</a>, <a class="el" href="Image_8cpp_source.html#l01122">Magick::Image::mask()</a>, <a class="el" href="Image_8cpp_source.html#l03540">Magick::Image::medianFilter()</a>, <a class="el" href="STL_8h_source.html#l02482">mergeImageLayers()</a>, <a class="el" href="Image_8cpp_source.html#l03552">Magick::Image::mergeLayers()</a>, <a class="el" href="Image_8cpp_source.html#l03563">Magick::Image::minify()</a>, <a class="el" href="STL_8h_source.html#l02497">montageImages()</a>, <a class="el" href="STL_8h_source.html#l02551">morphImages()</a>, <a class="el" href="Image_8cpp_source.html#l03593">Magick::Image::morphology()</a>, <a class="el" href="Image_8cpp_source.html#l03638">Magick::Image::morphologyChannel()</a>, <a class="el" href="STL_8h_source.html#l02581">mosaicImages()</a>, <a class="el" href="Image_8cpp_source.html#l03687">Magick::Image::motionBlur()</a>, <a class="el" href="Image_8cpp_source.html#l03721">Magick::Image::oilPaint()</a>, <a class="el" href="Drawable_8cpp_source.html#l00490">Magick::DrawableCompositeImage::operator=()</a>, <a class="el" href="STL_8h_source.html#l02599">optimizeImageLayers()</a>, <a class="el" href="STL_8h_source.html#l02627">optimizePlusImageLayers()</a>, <a class="el" href="Image_8cpp_source.html#l01287">Magick::Image::penTexture()</a>, <a class="el" href="Image_8cpp_source.html#l03797">Magick::Image::ping()</a>, <a class="el" href="Image_8cpp_source.html#l03867">Magick::Image::polaroid()</a>, <a class="el" href="STL_8h_source.html#l02687">quantizeImages()</a>, <a class="el" href="Image_8cpp_source.html#l04024">Magick::Image::read()</a>, <a class="el" href="STL_8h_source.html#l02723">readImages()</a>, <a class="el" href="Image_8cpp_source.html#l04115">Magick::Image::reduceNoise()</a>, <a class="el" href="Image_8cpp_source.html#l05092">Magick::Image::replaceImage()</a>, <a class="el" href="Image_8cpp_source.html#l04137">Magick::Image::resample()</a>, <a class="el" href="Image_8cpp_source.html#l04160">Magick::Image::resize()</a>, <a class="el" href="Image_8cpp_source.html#l04183">Magick::Image::roll()</a>, <a class="el" href="Image_8cpp_source.html#l04215">Magick::Image::rotate()</a>, <a class="el" href="Image_8cpp_source.html#l04226">Magick::Image::rotationalBlur()</a>, <a class="el" href="Image_8cpp_source.html#l04237">Magick::Image::rotationalBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04250">Magick::Image::sample()</a>, <a class="el" href="Image_8cpp_source.html#l04272">Magick::Image::scale()</a>, <a class="el" href="Image_8cpp_source.html#l04306">Magick::Image::selectiveBlur()</a>, <a class="el" href="Image_8cpp_source.html#l04319">Magick::Image::selectiveBlurChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04332">Magick::Image::separate()</a>, <a class="el" href="STL_8h_source.html#l02770">separateImages()</a>, <a class="el" href="Image_8cpp_source.html#l04346">Magick::Image::sepiaTone()</a>, <a class="el" href="Image_8cpp_source.html#l04370">Magick::Image::shade()</a>, <a class="el" href="Image_8cpp_source.html#l04383">Magick::Image::shadow()</a>, <a class="el" href="Image_8cpp_source.html#l04395">Magick::Image::sharpen()</a>, <a class="el" href="Image_8cpp_source.html#l04406">Magick::Image::sharpenChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04419">Magick::Image::shave()</a>, <a class="el" href="Image_8cpp_source.html#l04433">Magick::Image::shear()</a>, <a class="el" href="Image_8cpp_source.html#l04470">Magick::Image::sketch()</a>, <a class="el" href="STL_8h_source.html#l02787">smushImages()</a>, <a class="el" href="Image_8cpp_source.html#l04489">Magick::Image::sparseColor()</a>, <a class="el" href="Image_8cpp_source.html#l04503">Magick::Image::splice()</a>, <a class="el" href="Image_8cpp_source.html#l04532">Magick::Image::spread()</a>, <a class="el" href="Image_8cpp_source.html#l04587">Magick::Image::stegano()</a>, <a class="el" href="Image_8cpp_source.html#l04598">Magick::Image::stereo()</a>, <a class="el" href="Options_8cpp_source.html#l00581">Magick::Options::strokeColor()</a>, <a class="el" href="Image_8cpp_source.html#l01531">Magick::Image::strokePattern()</a>, <a class="el" href="Image_8cpp_source.html#l04616">Magick::Image::subImageSearch()</a>, <a class="el" href="Image_8cpp_source.html#l04645">Magick::Image::swirl()</a>, <a class="el" href="Image_8cpp_source.html#l04677">Magick::Image::thumbnail()</a>, <a class="el" href="Image_8cpp_source.html#l04699">Magick::Image::tint()</a>, <a class="el" href="Image_8cpp_source.html#l04790">Magick::Image::transpose()</a>, <a class="el" href="Image_8cpp_source.html#l04801">Magick::Image::transverse()</a>, <a class="el" href="Image_8cpp_source.html#l04812">Magick::Image::trim()</a>, <a class="el" href="Image_8cpp_source.html#l04823">Magick::Image::uniqueColors()</a>, <a class="el" href="STL_8h_source.html#l01955">unlinkImages()</a>, <a class="el" href="Image_8cpp_source.html#l04837">Magick::Image::unsharpmask()</a>, <a class="el" href="Image_8cpp_source.html#l04850">Magick::Image::unsharpmaskChannel()</a>, <a class="el" href="Image_8cpp_source.html#l04864">Magick::Image::vignette()</a>, <a class="el" href="Image_8cpp_source.html#l04876">Magick::Image::wave()</a>, <a class="el" href="Image_8cpp_source.html#l04887">Magick::Image::waveletDenoise()</a>, and <a class="el" href="Image_8cpp_source.html#l05010">Magick::Image::zoom()</a>.</p>
 
 </div>
 </div>
-<a id="a3ee492c8fe7be1773705f97e70243cd1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#a3ee492c8fe7be1773705f97e70243cd1">&#9670;&nbsp;</a></span>Offset</h2>
-
+<a class="anchor" id="a3ee492c8fe7be1773705f97e70243cd1"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4579,31 +4364,11 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Geometry_8h_source.html#l00141">141</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
+<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00151">151</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
 
 </div>
 </div>
-<a id="af3972e1334f3bc1e4b724deba6737410"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#af3972e1334f3bc1e4b724deba6737410">&#9670;&nbsp;</a></span>Point</h2>
-
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">class <a class="el" href="Include_8h.html#a3648b581d4f8adf56a18ae67b7111a04">MagickPPExport</a> <a class="el" href="classMagick_1_1Point.html">Magick::Point</a></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p class="definition">Definition at line <a class="el" href="Geometry_8h_source.html#l00198">198</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
-
-<p class="reference">Referenced by <a class="el" href="Options_8cpp_source.html#l00186">Magick::Options::density()</a>, <a class="el" href="Image_8cpp_source.html#l00671">Magick::Image::density()</a>, and <a class="el" href="gravity_8cpp_source.html#l00024">main()</a>.</p>
-
-</div>
-</div>
-<a id="addf16f642a7ed582559edb81fe2de6ce"></a>
-<h2 class="memtitle"><span class="permalink"><a href="namespaceMagick.html#addf16f642a7ed582559edb81fe2de6ce">&#9670;&nbsp;</a></span>raiseGeometryDefault</h2>
-
+<a class="anchor" id="addf16f642a7ed582559edb81fe2de6ce"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -4613,7 +4378,7 @@
       </table>
 </div><div class="memdoc">
 
-<p class="definition">Definition at line <a class="el" href="Image_8cpp_source.html#l00034">34</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
+<p>Definition at line <a class="el" href="Image_8cpp_source.html#l00035">35</a> of file <a class="el" href="Image_8cpp_source.html">Image.cpp</a>.</p>
 
 </div>
 </div>
@@ -4625,7 +4390,7 @@
     <li class="navelem"><a class="el" href="namespaceMagick.html">Magick</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/namespaceMagickCore.html b/www/api/Magick++/namespaceMagickCore.html
index d767bdd..7ebcf75 100644
--- a/www/api/Magick++/namespaceMagickCore.html
+++ b/www/api/Magick++/namespaceMagickCore.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: MagickCore Namespace Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('namespaceMagickCore.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -68,7 +62,7 @@
     <li class="navelem"><a class="el" href="namespaceMagickCore.html">MagickCore</a></li>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/namespacemembers.html b/www/api/Magick++/namespacemembers.html
index b5954a9..72013ea 100644
--- a/www/api/Magick++/namespacemembers.html
+++ b/www/api/Magick++/namespacemembers.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Namespace Members</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,15 +46,13 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('namespacemembers.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="contents">
 <div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div>
 
-<h3><a id="index_a"></a>- a -</h3><ul>
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
 <li>animateImages()
 : <a class="el" href="namespaceMagick.html#a9ca40d51373df1cd97fd566758f2a2e3">Magick</a>
 </li>
@@ -77,17 +71,14 @@
 </ul>
 
 
-<h3><a id="index_b"></a>- b -</h3><ul>
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
 <li>borderGeometryDefault
 : <a class="el" href="namespaceMagick.html#ac395e62fbdf4d3264b2e9f88555e4313">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_c"></a>- c -</h3><ul>
-<li>channelMaskImages()
-: <a class="el" href="namespaceMagick.html#ae6d1d85502b46b1d71a2cfe768d85c23">Magick</a>
-</li>
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
 <li>CloneString()
 : <a class="el" href="namespaceMagick.html#a7c22815e81dd2dcc911a3d83986fb343">Magick</a>
 </li>
@@ -104,10 +95,10 @@
 : <a class="el" href="namespaceMagick.html#a182ce19ab46b91d24e49c586668ea419">Magick</a>
 </li>
 <li>combineImages()
-: <a class="el" href="namespaceMagick.html#a683fc2d2921aa0b16e7d9d4c00cdf1b8">Magick</a>
+: <a class="el" href="namespaceMagick.html#a90036200730f4dee3aa1a9ac77dff0c1">Magick</a>
 </li>
 <li>CoordinateList
-: <a class="el" href="namespaceMagick.html#a68cadc31d8829341d1faba35618af7b1">Magick</a>
+: <a class="el" href="namespaceMagick.html#ad25a1de5284a65c707091652ab4a8890">Magick</a>
 </li>
 <li>createException()
 : <a class="el" href="namespaceMagick.html#a3a1ac5d0be573455c1a7cc93a35445ab">Magick</a>
@@ -118,7 +109,7 @@
 </ul>
 
 
-<h3><a id="index_d"></a>- d -</h3><ul>
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
 <li>deconstructImages()
 : <a class="el" href="namespaceMagick.html#a4abe55c5b6785cac1ad80c8a4e3f63f0">Magick</a>
 </li>
@@ -129,14 +120,14 @@
 : <a class="el" href="namespaceMagick.html#a243d5ec32297f6e9b81dad35c0360c32">Magick</a>
 </li>
 <li>DrawableList
-: <a class="el" href="namespaceMagick.html#a276bd0424953aa7c0499f84a05d91918">Magick</a>
+: <a class="el" href="namespaceMagick.html#a9324c6bef2f2c6f3b1ec4697a3932c1a">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_e"></a>- e -</h3><ul>
+<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
 <li>EnableOpenCL()
-: <a class="el" href="namespaceMagick.html#a60f25d23a489a4287fb658b922a2a4a5">Magick</a>
+: <a class="el" href="namespaceMagick.html#a8db47cc183547a1f5a1c6b5a5a81871f">Magick</a>
 </li>
 <li>evaluateImages()
 : <a class="el" href="namespaceMagick.html#a2c899be571090eb15c152b6ebabd2166">Magick</a>
@@ -144,7 +135,7 @@
 </ul>
 
 
-<h3><a id="index_f"></a>- f -</h3><ul>
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
 <li>flattenImages()
 : <a class="el" href="namespaceMagick.html#a77d4e5b74f8b925b579d04df7ecb93d7">Magick</a>
 </li>
@@ -163,14 +154,14 @@
 </ul>
 
 
-<h3><a id="index_g"></a>- g -</h3><ul>
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
 <li>Geometry
 : <a class="el" href="namespaceMagick.html#a3af933f0beb32b965e32f79f95e9871c">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_i"></a>- i -</h3><ul>
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
 <li>Image
 : <a class="el" href="namespaceMagick.html#a4848723142d4954f66b2dbb123fc29f0">Magick</a>
 </li>
@@ -183,19 +174,19 @@
 </ul>
 
 
-<h3><a id="index_l"></a>- l -</h3><ul>
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
 <li>linkImages()
 : <a class="el" href="namespaceMagick.html#a7a43dbf4aafe85d75e55d634e42dc79e">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_m"></a>- m -</h3><ul>
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
 <li>mapImages()
 : <a class="el" href="namespaceMagick.html#abeff1d421ce2999145680472593168c0">Magick</a>
 </li>
 <li>mergeImageLayers()
-: <a class="el" href="namespaceMagick.html#a3b31af689cd1e2cae3cc60f55d46b3a7">Magick</a>
+: <a class="el" href="namespaceMagick.html#ae92181250d02d2458f6d525af540b04d">Magick</a>
 </li>
 <li>montageImages()
 : <a class="el" href="namespaceMagick.html#aa624917ecf1fd5b11376cca3341c651b">Magick</a>
@@ -209,7 +200,7 @@
 </ul>
 
 
-<h3><a id="index_o"></a>- o -</h3><ul>
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
 <li>Offset
 : <a class="el" href="namespaceMagick.html#a3ee492c8fe7be1773705f97e70243cd1">Magick</a>
 </li>
@@ -217,19 +208,19 @@
 : <a class="el" href="namespaceMagick.html#ac142178b77a9f733f1ff3a1c9e7b13a0">Magick</a>
 </li>
 <li>operator&lt;()
-: <a class="el" href="namespaceMagick.html#a84d152322c7897ab0af7d6fdbe6d7086">Magick</a>
+: <a class="el" href="namespaceMagick.html#aaaf83ebd5ca5c3fbfaf7908d72253e7a">Magick</a>
 </li>
 <li>operator&lt;=()
 : <a class="el" href="namespaceMagick.html#a49385d0c3be939293a9dbbcd00b7e2e5">Magick</a>
 </li>
 <li>operator==()
-: <a class="el" href="namespaceMagick.html#a66c961e340d5302d48c950fea4e16f54">Magick</a>
+: <a class="el" href="namespaceMagick.html#a6b69c8f4da1fe79508d04f3768997a85">Magick</a>
 </li>
 <li>operator&gt;()
-: <a class="el" href="namespaceMagick.html#a674ec3ded14babb8fd77e749b2f01eab">Magick</a>
+: <a class="el" href="namespaceMagick.html#a94aa89b901a1c5b7e79c41b2a0c13c71">Magick</a>
 </li>
 <li>operator&gt;=()
-: <a class="el" href="namespaceMagick.html#a1b336afe662a1dbcc2d7ad6f03f974d5">Magick</a>
+: <a class="el" href="namespaceMagick.html#ada6626582d944600959bf771fcbf12f0">Magick</a>
 </li>
 <li>optimizeImageLayers()
 : <a class="el" href="namespaceMagick.html#a89cf920ec662308ffe2cbe713ef9e3be">Magick</a>
@@ -243,21 +234,15 @@
 </ul>
 
 
-<h3><a id="index_p"></a>- p -</h3><ul>
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
 <li>PathArcArgsList
-: <a class="el" href="namespaceMagick.html#a40749dfdc7f056fa5aee9b6d344fbaf5">Magick</a>
+: <a class="el" href="namespaceMagick.html#afc6967df9561c7a5dbc64e4cf616fff2">Magick</a>
 </li>
 <li>PathCurveToArgsList
-: <a class="el" href="namespaceMagick.html#a297641e20272f1c24e5677c16ee7b00e">Magick</a>
+: <a class="el" href="namespaceMagick.html#abef478b25a92921fecf769ed1bd73b2c">Magick</a>
 </li>
 <li>PathQuadraticCurvetoArgsList
-: <a class="el" href="namespaceMagick.html#aab20fd385fcad8bf38d8e04752f2ef38">Magick</a>
-</li>
-<li>pingImages()
-: <a class="el" href="namespaceMagick.html#ac93b63e827a12099c4f433d8acb0bad1">Magick</a>
-</li>
-<li>Point
-: <a class="el" href="namespaceMagick.html#af3972e1334f3bc1e4b724deba6737410">Magick</a>
+: <a class="el" href="namespaceMagick.html#abd21029343e4fb680e2c975111be3b3b">Magick</a>
 </li>
 <li>profileNames()
 : <a class="el" href="namespaceMagick.html#a94bba48d3cf2ccb8a7f6e65c5e416eff">Magick</a>
@@ -265,43 +250,37 @@
 </ul>
 
 
-<h3><a id="index_q"></a>- q -</h3><ul>
+<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
 <li>quantizeImages()
 : <a class="el" href="namespaceMagick.html#acebefe1abb379c0f2c1e8e8c3b3fbf33">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_r"></a>- r -</h3><ul>
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
 <li>raiseGeometryDefault
 : <a class="el" href="namespaceMagick.html#addf16f642a7ed582559edb81fe2de6ce">Magick</a>
 </li>
 <li>readImages()
-: <a class="el" href="namespaceMagick.html#a6c7a46b842b0054b093e266a2f400642">Magick</a>
-</li>
-<li>restoreChannelMaskImages()
-: <a class="el" href="namespaceMagick.html#a85bef917f95cc15eb4ada1426dc6f9a2">Magick</a>
+: <a class="el" href="namespaceMagick.html#a4248fae36242321ab9e5aab817d07995">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_s"></a>- s -</h3><ul>
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
 <li>separateImages()
-: <a class="el" href="namespaceMagick.html#a663ce7a67e6732f5b27490610ce721de">Magick</a>
+: <a class="el" href="namespaceMagick.html#af7c8985448def5735445808ddd769bbd">Magick</a>
 </li>
 <li>SetRandomSeed()
 : <a class="el" href="namespaceMagick.html#a8df77532f69bfc1138f62e202111bc71">Magick</a>
 </li>
-<li>SetSecurityPolicy()
-: <a class="el" href="namespaceMagick.html#a9fa651529716cf6d7e4a8e5a18d1bdd5">Magick</a>
-</li>
 <li>smushImages()
 : <a class="el" href="namespaceMagick.html#a9c8aba8238c35a5bc5754f30a694435f">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_t"></a>- t -</h3><ul>
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
 <li>TerminateMagick()
 : <a class="el" href="namespaceMagick.html#ab2ba5f1b607df720ab1f562e2d232980">Magick</a>
 </li>
@@ -314,21 +293,21 @@
 </ul>
 
 
-<h3><a id="index_u"></a>- u -</h3><ul>
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
 <li>unlinkImages()
 : <a class="el" href="namespaceMagick.html#ac47606010574520166cc42f207e26043">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_v"></a>- v -</h3><ul>
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
 <li>VPathList
-: <a class="el" href="namespaceMagick.html#a2315b94c36be63d8caae300274cd94f1">Magick</a>
+: <a class="el" href="namespaceMagick.html#af1fbe7aba872d47fc7a33929a3f20e29">Magick</a>
 </li>
 </ul>
 
 
-<h3><a id="index_w"></a>- w -</h3><ul>
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
 <li>writeImages()
 : <a class="el" href="namespaceMagick.html#a353443e61d8f8f6d93c6c4530a4a0911">Magick</a>
 </li>
@@ -340,7 +319,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/Magick++/namespaces.html b/www/api/Magick++/namespaces.html
index 1c0b6a0..a1e3886 100644
--- a/www/api/Magick++/namespaces.html
+++ b/www/api/Magick++/namespaces.html
@@ -3,20 +3,18 @@
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.14"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<meta name="generator" content="Doxygen 1.8.5"/>
 <title>Magick++: Namespace List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
 <link href="navtree.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="resize.js"></script>
-<script type="text/javascript" src="navtreedata.js"></script>
 <script type="text/javascript" src="navtree.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   $(document).ready(initResizable);
-/* @license-end */</script>
+  $(window).load(resizeHeight);
+</script>
 <link href="doxygen.css" rel="stylesheet" type="text/css" />
 </head>
 <body>
@@ -25,19 +23,17 @@
 <table cellspacing="0" cellpadding="0">
  <tbody>
  <tr style="height: 56px;">
-  <td id="projectlogo"><img alt="Logo" src="wand.png"/></td>
-  <td id="projectalign" style="padding-left: 0.5em;">
+  <td style="padding-left: 0.5em;">
    <div id="projectname">Magick++
-   &#160;<span id="projectnumber">7.0.8</span>
+   &#160;<span id="projectnumber">7.0.9</span>
    </div>
-   <div id="projectbrief">Convert, Edit, Or Compose Bitmap Images</div>
   </td>
  </tr>
  </tbody>
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.14 -->
+<!-- Generated by Doxygen 1.8.5 -->
 </div><!-- top -->
 <div id="side-nav" class="ui-resizable side-nav-resizable">
   <div id="nav-tree">
@@ -50,9 +46,7 @@
   </div>
 </div>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
 $(document).ready(function(){initNavTree('namespaces.html','');});
-/* @license-end */
 </script>
 <div id="doc-content">
 <div class="header">
@@ -62,8 +56,8 @@
 <div class="contents">
 <div class="textblock">Here is a list of all namespaces with brief descriptions:</div><div class="directory">
 <table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceMagick.html" target="_self">Magick</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceMagickCore.html" target="_self">MagickCore</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceMagick.html" target="_self">Magick</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2ns.png" alt="N" width="24" height="22" /><a class="el" href="namespaceMagickCore.html" target="_self">MagickCore</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -73,7 +67,7 @@
   <ul>
     <li class="footer">Generated by
     <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
   </ul>
 </div>
 </body>
diff --git a/www/api/animate.html b/www/api/animate.html
index 54d530f..71dac97 100644
--- a/www/api/animate.html
+++ b/www/api/animate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Interactively Animate an Image Sequence @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Interactively Animate an Image Sequence</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, interactively, animate, an, image, sequence, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="animate.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -88,22 +94,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="animate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="animate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 14:22 -->
\ No newline at end of file
diff --git a/www/api/annotate.html b/www/api/annotate.html
index 9d6188e..9d895c6 100644
--- a/www/api/annotate.html
+++ b/www/api/annotate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Annotate an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Annotate an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, annotate, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="annotate.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -85,57 +91,7 @@
 
 <h2><a href="../../api/MagickCore/annotate_8c.html" id="AnnotateImage">AnnotateImage</a></h2>
 
-<p>AnnotateImage() annotates an image with text.  Optionally you can include any of the following bits of information about the image by embedding the appropriate special characters:</p>
-
-<pre class="text">
-    \n   newline
-    \r   carriage return
-    &lt;    less-than character.
-    &gt;    greater-than character.
-    &amp;    ampersand character.
- a percent sign
-    b   file size of image read in
-    c   comment meta-data property
-    d   directory component of path
-    e   filename extension or suffix
-    f   filename (including suffix)
-    g   layer canvas page geometry   (equivalent to "WxHXY")
-    h   current image height in pixels
-    i   image filename (note: becomes output filename for "info:")
-    k   CALCULATED: number of unique colors
-    l   label meta-data property
-    m   image file format (file magic)
-    n   number of images in current image sequence
-    o   output filename  (used for delegates)
-    p   index of image in current image list
-    q   quantum depth (compile-time constant)
-    r   image class and colorspace
-    s   scene number (from input unless re-assigned)
-    t   filename without directory or extension (suffix)
-    u   unique temporary filename (used for delegates)
-    w   current width in pixels
-    x   x resolution (density)
-    y   y resolution (density)
-    z   image depth (as read in unless modified, image save depth)
-    A   image transparency channel enabled (true/false)
-    C   image compression type
-    D   image GIF dispose method
-    G   original image size (wxh; before any resizes)
-    H   page (canvas) height
-    M   Magick filename (original file exactly as given,  including read mods)
-    O   page (canvas) offset ( = XY )
-    P   page (canvas) size ( = WxH )
-    Q   image compression quality ( 0 = default )
-    S   ?? scenes ??
-    T   image time delay (in centi-seconds)
-    U   image resolution units
-    W   page (canvas) width
-    X   page (canvas) x offset (including sign)
-    Y   page (canvas) y offset (including sign)
-    Z   unique filename (used for delegates)
-    @   CALCULATED: trim bounding box (without actually trimming)
-    #   CALCULATED: 'signature' hash of image values
-</pre>
+<p>AnnotateImage() annotates an image with text.</p>
 
 <p>The format of the AnnotateImage method is:</p>
 
@@ -309,22 +265,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="annotate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="annotate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 14:07 -->
\ No newline at end of file
+<!-- Magick Cache 30th December 2019 13:18 -->
\ No newline at end of file
diff --git a/www/api/attribute.html b/www/api/attribute.html
index 57b4ce9..13ccd83 100644
--- a/www/api/attribute.html
+++ b/www/api/attribute.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Set Text Attributes @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Set Text Attributes</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, set, text, attributes, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="attribute.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/attribute.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -392,23 +398,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="attribute.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="attribute.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 05:28 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 12:06 -->
\ No newline at end of file
diff --git a/www/api/blob.html b/www/api/blob.html
index d017636..2b9779f 100644
--- a/www/api/blob.html
+++ b/www/api/blob.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Read or Write Binary Large OBjects @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Read or Write Binary Large OBjects</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, read, or, write, binary, large, objects, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="blob.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -446,22 +452,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="blob.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="blob.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 19:47 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 00:27 -->
\ No newline at end of file
diff --git a/www/api/cache-view.html b/www/api/cache-view.html
index ef70f77..b57d368 100644
--- a/www/api/cache-view.html
+++ b/www/api/cache-view.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Cache Views @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Cache Views</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, cache, views, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="cache-view.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/cache-view.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -671,23 +677,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="cache-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="cache-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 1st January 2019 10:46 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 21:06 -->
\ No newline at end of file
diff --git a/www/api/cache.html b/www/api/cache.html
index 94d9ef9..0ab84de 100644
--- a/www/api/cache.html
+++ b/www/api/cache.html
@@ -7,273 +7,531 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Convert, Edit, Or Compose Bitmap Images @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Get or Set Image Pixels</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
-  <meta name="keywords" content="convert, edit, or, compose, bitmap, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
+  <meta name="keywords" content="magickcore, c, api:, get, or, set, image, pixels, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
   <meta name="rating" content="GENERAL" />
   <meta name="robots" content="INDEX, FOLLOW" />
   <meta name="generator" content="ImageMagick Studio LLC" />
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="quantize.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/cache.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
 
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
-      <li class="nav-item active">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+      <li class="nav-item ">
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="quantize.html#features">Features and Capabilities</a> • <a href="quantize.html#news">News</a> • <a href="quantize.html#community">Community</a></p>
+<p class="text-center"><a href="cache.html#AcquirePixelCacheNexus">AcquirePixelCacheNexus</a> &#8226; <a href="cache.html#AcquirePixelCachePixels">AcquirePixelCachePixels</a> &#8226; <a href="cache.html#GetAuthenticMetacontent">GetAuthenticMetacontent</a> &#8226; <a href="cache.html#GetAuthenticPixelQueue">GetAuthenticPixelQueue</a> &#8226; <a href="cache.html#GetAuthenticPixels">GetAuthenticPixels</a> &#8226; <a href="cache.html#GetOneAuthenticPixel">GetOneAuthenticPixel</a> &#8226; <a href="cache.html#GetOneVirtualPixel">GetOneVirtualPixel</a> &#8226; <a href="cache.html#GetOneVirtualPixelInfo">GetOneVirtualPixelInfo</a> &#8226; <a href="cache.html#GetVirtualMetacontent">GetVirtualMetacontent</a> &#8226; <a href="cache.html#GetVirtualPixelQueue">GetVirtualPixelQueue</a> &#8226; <a href="cache.html#GetVirtualPixels">GetVirtualPixels</a> &#8226; <a href="cache.html#QueueAuthenticPixels">QueueAuthenticPixels</a> &#8226; <a href="cache.html#SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a> &#8226; <a href="cache.html#SyncAuthenticPixels">SyncAuthenticPixels</a></p>
 
-<p class="lead magick-description"><a href="../../images/wizard.png" title="And Now a Touch of Magick"><img class="img-fluid magick-icon" id="logo" alt="And Now a Touch of Magick" width="265" height="352" src="../../images/wizard.jpg" /></a> 
-Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;entry=78333969">&#174;</a></sup> to create, edit, compose, or convert bitmap images.  It can read and write images in a variety of <a href="../../www/formats.html">formats</a> (over 200) including PNG, JPEG, GIF, HEIC, TIFF, <a href="../../www/motion-picture.html">DPX</a>, <a href="../../www/high-dynamic-range.html">EXR</a>, WebP, Postscript, PDF, and SVG.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.</p>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="AcquirePixelCacheNexus">AcquirePixelCacheNexus</a></h2>
 
-<p>The functionality of ImageMagick is typically utilized from the <a href="../../www/command-line-processing.html">command-line</a> or you can use the features from programs written in your favorite language. Choose from these interfaces: <a href="../../www/develop.html#ada">G2F</a> (Ada), <a href="../../www/develop.html#c">MagickCore</a> (C), <a href="../../www/develop.html#c">MagickWand</a> (C), <a href="../../www/develop.html#ch">ChMagick</a> (Ch), <a href="../../www/develop.html#com_">ImageMagickObject</a> (COM+), <a href="../../www/develop.html#c__">Magick++</a> (C++), <a href="../../www/develop.html#java">JMagick</a> (Java), <a href="../../www/develop.html#julia">JuliaIO</a> (Julia), <a href="../../www/develop.html#lisp">L-Magick</a> (Lisp), <a href="../../www/develop.html#lua">Lua</a> (LuaJIT), <a href="../../www/develop.html#neko">NMagick</a> (Neko/haXe), <a href="../../www/develop.html#dot-net">Magick.NET</a> (.NET), <a href="../../www/develop.html#pascal">PascalMagick</a> (Pascal),  <a href="../../www/develop.html#perl">PerlMagick</a> (Perl), <a href="../../www/develop.html#php">MagickWand for PHP</a> (PHP),  <a href="../../www/develop.html#php">IMagick</a> (PHP), <a href="../../www/develop.html#python">PythonMagick</a> (Python), <a href="../../www/develop.html#r">magick</a> (R), <a href="../../www/develop.html#ruby">RMagick</a> (Ruby), or <a href="../../www/develop.html#tcl">TclMagick</a> (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and <var>automagically</var>.</p>
-<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
-<p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="../www/license.html">license</a>.</p>
+<p>AcquirePixelCacheNexus() allocates the NexusInfo structure.</p>
 
-<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to help prevent security vulnerabilities.</p>
+<p>The format of the AcquirePixelCacheNexus method is:</p>
 
-<p>The current release is ImageMagick <a href="../../www/download.html">7.0.8-23</a>.  It runs on <a href="../../www/download.html#unix">Linux</a>, <a href="../../www/download.html#windows">Windows</a>, <a href="../../www/download.html#macosx">Mac Os X</a>, <a href="../../www/download.html#iOS">iOS</a>, Android OS, and others.</p>
+<pre class="text">
+NexusInfo **AcquirePixelCacheNexus(const size_t number_threads)
+</pre>
 
-<p>The authoritative ImageMagick web site is <a href="../../">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a>.</p>
+<p>A description of each parameter follows:</p>
 
-<p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<dd>
+</dd>
 
-<h1><a class="anchor" id="features"></a>Features and Capabilities</h1>
-<p>Here are just a few <a href="../www/examples.html">examples</a> of what ImageMagick can do for you:</p>
-<div class="table-responsive">
-<table class="table table-sm table-striped">
-  <tr>
-    <td><a href="../../Usage/anim_basics/">Animation</a></td>
-    <td>create a GIF animation sequence from a group of images.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/color-management.html">Color management</a></td>
-    <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/command-line-processing.html">Command-line processing</a></td>
-    <td>utilize ImageMagick from the command-line.</td>
-  </tr>
-  <tr>
-    <td><a href="https://en.wikipedia.org/wiki/Complex_text_layout">Complex text layout</a></td>
-    <td>bidirectional text support and shaping.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/composite.html">Composite</a></td>
-    <td>overlap one image over another.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/connected-components.html">Connected component labeling</a></td>
-    <td>uniquely label connected regions in an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/crop/">Decorate</a></td>
-    <td>add a border or frame to an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/transform/#vision">Delineate image features</a></td>
-    <td><a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25405">Canny edge detection</a>, <a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25476">Hough lines</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/fourier/">Discrete Fourier transform</a></td>
-    <td>implements the forward and inverse <a href="https://en.wikipedia.org/wiki/Discrete_Fourier_transform">DFT</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/distribute-pixel-cache.html">Distributed pixel cache</a></td>
-    <td>offload intermediate pixel storage to one or more remote servers.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/draw/">Draw</a></td>
-    <td>add shapes or text to an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/cipher.html">Encipher or decipher an image</a></td>
-    <td>convert ordinary images into unintelligible gibberish and back again.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/convert.html">Format conversion</a></td>
-    <td>convert an image from one <a href="../../www/formats.html">format </a> to another (e.g. PNG to JPEG).</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/distorts/">Generalized pixel distortion</a></td>
-    <td>correct for, or induce image distortions including perspective.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#distributed">Heterogeneous distributed processing</a></td>
-    <td>certain algorithms are <a href="../www/opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/high-dynamic-range.html">High dynamic-range images</a></td>
-    <td>accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/fx.html">Image calculator</a></td>
-    <td>apply a mathematical expression to an image or image channels.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/gradient.html">Image gradients</a></td>
-    <td>create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/identify.html">Image identification</a></td>
-    <td>describe the format and attributes of an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/download.html#iOS">ImageMagick on the iPhone</a></td>
-    <td>convert, edit, or compose images on your <a href="https://www.apple.com/ios/">iOS</a> device such as the iPhone or iPad.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#tera-pixel">Large image support</a></td>
-    <td>read, process, or write mega-, giga-, or tera-pixel image sizes.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/montage.html">Montage</a></td>
-    <td>juxtapose image thumbnails on an image canvas.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/morphology/">Morphology of shapes</a></td>
-    <td>extract features, describe shapes, and recognize patterns in images.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/motion-picture.html">Motion picture support</a></td>
-    <td>read and write the common image formats used in digital film work.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/transform/#vision">Noise and color reduction</a></td>
-    <td><a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=26480">Kuwahara Filter</a>, <a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25504">mean-shift</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html">Perceptual hash</a></td>
-    <td>map visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/blur/">Special effects</a></td>
-    <td>blur, sharpen, threshold, or tint an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/text/">Text &amp; comments</a></td>
-    <td>insert descriptive or artistic text in an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#threads">Threads of execution support</a></td>
-    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="../www/openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/resize/">Transform</a></td>
-    <td>resize, rotate, deskew, crop, flip or trim an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/masking/">Transparency</a></td>
-    <td>render portions of an image invisible.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#virtual-pixels">Virtual pixel support</a></td>
-    <td>convenient access to pixels outside the image boundaries.</td>
-  </tr>
-</table>
-</div>
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>number_threads</dt>
+<dd>the number of nexus threads. </dd>
 
-<p><a href="../../Usage/">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="../../www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="AcquirePixelCachePixels">AcquirePixelCachePixels</a></h2>
 
-<h1><a class="anchor" id="news"></a>News</h1>
+<p>AcquirePixelCachePixels() returns the pixels associated with the specified image.</p>
 
-<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="../www/porting.html">porting guide</a>.</p>
+<p>The format of the AcquirePixelCachePixels() method is:</p>
 
-<p>ImageMagick best practices <strong>strongly</strong> encourages you to configure a <a href="../../www/security-policy.html">security policy</a> that suits your local environment.</p>
+<pre class="text">
+void *AcquirePixelCachePixels(const Image *image,size_t *length,
+  ExceptionInfo *exception)
+</pre>
 
-<p>As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace.  Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).</p>
+<p>A description of each parameter follows:</p>
 
-<p>Want more performance from ImageMagick?  Try these options:</p>
+<dd>
+</dd>
 
-<ul>
-<li>Add more memory to your system, see <a href="../../www/architecture.html#cache">the pixel cache</a>;</li>
-<li>Add more cores to your system, see <a href="../../www/architecture.html#threads">threads of execution support</a>;</li>
-<li>push large images to a solid-state drive, see <a href="../../www/architecture.html#tera-pixel">large image support</a>.</li>
-</ul>
-<p>If these options are prohibitive, you can reduce the quality of the image results.  The default build is Q16 HDRI.  If you disable <a href="../../www/high-dynamic-range.html">HDRI</a>, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations.  The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative).  If you build the Q8 non-HDRI  version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values.  For a Q8 non-HDRI build of ImageMagick, use these <code>configure</code> script options: <code>--with-quantum-depth=8 --disable-hdri</code>.</p>
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
 
-<h1><a class="anchor" id="community"></a>Community</h1>
-<p>To join the ImageMagick community, try the <a target="_blank" href="https://imagemagick.org/discourse-server/">discourse server</a>.  You can review questions or comments (with informed responses) posed by ImageMagick users or ask your own questions. If you want to contribute image processing algorithms, other enhancements, or bug fixes, open an <a href="https://github.com/ImageMagick/ImageMagick/issues">issue</a>. </p>
+<dd> </dd>
+<dt>length</dt>
+<dd>the pixel cache length. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticMetacontent">GetAuthenticMetacontent</a></h2>
+
+<p>GetAuthenticMetacontent() returns the authentic metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().  NULL is returned if the associated pixels are not available.</p>
+
+<p>The format of the GetAuthenticMetacontent() method is:</p>
+
+<pre class="text">
+void *GetAuthenticMetacontent(const Image *image)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticPixelQueue">GetAuthenticPixelQueue</a></h2>
+
+<p>GetAuthenticPixelQueue() returns the authentic pixels associated corresponding with the last call to QueueAuthenticPixels() or GetAuthenticPixels().</p>
+
+<p>The format of the GetAuthenticPixelQueue() method is:</p>
+
+<pre class="text">
+Quantum *GetAuthenticPixelQueue(const Image image)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetAuthenticPixels">GetAuthenticPixels</a></h2>
+
+<p>GetAuthenticPixels() obtains a pixel region for read/write access. If the region is successfully accessed, a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.</p>
+
+<p>The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p>
+
+<p>Pixels accessed via the returned pointer represent a simple array of type Quantum.  If the image has corresponding metacontent,call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content corresponding to the region.  Once the Quantum array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
+
+<p>The format of the GetAuthenticPixels() method is:</p>
+
+<pre class="text">
+Quantum *GetAuthenticPixels(Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>x,y,columns,rows</dt>
+<dd> These values define the perimeter of a region of pixels. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneAuthenticPixel">GetOneAuthenticPixel</a></h2>
+
+<p>GetOneAuthenticPixel() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.</p>
+
+<p>The format of the GetOneAuthenticPixel() method is:</p>
+
+<pre class="text">
+MagickBooleanType GetOneAuthenticPixel(const Image image,const ssize_t x,
+  const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>x,y</dt>
+<dd> These values define the location of the pixel to return. </dd>
+
+<dd> </dd>
+<dt>pixel</dt>
+<dd>return a pixel at the specified (x,y) location. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneVirtualPixel">GetOneVirtualPixel</a></h2>
+
+<p>GetOneVirtualPixel() returns a single virtual pixel at the specified (x,y) location.  The image background color is returned if an error occurs. If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p>
+
+<p>The format of the GetOneVirtualPixel() method is:</p>
+
+<pre class="text">
+MagickBooleanType GetOneVirtualPixel(const Image image,const ssize_t x,
+  const ssize_t y,Quantum *pixel,ExceptionInfo exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>x,y</dt>
+<dd> These values define the location of the pixel to return. </dd>
+
+<dd> </dd>
+<dt>pixel</dt>
+<dd>return a pixel at the specified (x,y) location. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetOneVirtualPixelInfo">GetOneVirtualPixelInfo</a></h2>
+
+<p>GetOneVirtualPixelInfo() returns a single pixel at the specified (x,y) location.  The image background color is returned if an error occurs.  If you plan to modify the pixel, use GetOneAuthenticPixel() instead.</p>
+
+<p>The format of the GetOneVirtualPixelInfo() method is:</p>
+
+<pre class="text">
+MagickBooleanType GetOneVirtualPixelInfo(const Image image,
+  const VirtualPixelMethod virtual_pixel_method,const ssize_t x,
+  const ssize_t y,PixelInfo *pixel,ExceptionInfo exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>virtual_pixel_method</dt>
+<dd>the virtual pixel method. </dd>
+
+<dd> </dd>
+<dt>x,y</dt>
+<dd> these values define the location of the pixel to return. </dd>
+
+<dd> </dd>
+<dt>pixel</dt>
+<dd>return a pixel at the specified (x,y) location. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualMetacontent">GetVirtualMetacontent</a></h2>
+
+<p>GetVirtualMetacontent() returns the virtual metacontent corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().  NULL is returned if the meta-content are not available.</p>
+
+<p>The format of the GetVirtualMetacontent() method is:</p>
+
+<pre class="text">
+const void *GetVirtualMetacontent(const Image *image)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualPixelQueue">GetVirtualPixelQueue</a></h2>
+
+<p>GetVirtualPixelQueue() returns the virtual pixels associated corresponding with the last call to QueueAuthenticPixels() or GetVirtualPixels().</p>
+
+<p>The format of the GetVirtualPixelQueue() method is:</p>
+
+<pre class="text">
+const Quantum *GetVirtualPixelQueue(const Image image)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="GetVirtualPixels">GetVirtualPixels</a></h2>
+
+<p>GetVirtualPixels() returns an immutable pixel region. If the region is successfully accessed, a pointer to it is returned, otherwise NULL is returned.  The returned pointer may point to a temporary working copy of the pixels or it may point to the original pixels in memory. Performance is maximized if the selected region is part of one row, or one or more full rows, since there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file.  The returned pointer must *never* be deallocated by the user.</p>
+
+<p>Pixels accessed via the returned pointer represent a simple array of type Quantum.  If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to access the meta-content (of type void) corresponding to the the region.</p>
+
+<p>If you plan to modify the pixels, use GetAuthenticPixels() instead.</p>
+
+<p>Note, the GetVirtualPixels() and GetAuthenticPixels() methods are not thread- safe.  In a threaded environment, use GetCacheViewVirtualPixels() or GetCacheViewAuthenticPixels() instead.</p>
+
+<p>The format of the GetVirtualPixels() method is:</p>
+
+<pre class="text">
+const Quantum *GetVirtualPixels(const Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>x,y,columns,rows</dt>
+<dd> These values define the perimeter of a region of pixels. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="QueueAuthenticPixels">QueueAuthenticPixels</a></h2>
+
+<p>QueueAuthenticPixels() queues a mutable pixel region.  If the region is successfully initialized a pointer to a Quantum array representing the region is returned, otherwise NULL is returned.  The returned pointer may point to a temporary working buffer for the pixels or it may point to the final location of the pixels in memory.</p>
+
+<p>Write-only access means that any existing pixel values corresponding to the region are ignored.  This is useful if the initial image is being created from scratch, or if the existing pixel values are to be completely replaced without need to refer to their pre-existing values. The application is free to read and write the pixel buffer returned by QueueAuthenticPixels() any way it pleases. QueueAuthenticPixels() does not initialize the pixel array values. Initializing pixel array values is the application's responsibility.</p>
+
+<p>Performance is maximized if the selected region is part of one row, or one or more full rows, since then there is opportunity to access the pixels in-place (without a copy) if the image is in memory, or in a memory-mapped file. The returned pointer must *never* be deallocated by the user.</p>
+
+<p>Pixels accessed via the returned pointer represent a simple array of type Quantum. If the image type is CMYK or the storage class is PseudoClass, call GetAuthenticMetacontent() after invoking GetAuthenticPixels() to obtain the meta-content (of type void) corresponding to the region. Once the Quantum (and/or Quantum) array has been updated, the changes must be saved back to the underlying image using SyncAuthenticPixels() or they may be lost.</p>
+
+<p>The format of the QueueAuthenticPixels() method is:</p>
+
+<pre class="text">
+Quantum *QueueAuthenticPixels(Image *image,const ssize_t x,
+  const ssize_t y,const size_t columns,const size_t rows,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>x,y,columns,rows</dt>
+<dd> These values define the perimeter of a region of pixels. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="SetPixelCacheVirtualMethod">SetPixelCacheVirtualMethod</a></h2>
+
+<p>SetPixelCacheVirtualMethod() sets the "virtual pixels" method for the pixel cache and returns the previous setting.  A virtual pixel is any pixel access that is outside the boundaries of the image cache.</p>
+
+<p>The format of the SetPixelCacheVirtualMethod() method is:</p>
+
+<pre class="text">
+VirtualPixelMethod SetPixelCacheVirtualMethod(Image *image,
+  const VirtualPixelMethod virtual_pixel_method,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>virtual_pixel_method</dt>
+<dd>choose the type of virtual pixel. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/cache_8c.html" id="SyncAuthenticPixels">SyncAuthenticPixels</a></h2>
+
+<p>SyncAuthenticPixels() saves the image pixels to the in-memory or disk cache. The method returns MagickTrue if the pixel region is flushed, otherwise MagickFalse.</p>
+
+<p>The format of the SyncAuthenticPixels() method is:</p>
+
+<pre class="text">
+MagickBooleanType SyncAuthenticPixels(Image *image,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="quantize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="cache.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 29th December 2019 22:53 -->
\ No newline at end of file
diff --git a/www/api/channel.html b/www/api/channel.html
index 96f0c46..93ae5c0 100644
--- a/www/api/channel.html
+++ b/www/api/channel.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Get or Set Image Channels @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Get or Set Image Channels</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, get, or, set, image, channels, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="channel.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/channel.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -272,23 +278,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="channel.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="channel.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 1st January 2019 19:40 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 17:47 -->
\ No newline at end of file
diff --git a/www/api/cipher.html b/www/api/cipher.html
index c9cb413..59c1df0 100644
--- a/www/api/cipher.html
+++ b/www/api/cipher.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Convert to and from Cipher Pixels @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Convert to and from Cipher Pixels</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, convert, to, from, cipher, pixels, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="cipher.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -321,22 +327,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="cipher.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="cipher.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 16:44 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 07:32 -->
\ No newline at end of file
diff --git a/www/api/color.html b/www/api/color.html
index 8b56e2e..2cd760b 100644
--- a/www/api/color.html
+++ b/www/api/color.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Count the Colors in an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Count the Colors in an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, count, the, colors, in, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="color.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -226,22 +232,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="color.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="color.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 10:01 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 08:23 -->
\ No newline at end of file
diff --git a/www/api/colormap.html b/www/api/colormap.html
index b45cf44..38aa253 100644
--- a/www/api/colormap.html
+++ b/www/api/colormap.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Colormap Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Colormap Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, colormap, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="colormap.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -152,22 +158,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="colormap.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="colormap.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 16:44 -->
\ No newline at end of file
+<!-- Magick Cache 30th December 2019 09:22 -->
\ No newline at end of file
diff --git a/www/api/colorspace.html b/www/api/colorspace.html
index 42392b8..e985450 100644
--- a/www/api/colorspace.html
+++ b/www/api/colorspace.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Dealing with Image Colorspaces @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Dealing with Image Colorspaces</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, dealing, with, image, colorspaces, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="colorspace.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -238,22 +244,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="colorspace.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="colorspace.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 04:49 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 05:10 -->
\ No newline at end of file
diff --git a/www/api/compare.html b/www/api/compare.html
index 9ab99c7..f321b11 100644
--- a/www/api/compare.html
+++ b/www/api/compare.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Compare an Image to a Reconstructed Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Compare an Image to a Reconstructed Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, compare, an, image, to, a, reconstructed, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="compare.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -127,22 +133,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="compare.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="compare.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 31st December 2019 18:19 -->
\ No newline at end of file
diff --git a/www/api/composite.html b/www/api/composite.html
index de30bab..2acf671 100644
--- a/www/api/composite.html
+++ b/www/api/composite.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Composite an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Composite an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, composite, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="../www/api/composite.html" rel="canonical" />
-  <link href="../www/images/wand.png" rel="icon" />
-  <link href="../www/images/wand.ico" rel="shortcut icon" />
-  <link href="../www/assets/magick.css" rel="stylesheet" />
+  <link href="../../api/composite.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -126,23 +132,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/www/security-policy.html">Security</a> •
-    <a href="../www/www/architecture.html">Architecture</a> •
-    <a href="../www/www/links.html">Related</a> •
-     <a href="../www/www/sitemap.html">Sitemap</a>
-       
-    <a href="composite.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/www/support.html">Donate</a> •
-    <a href="../www/www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="composite.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 20:13 -->
\ No newline at end of file
+<!-- Magick Cache 30th December 2019 16:23 -->
\ No newline at end of file
diff --git a/www/api/constitute.html b/www/api/constitute.html
index 098cd7e..47af54e 100644
--- a/www/api/constitute.html
+++ b/www/api/constitute.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Constitute an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Constitute an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, constitute, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="constitute.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -316,22 +322,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="constitute.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="constitute.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 16:30 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 23:22 -->
\ No newline at end of file
diff --git a/www/api/decorate.html b/www/api/decorate.html
index ff7c5c1..f755fd9 100644
--- a/www/api/decorate.html
+++ b/www/api/decorate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Decorate an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Decorate an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, decorate, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="decorate.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -194,22 +200,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="decorate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="decorate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 05:10 -->
\ No newline at end of file
diff --git a/www/api/deprecate.html b/www/api/deprecate.html
index 0852713..c6b24b5 100644
--- a/www/api/deprecate.html
+++ b/www/api/deprecate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Deprecated Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Deprecated Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, deprecated, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="deprecate.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -142,22 +148,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="deprecate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="deprecate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 31st December 2019 07:37 -->
\ No newline at end of file
diff --git a/www/api/display.html b/www/api/display.html
index 55c5ba0..3623697 100644
--- a/www/api/display.html
+++ b/www/api/display.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Interactively Display and Edit an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Interactively Display and Edit an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, interactively, display, edit, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="display.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/display.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -87,23 +93,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="display.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="display.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 1st January 2019 21:09 -->
\ No newline at end of file
+<!-- Magick Cache 3rd January 2020 14:18 -->
\ No newline at end of file
diff --git a/www/api/distort.html b/www/api/distort.html
index e6ccd2f..6dc78d5 100644
--- a/www/api/distort.html
+++ b/www/api/distort.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image Distortions @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image Distortions</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, distortions, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="distort.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/distort.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -250,23 +256,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="distort.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="distort.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2020 09:56 -->
\ No newline at end of file
diff --git a/www/api/draw.html b/www/api/draw.html
index fa4c9ce..7ced453 100644
--- a/www/api/draw.html
+++ b/www/api/draw.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Draw on an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Draw on an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, draw, on, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="draw.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -453,22 +459,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="draw.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="draw.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 17:25 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 05:11 -->
\ No newline at end of file
diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html
index 76e0d2c..06d1cbc 100644
--- a/www/api/drawing-wand.html
+++ b/www/api/drawing-wand.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Drawing Wand Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Drawing Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, drawing, wmethods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="drawing-wand.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -3910,22 +3916,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="drawing-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="drawing-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 09:18 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2020 09:27 -->
\ No newline at end of file
diff --git a/www/api/effect.html b/www/api/effect.html
index 923b843..a317318 100644
--- a/www/api/effect.html
+++ b/www/api/effect.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Add an Effect @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Add an Effect</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, add, an, effect, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="effect.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -721,22 +727,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="effect.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="effect.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 03:54 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 00:27 -->
\ No newline at end of file
diff --git a/www/api/enhance.html b/www/api/enhance.html
index 29ae92f..e762486 100644
--- a/www/api/enhance.html
+++ b/www/api/enhance.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Enhance an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Enhance an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, enhance, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="enhance.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -815,22 +821,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="enhance.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="enhance.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 13:22 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 19:27 -->
\ No newline at end of file
diff --git a/www/api/exception.html b/www/api/exception.html
index 19647b3..cc85e46 100644
--- a/www/api/exception.html
+++ b/www/api/exception.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Dealing with Exceptions @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Dealing with Exceptions</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, dealing, with, exceptions, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="exception.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -478,22 +484,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="exception.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="exception.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:24 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 14:22 -->
\ No newline at end of file
diff --git a/www/api/feature.html b/www/api/feature.html
index 0891c60..56f1f67 100644
--- a/www/api/feature.html
+++ b/www/api/feature.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image Features @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image Features</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, features, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="feature.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -167,7 +173,7 @@
 </dl>
 <h2><a href="../../api/MagickCore/feature_8c.html" id="Use_HoughLineImage">Use HoughLineImage</a></h2>
 
-<p>Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image.  The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines</p>
+<p>Use HoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image.  The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines.</p>
 
 <p>The format of the HoughLineImage method is:</p>
 
@@ -241,22 +247,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="feature.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="feature.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 16:55 -->
\ No newline at end of file
diff --git a/www/api/fourier.html b/www/api/fourier.html
index 84c625f..c7778b9 100644
--- a/www/api/fourier.html
+++ b/www/api/fourier.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Fourier Transform @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Fourier Transform</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, fourier, transform, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="fourier.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -186,22 +192,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="fourier.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="fourier.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 16:55 -->
\ No newline at end of file
diff --git a/www/api/fx.html b/www/api/fx.html
index 9dfb341..d19ae0b 100644
--- a/www/api/fx.html
+++ b/www/api/fx.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Add a Special Effect @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Add a Special Effect</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, add, a, special, effect, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="fx.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -844,22 +850,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="fx.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="fx.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 19:56 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 23:22 -->
\ No newline at end of file
diff --git a/www/api/histogram.html b/www/api/histogram.html
index f586fb7..22bba40 100644
--- a/www/api/histogram.html
+++ b/www/api/histogram.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image Histograms @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image Histograms</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, histograms, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="histogram.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -246,22 +252,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="histogram.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="histogram.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 17:24 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 05:06 -->
\ No newline at end of file
diff --git a/www/api/image-view.html b/www/api/image-view.html
index d30f16b..27cf7c9 100644
--- a/www/api/image-view.html
+++ b/www/api/image-view.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image View Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image View Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, view, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="image-view.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/image-view.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -644,23 +650,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="image-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="image-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 07:45 -->
\ No newline at end of file
+<!-- Magick Cache 3rd January 2020 11:30 -->
\ No newline at end of file
diff --git a/www/api/image.html b/www/api/image.html
index 133bf28..5b3b60f 100644
--- a/www/api/image.html
+++ b/www/api/image.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="image.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -1194,22 +1200,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="image.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="image.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 21:03 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 18:38 -->
\ No newline at end of file
diff --git a/www/api/layer.html b/www/api/layer.html
index 99f828b..e7a2f40 100644
--- a/www/api/layer.html
+++ b/www/api/layer.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Dealing with Image Layers @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Dealing with Image Layers</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, dealing, with, image, layers, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="layer.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -261,7 +267,7 @@
 <p>The format of the RemoveDuplicateLayers method is:</p>
 
 <pre class="text">
-void RemoveDuplicateLayers(Image **image, ExceptionInfo *exception)
+void RemoveDuplicateLayers(Image **image,ExceptionInfo *exception)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -293,7 +299,7 @@
 <p>The format of the RemoveZeroDelayLayers method is:</p>
 
 <pre class="text">
-void RemoveZeroDelayLayers(Image **image, ExceptionInfo *exception)
+void RemoveZeroDelayLayers(Image **image,ExceptionInfo *exception)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -368,8 +374,8 @@
 <p>The format of the MergeImageLayers is:</p>
 
 <pre class="text">
-Image *MergeImageLayers(const Image *image,
-  const LayerMethod method, ExceptionInfo *exception)
+Image *MergeImageLayers(Image *image,const LayerMethod method,
+  ExceptionInfo *exception)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -407,22 +413,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="layer.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="layer.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 12:31 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 22:14 -->
\ No newline at end of file
diff --git a/www/api/list.html b/www/api/list.html
index 6ba081f..f0fa8b1 100644
--- a/www/api/list.html
+++ b/www/api/list.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Working with Image Lists @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Working with Image Lists</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, working, with, image, lists, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="list.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -747,22 +753,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="list.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="list.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 20:45 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 10:35 -->
\ No newline at end of file
diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html
index a5b78f6..c33ed80 100644
--- a/www/api/magick++-classes.html
+++ b/www/api/magick++-classes.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Magick++, C++ API: Classes @ ImageMagick</title>
+  <title>ImageMagick - Magick++, C++ API: Classes</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magick++, c++, api:, classes, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="magick++-classes.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <h1>Magick++ Classes</h1>
@@ -141,22 +147,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick++-classes.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="magick++-classes.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 19:57 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 06:26 -->
\ No newline at end of file
diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html
index c9205ed..8b761e7 100644
--- a/www/api/magick-deprecate.html
+++ b/www/api/magick-deprecate.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Deprecated Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Deprecated Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, deprecated, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="../www/api/magick-deprecate.html" rel="canonical" />
-  <link href="../www/images/wand.png" rel="icon" />
-  <link href="../www/images/wand.ico" rel="shortcut icon" />
-  <link href="../www/assets/magick.css" rel="stylesheet" />
+  <link href="magick-deprecate.html" rel="canonical" />
+  <link href="../../images/wand.png" rel="icon" />
+  <link href="../../images/wand.ico" rel="shortcut icon" />
+  <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/download.html">Download</a>
+        <a class="nav-link" href="../../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -87,23 +93,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/www/security-policy.html">Security</a> •
-    <a href="../www/www/architecture.html">Architecture</a> •
-    <a href="../www/www/links.html">Related</a> •
-     <a href="../www/www/sitemap.html">Sitemap</a>
-       
-    <a href="magick-deprecate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/www/support.html">Donate</a> •
-    <a href="../www/www/contact.html">Contact Us</a>
+    <p><a href="../../www/security-policy.html">Security</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick-deprecate.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
+    <a href="../../www/links.html">Related</a> •
+     <a href="../../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 1st January 2019 06:08 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 02:47 -->
\ No newline at end of file
diff --git a/www/api/magick-image.html b/www/api/magick-image.html
index b0552d5..27bd277 100644
--- a/www/api/magick-image.html
+++ b/www/api/magick-image.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Image Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Image Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, image, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="magick-image.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,17 +76,18 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
+<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickAutoThresholdImage">MagickAutoThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickCannyEdgeImage">MagickCannyEdgeImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickComplexImages">MagickComplexImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickConnectedComponentsImage">MagickConnectedComponentsImage</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#Use MagickHoughLineImage">Use MagickHoughLineImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#Use MagickKuwaharaImage">Use MagickKuwaharaImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLevelImageColors">MagickLevelImageColors</a> &#8226; <a href="magick-image.html#MagickLevelizeImage">MagickLevelizeImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMeanShiftImage">MagickMeanShiftImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPolynomialImage">MagickPolynomialImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRangeThresholdImage">MagickRangeThresholdImage</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImagePixelColor">MagickSetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
 
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="GetImageFromMagickWand">GetImageFromMagickWand</a></h2>
 
@@ -485,6 +491,33 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickAutoThresholdImage">MagickAutoThresholdImage</a></h2>
+
+<p>MagickAutoThresholdImage() automatically performs image thresholding dependent on which method you specify.</p>
+
+<p>The format of the AutoThresholdImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickAutoThresholdImage(MagickWand *wand,
+  const AutoThresholdMethod method)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>method</dt>
+<dd>choose from KapurThresholdMethod, OTSUThresholdMethod, or TriangleThresholdMethod. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickBlackThresholdImage">MagickBlackThresholdImage</a></h2>
 
 <p>MagickBlackThresholdImage() is like MagickThresholdImage() but  forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.</p>
@@ -642,6 +675,46 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickCannyEdgeImage">MagickCannyEdgeImage</a></h2>
+
+<p>MagickCannyEdgeImage() uses a multi-stage algorithm to detect a wide range of edges in images.</p>
+
+<p>The format of the MagickCannyEdgeImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickCannyEdgeImage(MagickWand *wand,
+  const double radius,const double sigma,const double lower_percent,
+  const double upper_percent)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>radius</dt>
+<dd>the radius of the gaussian smoothing filter. </dd>
+
+<dd> </dd>
+<dt>sigma</dt>
+<dd>the sigma of the gaussian smoothing filter. </dd>
+
+<dd> </dd>
+<dt>lower_percent</dt>
+<dd>percentage of edge pixels in the lower threshold. </dd>
+
+<dd> </dd>
+<dt>upper_percent</dt>
+<dd>percentage of edge pixels in the upper threshold. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickChannelFxImage">MagickChannelFxImage</a></h2>
 
 <p>MagickChannelFxImage() applies a channel expression to the specified image. The expression consists of one or more channels, either mnemonic or numeric (e.g. red, 1), separated by actions as follows:</p>
@@ -754,13 +827,13 @@
 </dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickCLAHEImage">MagickCLAHEImage</a></h2>
 
-<p>MagickCLAHEImage() selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood.  This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.</p>
+<p>MagickCLAHEImage() is a variant of adaptive histogram equalization in which the contrast amplification is limited, so as to reduce this problem of noise amplification.</p>
 
 <p>The format of the CLAHEImage method is:</p>
 
 <pre class="text">
 MagickBooleanType MagickCLAHEImage(MagickWand *wand,const size_t width,
-  const size_t height,const double bias,const double sans)
+  const size_t height,const double number_bins,const double clip_limit)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -775,19 +848,19 @@
 
 <dd> </dd>
 <dt>width</dt>
-<dd>the width of the local neighborhood. </dd>
+<dd>the width of the tile divisions to use in horizontal direction. </dd>
 
 <dd> </dd>
 <dt>height</dt>
-<dd>the height of the local neighborhood. </dd>
+<dd>the height of the tile divisions to use in vertical direction. </dd>
 
 <dd> </dd>
-<dt>offset</dt>
-<dd>the mean bias. </dd>
+<dt>number_bins</dt>
+<dd>number of bins for histogram ("dynamic range"). </dd>
 
 <dd> </dd>
-<dt>sans</dt>
-<dd>not used. </dd>
+<dt>clip_limit</dt>
+<dd>contrast limit for localised changes in contrast. A limit less than 1 results in standard non-contrast limited AHE. </dd>
 
 <dd>  </dd>
 </dl>
@@ -1142,6 +1215,33 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickComplexImages">MagickComplexImages</a></h2>
+
+<p>MagickComplexImages() performs complex mathematics on an image sequence.</p>
+
+<p>The format of the MagickComplexImages method is:</p>
+
+<pre class="text">
+MagickWand *MagickComplexImages(MagickWand *wand,
+  const ComplexOperator op)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>op</dt>
+<dd>A complex operator. Choose from AddComplexOperator, ConjugateComplexOperator,DivideComplexOperator, MagnitudePhaseComplexOperator,MultiplyComplexOperator, RealImaginaryComplexOperator, SubtractComplexOperator. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickCompositeImage">MagickCompositeImage</a></h2>
 
 <p>MagickCompositeImage() composite one image onto another at the specified offset.</p>
@@ -1268,6 +1368,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickConnectedComponentsImage">MagickConnectedComponentsImage</a></h2>
+
+<p>MagickConnectedComponentsImage() returns the connected-components of the image uniquely labeled.  The returned connected components image colors member defines the number of unique objects.  Choose from 4 or 8-way connectivity.</p>
+
+<p>The format of the MagickConnectedComponentsImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickConnectedComponentsImage(MagickWand *wand,
+  const size_t connectivity,CCObjectInfo **objects)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>connectivity</dt>
+<dd>how many neighbors to visit, choose from 4 or 8. </dd>
+
+<dd> </dd>
+<dt>objects</dt>
+<dd>return the attributes of each unique object. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickContrastImage">MagickContrastImage</a></h2>
 
 <p>MagickContrastImage() enhances the intensity differences between the lighter and darker elements of the image.  Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.</p>
@@ -3308,7 +3439,7 @@
 </dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickGetImagePixelColor">MagickGetImagePixelColor</a></h2>
 
-<p>MagickGetImagePixelColor() returns the color of the specified pixel.</p>
+<p>MagickGetImagePixelColor() gets the color of the specified pixel.</p>
 
 <p>The format of the MagickGetImagePixelColor method is:</p>
 
@@ -3771,6 +3902,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="Use_MagickHoughLineImage">Use MagickHoughLineImage</a></h2>
+
+<p>Use MagickHoughLineImage() in conjunction with any binary edge extracted image (we recommand Canny) to identify lines in the image.  The algorithm accumulates counts for every white pixel for every possible orientation (for angles from 0 to 179 in 1 degree increments) and distance from the center of the image to the corner (in 1 px increments) and stores the counts in an accumulator matrix of angle vs distance. The size of the accumulator is 180x(diagonal/2). Next it searches this space for peaks in counts and converts the locations of the peaks to slope and intercept in the normal x,y input image space. Use the slope/intercepts to find the endpoints clipped to the bounds of the image. The lines are then drawn. The counts are a measure of the length of the lines.</p>
+
+<p>The format of the MagickHoughLineImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickHoughLineImage(MagickWand *wand,
+  const size_t width,const size_t height,const size_t threshold)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>width, height</dt>
+<dd>find line pairs as local maxima in this neighborhood. </dd>
+
+<dd> </dd>
+<dt>threshold</dt>
+<dd>the line count threshold. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickIdentifyImage">MagickIdentifyImage</a></h2>
 
 <p>MagickIdentifyImage() identifies an image by printing its attributes to the file.  Attributes include the image width, height, size, and others.</p>
@@ -3963,6 +4125,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="Use_MagickKuwaharaImage">Use MagickKuwaharaImage</a></h2>
+
+<p>Use MagickKuwaharaImage() is an edge preserving noise reduction filter.</p>
+
+<p>The format of the MagickKuwaharaImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickKuwaharaImage(MagickWand *wand,
+  const double radius,const double sigma)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>radius</dt>
+<dd>the square window radius. </dd>
+
+<dd> </dd>
+<dt>sigma</dt>
+<dd>the standard deviation of the Gaussian, in pixels. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickLabelImage">MagickLabelImage</a></h2>
 
 <p>MagickLabelImage() adds a label to your image.</p>
@@ -3998,9 +4191,6 @@
 <pre class="text">
 MagickBooleanType MagickLevelImage(MagickWand *wand,
   const double black_point,const double gamma,const double white_point)
-MagickBooleanType MagickLevelImage(MagickWand *wand,
-  const ChannelType channel,const double black_point,const double gamma,
-  const double white_point)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -4031,6 +4221,77 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickLevelImageColors">MagickLevelImageColors</a></h2>
+
+<p>MagickLevelImageColors() maps the given color to "black" and "white" values, linearly spreading out the colors, and level values on a channel by channel bases, as per LevelImage().  The given colors allows you to specify different level ranges for each of the color channels separately.</p>
+
+<p>The format of the MagickLevelImageColors method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickLevelImageColors(MagickWand *wand,
+  const PixelWand *black_color,const PixelWand *white_color,
+  const MagickBooleanType invert)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>black_color</dt>
+<dd>the black color. </dd>
+
+<dd> </dd>
+<dt>white_color</dt>
+<dd>the white color. </dd>
+
+<dd> </dd>
+<dt>invert</dt>
+<dd>if true map the colors (levelize), rather than from (level) </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickLevelizeImage">MagickLevelizeImage</a></h2>
+
+<p>MagickLevelizeImage() applies the reversed MagickLevelImage(). It compresses the full range of color values, so that they lie between the given black and white points.  Gamma is applied before the values are mapped.  It can be used to de-contrast a greyscale image to the exact levels specified.</p>
+
+<p>The format of the MagickLevelizeImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickLevelizeImage(MagickWand *wand,
+  const double black_point, const double white_point,const double gamma)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>black_point</dt>
+<dd>The level to map zero (black) to. </dd>
+
+<dd> </dd>
+<dt>white_point</dt>
+<dd>The level to map QuantumRange (white) to. </dd>
+
+<dd> </dd>
+<dt>gamma</dt>
+<dd>adjust gamma by this factor before mapping values. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickLinearStretchImage">MagickLinearStretchImage</a></h2>
 
 <p>MagickLinearStretchImage() stretches with saturation the image intensity.</p>
@@ -4146,6 +4407,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickMeanShiftImage">MagickMeanShiftImage</a></h2>
+
+<p>MagickMeanShiftImage() elineate arbitrarily shaped clusters in the image. For each pixel, it visits all the pixels in the neighborhood specified by the window centered at the pixel and excludes those that are outside the radius=(window-1)/2 surrounding the pixel. From those pixels, it finds those that are within the specified color distance from the current mean, and computes a new x,y centroid from those coordinates and a new mean. This new x,y centroid is used as the center for a new window. This process iterates until it converges and the final mean is replaces the (original window center) pixel value. It repeats this process for the next pixel, etc., until it processes all pixels in the image. Results are typically better with colorspaces other than sRGB. We recommend YIQ, YUV or YCbCr.</p>
+
+<p>The format of the MagickMeanShiftImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickMeanShiftImage(MagickWand *wand,
+  const size_t number_terms,const double *terms)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>width, height</dt>
+<dd>find pixels in this neighborhood. </dd>
+
+<dd> </dd>
+<dt>color_distance</dt>
+<dd>the color distance. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickMergeImageLayers">MagickMergeImageLayers</a></h2>
 
 <p>MagickMergeImageLayers() composes all the image layers from the current given image onward to produce a single image of the merged layers.</p>
@@ -4320,7 +4612,8 @@
 
 <pre class="text">
 MagickBooleanType MagickMorphologyImage(MagickWand *wand,
-  MorphologyMethod method,const ssize_t iterations,KernelInfo *kernel)
+  const MorphologyMethod method,const ssize_t iterations,
+  const KernelInfo *kernel)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -4770,6 +5063,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickPolynomialImage">MagickPolynomialImage</a></h2>
+
+<p>MagickPolynomialImage() returns an image where each pixel is the sum of the pixels in the image sequence after applying its corresponding terms (coefficient and degree pairs).</p>
+
+<p>The format of the MagickPolynomialImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickPolynomialImage(MagickWand *wand,
+  const size_t number_terms,const double *terms)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>number_terms</dt>
+<dd>the number of terms in the list.  The actual list length is 2 x number_terms + 1 (the constant). </dd>
+
+<dd> </dd>
+<dt>terms</dt>
+<dd>the list of polynomial coefficients and degree pairs and a constant. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickPosterizeImage">MagickPosterizeImage</a></h2>
 
 <p>MagickPosterizeImage() reduces the image to a limited number of color level.</p>
@@ -4946,6 +5270,46 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickRangeThresholdImage">MagickRangeThresholdImage</a></h2>
+
+<p>MagickRangeThresholdImage() applies soft and hard thresholding.</p>
+
+<p>The format of the RangeThresholdImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickRangeThresholdImage(MagickWand *wand,
+  const double low_black,const double low_white,const double high_white,
+  const double high_black)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>low_black</dt>
+<dd>Define the minimum threshold value. </dd>
+
+<dd> </dd>
+<dt>low_white</dt>
+<dd>Define the maximum threshold value. </dd>
+
+<dd> </dd>
+<dt>high_white</dt>
+<dd>Define the minimum threshold value. </dd>
+
+<dd> </dd>
+<dt>low_white</dt>
+<dd>Define the maximum threshold value. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickRotationalBlurImage">MagickRotationalBlurImage</a></h2>
 
 <p>MagickRotationalBlurImage() rotational blurs an image.</p>
@@ -6439,6 +6803,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickSetImagePixelColor">MagickSetImagePixelColor</a></h2>
+
+<p>MagickSetImagePixelColor() sets the color of the specified pixel.</p>
+
+<p>The format of the MagickSetImagePixelColor method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickSetImagePixelColor(MagickWand *wand,
+  const ssize_t x,const ssize_t y,const PixelWand *color)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>x,y</dt>
+<dd>the pixel offset into the image. </dd>
+
+<dd> </dd>
+<dt>color</dt>
+<dd>Return the colormap color in this wand. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a></h2>
 
 <p>MagickSetImageProgressMonitor() sets the wand image progress monitor to the specified method and returns the previous progress monitor if any.  The progress monitor method looks like this:</p>
@@ -7177,19 +7572,28 @@
 <pre class="text">
 MagickBooleanType MagickSpreadImage(MagickWand *wand,
   const PixelInterpolateMethod method,const double radius)
-  
-  A description of each parameter follows:
 </pre>
 
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
 <dt>wand</dt>
-<p>the magick wand.</p>
+<dd>the magick wand. </dd>
 
+<dd> </dd>
 <dt>method</dt>
-<p>intepolation method.</p>
+<dd> intepolation method. </dd>
 
+<dd> </dd>
 <dt>radius</dt>
-<p>Choose a random pixel in a neighborhood of this extent.</p>
+<dd> Choose a random pixel in a neighborhood of this extent. </dd>
 
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickStatisticImage">MagickStatisticImage</a></h2>
 
 <p>MagickStatisticImage() replace each pixel with corresponding statistic from the neighborhood of the specified width and height.</p>
@@ -7725,6 +8129,37 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a></h2>
+
+<p>MagickWaveletDenoiseImage() removes noise from the image using a wavelet transform.  The wavelet transform is a fast hierarchical scheme for processing an image using a set of consecutive lowpass and high_pass filters, followed by a decimation.  This results in a decomposition into different scales which can be regarded as different “frequency bands”, determined by the mother wavelet.</p>
+
+<p>The format of the MagickWaveletDenoiseImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickWaveletDenoiseImage(MagickWand *wand,
+  const double threshold,const double softness)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>threshold</dt>
+<dd>set the threshold for smoothing. </dd>
+
+<dd> </dd>
+<dt>softness</dt>
+<dd>attenuate the smoothing threshold. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickWhiteThresholdImage">MagickWhiteThresholdImage</a></h2>
 
 <p>MagickWhiteThresholdImage() is like ThresholdImage() but  force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.</p>
@@ -7869,22 +8304,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick-image.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="magick-image.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 08:40 -->
\ No newline at end of file
+<!-- Magick Cache 3rd January 2020 18:20 -->
\ No newline at end of file
diff --git a/www/api/magick-property.html b/www/api/magick-property.html
index 0e5f03a..5367f7d 100644
--- a/www/api/magick-property.html
+++ b/www/api/magick-property.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Property Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Property Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, property, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="magick-property.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,17 +76,18 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="magick-property.html#MagickDeleteImageArtifact">MagickDeleteImageArtifact</a> &#8226; <a href="magick-property.html#MagickDeleteImageProperty">MagickDeleteImageProperty</a> &#8226; <a href="magick-property.html#MagickDeleteOption">MagickDeleteOption</a> &#8226; <a href="magick-property.html#MagickGetAntialias">MagickGetAntialias</a> &#8226; <a href="magick-property.html#MagickGetBackgroundColor">MagickGetBackgroundColor</a> &#8226; <a href="magick-property.html#MagickGetColorspace">MagickGetColorspace</a> &#8226; <a href="magick-property.html#MagickGetCompression">MagickGetCompression</a> &#8226; <a href="magick-property.html#MagickGetCompressionQuality">MagickGetCompressionQuality</a> &#8226; <a href="magick-property.html#MagickGetCopyright">MagickGetCopyright</a> &#8226; <a href="magick-property.html#MagickGetFilename">MagickGetFilename</a> &#8226; <a href="magick-property.html#MagickGetFont">MagickGetFont</a> &#8226; <a href="magick-property.html#MagickGetFormat">MagickGetFormat</a> &#8226; <a href="magick-property.html#MagickGetGravity">MagickGetGravity</a> &#8226; <a href="magick-property.html#MagickGetHomeURL">MagickGetHomeURL</a> &#8226; <a href="magick-property.html#MagickGetImageArtifact">MagickGetImageArtifact</a> &#8226; <a href="magick-property.html#MagickGetImageArtifacts">MagickGetImageArtifacts</a> &#8226; <a href="magick-property.html#MagickGetImageProfile">MagickGetImageProfile</a> &#8226; <a href="magick-property.html#MagickGetImageProfiles">MagickGetImageProfiles</a> &#8226; <a href="magick-property.html#MagickGetImageProperty">MagickGetImageProperty</a> &#8226; <a href="magick-property.html#MagickGetImageProperties">MagickGetImageProperties</a> &#8226; <a href="magick-property.html#MagickGetInterlaceScheme">MagickGetInterlaceScheme</a> &#8226; <a href="magick-property.html#MagickGetInterpolateMethod">MagickGetInterpolateMethod</a> &#8226; <a href="magick-property.html#MagickGetOption">MagickGetOption</a> &#8226; <a href="magick-property.html#MagickGetOptions">MagickGetOptions</a> &#8226; <a href="magick-property.html#MagickGetOrientation">MagickGetOrientation</a> &#8226; <a href="magick-property.html#MagickGetPackageName">MagickGetPackageName</a> &#8226; <a href="magick-property.html#MagickGetPage">MagickGetPage</a> &#8226; <a href="magick-property.html#MagickGetPointsize">MagickGetPointsize</a> &#8226; <a href="magick-property.html#MagickGetQuantumDepth">MagickGetQuantumDepth</a> &#8226; <a href="magick-property.html#MagickGetQuantumRange">MagickGetQuantumRange</a> &#8226; <a href="magick-property.html#MagickGetReleaseDate">MagickGetReleaseDate</a> &#8226; <a href="magick-property.html#MagickGetResolution">MagickGetResolution</a> &#8226; <a href="magick-property.html#MagickGetResource">MagickGetResource</a> &#8226; <a href="magick-property.html#MagickGetResourceLimit">MagickGetResourceLimit</a> &#8226; <a href="magick-property.html#MagickGetSamplingFactors">MagickGetSamplingFactors</a> &#8226; <a href="magick-property.html#MagickGetSize">MagickGetSize</a> &#8226; <a href="magick-property.html#MagickGetSizeOffset">MagickGetSizeOffset</a> &#8226; <a href="magick-property.html#MagickGetType">MagickGetType</a> &#8226; <a href="magick-property.html#MagickGetVersion">MagickGetVersion</a> &#8226; <a href="magick-property.html#MagickProfileImage">MagickProfileImage</a> &#8226; <a href="magick-property.html#MagickRemoveImageProfile">MagickRemoveImageProfile</a> &#8226; <a href="magick-property.html#MagickSetAntialias">MagickSetAntialias</a> &#8226; <a href="magick-property.html#MagickSetBackgroundColor">MagickSetBackgroundColor</a> &#8226; <a href="magick-property.html#MagickSetColorspace">MagickSetColorspace</a> &#8226; <a href="magick-property.html#MagickSetCompression">MagickSetCompression</a> &#8226; <a href="magick-property.html#MagickSetCompressionQuality">MagickSetCompressionQuality</a> &#8226; <a href="magick-property.html#MagickSetDepth">MagickSetDepth</a> &#8226; <a href="magick-property.html#MagickSetExtract">MagickSetExtract</a> &#8226; <a href="magick-property.html#MagickSetFilename">MagickSetFilename</a> &#8226; <a href="magick-property.html#MagickSetFont">MagickSetFont</a> &#8226; <a href="magick-property.html#MagickSetFormat">MagickSetFormat</a> &#8226; <a href="magick-property.html#MagickSetGravity">MagickSetGravity</a> &#8226; <a href="magick-property.html#MagickSetImageArtifact">MagickSetImageArtifact</a> &#8226; <a href="magick-property.html#MagickSetImageProfile">MagickSetImageProfile</a> &#8226; <a href="magick-property.html#MagickSetImageProperty">MagickSetImageProperty</a> &#8226; <a href="magick-property.html#MagickSetInterlaceScheme">MagickSetInterlaceScheme</a> &#8226; <a href="magick-property.html#MagickSetInterpolateMethod">MagickSetInterpolateMethod</a> &#8226; <a href="magick-property.html#MagickSetOption">MagickSetOption</a> &#8226; <a href="magick-property.html#MagickSetOrientation">MagickSetOrientation</a> &#8226; <a href="magick-property.html#MagickSetPage">MagickSetPage</a> &#8226; <a href="magick-property.html#MagickSetPassphrase">MagickSetPassphrase</a> &#8226; <a href="magick-property.html#MagickSetPointsize">MagickSetPointsize</a> &#8226; <a href="magick-property.html#MagickSetProgressMonitor">MagickSetProgressMonitor</a> &#8226; <a href="magick-property.html#MagickSetResourceLimit">MagickSetResourceLimit</a> &#8226; <a href="magick-property.html#MagickSetResolution">MagickSetResolution</a> &#8226; <a href="magick-property.html#MagickSetSamplingFactors">MagickSetSamplingFactors</a> &#8226; <a href="magick-property.html#MagickSetSecurityPolicy">MagickSetSecurityPolicy</a> &#8226; <a href="magick-property.html#MagickSetSize">MagickSetSize</a> &#8226; <a href="magick-property.html#MagickSetSizeOffset">MagickSetSizeOffset</a> &#8226; <a href="magick-property.html#MagickSetType">MagickSetType</a></p>
+<p class="text-center"><a href="magick-property.html#MagickDeleteImageArtifact">MagickDeleteImageArtifact</a> &#8226; <a href="magick-property.html#MagickDeleteImageProperty">MagickDeleteImageProperty</a> &#8226; <a href="magick-property.html#MagickDeleteOption">MagickDeleteOption</a> &#8226; <a href="magick-property.html#MagickGetAntialias">MagickGetAntialias</a> &#8226; <a href="magick-property.html#MagickGetBackgroundColor">MagickGetBackgroundColor</a> &#8226; <a href="magick-property.html#MagickGetColorspace">MagickGetColorspace</a> &#8226; <a href="magick-property.html#MagickGetCompression">MagickGetCompression</a> &#8226; <a href="magick-property.html#MagickGetCompressionQuality">MagickGetCompressionQuality</a> &#8226; <a href="magick-property.html#MagickGetCopyright">MagickGetCopyright</a> &#8226; <a href="magick-property.html#MagickGetFilename">MagickGetFilename</a> &#8226; <a href="magick-property.html#MagickGetFont">MagickGetFont</a> &#8226; <a href="magick-property.html#MagickGetFormat">MagickGetFormat</a> &#8226; <a href="magick-property.html#MagickGetGravity">MagickGetGravity</a> &#8226; <a href="magick-property.html#MagickGetHomeURL">MagickGetHomeURL</a> &#8226; <a href="magick-property.html#MagickGetImageArtifact">MagickGetImageArtifact</a> &#8226; <a href="magick-property.html#MagickGetImageArtifacts">MagickGetImageArtifacts</a> &#8226; <a href="magick-property.html#MagickGetImageProfile">MagickGetImageProfile</a> &#8226; <a href="magick-property.html#MagickGetImageProfiles">MagickGetImageProfiles</a> &#8226; <a href="magick-property.html#MagickGetImageProperty">MagickGetImageProperty</a> &#8226; <a href="magick-property.html#MagickGetImageProperties">MagickGetImageProperties</a> &#8226; <a href="magick-property.html#MagickGetInterlaceScheme">MagickGetInterlaceScheme</a> &#8226; <a href="magick-property.html#MagickGetInterpolateMethod">MagickGetInterpolateMethod</a> &#8226; <a href="magick-property.html#MagickGetOption">MagickGetOption</a> &#8226; <a href="magick-property.html#MagickGetOptions">MagickGetOptions</a> &#8226; <a href="magick-property.html#MagickGetOrientation">MagickGetOrientation</a> &#8226; <a href="magick-property.html#MagickGetPackageName">MagickGetPackageName</a> &#8226; <a href="magick-property.html#MagickGetPage">MagickGetPage</a> &#8226; <a href="magick-property.html#MagickGetPointsize">MagickGetPointsize</a> &#8226; <a href="magick-property.html#MagickGetQuantumDepth">MagickGetQuantumDepth</a> &#8226; <a href="magick-property.html#MagickGetQuantumRange">MagickGetQuantumRange</a> &#8226; <a href="magick-property.html#MagickGetReleaseDate">MagickGetReleaseDate</a> &#8226; <a href="magick-property.html#MagickGetResolution">MagickGetResolution</a> &#8226; <a href="magick-property.html#MagickGetResource">MagickGetResource</a> &#8226; <a href="magick-property.html#MagickGetResourceLimit">MagickGetResourceLimit</a> &#8226; <a href="magick-property.html#MagickGetSamplingFactors">MagickGetSamplingFactors</a> &#8226; <a href="magick-property.html#MagickGetSize">MagickGetSize</a> &#8226; <a href="magick-property.html#MagickGetSizeOffset">MagickGetSizeOffset</a> &#8226; <a href="magick-property.html#MagickGetType">MagickGetType</a> &#8226; <a href="magick-property.html#MagickGetVersion">MagickGetVersion</a> &#8226; <a href="magick-property.html#MagickProfileImage">MagickProfileImage</a> &#8226; <a href="magick-property.html#MagickRemoveImageProfile">MagickRemoveImageProfile</a> &#8226; <a href="magick-property.html#MagickSetAntialias">MagickSetAntialias</a> &#8226; <a href="magick-property.html#MagickSetBackgroundColor">MagickSetBackgroundColor</a> &#8226; <a href="magick-property.html#MagickSetColorspace">MagickSetColorspace</a> &#8226; <a href="magick-property.html#MagickSetCompression">MagickSetCompression</a> &#8226; <a href="magick-property.html#MagickSetCompressionQuality">MagickSetCompressionQuality</a> &#8226; <a href="magick-property.html#MagickSetDepth">MagickSetDepth</a> &#8226; <a href="magick-property.html#MagickSetExtract">MagickSetExtract</a> &#8226; <a href="magick-property.html#MagickSetFilename">MagickSetFilename</a> &#8226; <a href="magick-property.html#MagickSetFont">MagickSetFont</a> &#8226; <a href="magick-property.html#MagickSetFormat">MagickSetFormat</a> &#8226; <a href="magick-property.html#MagickSetGravity">MagickSetGravity</a> &#8226; <a href="magick-property.html#MagickSetImageArtifact">MagickSetImageArtifact</a> &#8226; <a href="magick-property.html#MagickSetImageProfile">MagickSetImageProfile</a> &#8226; <a href="magick-property.html#MagickSetImageProperty">MagickSetImageProperty</a> &#8226; <a href="magick-property.html#MagickSetInterlaceScheme">MagickSetInterlaceScheme</a> &#8226; <a href="magick-property.html#MagickSetInterpolateMethod">MagickSetInterpolateMethod</a> &#8226; <a href="magick-property.html#MagickSetOption">MagickSetOption</a> &#8226; <a href="magick-property.html#MagickSetOrientation">MagickSetOrientation</a> &#8226; <a href="magick-property.html#MagickSetPage">MagickSetPage</a> &#8226; <a href="magick-property.html#MagickSetPassphrase">MagickSetPassphrase</a> &#8226; <a href="magick-property.html#MagickSetPointsize">MagickSetPointsize</a> &#8226; <a href="magick-property.html#MagickSetProgressMonitor">MagickSetProgressMonitor</a> &#8226; <a href="magick-property.html#MagickSetResourceLimit">MagickSetResourceLimit</a> &#8226; <a href="magick-property.html#MagickSetResolution">MagickSetResolution</a> &#8226; <a href="magick-property.html#MagickSetSamplingFactors">MagickSetSamplingFactors</a> &#8226; <a href="magick-property.html#MagickSetSeed">MagickSetSeed</a> &#8226; <a href="magick-property.html#MagickSetSecurityPolicy">MagickSetSecurityPolicy</a> &#8226; <a href="magick-property.html#MagickSetSize">MagickSetSize</a> &#8226; <a href="magick-property.html#MagickSetSizeOffset">MagickSetSizeOffset</a> &#8226; <a href="magick-property.html#MagickSetType">MagickSetType</a></p>
 
 <h2><a href="../../api/MagickWand/magick-property_8c.html" id="MagickDeleteImageArtifact">MagickDeleteImageArtifact</a></h2>
 
@@ -1801,6 +1807,28 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-property_8c.html" id="MagickSetSeed">MagickSetSeed</a></h2>
+
+<p>MagickSetSeed() sets the pseudo-random number generator seed.  Use it to generate a pedictable sequence of random numbers.</p>
+
+<p>The format of the MagickSetSeed method is:</p>
+
+<pre class="text">
+void MagickSetSeed(const unsigned long seed)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>seed</dt>
+<dd>the seed. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-property_8c.html" id="MagickSetSecurityPolicy">MagickSetSecurityPolicy</a></h2>
 
 <p>MagickSetSecurityPolicy() sets the ImageMagick security policy.  It returns MagickFalse if the policy is already set or if the policy does not parse.</p>
@@ -1927,22 +1955,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick-property.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="magick-property.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 19:57 -->
\ No newline at end of file
+<!-- Magick Cache 31st December 2019 17:59 -->
\ No newline at end of file
diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html
index 3ad625d..1d9dc6f 100644
--- a/www/api/magick-wand.html
+++ b/www/api/magick-wand.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Wand Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, wmethods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="magick-wand.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -672,22 +678,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="magick-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 31st December 2018 06:24 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 11:37 -->
\ No newline at end of file
diff --git a/www/api/magick.html b/www/api/magick.html
index e0da932..e1acca8 100644
--- a/www/api/magick.html
+++ b/www/api/magick.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Read or List Image formats @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Read or List Image formats</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, read, or, list, image, formats, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="magick.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -90,7 +96,8 @@
 <p>The format of the AcquireMagickInfo method is:</p>
 
 <pre class="text">
-MagickInfo *AcquireMagickInfo(const char *module, const char *name,)
+MagickInfo *AcquireMagickInfo(const char *magick_module,
+  const char *name,const char *description)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -100,7 +107,7 @@
 
 <dd> </dd>
 <dl class="dl-horizontal">
-<dt>module</dt>
+<dt>magick_module</dt>
 <dd>a character string that represents the module associated with the MagickInfo structure. </dd>
 
 <dd> </dd>
@@ -125,7 +132,7 @@
 
 <h2><a href="../../api/MagickCore/magick_8c.html" id="IsMagickCoreInstantiated">IsMagickCoreInstantiated</a></h2>
 
-<p>IsMagickCoreInstantiated() returns MagickTrue if the ImageMagick environment is currently instantiated:  MagickCoreGenesis() has been called but MagickDestroy() has not.</p>
+<p>IsMagickCoreInstantiated() returns MagickFalse if the ImageMagick environment has not been instantiated; the ImageMagick environment has been instantiated when MagickCoreGenesis() has been called but MagickDestroy() has not been called.</p>
 
 <p>The format of the IsMagickCoreInstantiated method is:</p>
 
@@ -201,22 +208,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="magick.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="magick.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 17:24 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 12:41 -->
\ No newline at end of file
diff --git a/www/api/memory.html b/www/api/memory.html
index a32d03e..69fadc7 100644
--- a/www/api/memory.html
+++ b/www/api/memory.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Memory Allocation @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Memory Allocation</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, memory, allocation, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="memory.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,21 +76,22 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="memory.html#AcquireAlignedMemory">AcquireAlignedMemory</a> &#8226; <a href="memory.html#AcquireMagickMemory">AcquireMagickMemory</a> &#8226; <a href="memory.html#AcquireQuantumMemory">AcquireQuantumMemory</a> &#8226; <a href="memory.html#AcquireVirtualMemory">AcquireVirtualMemory</a> &#8226; <a href="memory.html#CopyMagickMemory">CopyMagickMemory</a> &#8226; <a href="memory.html#GetMagickMemoryMethods">GetMagickMemoryMethods</a> &#8226; <a href="memory.html#GetVirtualMemoryBlob">GetVirtualMemoryBlob</a> &#8226; <a href="memory.html#RelinquishAlignedMemory">RelinquishAlignedMemory</a> &#8226; <a href="memory.html#RelinquishMagickMemory">RelinquishMagickMemory</a> &#8226; <a href="memory.html#RelinquishVirtualMemory">RelinquishVirtualMemory</a> &#8226; <a href="memory.html#ResetMagickMemory">ResetMagickMemory</a> &#8226; <a href="memory.html#ResizeMagickMemory">ResizeMagickMemory</a> &#8226; <a href="memory.html#ResizeQuantumMemory">ResizeQuantumMemory</a> &#8226; <a href="memory.html#SetMagickMemoryMethods">SetMagickMemoryMethods</a></p>
+<p class="text-center"><a href="memory.html#AcquireAlignedMemory">AcquireAlignedMemory</a> &#8226; <a href="memory.html#AcquireMagickMemory">AcquireMagickMemory</a> &#8226; <a href="memory.html#AcquireCriticalMemory">AcquireCriticalMemory</a> &#8226; <a href="memory.html#AcquireQuantumMemory">AcquireQuantumMemory</a> &#8226; <a href="memory.html#AcquireVirtualMemory">AcquireVirtualMemory</a> &#8226; <a href="memory.html#CopyMagickMemory">CopyMagickMemory</a> &#8226; <a href="memory.html#GetMagickMemoryMethods">GetMagickMemoryMethods</a> &#8226; <a href="memory.html#GetVirtualMemoryBlob">GetVirtualMemoryBlob</a> &#8226; <a href="memory.html#RelinquishAlignedMemory">RelinquishAlignedMemory</a> &#8226; <a href="memory.html#RelinquishMagickMemory">RelinquishMagickMemory</a> &#8226; <a href="memory.html#RelinquishVirtualMemory">RelinquishVirtualMemory</a> &#8226; <a href="memory.html#ResetMagickMemory">ResetMagickMemory</a> &#8226; <a href="memory.html#ResizeMagickMemory">ResizeMagickMemory</a> &#8226; <a href="memory.html#ResizeQuantumMemory">ResizeQuantumMemory</a> &#8226; <a href="memory.html#SetMagickAlignedMemoryMethods">SetMagickAlignedMemoryMethods</a> &#8226; <a href="memory.html#SetMagickMemoryMethods">SetMagickMemoryMethods</a></p>
 
 <h2><a href="../../api/MagickCore/memory_8c.html" id="AcquireAlignedMemory">AcquireAlignedMemory</a></h2>
 
-<p>AcquireAlignedMemory() returns a pointer to a block of memory at least size bytes whose address is aligned on a cache line or page boundary.</p>
+<p>AcquireAlignedMemory() returns a pointer to a block of memory whose size is at least (count*quantum) bytes, and whose address is aligned on a cache line.</p>
 
 <p>The format of the AcquireAlignedMemory method is:</p>
 
@@ -101,11 +107,11 @@
 <dd> </dd>
 <dl class="dl-horizontal">
 <dt>count</dt>
-<dd>the number of quantum elements to allocate. </dd>
+<dd>the number of objects to allocate contiguously. </dd>
 
 <dd> </dd>
 <dt>quantum</dt>
-<dd>the number of bytes in each quantum. </dd>
+<dd>the size (in bytes) of each object. </dd>
 
 <dd>  </dd>
 </dl>
@@ -131,6 +137,30 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickCore/memory_8c.html" id="AcquireCriticalMemory">AcquireCriticalMemory</a></h2>
+
+<p>AcquireCriticalMemory() is just like AcquireMagickMemory(), throws a fatal exception if the memory cannot be acquired.</p>
+
+<p>That is, AcquireCriticalMemory() returns a pointer to a block of memory that is at least size bytes, and that is suitably aligned for any use; however, if this is not possible, it throws an exception and terminates the program as unceremoniously as possible.</p>
+
+<p>The format of the AcquireCriticalMemory method is:</p>
+
+<pre class="text">
+void *AcquireCriticalMemory(const size_t size)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>size</dt>
+<dd>the size (in bytes) of the memory to allocate. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickCore/memory_8c.html" id="AcquireQuantumMemory">AcquireQuantumMemory</a></h2>
 
 <p>AcquireQuantumMemory() returns a pointer to a block of memory at least count * quantum bytes suitably aligned for any use.</p>
@@ -149,11 +179,11 @@
 <dd> </dd>
 <dl class="dl-horizontal">
 <dt>count</dt>
-<dd>the number of quantum elements to allocate. </dd>
+<dd>the number of objects to allocate contiguously. </dd>
 
 <dd> </dd>
 <dt>quantum</dt>
-<dd>the number of bytes in each quantum. </dd>
+<dd>the size (in bytes) of each object. </dd>
 
 <dd>  </dd>
 </dl>
@@ -175,11 +205,11 @@
 <dd> </dd>
 <dl class="dl-horizontal">
 <dt>count</dt>
-<dd>the number of quantum elements to allocate. </dd>
+<dd>the number of objects to allocate contiguously. </dd>
 
 <dd> </dd>
 <dt>quantum</dt>
-<dd>the number of bytes in each quantum. </dd>
+<dd>the size (in bytes) of each object. </dd>
 
 <dd>  </dd>
 </dl>
@@ -190,8 +220,8 @@
 <p>The format of the CopyMagickMemory method is:</p>
 
 <pre class="text">
-void *CopyMagickMemory(void *destination,const void *source,
-  const size_t size)
+void *CopyMagickMemory(void *magick_restrict destination,
+  const void *magick_restrict source,const size_t size)
 </pre>
 
 <p>A description of each parameter follows:</p>
@@ -411,11 +441,39 @@
 
 <dd> </dd>
 <dt>count</dt>
-<dd>the number of quantum elements to allocate. </dd>
+<dd>the number of objects to allocate contiguously. </dd>
 
 <dd> </dd>
 <dt>quantum</dt>
-<dd>the number of bytes in each quantum. </dd>
+<dd>the size (in bytes) of each object. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/memory_8c.html" id="SetMagickAlignedMemoryMethods">SetMagickAlignedMemoryMethods</a></h2>
+
+<p>SetMagickAlignedMemoryMethods() sets the methods to acquire and relinquish aligned memory.</p>
+
+<p>The format of the SetMagickAlignedMemoryMethods() method is:</p>
+
+<pre class="text">
+SetMagickAlignedMemoryMethods(
+  AcquireAlignedMemoryHandler acquire_aligned_memory_handler,
+  RelinquishAlignedMemoryHandler relinquish_aligned_memory_handler)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>acquire_memory_handler</dt>
+<dd>method to acquire aligned memory. </dd>
+
+<dd> </dd>
+<dt>relinquish_aligned_memory_handler</dt>
+<dd>method to relinquish aligned memory. </dd>
 
 <dd>  </dd>
 </dl>
@@ -456,22 +514,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="memory.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="memory.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 18:57 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 14:22 -->
\ No newline at end of file
diff --git a/www/api/mime.html b/www/api/mime.html
index b7ab1f9..7e0f6cb 100644
--- a/www/api/mime.html
+++ b/www/api/mime.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Mime Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Mime Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, mime, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="mime.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -239,22 +245,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="mime.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="mime.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 20:55 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 12:22 -->
\ No newline at end of file
diff --git a/www/api/module.html b/www/api/module.html
index 6d153d4..82552c4 100644
--- a/www/api/module.html
+++ b/www/api/module.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Loadable Modules @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Loadable Modules</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, loadable, modules, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="module.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/module.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -505,23 +511,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="module.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="module.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 16:44 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 22:03 -->
\ No newline at end of file
diff --git a/www/api/mogrify.html b/www/api/mogrify.html
index 32b09ee..48a557c 100644
--- a/www/api/mogrify.html
+++ b/www/api/mogrify.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Command-line Interface @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Command-line Interface</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, command-line, interface, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="mogrify.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/mogrify.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -133,23 +139,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="mogrify.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="mogrify.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 04:25 -->
\ No newline at end of file
+<!-- Magick Cache 30th December 2019 12:51 -->
\ No newline at end of file
diff --git a/www/api/monitor.html b/www/api/monitor.html
index cda0820..0ae6647 100644
--- a/www/api/monitor.html
+++ b/www/api/monitor.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Monitor the Progress of an Image Operation @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Monitor the Progress of an Image Operation</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, monitor, the, progress, of, an, image, operation, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="monitor.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -201,22 +207,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="monitor.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="monitor.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 20:55 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 14:22 -->
\ No newline at end of file
diff --git a/www/api/montage.html b/www/api/montage.html
index 590efdd..6691a10 100644
--- a/www/api/montage.html
+++ b/www/api/montage.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Create an Image Thumbnail @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Create an Image Thumbnail</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, create, an, image, thumbnail, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="montage.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -88,22 +94,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="montage.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="montage.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 13:44 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 15:25 -->
\ No newline at end of file
diff --git a/www/api/morphology.html b/www/api/morphology.html
index 7f89613..8b5f709 100644
--- a/www/api/morphology.html
+++ b/www/api/morphology.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Morphological Erosions, Dilations, Openings, and Closings @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Morphological Erosions, Dilations, Openings, and Closings</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, morphological, erosions, dilations, openings, closings, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="morphology.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/morphology.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -622,23 +628,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="morphology.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="morphology.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 23:14 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 04:23 -->
\ No newline at end of file
diff --git a/www/api/paint.html b/www/api/paint.html
index 9c202f7..167c60a 100644
--- a/www/api/paint.html
+++ b/www/api/paint.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Paint on an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Paint on an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, paint, on, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="paint.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -300,22 +306,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="paint.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="paint.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 23:22 -->
\ No newline at end of file
diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html
index 773da87..5a763d6 100644
--- a/www/api/pixel-iterator.html
+++ b/www/api/pixel-iterator.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Pixel Iterator Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Pixel Iterator Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, pixel, iterator, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="pixel-iterator.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -511,22 +517,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="pixel-iterator.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="pixel-iterator.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 04:25 -->
\ No newline at end of file
+<!-- Magick Cache 30th December 2019 04:48 -->
\ No newline at end of file
diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html
index b26262e..5e6156a 100644
--- a/www/api/pixel-wand.html
+++ b/www/api/pixel-wand.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Pixel Wand Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Pixel Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, pixel, wmethods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="pixel-wand.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -1580,22 +1586,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="pixel-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="pixel-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 2nd January 2019 16:25 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 03:16 -->
\ No newline at end of file
diff --git a/www/api/profile.html b/www/api/profile.html
index a82466f..02847f8 100644
--- a/www/api/profile.html
+++ b/www/api/profile.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Dealing with Image Profiles @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Dealing with Image Profiles</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, dealing, with, image, profiles, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="profile.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/profile.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -352,23 +358,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="profile.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="profile.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 16:18 -->
\ No newline at end of file
+<!-- Magick Cache 3rd January 2020 09:48 -->
\ No newline at end of file
diff --git a/www/api/property.html b/www/api/property.html
index 3438752..a72c873 100644
--- a/www/api/property.html
+++ b/www/api/property.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Get/Set Image Properties @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Get/Set Image Properties</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, get/set, image, properties, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="property.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/property.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -404,23 +410,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="property.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="property.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 10:11 -->
\ No newline at end of file
+<!-- Magick Cache 29th December 2019 23:26 -->
\ No newline at end of file
diff --git a/www/api/quantize.html b/www/api/quantize.html
index 94d9ef9..60dd5e9 100644
--- a/www/api/quantize.html
+++ b/www/api/quantize.html
@@ -7,60 +7,65 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Convert, Edit, Or Compose Bitmap Images @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Reduce the Number of Unique Colors in an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
-  <meta name="keywords" content="convert, edit, or, compose, bitmap, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
+  <meta name="keywords" content="magickcore, c, api:, reduce, the, number, of, unique, colors, in, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
   <meta name="rating" content="GENERAL" />
   <meta name="robots" content="INDEX, FOLLOW" />
   <meta name="generator" content="ImageMagick Studio LLC" />
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="quantize.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/quantize.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
 
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
-      <li class="nav-item active">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+      <li class="nav-item ">
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,209 +76,485 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="quantize.html#features">Features and Capabilities</a> • <a href="quantize.html#news">News</a> • <a href="quantize.html#community">Community</a></p>
+<p class="text-center"><a href="quantize.html#QuantizeImage">QuantizeImage</a> &#8226; <a href="quantize.html#AcquireQuantizeInfo">AcquireQuantizeInfo</a> &#8226; <a href="quantize.html#CloneQuantizeInfo">CloneQuantizeInfo</a> &#8226; <a href="quantize.html#CompressImageColormap">CompressImageColormap</a> &#8226; <a href="quantize.html#DestroyQuantizeInfo">DestroyQuantizeInfo</a> &#8226; <a href="quantize.html#GetImageQuantizeError">GetImageQuantizeError</a> &#8226; <a href="quantize.html#GetQuantizeInfo">GetQuantizeInfo</a> &#8226; <a href="quantize.html#KmeansImage">KmeansImage</a> &#8226; <a href="quantize.html#PosterizeImage">PosterizeImage</a> &#8226; <a href="quantize.html#QuantizeImage">QuantizeImage</a> &#8226; <a href="quantize.html#QuantizeImages">QuantizeImages</a> &#8226; <a href="quantize.html#RemapImage">RemapImage</a> &#8226; <a href="quantize.html#RemapImages">RemapImages</a> &#8226; <a href="quantize.html#SetGrayscaleImage">SetGrayscaleImage</a></p>
 
-<p class="lead magick-description"><a href="../../images/wizard.png" title="And Now a Touch of Magick"><img class="img-fluid magick-icon" id="logo" alt="And Now a Touch of Magick" width="265" height="352" src="../../images/wizard.jpg" /></a> 
-Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;entry=78333969">&#174;</a></sup> to create, edit, compose, or convert bitmap images.  It can read and write images in a variety of <a href="../../www/formats.html">formats</a> (over 200) including PNG, JPEG, GIF, HEIC, TIFF, <a href="../../www/motion-picture.html">DPX</a>, <a href="../../www/high-dynamic-range.html">EXR</a>, WebP, Postscript, PDF, and SVG.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.</p>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="QuantizeImage">QuantizeImage</a></h2>
 
-<p>The functionality of ImageMagick is typically utilized from the <a href="../../www/command-line-processing.html">command-line</a> or you can use the features from programs written in your favorite language. Choose from these interfaces: <a href="../../www/develop.html#ada">G2F</a> (Ada), <a href="../../www/develop.html#c">MagickCore</a> (C), <a href="../../www/develop.html#c">MagickWand</a> (C), <a href="../../www/develop.html#ch">ChMagick</a> (Ch), <a href="../../www/develop.html#com_">ImageMagickObject</a> (COM+), <a href="../../www/develop.html#c__">Magick++</a> (C++), <a href="../../www/develop.html#java">JMagick</a> (Java), <a href="../../www/develop.html#julia">JuliaIO</a> (Julia), <a href="../../www/develop.html#lisp">L-Magick</a> (Lisp), <a href="../../www/develop.html#lua">Lua</a> (LuaJIT), <a href="../../www/develop.html#neko">NMagick</a> (Neko/haXe), <a href="../../www/develop.html#dot-net">Magick.NET</a> (.NET), <a href="../../www/develop.html#pascal">PascalMagick</a> (Pascal),  <a href="../../www/develop.html#perl">PerlMagick</a> (Perl), <a href="../../www/develop.html#php">MagickWand for PHP</a> (PHP),  <a href="../../www/develop.html#php">IMagick</a> (PHP), <a href="../../www/develop.html#python">PythonMagick</a> (Python), <a href="../../www/develop.html#r">magick</a> (R), <a href="../../www/develop.html#ruby">RMagick</a> (Ruby), or <a href="../../www/develop.html#tcl">TclMagick</a> (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and <var>automagically</var>.</p>
-<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
-<p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="../www/license.html">license</a>.</p>
+<p>QuantizeImage() takes a standard RGB or monochrome images and quantizes them down to some fixed number of colors.</p>
 
-<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to help prevent security vulnerabilities.</p>
+<p>For purposes of color allocation, an image is a set of n pixels, where each pixel is a point in RGB space.  RGB space is a 3-dimensional vector space, and each pixel, Pi,  is defined by an ordered triple of red, green, and blue coordinates, (Ri, Gi, Bi).</p>
 
-<p>The current release is ImageMagick <a href="../../www/download.html">7.0.8-23</a>.  It runs on <a href="../../www/download.html#unix">Linux</a>, <a href="../../www/download.html#windows">Windows</a>, <a href="../../www/download.html#macosx">Mac Os X</a>, <a href="../../www/download.html#iOS">iOS</a>, Android OS, and others.</p>
+<p>Each primary color component (red, green, or blue) represents an intensity which varies linearly from 0 to a maximum value, Cmax, which corresponds to full saturation of that color.  Color allocation is defined over a domain consisting of the cube in RGB space with opposite vertices at (0,0,0) and (Cmax, Cmax, Cmax).  QUANTIZE requires Cmax = 255.</p>
 
-<p>The authoritative ImageMagick web site is <a href="../../">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a>.</p>
+<p>The algorithm maps this domain onto a tree in which each node represents a cube within that domain.  In the following discussion these cubes are defined by the coordinate of two opposite vertices (vertex nearest the origin in RGB space and the vertex farthest from the origin).</p>
 
-<p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The tree's root node represents the entire domain, (0,0,0) through (Cmax,Cmax,Cmax).  Each lower level in the tree is generated by subdividing one node's cube into eight smaller cubes of equal size. This corresponds to bisecting the parent cube with planes passing through the midpoints of each edge.</p>
 
-<h1><a class="anchor" id="features"></a>Features and Capabilities</h1>
-<p>Here are just a few <a href="../www/examples.html">examples</a> of what ImageMagick can do for you:</p>
-<div class="table-responsive">
-<table class="table table-sm table-striped">
-  <tr>
-    <td><a href="../../Usage/anim_basics/">Animation</a></td>
-    <td>create a GIF animation sequence from a group of images.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/color-management.html">Color management</a></td>
-    <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/command-line-processing.html">Command-line processing</a></td>
-    <td>utilize ImageMagick from the command-line.</td>
-  </tr>
-  <tr>
-    <td><a href="https://en.wikipedia.org/wiki/Complex_text_layout">Complex text layout</a></td>
-    <td>bidirectional text support and shaping.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/composite.html">Composite</a></td>
-    <td>overlap one image over another.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/connected-components.html">Connected component labeling</a></td>
-    <td>uniquely label connected regions in an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/crop/">Decorate</a></td>
-    <td>add a border or frame to an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/transform/#vision">Delineate image features</a></td>
-    <td><a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25405">Canny edge detection</a>, <a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25476">Hough lines</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/fourier/">Discrete Fourier transform</a></td>
-    <td>implements the forward and inverse <a href="https://en.wikipedia.org/wiki/Discrete_Fourier_transform">DFT</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/distribute-pixel-cache.html">Distributed pixel cache</a></td>
-    <td>offload intermediate pixel storage to one or more remote servers.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/draw/">Draw</a></td>
-    <td>add shapes or text to an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/cipher.html">Encipher or decipher an image</a></td>
-    <td>convert ordinary images into unintelligible gibberish and back again.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/convert.html">Format conversion</a></td>
-    <td>convert an image from one <a href="../../www/formats.html">format </a> to another (e.g. PNG to JPEG).</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/distorts/">Generalized pixel distortion</a></td>
-    <td>correct for, or induce image distortions including perspective.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#distributed">Heterogeneous distributed processing</a></td>
-    <td>certain algorithms are <a href="../www/opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/high-dynamic-range.html">High dynamic-range images</a></td>
-    <td>accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/fx.html">Image calculator</a></td>
-    <td>apply a mathematical expression to an image or image channels.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/gradient.html">Image gradients</a></td>
-    <td>create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</td>
-  </tr>
-  <tr>
-    <td><a href="../www/identify.html">Image identification</a></td>
-    <td>describe the format and attributes of an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/download.html#iOS">ImageMagick on the iPhone</a></td>
-    <td>convert, edit, or compose images on your <a href="https://www.apple.com/ios/">iOS</a> device such as the iPhone or iPad.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#tera-pixel">Large image support</a></td>
-    <td>read, process, or write mega-, giga-, or tera-pixel image sizes.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/montage.html">Montage</a></td>
-    <td>juxtapose image thumbnails on an image canvas.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/morphology/">Morphology of shapes</a></td>
-    <td>extract features, describe shapes, and recognize patterns in images.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/motion-picture.html">Motion picture support</a></td>
-    <td>read and write the common image formats used in digital film work.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/transform/#vision">Noise and color reduction</a></td>
-    <td><a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=26480">Kuwahara Filter</a>, <a href="../https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25504">mean-shift</a>.</td>
-  </tr>
-  <tr>
-    <td><a href="http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html">Perceptual hash</a></td>
-    <td>map visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/blur/">Special effects</a></td>
-    <td>blur, sharpen, threshold, or tint an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/text/">Text &amp; comments</a></td>
-    <td>insert descriptive or artistic text in an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#threads">Threads of execution support</a></td>
-    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="../www/openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/resize/">Transform</a></td>
-    <td>resize, rotate, deskew, crop, flip or trim an image.</td>
-  </tr>
-  <tr>
-    <td><a href="../../Usage/masking/">Transparency</a></td>
-    <td>render portions of an image invisible.</td>
-  </tr>
-  <tr>
-    <td><a href="../../www/architecture.html#virtual-pixels">Virtual pixel support</a></td>
-    <td>convenient access to pixels outside the image boundaries.</td>
-  </tr>
-</table>
-</div>
+<p>The basic algorithm operates in three phases: Classification, Reduction, and Assignment.  Classification builds a color description tree for the image.  Reduction collapses the tree until the number it represents, at most, the number of colors desired in the output image. Assignment defines the output image's color map and sets each pixel's color by restorage_class in the reduced tree.  Our goal is to minimize the numerical discrepancies between the original colors and quantized colors (quantization error).</p>
 
-<p><a href="../../Usage/">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="../../www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
+<p>Classification begins by initializing a color description tree of sufficient depth to represent each possible input color in a leaf. However, it is impractical to generate a fully-formed color description tree in the storage_class phase for realistic values of Cmax.  If colors components in the input image are quantized to k-bit precision, so that Cmax= 2k-1, the tree would need k levels below the root node to allow representing each possible input color in a leaf.  This becomes prohibitive because the tree's total number of nodes is 1 + sum(i=1, k, 8k).</p>
 
-<h1><a class="anchor" id="news"></a>News</h1>
+<p>A complete tree would require 19,173,961 nodes for k = 8, Cmax = 255.</p>
+<dt>avoid building a fully populated tree, QUANTIZE</dt>
+<p>(1) Initializes data structures for nodes only as they are needed;  (2) Chooses a maximum depth for the tree as a function of the desired number of colors in the output image (currently log2(colormap size)).</p>
 
-<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="../www/porting.html">porting guide</a>.</p>
+<p>For each pixel in the input image, storage_class scans downward from the root of the color description tree.  At each level of the tree it identifies the single node which represents a cube in RGB space containing the pixel's color.  It updates the following data for each such node:</p>
 
-<p>ImageMagick best practices <strong>strongly</strong> encourages you to configure a <a href="../../www/security-policy.html">security policy</a> that suits your local environment.</p>
+<pre class="text">
+    n1: Number of pixels whose color is contained in the RGB cube which
+    this node represents;
+</pre>
 
-<p>As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace.  Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).</p>
+<p>n2: Number of pixels whose color is not represented in a node at lower depth in the tree;  initially,  n2 = 0 for all nodes except leaves of the tree.</p>
 
-<p>Want more performance from ImageMagick?  Try these options:</p>
+<p>Sr, Sg, Sb: Sums of the red, green, and blue component values for all pixels not classified at a lower depth. The combination of these sums and n2 will ultimately characterize the mean color of a set of pixels represented by this node.</p>
 
-<ul>
-<li>Add more memory to your system, see <a href="../../www/architecture.html#cache">the pixel cache</a>;</li>
-<li>Add more cores to your system, see <a href="../../www/architecture.html#threads">threads of execution support</a>;</li>
-<li>push large images to a solid-state drive, see <a href="../../www/architecture.html#tera-pixel">large image support</a>.</li>
-</ul>
-<p>If these options are prohibitive, you can reduce the quality of the image results.  The default build is Q16 HDRI.  If you disable <a href="../../www/high-dynamic-range.html">HDRI</a>, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations.  The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative).  If you build the Q8 non-HDRI  version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values.  For a Q8 non-HDRI build of ImageMagick, use these <code>configure</code> script options: <code>--with-quantum-depth=8 --disable-hdri</code>.</p>
+<p>E: the distance squared in RGB space between each pixel contained within a node and the nodes' center.  This represents the quantization error for a node.</p>
 
-<h1><a class="anchor" id="community"></a>Community</h1>
-<p>To join the ImageMagick community, try the <a target="_blank" href="https://imagemagick.org/discourse-server/">discourse server</a>.  You can review questions or comments (with informed responses) posed by ImageMagick users or ask your own questions. If you want to contribute image processing algorithms, other enhancements, or bug fixes, open an <a href="https://github.com/ImageMagick/ImageMagick/issues">issue</a>. </p>
+<p>Reduction repeatedly prunes the tree until the number of nodes with n2 &gt; 0 is less than or equal to the maximum number of colors allowed in the output image.  On any given iteration over the tree, it selects those nodes whose E count is minimal for pruning and merges their color statistics upward. It uses a pruning threshold, Ep, to govern node selection as follows:</p>
+
+<dd>
+</dd>
+
+<dd> Ep = 0 while number of nodes with (n2 &gt; 0) &gt; required maximum number of colors prune all nodes such that E &lt;= Ep Set Ep to minimum E in remaining nodes </dd>
+
+<dd> This has the effect of minimizing any quantization error when merging two nodes together. </dd>
+
+<dd> When a node to be pruned has offspring, the pruning procedure invokes itself recursively in order to prune the tree from the leaves upward. n2,  Sr, Sg,  and  Sb in a node being pruned are always added to the corresponding data in that node's parent.  This retains the pruned node's color characteristics for later averaging. </dd>
+
+<dd> For each node, n2 pixels exist for which that node represents the smallest volume in RGB space containing those pixel's colors.  When n2 &gt; 0 the node will uniquely define a color in the output image. At the beginning of reduction,  n2 = 0  for all nodes except a the leaves of the tree which represent colors present in the input image. </dd>
+
+<dd> The other pixel count, n1, indicates the total number of colors within the cubic volume which the node represents.  This includes n1 - n2 pixels whose colors should be defined by nodes at a lower level in the tree. </dd>
+
+<dd> Assignment generates the output image from the pruned tree.  The output </dd>
+<dl class="dl-horizontal">
+<dt>parts</dt>
+<dd>(1)  A color map, which is an array of color descriptions (RGB triples) for each color present in the output image;  (2)  A pixel array, which represents each pixel as an index into the color map array. </dd>
+
+<dd> First, the assignment phase makes one pass over the pruned color description tree to establish the image's color map.  For each node with n2  &gt; 0, it divides Sr, Sg, and Sb by n2 .  This produces the mean color of all pixels that classify no lower than this node.  Each of these colors becomes an entry in the color map. </dd>
+
+<dd> Finally,  the assignment phase reclassifies each pixel in the pruned tree to identify the deepest node containing the pixel's color.  The pixel's value in the pixel array becomes the index of this node's mean color in the color map. </dd>
+
+<dd> This method is based on a similar algorithm written by Paul Raveling. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="AcquireQuantizeInfo">AcquireQuantizeInfo</a></h2>
+
+<p>AcquireQuantizeInfo() allocates the QuantizeInfo structure.</p>
+
+<p>The format of the AcquireQuantizeInfo method is:</p>
+
+<pre class="text">
+QuantizeInfo *AcquireQuantizeInfo(const ImageInfo *image_info)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image_info</dt>
+<dd>the image info. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="CloneQuantizeInfo">CloneQuantizeInfo</a></h2>
+
+<p>CloneQuantizeInfo() makes a duplicate of the given quantize info structure, or if quantize info is NULL, a new one.</p>
+
+<p>The format of the CloneQuantizeInfo method is:</p>
+
+<pre class="text">
+QuantizeInfo *CloneQuantizeInfo(const QuantizeInfo *quantize_info)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>clone_info</dt>
+<dd>Method CloneQuantizeInfo returns a duplicate of the given quantize info, or if image info is NULL a new one. </dd>
+
+<dd> </dd>
+<dt>quantize_info</dt>
+<dd>a structure of type info. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="CompressImageColormap">CompressImageColormap</a></h2>
+
+<p>CompressImageColormap() compresses an image colormap by removing any duplicate or unused color entries.</p>
+
+<p>The format of the CompressImageColormap method is:</p>
+
+<pre class="text">
+MagickBooleanType CompressImageColormap(Image *image,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="DestroyQuantizeInfo">DestroyQuantizeInfo</a></h2>
+
+<p>DestroyQuantizeInfo() deallocates memory associated with an QuantizeInfo structure.</p>
+
+<p>The format of the DestroyQuantizeInfo method is:</p>
+
+<pre class="text">
+QuantizeInfo *DestroyQuantizeInfo(QuantizeInfo *quantize_info)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to an QuantizeInfo structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="GetImageQuantizeError">GetImageQuantizeError</a></h2>
+
+<p>GetImageQuantizeError() measures the difference between the original and quantized images.  This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.  These values are computed:</p>
+
+<pre class="text">
+    o mean_error_per_pixel:  This value is the mean error for any single
+pixel in the image.
+</pre>
+
+<dt>normalized_mean_square_error</dt>
+<p>This value is the normalized mean quantization error for any single pixel in the image.  This distance measure is normalized to a range between 0 and 1.  It is independent of the range of red, green, and blue values in the image.</p>
+
+<dt>normalized_maximum_square_error</dt>
+<p>Thsi value is the normalized maximum quantization error for any single pixel in the image.  This distance measure is normalized to a range between 0 and 1.  It is independent of the range of red, green, and blue values in your image.</p>
+
+<p>The format of the GetImageQuantizeError method is:</p>
+
+<pre class="text">
+MagickBooleanType GetImageQuantizeError(Image *image,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows.</p>
+
+<dt>image</dt>
+<p>the image.</p>
+
+<dt>exception</dt>
+<p>return any errors or warnings in this structure.</p>
+
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="GetQuantizeInfo">GetQuantizeInfo</a></h2>
+
+<p>GetQuantizeInfo() initializes the QuantizeInfo structure.</p>
+
+<p>The format of the GetQuantizeInfo method is:</p>
+
+<pre class="text">
+GetQuantizeInfo(QuantizeInfo *quantize_info)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to a QuantizeInfo structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="KmeansImage">KmeansImage</a></h2>
+
+<p>KmeansImage() applies k-means color reduction to an image. This is a colorspace clustering or segmentation technique.</p>
+
+<p>The format of the KmeansImage method is:</p>
+
+<pre class="text">
+MagickBooleanType KmeansImage(Image *image,const size_t number_colors,
+  const size_t max_iterations,const double max_distortion,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>number_colors</dt>
+<dd>number of colors to use as seeds. </dd>
+
+<dd> </dd>
+<dt>max_iterations</dt>
+<dd>maximum number of iterations while converging. </dd>
+
+<dd> </dd>
+<dt>max_distortion</dt>
+<dd>the maximum quantization distortion. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="PosterizeImage">PosterizeImage</a></h2>
+
+<p>PosterizeImage() reduces the image to a limited number of colors for a "poster" effect.</p>
+
+<p>The format of the PosterizeImage method is:</p>
+
+<pre class="text">
+MagickBooleanType PosterizeImage(Image *image,const size_t levels,
+  const DitherMethod dither_method,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>Specifies a pointer to an Image structure. </dd>
+
+<dd> </dd>
+<dt>levels</dt>
+<dd>Number of color levels allowed in each channel.  Very low values (2, 3, or 4) have the most visible effect. </dd>
+
+<dd> </dd>
+<dt>dither_method</dt>
+<dd>choose from UndefinedDitherMethod, NoDitherMethod, RiemersmaDitherMethod, FloydSteinbergDitherMethod. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="QuantizeImage">QuantizeImage</a></h2>
+
+<p>QuantizeImage() analyzes the colors within a reference image and chooses a fixed number of colors to represent the image.  The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.</p>
+
+<p>The format of the QuantizeImage method is:</p>
+
+<pre class="text">
+MagickBooleanType QuantizeImage(const QuantizeInfo *quantize_info,
+  Image *image,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to an QuantizeInfo structure. </dd>
+
+<dd> </dd>
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="QuantizeImages">QuantizeImages</a></h2>
+
+<p>QuantizeImages() analyzes the colors within a set of reference images and chooses a fixed number of colors to represent the set.  The goal of the algorithm is to minimize the color difference between the input and output images while minimizing the processing time.</p>
+
+<p>The format of the QuantizeImages method is:</p>
+
+<pre class="text">
+MagickBooleanType QuantizeImages(const QuantizeInfo *quantize_info,
+  Image *images,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to an QuantizeInfo structure. </dd>
+
+<dd> </dd>
+<dt>images</dt>
+<dd>Specifies a pointer to a list of Image structures. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="RemapImage">RemapImage</a></h2>
+
+<p>RemapImage() replaces the colors of an image with the closest of the colors from the reference image.</p>
+
+<p>The format of the RemapImage method is:</p>
+
+<pre class="text">
+MagickBooleanType RemapImage(const QuantizeInfo *quantize_info,
+  Image *image,const Image *remap_image,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to an QuantizeInfo structure. </dd>
+
+<dd> </dd>
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>remap_image</dt>
+<dd>the reference image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="RemapImages">RemapImages</a></h2>
+
+<p>RemapImages() replaces the colors of a sequence of images with the closest color from a reference image.</p>
+
+<p>The format of the RemapImage method is:</p>
+
+<pre class="text">
+MagickBooleanType RemapImages(const QuantizeInfo *quantize_info,
+  Image *images,Image *remap_image,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>quantize_info</dt>
+<dd>Specifies a pointer to an QuantizeInfo structure. </dd>
+
+<dd> </dd>
+<dt>images</dt>
+<dd>the image sequence. </dd>
+
+<dd> </dd>
+<dt>remap_image</dt>
+<dd>the reference image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
+<h2><a href="../../api/MagickCore/quantize_8c.html" id="SetGrayscaleImage">SetGrayscaleImage</a></h2>
+
+<p>SetGrayscaleImage() converts an image to a PseudoClass grayscale image.</p>
+
+<p>The format of the SetGrayscaleImage method is:</p>
+
+<pre class="text">
+MagickBooleanType SetGrayscaleImage(Image *image,
+  ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>The image. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="quantize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="quantize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 4th January 2020 19:00 -->
\ No newline at end of file
diff --git a/www/api/registry.html b/www/api/registry.html
index 69ffe66..b0aeb77 100644
--- a/www/api/registry.html
+++ b/www/api/registry.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: The Image Registry @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: The Image Registry</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, the, image, registry, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="registry.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -259,22 +265,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="registry.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="registry.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 29th December 2018 16:44 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 14:18 -->
\ No newline at end of file
diff --git a/www/api/resize.html b/www/api/resize.html
index 6206b69..0b03f6a 100644
--- a/www/api/resize.html
+++ b/www/api/resize.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Resize an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Resize an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, resize, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="resize.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -449,22 +455,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="resize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="resize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 17:20 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 23:22 -->
\ No newline at end of file
diff --git a/www/api/resource.html b/www/api/resource.html
index f997eed..16aa2be 100644
--- a/www/api/resource.html
+++ b/www/api/resource.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Monitor or Limit Resource Consumption @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Monitor or Limit Resource Consumption</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, monitor, or, limit, resource, consumption, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="resource.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/resource.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -275,23 +281,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="resource.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="resource.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 1st January 2019 21:08 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 02:25 -->
\ No newline at end of file
diff --git a/www/api/segment.html b/www/api/segment.html
index b47d741..1cfd550 100644
--- a/www/api/segment.html
+++ b/www/api/segment.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Segment an Image with Thresholding Fuzzy c-Means @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Segment an Image with Thresholding Fuzzy c-Means</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, segment, an, image, with, thresholding, fuzzy, c-means, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="segment.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -121,22 +127,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="segment.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="segment.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 20:52 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 10:12 -->
\ No newline at end of file
diff --git a/www/api/shear.html b/www/api/shear.html
index d2b767b..ad2395a 100644
--- a/www/api/shear.html
+++ b/www/api/shear.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Shear or Rotate an Image by an Arbitrary Angle @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Shear or Rotate an Image by an Arbitrary Angle</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, shear, or, rotate, an, image, by, an, arbitrary, angle, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="shear.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -192,22 +198,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="shear.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="shear.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 05:28 -->
\ No newline at end of file
+<!-- Magick Cache 2nd January 2020 17:34 -->
\ No newline at end of file
diff --git a/www/api/signature.html b/www/api/signature.html
index b0e9e1f..6473d33 100644
--- a/www/api/signature.html
+++ b/www/api/signature.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Compute a Message Digest for an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Compute a Message Digest for an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, compute, a, message, digest, for, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="signature.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/signature.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -113,23 +119,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="signature.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="signature.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 05:48 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 05:26 -->
\ No newline at end of file
diff --git a/www/api/statistic.html b/www/api/statistic.html
index 75d6c1c..5bf054d 100644
--- a/www/api/statistic.html
+++ b/www/api/statistic.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Image Statistics @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Image Statistics</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, image, statistics, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="statistic.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -496,22 +502,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="statistic.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="statistic.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 10:19 -->
\ No newline at end of file
+<!-- Magick Cache 31st December 2019 16:54 -->
\ No newline at end of file
diff --git a/www/api/stream.html b/www/api/stream.html
index 67f4150..f7af641 100644
--- a/www/api/stream.html
+++ b/www/api/stream.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: The Pixel FIFO @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: The Pixel FIFO</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, the, pixel, fifo, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="stream.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/stream.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -126,23 +132,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="stream.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="stream.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 04:54 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2020 16:15 -->
\ No newline at end of file
diff --git a/www/api/transform.html b/www/api/transform.html
index f9c73af..1a8c983 100644
--- a/www/api/transform.html
+++ b/www/api/transform.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Transform an Image @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Transform an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, transform, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="transform.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../www/api/transform.html" rel="canonical" />
+  <link href="../../www/images/wand.png" rel="icon" />
+  <link href="../../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../../www/www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -542,23 +548,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="transform.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../../www/www/security-policy.html">Security</a> •
+    <a href="../../www/www/architecture.html">Architecture</a>
+     
+    <a href="transform.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../www/images/wand.ico"/></a>
+     
+    <a href="../../www/www/links.html">Related</a> •
+     <a href="../../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 3rd January 2019 20:56 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 00:55 -->
\ No newline at end of file
diff --git a/www/api/version.html b/www/api/version.html
index 3df40d9..a788b0e 100644
--- a/www/api/version.html
+++ b/www/api/version.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, C API: Get the Version and Copyrights @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, C API: Get the Version and Copyrights</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, c, api:, get, the, version, copyrights, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="version.html" rel="canonical" />
   <link href="../../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="../assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../../www/download.html">Download</a>
@@ -60,7 +65,7 @@
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -276,22 +282,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
+    <a href="../../www/architecture.html">Architecture</a>
+     
+    <a href="version.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
+     
     <a href="../../www/links.html">Related</a> •
      <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="version.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 4th January 2019 19:50 -->
\ No newline at end of file
+<!-- Magick Cache 4th January 2020 14:45 -->
\ No newline at end of file
diff --git a/www/api/wand-view.html b/www/api/wand-view.html
index 00044e9..a3091a2 100644
--- a/www/api/wand-view.html
+++ b/www/api/wand-view.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API: Wand View Methods @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API: Wand View Methods</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api:, wview, methods, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2017 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="wand-view.html" rel="canonical" />
-  <link href="../../images/wand.png" rel="icon" />
-  <link href="../../images/wand.ico" rel="shortcut icon" />
-  <link href="../assets/magick.css" rel="stylesheet" />
+  <link href="../../api/wand-view.html" rel="canonical" />
+  <link href="../images/wand.png" rel="icon" />
+  <link href="../images/wand.ico" rel="shortcut icon" />
+  <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/download.html">Download</a>
+        <a class="nav-link" href="../www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -566,23 +572,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../../www/security-policy.html">Security</a> •
-    <a href="../../www/architecture.html">Architecture</a> •
-    <a href="../../www/links.html">Related</a> •
-     <a href="../../www/sitemap.html">Sitemap</a>
-       
-    <a href="wand-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../../www/support.html">Donate</a> •
-    <a href="../../www/contact.html">Contact Us</a>
+    <p><a href="../www/security-policy.html">Security</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="wand-view.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
+    <a href="../www/links.html">Related</a> •
+     <a href="../www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/contact.html">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="../assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 30th December 2018 04:25 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2020 15:45 -->
\ No newline at end of file
diff --git a/www/architecture.html b/www/architecture.html
index 8e7971e..7ec4668 100644
--- a/www/architecture.html
+++ b/www/architecture.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Architecture @ ImageMagick</title>
+  <title>ImageMagick - Architecture</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="architecture, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/architecture.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -156,11 +162,11 @@
 </code></pre></dd>
 </dl>
 
-<p>In our discussion of the pixel cache, we use the <a href="../www/magick-core.html">MagickCore API</a> to illustrate our points, however, the principles are the same for other program interfaces to ImageMagick.</p>
+<p>In our discussion of the pixel cache, we use the <a href="magick-core.html">MagickCore API</a> to illustrate our points, however, the principles are the same for other program interfaces to ImageMagick.</p>
 
 <p>When the pixel cache is initialized, pixels are scaled from whatever bit depth they originated from to that required by the pixel cache.  For example, a 1-channel 1-bit monochrome PBM image is scaled to 8-bit gray image, if you are using the Q8 version of ImageMagick, and 16-bit RGBA for the Q16 version.  You can determine which version you have with the <a href="command-line-options.html#version">&#x2011;version</a> option: </p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.8-23 2018-12-25 Q16 https://imagemagick.org</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.9-14 2020-01-01 Q16 https://imagemagick.org</span></pre>
 <p>As you can see, the convenience of the pixel cache sometimes comes with a trade-off in storage (e.g. storing a 1-bit monochrome image as 16-bit is wasteful) and speed (i.e. storing the entire image in memory is generally slower than accessing one scanline of pixels at a time).  In most cases, the benefits of the pixel cache typically outweigh any disadvantages.</p>
 
 <h3><a class="anchor" id="authentic-pixels"></a>Access the Pixel Cache</h3>
@@ -173,7 +179,7 @@
   <li><a href="api/cache.html#SyncAuthenticPixels">SyncAuthenticPixels()</a>: update the pixel cache with any modified pixels</li>
 </ul>
 
-<p>Here is a typical <a href="../www/magick-core.html">MagickCore</a> code snippet for manipulating pixels in the pixel cache.  In our example, we copy pixels from the input image to the output image and decrease the intensity by 10%:</p>
+<p>Here is a typical <a href="magick-core.html">MagickCore</a> code snippet for manipulating pixels in the pixel cache.  In our example, we copy pixels from the input image to the output image and decrease the intensity by 10%:</p>
 
 <pre class="pre-scrollable"><code>const Quantum
   *p;
@@ -464,7 +470,7 @@
 image=ReadStream(image_info,&amp;StreamPixels,exception);
 </code></pre>
 
-<p>We also provide a lightweight tool, <a href="../www/stream.html">stream</a>, to stream one or more pixel components of the image or portion of the image to your choice of storage formats.  It writes the pixel components as they are read from the input image a row at a time making <a href="../www/stream.html">stream</a> desirable when working with large images or when you require raw pixel components.  A majority of the image formats stream pixels (red, green, and blue) from left to right and top to bottom.  However, a few formats do not support this common ordering (e.g. the PSD format).</p>
+<p>We also provide a lightweight tool, <a href="stream.html">stream</a>, to stream one or more pixel components of the image or portion of the image to your choice of storage formats.  It writes the pixel components as they are read from the input image a row at a time making <a href="stream.html">stream</a> desirable when working with large images or when you require raw pixel components.  A majority of the image formats stream pixels (red, green, and blue) from left to right and top to bottom.  However, a few formats do not support this common ordering (e.g. the PSD format).</p>
 
 <h2><a class="anchor" id="properties"></a>Image Properties and Profiles</h2>
 
@@ -498,7 +504,7 @@
 </code></pre>
 
 <h2><a class="anchor" id="tera-pixel"></a>Large Image Support</h2>
-<p>ImageMagick can read, process, or write mega-, giga-, or tera-pixel image sizes.  An image width or height can range from 1 to 2 giga-pixels on a 32 bit OS and up to 9 exa-pixels on a 64-bit OS.  Note, that some image formats have restrictions on image size.  For example, Photoshop images are limited to 300,000 pixels for width or height.  Here we resize an image to a quarter million pixels square:</p>
+<p>ImageMagick can read, process, or write mega-, giga-, or tera-pixel image sizes.  An image width or height can range from 1 to 2 giga-pixels on a 32 bit OS (up to 2147483647 rows/columns) and up to 9 exa-pixels on a 64-bit OS (up to 9223372036854775807 rows/columns).  Note, that some image formats have restrictions on image size.  For example, Photoshop images are limited to 300,000 pixels for width or height.  Here we resize an image to a quarter million pixels square:</p>
 <pre class="highlight"><code>convert logo: -resize 250000x250000 logo.miff
 </code></pre>
 
@@ -532,9 +538,9 @@
 
 <h2><a class="anchor" id="threads"></a>Threads of Execution</h2>
 
-<p>Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips. However, you are welcome to use ImageMagick algorithms in your threads of execution with the exception of the MagickCore's GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels(), or SyncAuthenticPixels() pixel cache methods.  These methods are intended for one thread of execution only with the exception of an OpenMP parallel section.  To access the pixel cache with more than one thread of execution, use a cache view.  We do this for the <a href="api/composite.html#CompositeImage">CompositeImage()</a> method, for example.  Suppose we want to composite a single source image over a different destination image in each thread of execution.  If we use GetVirtualPixels(), the results are unpredictable because multiple threads would likely be asking for different areas of the pixel cache simultaneously.  Instead we use GetCacheViewVirtualPixels() which creates a unique view for each thread of execution ensuring our program behaves properly regardless of how many threads are invoked.  The other program interfaces, such as the <a href="../www/magick-wand.html">MagickWand API</a>, are completely thread safe so there are no special precautions for threads of execution.</p>
+<p>Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips. However, you are welcome to use ImageMagick algorithms in your threads of execution with the exception of the MagickCore's GetVirtualPixels(), GetAuthenticPixels(), QueueAuthenticPixels(), or SyncAuthenticPixels() pixel cache methods.  These methods are intended for one thread of execution only with the exception of an OpenMP parallel section.  To access the pixel cache with more than one thread of execution, use a cache view.  We do this for the <a href="api/composite.html#CompositeImage">CompositeImage()</a> method, for example.  Suppose we want to composite a single source image over a different destination image in each thread of execution.  If we use GetVirtualPixels(), the results are unpredictable because multiple threads would likely be asking for different areas of the pixel cache simultaneously.  Instead we use GetCacheViewVirtualPixels() which creates a unique view for each thread of execution ensuring our program behaves properly regardless of how many threads are invoked.  The other program interfaces, such as the <a href="magick-wand.html">MagickWand API</a>, are completely thread safe so there are no special precautions for threads of execution.</p>
 
-<p>Here is an MagickCore code snippet that takes advantage of threads of execution with the <a href="../www/openmp.html">OpenMP</a> programming paradigm:</p>
+<p>Here is an MagickCore code snippet that takes advantage of threads of execution with the <a href="openmp.html">OpenMP</a> programming paradigm:</p>
 <pre class="pre-scrollable"><code>CacheView
   *image_view;
 
@@ -644,7 +650,7 @@
 
 <p>If you call the ImageMagick API from your OpenMP-enabled application and you intend to dynamically increase the number of threads available in subsequent parallel regions, be sure to perform the increase <var>before</var> you call the API otherwise ImageMagick may fault.</p>
 
-<p><a href="api/wand-view.html">MagickWand</a> supports wand views.  A view iterates over the entire, or portion, of the image in parallel and for each row of pixels, it invokes a callback method you provide.  This limits most of your parallel programming activity to just that one module.  There are similar methods in <a href="api/image-view.html">MagickCore</a>.  For an example, see the same sigmoidal contrast algorithm implemented in both <a href="../www/magick-wand.html#wand-view">MagickWand</a> and <a href="../www/magick-core.html#image-view">MagickCore</a>.</p>
+<p><a href="api/wand-view.html">MagickWand</a> supports wand views.  A view iterates over the entire, or portion, of the image in parallel and for each row of pixels, it invokes a callback method you provide.  This limits most of your parallel programming activity to just that one module.  There are similar methods in <a href="api/image-view.html">MagickCore</a>.  For an example, see the same sigmoidal contrast algorithm implemented in both <a href="magick-wand.html#wand-view">MagickWand</a> and <a href="magick-core.html#image-view">MagickCore</a>.</p>
 
 <p>In most circumstances, the default number of threads is set to the number of processor cores on your system for optimal performance.  However, if your system is hyperthreaded or if you are running on a virtual host and only a subset of the processors are available to your server instance, you might get an increase in performance by setting the thread <a href="resources.html#configure">policy</a> or the <a href="resources.html#environment">MAGICK_THREAD_LIMIT</a> environment variable.  For example, your virtual host has 8 processors but only 2 are assigned to your server instance.  The default of 8 threads can cause severe performance problems.  One solution is to limit the number of threads to the available processors in your <a href="https://imagemagick.org/source/policy.xml">policy.xml</a> configuration file:</p>
 <pre class="highlight"><code>&lt;policy domain="resource" name="thread" value="2"/>
@@ -656,6 +662,8 @@
 
 <p>The OpenMP committee has not defined the behavior of mixing OpenMP with other threading models such as Posix threads.  However, using modern releases of Linux, OpenMP and Posix threads appear to interoperate without complaint.  If you want to use Posix threads from a program module that calls one of the ImageMagick application programming interfaces (e.g. MagickCore, MagickWand, Magick++, etc.) from Mac OS X or an older Linux release, you may need to disable OpenMP support within ImageMagick.  Add the <code>--disable-openmp</code> option to the configure script command line and rebuild and reinstall ImageMagick.</p>
 
+<p>You can further increase performance by reducing lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library.  To enable, add <code>--with-tcmalloc</code> to the <code>configure</code> command-line when you build ImageMagick.</p>
+
 <h5>Threading Performance</h5>
 <p>It can be difficult to predict behavior in a parallel environment.   Performance might depend on a number of factors including the compiler, the version of the OpenMP library, the processor type, the number of cores, the amount of memory, whether hyperthreading is enabled, the mix of applications that are executing concurrently with ImageMagick, or the particular image-processing algorithm you utilize.  The only way to be certain of optimal performance, in terms of the number of threads, is to benchmark.   ImageMagick includes progressive threading when benchmarking a command and returns the elapsed time and efficiency for one or more threads.  This can help you identify how many threads is the most efficient in your environment.  For this benchmark we sharpen a 1920x1080 image of a model 10 times with 1 to 12 threads:</p>
 <pre class="highlight">-> convert -bench 10 model.png -sharpen 5x2 null:
@@ -680,7 +688,7 @@
 
 <p>First verify that your version of ImageMagick includes support for the OpenCL feature:</p>
 <pre class="highlight"><code>identify -version
-Features: DPC Cipher Modules OpenCL OpenMP
+Features: DPC Cipher Modules OpenCL OpenMP(4.5)
 </code></pre>
 
 <p>If so, run this command to realize a significant speed-up for image convolution:</p>
@@ -749,7 +757,7 @@
   destination[index].w=ClampToQuantum(sum.w);
 };</code></pre>
 
-<p>See <a href="https://github.com/ImageMagick/ImageMagick/tree/ImageMagick-7/magick/accelerate.c">magick/accelerate.c</a> for a complete implementation of image convolution with an OpenCL kernel.</p>
+<p>See <a href="https://github.com/ImageMagick/ImageMagick/blob/master/MagickCore/accelerate.c">MagickCore/accelerate.c</a> for a complete implementation of image convolution with an OpenCL kernel.</p>
 
 <p>Note, that under Windows, you might have an issue with TDR (Timeout Detection and Recovery of GPUs). Its purpose is to detect runaway tasks hanging the GPU by using an execution time threshold.  For some older low-end GPUs running the OpenCL filters in ImageMagick, longer execution times might trigger the TDR mechanism and pre-empt the GPU image filter.  When this happens, ImageMagick automatically falls back to the CPU code path and returns the expected results.  To avoid pre-emption, increase the <a href="http://msdn.microsoft.com/en-us/library/windows/hardware/gg487368.aspx">TdrDelay</a> registry key.</p>
 
@@ -1460,22 +1468,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="architecture.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="architecture.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:41 -->
\ No newline at end of file
diff --git a/www/assets/magick.css b/www/assets/magick.css
index b426e57..aa7a610 100644
--- a/www/assets/magick.css
+++ b/www/assets/magick.css
@@ -1,9 +1,9 @@
 /*!
- * Bootstrap v4.3.0 (https://getbootstrap.com/)
+ * Bootstrap v4.4.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 The Bootstrap Authors
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
 /*# sourceMappingURL=bootstrap.min.css.map */
 /*
   ImageMagick template.
diff --git a/www/assets/magick.js b/www/assets/magick.js
index 0aaf8a3..7febeda 100644
--- a/www/assets/magick.js
+++ b/www/assets/magick.js
@@ -1,7 +1,7 @@
 /*!
-  * Bootstrap v4.3.0 (https://getbootstrap.com/)
+  * Bootstrap v4.4.1 (https://getbootstrap.com/)
   * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return o}g=g&&g.hasOwnProperty("default")?g.default:g,u=u&&u.hasOwnProperty("default")?u.default:u;var e="transitionend";function n(t){var e=this,n=!1;return g(this).one(_.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||_.triggerTransitionEnd(e)},t),this}var _={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=g(t).css("transition-duration"),n=g(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){g(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&_.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?_.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};g.fn.emulateTransitionEnd=n,g.event.special[_.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(g(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var o="alert",r="bs.alert",a="."+r,c=g.fn[o],h={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",m="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){g.removeData(this._element,r),this._element=null},t._getRootElement=function(t){var e=_.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=g(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=g.Event(h.CLOSE);return g(t).trigger(e),e},t._removeElement=function(e){var n=this;if(g(e).removeClass(m),g(e).hasClass(d)){var t=_.getTransitionDurationFromElement(e);g(e).one(_.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){g(t).detach().trigger(h.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(r);e||(e=new i(this),t.data(r,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.3.0"}}]),i}();g(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),g.fn[o]=p._jQueryInterface,g.fn[o].Constructor=p,g.fn[o].noConflict=function(){return g.fn[o]=c,p._jQueryInterface};var v="button",y="bs.button",E="."+y,C=".data-api",T=g.fn[v],S="active",b="btn",I="focus",D='[data-toggle^="button"]',w='[data-toggle="buttons"]',A='input:not([type="hidden"])',N=".active",O=".btn",k={CLICK_DATA_API:"click"+E+C,FOCUS_BLUR_DATA_API:"focus"+E+C+" blur"+E+C},P=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(w)[0];if(n){var i=this._element.querySelector(A);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(S))t=!1;else{var o=n.querySelector(N);o&&g(o).removeClass(S)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(S),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(S)),t&&g(this._element).toggleClass(S)},t.dispose=function(){g.removeData(this._element,y),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(y);t||(t=new n(this),g(this).data(y,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.3.0"}}]),n}();g(document).on(k.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;g(e).hasClass(b)||(e=g(e).closest(O)),P._jQueryInterface.call(g(e),"toggle")}).on(k.FOCUS_BLUR_DATA_API,D,function(t){var e=g(t.target).closest(O)[0];g(e).toggleClass(I,/^focus(in)?$/.test(t.type))}),g.fn[v]=P._jQueryInterface,g.fn[v].Constructor=P,g.fn[v].noConflict=function(){return g.fn[v]=T,P._jQueryInterface};var L="carousel",j="bs.carousel",H="."+j,R=".data-api",U=g.fn[L],W={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},F="next",q="prev",M="left",K="right",Q={SLIDE:"slide"+H,SLID:"slid"+H,KEYDOWN:"keydown"+H,MOUSEENTER:"mouseenter"+H,MOUSELEAVE:"mouseleave"+H,TOUCHSTART:"touchstart"+H,TOUCHMOVE:"touchmove"+H,TOUCHEND:"touchend"+H,POINTERDOWN:"pointerdown"+H,POINTERUP:"pointerup"+H,DRAG_START:"dragstart"+H,LOAD_DATA_API:"load"+H+R,CLICK_DATA_API:"click"+H+R},B="carousel",V="active",Y="slide",X="carousel-item-right",z="carousel-item-left",G="carousel-item-next",J="carousel-item-prev",Z="pointer-event",$=".active",tt=".active.carousel-item",et=".carousel-item",nt=".carousel-item img",it=".carousel-item-next, .carousel-item-prev",ot=".carousel-indicators",rt="[data-slide], [data-slide-to]",st='[data-ride="carousel"]',at={TOUCH:"touch",PEN:"pen"},lt=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(ot),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(F)},t.nextWhenVisible=function(){!document.hidden&&g(this._element).is(":visible")&&"hidden"!==g(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(q)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(it)&&(_.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(tt);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?F:q;this._slide(i,this._items[t])}},t.dispose=function(){g(this._element).off(H),g.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},W,t),_.typeCheckConfig(L,t,x),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&g(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&g(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var n=this;if(this._touchSupported){var e=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]?n.touchStartX=t.originalEvent.clientX:n._pointerEvent||(n.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){n._pointerEvent&&at[t.originalEvent.pointerType.toUpperCase()]&&(n.touchDeltaX=t.originalEvent.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))};g(this._element.querySelectorAll(nt)).on(Q.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(g(this._element).on(Q.POINTERDOWN,function(t){return e(t)}),g(this._element).on(Q.POINTERUP,function(t){return i(t)}),this._element.classList.add(Z)):(g(this._element).on(Q.TOUCHSTART,function(t){return e(t)}),g(this._element).on(Q.TOUCHMOVE,function(t){var e;(e=t).originalEvent.touches&&1<e.originalEvent.touches.length?n.touchDeltaX=0:n.touchDeltaX=e.originalEvent.touches[0].clientX-n.touchStartX}),g(this._element).on(Q.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(et)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===F,i=t===q,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===q?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(tt)),o=g.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return g(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll($));g(e).removeClass(V);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&g(n).addClass(V)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(tt),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===F?(n=z,i=G,M):(n=X,i=J,K),l&&g(l).hasClass(V))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=g.Event(Q.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(g(this._element).hasClass(Y)){g(l).addClass(i),_.reflow(l),g(s).addClass(n),g(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);this._config.interval=f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,f):this._config.defaultInterval||this._config.interval;var d=_.getTransitionDurationFromElement(s);g(s).one(_.TRANSITION_END,function(){g(l).removeClass(n+" "+i).addClass(V),g(s).removeClass(V+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return g(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else g(s).removeClass(V),g(l).addClass(V),this._isSliding=!1,g(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=g(this).data(j),e=l({},W,g(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),g(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=_.getSelectorFromElement(this);if(e){var n=g(e)[0];if(n&&g(n).hasClass(B)){var i=l({},g(n).data(),g(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(g(n),i),o&&g(n).data(j).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return W}}]),r}();g(document).on(Q.CLICK_DATA_API,rt,lt._dataApiClickHandler),g(window).on(Q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(st)),e=0,n=t.length;e<n;e++){var i=g(t[e]);lt._jQueryInterface.call(i,i.data())}}),g.fn[L]=lt._jQueryInterface,g.fn[L].Constructor=lt,g.fn[L].noConflict=function(){return g.fn[L]=U,lt._jQueryInterface};var ct="collapse",ht="bs.collapse",ut="."+ht,ft=g.fn[ct],dt={toggle:!0,parent:""},gt={toggle:"boolean",parent:"(string|element)"},_t={SHOW:"show"+ut,SHOWN:"shown"+ut,HIDE:"hide"+ut,HIDDEN:"hidden"+ut,CLICK_DATA_API:"click"+ut+".data-api"},mt="show",pt="collapse",vt="collapsing",yt="collapsed",Et="width",Ct="height",Tt=".show, .collapsing",St='[data-toggle="collapse"]',bt=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(St)),i=0,o=n.length;i<o;i++){var r=n[i],s=_.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){g(this._element).hasClass(mt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!g(this._element).hasClass(mt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(Tt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(pt)})).length&&(t=null),!(t&&(e=g(t).not(this._selector).data(ht))&&e._isTransitioning))){var i=g.Event(_t.SHOW);if(g(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(g(t).not(this._selector),"hide"),e||g(t).data(ht,null));var o=this._getDimension();g(this._element).removeClass(pt).addClass(vt),this._element.style[o]=0,this._triggerArray.length&&g(this._triggerArray).removeClass(yt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){g(n._element).removeClass(vt).addClass(pt).addClass(mt),n._element.style[o]="",n.setTransitioning(!1),g(n._element).trigger(_t.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&g(this._element).hasClass(mt)){var e=g.Event(_t.HIDE);if(g(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",_.reflow(this._element),g(this._element).addClass(vt).removeClass(pt).removeClass(mt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=_.getSelectorFromElement(r);if(null!==s)g([].slice.call(document.querySelectorAll(s))).hasClass(mt)||g(r).addClass(yt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){t.setTransitioning(!1),g(t._element).removeClass(vt).addClass(pt).trigger(_t.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){g.removeData(this._element,ht),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},dt,t)).toggle=Boolean(t.toggle),_.typeCheckConfig(ct,t,gt),t},t._getDimension=function(){return g(this._element).hasClass(Et)?Et:Ct},t._getParent=function(){var t,n=this;_.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return g(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=g(t).hasClass(mt);e.length&&g(e).toggleClass(yt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=_.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=g(this),e=t.data(ht),n=l({},dt,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(ht,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return dt}}]),a}();g(document).on(_t.CLICK_DATA_API,St,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=g(this),e=_.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));g(i).each(function(){var t=g(this),e=t.data(ht)?"toggle":n.data();bt._jQueryInterface.call(t,e)})}),g.fn[ct]=bt._jQueryInterface,g.fn[ct].Constructor=bt,g.fn[ct].noConflict=function(){return g.fn[ct]=ft,bt._jQueryInterface};var It="dropdown",Dt="bs.dropdown",wt="."+Dt,At=".data-api",Nt=g.fn[It],Ot=new RegExp("38|40|27"),kt={HIDE:"hide"+wt,HIDDEN:"hidden"+wt,SHOW:"show"+wt,SHOWN:"shown"+wt,CLICK:"click"+wt,CLICK_DATA_API:"click"+wt+At,KEYDOWN_DATA_API:"keydown"+wt+At,KEYUP_DATA_API:"keyup"+wt+At},Pt="disabled",Lt="show",jt="dropup",Ht="dropright",Rt="dropleft",Ut="dropdown-menu-right",Wt="position-static",xt='[data-toggle="dropdown"]',Ft=".dropdown form",qt=".dropdown-menu",Mt=".navbar-nav",Kt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Qt="top-start",Bt="top-end",Vt="bottom-start",Yt="bottom-end",Xt="right-start",zt="left-start",Gt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Jt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Zt=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)){var t=c._getParentFromElement(this._element),e=g(this._menu).hasClass(Lt);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=g.Event(kt.SHOW,n);if(g(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof u)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=t:_.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&g(t).addClass(Wt),this._popper=new u(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===g(t).closest(Mt).length&&g(document.body).children().on("mouseover",null,g.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),g(this._menu).toggleClass(Lt),g(t).toggleClass(Lt).trigger(g.Event(kt.SHOWN,n))}}}},t.show=function(){if(!(this._element.disabled||g(this._element).hasClass(Pt)||g(this._menu).hasClass(Lt))){var t={relatedTarget:this._element},e=g.Event(kt.SHOW,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.SHOWN,t)))}},t.hide=function(){if(!this._element.disabled&&!g(this._element).hasClass(Pt)&&g(this._menu).hasClass(Lt)){var t={relatedTarget:this._element},e=g.Event(kt.HIDE,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(g(this._menu).toggleClass(Lt),g(n).toggleClass(Lt).trigger(g.Event(kt.HIDDEN,t)))}},t.dispose=function(){g.removeData(this._element,Dt),g(this._element).off(wt),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;g(this._element).on(kt.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,g(this._element).data(),t),_.typeCheckConfig(It,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(qt))}return this._menu},t._getPlacement=function(){var t=g(this._element.parentNode),e=Vt;return t.hasClass(jt)?(e=Qt,g(this._menu).hasClass(Ut)&&(e=Bt)):t.hasClass(Ht)?e=Xt:t.hasClass(Rt)?e=zt:g(this._menu).hasClass(Ut)&&(e=Yt),e},t._detectNavbar=function(){return 0<g(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},c._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(Dt);if(t||(t=new c(this,"object"==typeof e?e:null),g(this).data(Dt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(xt)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=g(e[n]).data(Dt),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(g(o).hasClass(Lt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&g.contains(o,t.target))){var l=g.Event(kt.HIDE,s);g(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),e[n].setAttribute("aria-expanded","false"),g(a).removeClass(Lt),g(o).removeClass(Lt).trigger(g.Event(kt.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=_.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||g(t.target).closest(qt).length)):Ot.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!g(this).hasClass(Pt))){var e=c._getParentFromElement(this),n=g(e).hasClass(Lt);if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(Kt));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(xt);g(r).trigger("focus")}g(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return Gt}},{key:"DefaultType",get:function(){return Jt}}]),c}();g(document).on(kt.KEYDOWN_DATA_API,xt,Zt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API,qt,Zt._dataApiKeydownHandler).on(kt.CLICK_DATA_API+" "+kt.KEYUP_DATA_API,Zt._clearMenus).on(kt.CLICK_DATA_API,xt,function(t){t.preventDefault(),t.stopPropagation(),Zt._jQueryInterface.call(g(this),"toggle")}).on(kt.CLICK_DATA_API,Ft,function(t){t.stopPropagation()}),g.fn[It]=Zt._jQueryInterface,g.fn[It].Constructor=Zt,g.fn[It].noConflict=function(){return g.fn[It]=Nt,Zt._jQueryInterface};var $t="modal",te="bs.modal",ee="."+te,ne=g.fn[$t],ie={backdrop:!0,keyboard:!0,focus:!0,show:!0},oe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},re={HIDE:"hide"+ee,HIDDEN:"hidden"+ee,SHOW:"show"+ee,SHOWN:"shown"+ee,FOCUSIN:"focusin"+ee,RESIZE:"resize"+ee,CLICK_DISMISS:"click.dismiss"+ee,KEYDOWN_DISMISS:"keydown.dismiss"+ee,MOUSEUP_DISMISS:"mouseup.dismiss"+ee,MOUSEDOWN_DISMISS:"mousedown.dismiss"+ee,CLICK_DATA_API:"click"+ee+".data-api"},se="modal-dialog-scrollable",ae="modal-scrollbar-measure",le="modal-backdrop",ce="modal-open",he="fade",ue="show",fe=".modal-dialog",de=".modal-body",ge='[data-toggle="modal"]',_e='[data-dismiss="modal"]',me=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",pe=".sticky-top",ve=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(fe),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){g(this._element).hasClass(he)&&(this._isTransitioning=!0);var n=g.Event(re.SHOW,{relatedTarget:t});g(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),g(this._element).on(re.CLICK_DISMISS,_e,function(t){return e.hide(t)}),g(this._dialog).on(re.MOUSEDOWN_DISMISS,function(){g(e._element).one(re.MOUSEUP_DISMISS,function(t){g(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=g.Event(re.HIDE);if(g(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=g(this._element).hasClass(he);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),g(document).off(re.FOCUSIN),g(this._element).removeClass(ue),g(this._element).off(re.CLICK_DISMISS),g(this._dialog).off(re.MOUSEDOWN_DISMISS),i){var o=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return g(t).off(ee)}),g(document).off(re.FOCUSIN),g.removeData(this._element,te),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},ie,t),_.typeCheckConfig($t,t,oe),t},t._showElement=function(t){var e=this,n=g(this._element).hasClass(he);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),g(this._dialog).hasClass(se)?this._dialog.querySelector(de).scrollTop=0:this._element.scrollTop=0,n&&_.reflow(this._element),g(this._element).addClass(ue),this._config.focus&&this._enforceFocus();var i=g.Event(re.SHOWN,{relatedTarget:t}),o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,g(e._element).trigger(i)};if(n){var r=_.getTransitionDurationFromElement(this._dialog);g(this._dialog).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()},t._enforceFocus=function(){var e=this;g(document).off(re.FOCUSIN).on(re.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===g(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?g(this._element).on(re.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||g(this._element).off(re.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?g(window).on(re.RESIZE,function(t){return e.handleUpdate(t)}):g(window).off(re.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){g(document.body).removeClass(ce),t._resetAdjustments(),t._resetScrollbar(),g(t._element).trigger(re.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(g(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=g(this._element).hasClass(he)?he:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=le,n&&this._backdrop.classList.add(n),g(this._backdrop).appendTo(document.body),g(this._element).on(re.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&_.reflow(this._backdrop),g(this._backdrop).addClass(ue),!t)return;if(!n)return void t();var i=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){g(this._backdrop).removeClass(ue);var o=function(){e._removeBackdrop(),t&&t()};if(g(this._element).hasClass(he)){var r=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(me)),e=[].slice.call(document.querySelectorAll(pe));g(t).each(function(t,e){var n=e.style.paddingRight,i=g(e).css("padding-right");g(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),g(e).each(function(t,e){var n=e.style.marginRight,i=g(e).css("margin-right");g(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=g(document.body).css("padding-right");g(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}g(document.body).addClass(ce)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(me));g(t).each(function(t,e){var n=g(e).data("padding-right");g(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+pe));g(e).each(function(t,e){var n=g(e).data("margin-right");"undefined"!=typeof n&&g(e).css("margin-right",n).removeData("margin-right")});var n=g(document.body).data("padding-right");g(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=ae,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=g(this).data(te),e=l({},ie,g(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),g(this).data(te,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return ie}}]),o}();g(document).on(re.CLICK_DATA_API,ge,function(t){var e,n=this,i=_.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=g(e).data(te)?"toggle":l({},g(e).data(),g(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=g(e).one(re.SHOW,function(t){t.isDefaultPrevented()||r.one(re.HIDDEN,function(){g(n).is(":visible")&&n.focus()})});ve._jQueryInterface.call(g(e),o,this)}),g.fn[$t]=ve._jQueryInterface,g.fn[$t].Constructor=ve,g.fn[$t].noConflict=function(){return g.fn[$t]=ne,ve._jQueryInterface};var ye="tooltip",Ee="bs.tooltip",Ce="."+Ee,Te=g.fn[ye],Se="bs-tooltip",be=new RegExp("(^|\\s)"+Se+"\\S+","g"),Ie={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"},De={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},we={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},Ae="show",Ne="out",Oe={HIDE:"hide"+Ce,HIDDEN:"hidden"+Ce,SHOW:"show"+Ce,SHOWN:"shown"+Ce,INSERTED:"inserted"+Ce,CLICK:"click"+Ce,FOCUSIN:"focusin"+Ce,FOCUSOUT:"focusout"+Ce,MOUSEENTER:"mouseenter"+Ce,MOUSELEAVE:"mouseleave"+Ce},ke="fade",Pe="show",Le=".tooltip-inner",je=".arrow",He="hover",Re="focus",Ue="click",We="manual",xe=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Pe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(ke);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:je},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Pe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===Ne&&e._leave(null,e)};if(g(this.tip).hasClass(ke)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==Ae&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Pe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ue]=!1,this._activeTrigger[Re]=!1,this._activeTrigger[He]=!1,g(this.tip).hasClass(ke)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Se+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Le)),this.getTitle()),g(t).removeClass(ke+" "+Pe)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return De[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==We){var e=t===He?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===He?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Re:He]=!0),g(e.getTipElement()).hasClass(Pe)||e._hoverState===Ae?e._hoverState=Ae:(clearTimeout(e._timeout),e._hoverState=Ae,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Ae&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Re:He]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ne,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Ne&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=l({},this.constructor.Default,g(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(ye,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(be);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(ke),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ee),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ee,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return we}},{key:"NAME",get:function(){return ye}},{key:"DATA_KEY",get:function(){return Ee}},{key:"Event",get:function(){return Oe}},{key:"EVENT_KEY",get:function(){return Ce}},{key:"DefaultType",get:function(){return Ie}}]),i}();g.fn[ye]=xe._jQueryInterface,g.fn[ye].Constructor=xe,g.fn[ye].noConflict=function(){return g.fn[ye]=Te,xe._jQueryInterface};var Fe="popover",qe="bs.popover",Me="."+qe,Ke=g.fn[Fe],Qe="bs-popover",Be=new RegExp("(^|\\s)"+Qe+"\\S+","g"),Ve=l({},xe.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Ye=l({},xe.DefaultType,{content:"(string|element|function)"}),Xe="fade",ze="show",Ge=".popover-header",Je=".popover-body",Ze={HIDE:"hide"+Me,HIDDEN:"hidden"+Me,SHOW:"show"+Me,SHOWN:"shown"+Me,INSERTED:"inserted"+Me,CLICK:"click"+Me,FOCUSIN:"focusin"+Me,FOCUSOUT:"focusout"+Me,MOUSEENTER:"mouseenter"+Me,MOUSELEAVE:"mouseleave"+Me},$e=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Qe+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(Ge),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Je),e),t.removeClass(Xe+" "+ze)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Be);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(qe),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(qe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return Ve}},{key:"NAME",get:function(){return Fe}},{key:"DATA_KEY",get:function(){return qe}},{key:"Event",get:function(){return Ze}},{key:"EVENT_KEY",get:function(){return Me}},{key:"DefaultType",get:function(){return Ye}}]),i}(xe);g.fn[Fe]=$e._jQueryInterface,g.fn[Fe].Constructor=$e,g.fn[Fe].noConflict=function(){return g.fn[Fe]=Ke,$e._jQueryInterface};var tn="scrollspy",en="bs.scrollspy",nn="."+en,on=g.fn[tn],rn={offset:10,method:"auto",target:""},sn={offset:"number",method:"string",target:"(string|element)"},an={ACTIVATE:"activate"+nn,SCROLL:"scroll"+nn,LOAD_DATA_API:"load"+nn+".data-api"},ln="dropdown-item",cn="active",hn='[data-spy="scroll"]',un=".nav, .list-group",fn=".nav-link",dn=".nav-item",gn=".list-group-item",_n=".dropdown",mn=".dropdown-item",pn=".dropdown-toggle",vn="offset",yn="position",En=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+fn+","+this._config.target+" "+gn+","+this._config.target+" "+mn,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,g(this._scrollElement).on(an.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?vn:yn,o="auto"===this._config.method?t:this._config.method,r=o===yn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=_.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[g(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){g.removeData(this._element,en),g(this._scrollElement).off(nn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},rn,"object"==typeof t&&t?t:{})).target){var e=g(t.target).attr("id");e||(e=_.getUID(tn),g(t.target).attr("id",e)),t.target="#"+e}return _.typeCheckConfig(tn,t,sn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=g([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(ln)?(n.closest(_n).find(pn).addClass(cn),n.addClass(cn)):(n.addClass(cn),n.parents(un).prev(fn+", "+gn).addClass(cn),n.parents(un).prev(dn).children(fn).addClass(cn)),g(this._scrollElement).trigger(an.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(cn)}).forEach(function(t){return t.classList.remove(cn)})},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(en);if(t||(t=new n(this,"object"==typeof e&&e),g(this).data(en,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"Default",get:function(){return rn}}]),n}();g(window).on(an.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(hn)),e=t.length;e--;){var n=g(t[e]);En._jQueryInterface.call(n,n.data())}}),g.fn[tn]=En._jQueryInterface,g.fn[tn].Constructor=En,g.fn[tn].noConflict=function(){return g.fn[tn]=on,En._jQueryInterface};var Cn="bs.tab",Tn="."+Cn,Sn=g.fn.tab,bn={HIDE:"hide"+Tn,HIDDEN:"hidden"+Tn,SHOW:"show"+Tn,SHOWN:"shown"+Tn,CLICK_DATA_API:"click"+Tn+".data-api"},In="dropdown-menu",Dn="active",wn="disabled",An="fade",Nn="show",On=".dropdown",kn=".nav, .list-group",Pn=".active",Ln="> li > .active",jn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Hn=".dropdown-toggle",Rn="> .dropdown-menu .active",Un=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(Dn)||g(this._element).hasClass(wn))){var t,i,e=g(this._element).closest(kn)[0],o=_.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?Ln:Pn;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(bn.HIDE,{relatedTarget:this._element}),a=g.Event(bn.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(bn.HIDDEN,{relatedTarget:n._element}),e=g.Event(bn.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,Cn),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?g(e).children(Pn):g(e).find(Ln))[0],r=n&&o&&g(o).hasClass(An),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=_.getTransitionDurationFromElement(o);g(o).removeClass(Nn).one(_.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(Dn);var i=g(e.parentNode).find(Rn)[0];i&&g(i).removeClass(Dn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(g(t).addClass(Dn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(An)&&t.classList.add(Nn),t.parentNode&&g(t.parentNode).hasClass(In)){var o=g(t).closest(On)[0];if(o){var r=[].slice.call(o.querySelectorAll(Hn));g(r).addClass(Dn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Cn);if(e||(e=new i(this),t.data(Cn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.0"}}]),i}();g(document).on(bn.CLICK_DATA_API,jn,function(t){t.preventDefault(),Un._jQueryInterface.call(g(this),"show")}),g.fn.tab=Un._jQueryInterface,g.fn.tab.Constructor=Un,g.fn.tab.noConflict=function(){return g.fn.tab=Sn,Un._jQueryInterface};var Wn="toast",xn="bs.toast",Fn="."+xn,qn=g.fn[Wn],Mn={CLICK_DISMISS:"click.dismiss"+Fn,HIDE:"hide"+Fn,HIDDEN:"hidden"+Fn,SHOW:"show"+Fn,SHOWN:"shown"+Fn},Kn="fade",Qn="hide",Bn="show",Vn="showing",Yn={animation:"boolean",autohide:"boolean",delay:"number"},Xn={animation:!0,autohide:!0,delay:500},zn='[data-dismiss="toast"]',Gn=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;g(this._element).trigger(Mn.SHOW),this._config.animation&&this._element.classList.add(Kn);var e=function(){t._element.classList.remove(Vn),t._element.classList.add(Bn),g(t._element).trigger(Mn.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(Qn),this._element.classList.add(Vn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(Bn)&&(g(this._element).trigger(Mn.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Bn)&&this._element.classList.remove(Bn),g(this._element).off(Mn.CLICK_DISMISS),g.removeData(this._element,xn),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},Xn,g(this._element).data(),"object"==typeof t&&t?t:{}),_.typeCheckConfig(Wn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(Mn.CLICK_DISMISS,zn,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add(Qn),g(t._element).trigger(Mn.HIDDEN)};if(this._element.classList.remove(Bn),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(xn);if(e||(e=new i(this,"object"==typeof n&&n),t.data(xn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.0"}},{key:"DefaultType",get:function(){return Yn}},{key:"Default",get:function(){return Xn}}]),i}();g.fn[Wn]=Gn._jQueryInterface,g.fn[Wn].Constructor=Gn,g.fn[Wn].noConflict=function(){return g.fn[Wn]=qn,Gn._jQueryInterface},function(){if("undefined"==typeof g)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=g.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=_,t.Alert=p,t.Button=P,t.Carousel=lt,t.Collapse=bt,t.Dropdown=Zt,t.Modal=ve,t.Popover=$e,t.Scrollspy=En,t.Tab=Un,t.Toast=Gn,t.Tooltip=xe,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?e(Object(r),!0).forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach(function(t){Object.defineProperty(o,t,Object.getOwnPropertyDescriptor(r,t))})}return o}g=g&&g.hasOwnProperty("default")?g.default:g,u=u&&u.hasOwnProperty("default")?u.default:u;var n="transitionend";function o(t){var e=this,n=!1;return g(this).one(_.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||_.triggerTransitionEnd(e)},t),this}var _={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=g(t).css("transition-duration"),n=g(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){g(t).trigger(n)},supportsTransitionEnd:function(){return Boolean(n)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&_.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?_.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null},jQueryDetection:function(){if("undefined"==typeof g)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=g.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};_.jQueryDetection(),g.fn.emulateTransitionEnd=o,g.event.special[_.TRANSITION_END]={bindType:n,delegateType:n,handle:function(t){if(g(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var r="alert",a="bs.alert",c="."+a,h=g.fn[r],f={CLOSE:"close"+c,CLOSED:"closed"+c,CLICK_DATA_API:"click"+c+".data-api"},d="alert",m="fade",p="show",v=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){g.removeData(this._element,a),this._element=null},t._getRootElement=function(t){var e=_.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n=n||g(t).closest("."+d)[0]},t._triggerCloseEvent=function(t){var e=g.Event(f.CLOSE);return g(t).trigger(e),e},t._removeElement=function(e){var n=this;if(g(e).removeClass(p),g(e).hasClass(m)){var t=_.getTransitionDurationFromElement(e);g(e).one(_.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){g(t).detach().trigger(f.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(a);e||(e=new i(this),t.data(a,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),i}();g(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',v._handleDismiss(new v)),g.fn[r]=v._jQueryInterface,g.fn[r].Constructor=v,g.fn[r].noConflict=function(){return g.fn[r]=h,v._jQueryInterface};var y="button",E="bs.button",C="."+E,T=".data-api",b=g.fn[y],S="active",D="btn",I="focus",w='[data-toggle^="button"]',A='[data-toggle="buttons"]',N='[data-toggle="button"]',O='[data-toggle="buttons"] .btn',k='input:not([type="hidden"])',P=".active",L=".btn",j={CLICK_DATA_API:"click"+C+T,FOCUS_BLUR_DATA_API:"focus"+C+T+" blur"+C+T,LOAD_DATA_API:"load"+C+T},H=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(A)[0];if(n){var i=this._element.querySelector(k);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(S))t=!1;else{var o=n.querySelector(P);o&&g(o).removeClass(S)}else"checkbox"===i.type?"LABEL"===this._element.tagName&&i.checked===this._element.classList.contains(S)&&(t=!1):t=!1;t&&(i.checked=!this._element.classList.contains(S),g(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(S)),t&&g(this._element).toggleClass(S))},t.dispose=function(){g.removeData(this._element,E),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(E);t||(t=new n(this),g(this).data(E,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),n}();g(document).on(j.CLICK_DATA_API,w,function(t){var e=t.target;if(g(e).hasClass(D)||(e=g(e).closest(L)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var n=e.querySelector(k);if(n&&(n.hasAttribute("disabled")||n.classList.contains("disabled")))return void t.preventDefault();H._jQueryInterface.call(g(e),"toggle")}}).on(j.FOCUS_BLUR_DATA_API,w,function(t){var e=g(t.target).closest(L)[0];g(e).toggleClass(I,/^focus(in)?$/.test(t.type))}),g(window).on(j.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(O)),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector(k);o.checked||o.hasAttribute("checked")?i.classList.add(S):i.classList.remove(S)}for(var r=0,s=(t=[].slice.call(document.querySelectorAll(N))).length;r<s;r++){var a=t[r];"true"===a.getAttribute("aria-pressed")?a.classList.add(S):a.classList.remove(S)}}),g.fn[y]=H._jQueryInterface,g.fn[y].Constructor=H,g.fn[y].noConflict=function(){return g.fn[y]=b,H._jQueryInterface};var R="carousel",x="bs.carousel",F="."+x,U=".data-api",W=g.fn[R],q={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},M={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},K="next",Q="prev",B="left",V="right",Y={SLIDE:"slide"+F,SLID:"slid"+F,KEYDOWN:"keydown"+F,MOUSEENTER:"mouseenter"+F,MOUSELEAVE:"mouseleave"+F,TOUCHSTART:"touchstart"+F,TOUCHMOVE:"touchmove"+F,TOUCHEND:"touchend"+F,POINTERDOWN:"pointerdown"+F,POINTERUP:"pointerup"+F,DRAG_START:"dragstart"+F,LOAD_DATA_API:"load"+F+U,CLICK_DATA_API:"click"+F+U},z="carousel",X="active",$="slide",G="carousel-item-right",J="carousel-item-left",Z="carousel-item-next",tt="carousel-item-prev",et="pointer-event",nt=".active",it=".active.carousel-item",ot=".carousel-item",rt=".carousel-item img",st=".carousel-item-next, .carousel-item-prev",at=".carousel-indicators",lt="[data-slide], [data-slide-to]",ct='[data-ride="carousel"]',ht={TOUCH:"touch",PEN:"pen"},ut=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(at),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(K)},t.nextWhenVisible=function(){!document.hidden&&g(this._element).is(":visible")&&"hidden"!==g(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(Q)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(st)&&(_.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(it);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)g(this._element).one(Y.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?K:Q;this._slide(i,this._items[t])}},t.dispose=function(){g(this._element).off(F),g.removeData(this._element,x),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},q,{},t),_.typeCheckConfig(R,t,M),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;(this.touchDeltaX=0)<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&g(this._element).on(Y.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&g(this._element).on(Y.MOUSEENTER,function(t){return e.pause(t)}).on(Y.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var n=function(t){e._pointerEvent&&ht[t.originalEvent.pointerType.toUpperCase()]?e.touchStartX=t.originalEvent.clientX:e._pointerEvent||(e.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){e._pointerEvent&&ht[t.originalEvent.pointerType.toUpperCase()]&&(e.touchDeltaX=t.originalEvent.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval))};g(this._element.querySelectorAll(rt)).on(Y.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(g(this._element).on(Y.POINTERDOWN,function(t){return n(t)}),g(this._element).on(Y.POINTERUP,function(t){return i(t)}),this._element.classList.add(et)):(g(this._element).on(Y.TOUCHSTART,function(t){return n(t)}),g(this._element).on(Y.TOUCHMOVE,function(t){return function(t){t.originalEvent.touches&&1<t.originalEvent.touches.length?e.touchDeltaX=0:e.touchDeltaX=t.originalEvent.touches[0].clientX-e.touchStartX}(t)}),g(this._element).on(Y.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(ot)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===K,i=t===Q,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===Q?-1:1))%this._items.length;return-1==s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(it)),o=g.Event(Y.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return g(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(nt));g(e).removeClass(X);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&g(n).addClass(X)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(it),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===K?(n=J,i=Z,B):(n=G,i=tt,V),l&&g(l).hasClass(X))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=g.Event(Y.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(g(this._element).hasClass($)){g(l).addClass(i),_.reflow(l),g(s).addClass(n),g(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=f):this._config.interval=this._config.defaultInterval||this._config.interval;var d=_.getTransitionDurationFromElement(s);g(s).one(_.TRANSITION_END,function(){g(l).removeClass(n+" "+i).addClass(X),g(s).removeClass(X+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return g(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else g(s).removeClass(X),g(l).addClass(X),this._isSliding=!1,g(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=g(this).data(x),e=l({},q,{},g(this).data());"object"==typeof i&&(e=l({},e,{},i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),g(this).data(x,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=_.getSelectorFromElement(this);if(e){var n=g(e)[0];if(n&&g(n).hasClass(z)){var i=l({},g(n).data(),{},g(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(g(n),i),o&&g(n).data(x).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return q}}]),r}();g(document).on(Y.CLICK_DATA_API,lt,ut._dataApiClickHandler),g(window).on(Y.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(ct)),e=0,n=t.length;e<n;e++){var i=g(t[e]);ut._jQueryInterface.call(i,i.data())}}),g.fn[R]=ut._jQueryInterface,g.fn[R].Constructor=ut,g.fn[R].noConflict=function(){return g.fn[R]=W,ut._jQueryInterface};var ft="collapse",dt="bs.collapse",gt="."+dt,_t=g.fn[ft],mt={toggle:!0,parent:""},pt={toggle:"boolean",parent:"(string|element)"},vt={SHOW:"show"+gt,SHOWN:"shown"+gt,HIDE:"hide"+gt,HIDDEN:"hidden"+gt,CLICK_DATA_API:"click"+gt+".data-api"},yt="show",Et="collapse",Ct="collapsing",Tt="collapsed",bt="width",St="height",Dt=".show, .collapsing",It='[data-toggle="collapse"]',wt=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(It)),i=0,o=n.length;i<o;i++){var r=n[i],s=_.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){g(this._element).hasClass(yt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!g(this._element).hasClass(yt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(Dt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(Et)})).length&&(t=null),!(t&&(e=g(t).not(this._selector).data(dt))&&e._isTransitioning))){var i=g.Event(vt.SHOW);if(g(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(g(t).not(this._selector),"hide"),e||g(t).data(dt,null));var o=this._getDimension();g(this._element).removeClass(Et).addClass(Ct),this._element.style[o]=0,this._triggerArray.length&&g(this._triggerArray).removeClass(Tt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){g(n._element).removeClass(Ct).addClass(Et).addClass(yt),n._element.style[o]="",n.setTransitioning(!1),g(n._element).trigger(vt.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&g(this._element).hasClass(yt)){var e=g.Event(vt.HIDE);if(g(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",_.reflow(this._element),g(this._element).addClass(Ct).removeClass(Et).removeClass(yt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=_.getSelectorFromElement(r);if(null!==s)g([].slice.call(document.querySelectorAll(s))).hasClass(yt)||g(r).addClass(Tt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){t.setTransitioning(!1),g(t._element).removeClass(Ct).addClass(Et).trigger(vt.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){g.removeData(this._element,dt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},mt,{},t)).toggle=Boolean(t.toggle),_.typeCheckConfig(ft,t,pt),t},t._getDimension=function(){return g(this._element).hasClass(bt)?bt:St},t._getParent=function(){var t,n=this;_.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return g(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=g(t).hasClass(yt);e.length&&g(e).toggleClass(Tt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=_.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=g(this),e=t.data(dt),n=l({},mt,{},t.data(),{},"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(dt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return mt}}]),a}();g(document).on(vt.CLICK_DATA_API,It,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=g(this),e=_.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));g(i).each(function(){var t=g(this),e=t.data(dt)?"toggle":n.data();wt._jQueryInterface.call(t,e)})}),g.fn[ft]=wt._jQueryInterface,g.fn[ft].Constructor=wt,g.fn[ft].noConflict=function(){return g.fn[ft]=_t,wt._jQueryInterface};var At="dropdown",Nt="bs.dropdown",Ot="."+Nt,kt=".data-api",Pt=g.fn[At],Lt=new RegExp("38|40|27"),jt={HIDE:"hide"+Ot,HIDDEN:"hidden"+Ot,SHOW:"show"+Ot,SHOWN:"shown"+Ot,CLICK:"click"+Ot,CLICK_DATA_API:"click"+Ot+kt,KEYDOWN_DATA_API:"keydown"+Ot+kt,KEYUP_DATA_API:"keyup"+Ot+kt},Ht="disabled",Rt="show",xt="dropup",Ft="dropright",Ut="dropleft",Wt="dropdown-menu-right",qt="position-static",Mt='[data-toggle="dropdown"]',Kt=".dropdown form",Qt=".dropdown-menu",Bt=".navbar-nav",Vt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Yt="top-start",zt="top-end",Xt="bottom-start",$t="bottom-end",Gt="right-start",Jt="left-start",Zt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},te={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},ee=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!g(this._element).hasClass(Ht)){var t=g(this._menu).hasClass(Rt);c._clearMenus(),t||this.show(!0)}},t.show=function(t){if(void 0===t&&(t=!1),!(this._element.disabled||g(this._element).hasClass(Ht)||g(this._menu).hasClass(Rt))){var e={relatedTarget:this._element},n=g.Event(jt.SHOW,e),i=c._getParentFromElement(this._element);if(g(i).trigger(n),!n.isDefaultPrevented()){if(!this._inNavbar&&t){if("undefined"==typeof u)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=i:_.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&g(i).addClass(qt),this._popper=new u(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===g(i).closest(Bt).length&&g(document.body).children().on("mouseover",null,g.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),g(this._menu).toggleClass(Rt),g(i).toggleClass(Rt).trigger(g.Event(jt.SHOWN,e))}}},t.hide=function(){if(!this._element.disabled&&!g(this._element).hasClass(Ht)&&g(this._menu).hasClass(Rt)){var t={relatedTarget:this._element},e=g.Event(jt.HIDE,t),n=c._getParentFromElement(this._element);g(n).trigger(e),e.isDefaultPrevented()||(this._popper&&this._popper.destroy(),g(this._menu).toggleClass(Rt),g(n).toggleClass(Rt).trigger(g.Event(jt.HIDDEN,t)))}},t.dispose=function(){g.removeData(this._element,Nt),g(this._element).off(Ot),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;g(this._element).on(jt.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,{},g(this._element).data(),{},t),_.typeCheckConfig(At,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(Qt))}return this._menu},t._getPlacement=function(){var t=g(this._element.parentNode),e=Xt;return t.hasClass(xt)?(e=Yt,g(this._menu).hasClass(Wt)&&(e=zt)):t.hasClass(Ft)?e=Gt:t.hasClass(Ut)?e=Jt:g(this._menu).hasClass(Wt)&&(e=$t),e},t._detectNavbar=function(){return 0<g(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,{},e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),l({},t,{},this._config.popperConfig)},c._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(Nt);if(t||(t=new c(this,"object"==typeof e?e:null),g(this).data(Nt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(Mt)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=g(e[n]).data(Nt),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(g(o).hasClass(Rt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&g.contains(o,t.target))){var l=g.Event(jt.HIDE,s);g(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),e[n].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),g(a).removeClass(Rt),g(o).removeClass(Rt).trigger(g.Event(jt.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=_.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||g(t.target).closest(Qt).length)):Lt.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!g(this).hasClass(Ht))){var e=c._getParentFromElement(this),n=g(e).hasClass(Rt);if(n||27!==t.which)if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(Vt)).filter(function(t){return g(t).is(":visible")});if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(Mt);g(r).trigger("focus")}g(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return Zt}},{key:"DefaultType",get:function(){return te}}]),c}();g(document).on(jt.KEYDOWN_DATA_API,Mt,ee._dataApiKeydownHandler).on(jt.KEYDOWN_DATA_API,Qt,ee._dataApiKeydownHandler).on(jt.CLICK_DATA_API+" "+jt.KEYUP_DATA_API,ee._clearMenus).on(jt.CLICK_DATA_API,Mt,function(t){t.preventDefault(),t.stopPropagation(),ee._jQueryInterface.call(g(this),"toggle")}).on(jt.CLICK_DATA_API,Kt,function(t){t.stopPropagation()}),g.fn[At]=ee._jQueryInterface,g.fn[At].Constructor=ee,g.fn[At].noConflict=function(){return g.fn[At]=Pt,ee._jQueryInterface};var ne="modal",ie="bs.modal",oe="."+ie,re=g.fn[ne],se={backdrop:!0,keyboard:!0,focus:!0,show:!0},ae={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},le={HIDE:"hide"+oe,HIDE_PREVENTED:"hidePrevented"+oe,HIDDEN:"hidden"+oe,SHOW:"show"+oe,SHOWN:"shown"+oe,FOCUSIN:"focusin"+oe,RESIZE:"resize"+oe,CLICK_DISMISS:"click.dismiss"+oe,KEYDOWN_DISMISS:"keydown.dismiss"+oe,MOUSEUP_DISMISS:"mouseup.dismiss"+oe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+oe,CLICK_DATA_API:"click"+oe+".data-api"},ce="modal-dialog-scrollable",he="modal-scrollbar-measure",ue="modal-backdrop",fe="modal-open",de="fade",ge="show",_e="modal-static",me=".modal-dialog",pe=".modal-body",ve='[data-toggle="modal"]',ye='[data-dismiss="modal"]',Ee=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Ce=".sticky-top",Te=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(me),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){g(this._element).hasClass(de)&&(this._isTransitioning=!0);var n=g.Event(le.SHOW,{relatedTarget:t});g(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),g(this._element).on(le.CLICK_DISMISS,ye,function(t){return e.hide(t)}),g(this._dialog).on(le.MOUSEDOWN_DISMISS,function(){g(e._element).one(le.MOUSEUP_DISMISS,function(t){g(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=g.Event(le.HIDE);if(g(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=g(this._element).hasClass(de);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),g(document).off(le.FOCUSIN),g(this._element).removeClass(ge),g(this._element).off(le.CLICK_DISMISS),g(this._dialog).off(le.MOUSEDOWN_DISMISS),i){var o=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return g(t).off(oe)}),g(document).off(le.FOCUSIN),g.removeData(this._element,ie),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},se,{},t),_.typeCheckConfig(ne,t,ae),t},t._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var e=g.Event(le.HIDE_PREVENTED);if(g(this._element).trigger(e),e.defaultPrevented)return;this._element.classList.add(_e);var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,function(){t._element.classList.remove(_e)}).emulateTransitionEnd(n),this._element.focus()}else this.hide()},t._showElement=function(t){var e=this,n=g(this._element).hasClass(de),i=this._dialog?this._dialog.querySelector(pe):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),g(this._dialog).hasClass(ce)&&i?i.scrollTop=0:this._element.scrollTop=0,n&&_.reflow(this._element),g(this._element).addClass(ge),this._config.focus&&this._enforceFocus();function o(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,g(e._element).trigger(r)}var r=g.Event(le.SHOWN,{relatedTarget:t});if(n){var s=_.getTransitionDurationFromElement(this._dialog);g(this._dialog).one(_.TRANSITION_END,o).emulateTransitionEnd(s)}else o()},t._enforceFocus=function(){var e=this;g(document).off(le.FOCUSIN).on(le.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===g(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?g(this._element).on(le.KEYDOWN_DISMISS,function(t){27===t.which&&e._triggerBackdropTransition()}):this._isShown||g(this._element).off(le.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?g(window).on(le.RESIZE,function(t){return e.handleUpdate(t)}):g(window).off(le.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){g(document.body).removeClass(fe),t._resetAdjustments(),t._resetScrollbar(),g(t._element).trigger(le.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(g(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=g(this._element).hasClass(de)?de:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ue,n&&this._backdrop.classList.add(n),g(this._backdrop).appendTo(document.body),g(this._element).on(le.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()}),n&&_.reflow(this._backdrop),g(this._backdrop).addClass(ge),!t)return;if(!n)return void t();var i=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){g(this._backdrop).removeClass(ge);var o=function(){e._removeBackdrop(),t&&t()};if(g(this._element).hasClass(de)){var r=_.getTransitionDurationFromElement(this._backdrop);g(this._backdrop).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(Ee)),e=[].slice.call(document.querySelectorAll(Ce));g(t).each(function(t,e){var n=e.style.paddingRight,i=g(e).css("padding-right");g(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),g(e).each(function(t,e){var n=e.style.marginRight,i=g(e).css("margin-right");g(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=g(document.body).css("padding-right");g(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}g(document.body).addClass(fe)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(Ee));g(t).each(function(t,e){var n=g(e).data("padding-right");g(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+Ce));g(e).each(function(t,e){var n=g(e).data("margin-right");"undefined"!=typeof n&&g(e).css("margin-right",n).removeData("margin-right")});var n=g(document.body).data("padding-right");g(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=he,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=g(this).data(ie),e=l({},se,{},g(this).data(),{},"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),g(this).data(ie,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return se}}]),o}();g(document).on(le.CLICK_DATA_API,ve,function(t){var e,n=this,i=_.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=g(e).data(ie)?"toggle":l({},g(e).data(),{},g(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=g(e).one(le.SHOW,function(t){t.isDefaultPrevented()||r.one(le.HIDDEN,function(){g(n).is(":visible")&&n.focus()})});Te._jQueryInterface.call(g(e),o,this)}),g.fn[ne]=Te._jQueryInterface,g.fn[ne].Constructor=Te,g.fn[ne].noConflict=function(){return g.fn[ne]=re,Te._jQueryInterface};var be=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Se={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},De=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Ie=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function we(t,r,e){if(0===t.length)return t;if(e&&"function"==typeof e)return e(t);for(var n=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(r),a=[].slice.call(n.body.querySelectorAll("*")),i=function(t){var e=a[t],n=e.nodeName.toLowerCase();if(-1===s.indexOf(e.nodeName.toLowerCase()))return e.parentNode.removeChild(e),"continue";var i=[].slice.call(e.attributes),o=[].concat(r["*"]||[],r[n]||[]);i.forEach(function(t){!function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===be.indexOf(n)||Boolean(t.nodeValue.match(De)||t.nodeValue.match(Ie));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1}(t,o)&&e.removeAttribute(t.nodeName)})},o=0,l=a.length;o<l;o++)i(o);return n.body.innerHTML}var Ae="tooltip",Ne="bs.tooltip",Oe="."+Ne,ke=g.fn[Ae],Pe="bs-tooltip",Le=new RegExp("(^|\\s)"+Pe+"\\S+","g"),je=["sanitize","whiteList","sanitizeFn"],He={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Re={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},xe={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Se,popperConfig:null},Fe="show",Ue="out",We={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,INSERTED:"inserted"+Oe,CLICK:"click"+Oe,FOCUSIN:"focusin"+Oe,FOCUSOUT:"focusout"+Oe,MOUSEENTER:"mouseenter"+Oe,MOUSELEAVE:"mouseleave"+Oe},qe="fade",Me="show",Ke=".tooltip-inner",Qe=".arrow",Be="hover",Ve="focus",Ye="click",ze="manual",Xe=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Me))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(qe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,this._getPopperConfig(a)),g(o).addClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===Ue&&e._leave(null,e)};if(g(this.tip).hasClass(qe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){function e(){n._hoverState!==Fe&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),g(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()}var n=this,i=this.getTipElement(),o=g.Event(this.constructor.Event.HIDE);if(g(this.element).trigger(o),!o.isDefaultPrevented()){if(g(i).removeClass(Me),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ye]=!1,this._activeTrigger[Ve]=!1,this._activeTrigger[Be]=!1,g(this.tip).hasClass(qe)){var r=_.getTransitionDurationFromElement(i);g(i).one(_.TRANSITION_END,e).emulateTransitionEnd(r)}else e();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Pe+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ke)),this.getTitle()),g(t).removeClass(qe+" "+Me)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=we(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t=t||("function"==typeof this.config.title?this.config.title.call(this.element):this.config.title)},t._getPopperConfig=function(t){var e=this;return l({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Qe},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},{},this.config.popperConfig)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,{},e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Re[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==ze){var e=t===Be?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Be?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),this._hideModalHandler=function(){i.element&&i.hide()},g(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");!this.element.getAttribute("title")&&"string"==t||(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ve:Be]=!0),g(e.getTipElement()).hasClass(Me)||e._hoverState===Fe?e._hoverState=Fe:(clearTimeout(e._timeout),e._hoverState=Fe,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Fe&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ve:Be]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Ue,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Ue&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==je.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(Ae,t,this.constructor.DefaultType),t.sanitize&&(t.template=we(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Le);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(qe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ne),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ne,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return xe}},{key:"NAME",get:function(){return Ae}},{key:"DATA_KEY",get:function(){return Ne}},{key:"Event",get:function(){return We}},{key:"EVENT_KEY",get:function(){return Oe}},{key:"DefaultType",get:function(){return He}}]),i}();g.fn[Ae]=Xe._jQueryInterface,g.fn[Ae].Constructor=Xe,g.fn[Ae].noConflict=function(){return g.fn[Ae]=ke,Xe._jQueryInterface};var $e="popover",Ge="bs.popover",Je="."+Ge,Ze=g.fn[$e],tn="bs-popover",en=new RegExp("(^|\\s)"+tn+"\\S+","g"),nn=l({},Xe.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),on=l({},Xe.DefaultType,{content:"(string|element|function)"}),rn="fade",sn="show",an=".popover-header",ln=".popover-body",cn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,INSERTED:"inserted"+Je,CLICK:"click"+Je,FOCUSIN:"focusin"+Je,FOCUSOUT:"focusout"+Je,MOUSEENTER:"mouseenter"+Je,MOUSELEAVE:"mouseleave"+Je},hn=function(t){function i(){return t.apply(this,arguments)||this}!function(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}(i,t);var e=i.prototype;return e.isWithContent=function(){return this.getTitle()||this._getContent()},e.addAttachmentClass=function(t){g(this.getTipElement()).addClass(tn+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},e.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(an),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ln),e),t.removeClass(rn+" "+sn)},e._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},e._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(en);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ge),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ge,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return nn}},{key:"NAME",get:function(){return $e}},{key:"DATA_KEY",get:function(){return Ge}},{key:"Event",get:function(){return cn}},{key:"EVENT_KEY",get:function(){return Je}},{key:"DefaultType",get:function(){return on}}]),i}(Xe);g.fn[$e]=hn._jQueryInterface,g.fn[$e].Constructor=hn,g.fn[$e].noConflict=function(){return g.fn[$e]=Ze,hn._jQueryInterface};var un="scrollspy",fn="bs.scrollspy",dn="."+fn,gn=g.fn[un],_n={offset:10,method:"auto",target:""},mn={offset:"number",method:"string",target:"(string|element)"},pn={ACTIVATE:"activate"+dn,SCROLL:"scroll"+dn,LOAD_DATA_API:"load"+dn+".data-api"},vn="dropdown-item",yn="active",En='[data-spy="scroll"]',Cn=".nav, .list-group",Tn=".nav-link",bn=".nav-item",Sn=".list-group-item",Dn=".dropdown",In=".dropdown-item",wn=".dropdown-toggle",An="offset",Nn="position",On=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Tn+","+this._config.target+" "+Sn+","+this._config.target+" "+In,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,g(this._scrollElement).on(pn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?An:Nn,o="auto"===this._config.method?t:this._config.method,r=o===Nn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=_.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[g(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){g.removeData(this._element,fn),g(this._scrollElement).off(dn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},_n,{},"object"==typeof t&&t?t:{})).target){var e=g(t.target).attr("id");e||(e=_.getUID(un),g(t.target).attr("id",e)),t.target="#"+e}return _.typeCheckConfig(un,t,mn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=g([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(vn)?(n.closest(Dn).find(wn).addClass(yn),n.addClass(yn)):(n.addClass(yn),n.parents(Cn).prev(Tn+", "+Sn).addClass(yn),n.parents(Cn).prev(bn).children(Tn).addClass(yn)),g(this._scrollElement).trigger(pn.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(yn)}).forEach(function(t){return t.classList.remove(yn)})},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(fn);if(t||(t=new n(this,"object"==typeof e&&e),g(this).data(fn,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"Default",get:function(){return _n}}]),n}();g(window).on(pn.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(En)),e=t.length;e--;){var n=g(t[e]);On._jQueryInterface.call(n,n.data())}}),g.fn[un]=On._jQueryInterface,g.fn[un].Constructor=On,g.fn[un].noConflict=function(){return g.fn[un]=gn,On._jQueryInterface};var kn="bs.tab",Pn="."+kn,Ln=g.fn.tab,jn={HIDE:"hide"+Pn,HIDDEN:"hidden"+Pn,SHOW:"show"+Pn,SHOWN:"shown"+Pn,CLICK_DATA_API:"click"+Pn+".data-api"},Hn="dropdown-menu",Rn="active",xn="disabled",Fn="fade",Un="show",Wn=".dropdown",qn=".nav, .list-group",Mn=".active",Kn="> li > .active",Qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Bn=".dropdown-toggle",Vn="> .dropdown-menu .active",Yn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&g(this._element).hasClass(Rn)||g(this._element).hasClass(xn))){var t,i,e=g(this._element).closest(qn)[0],o=_.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?Kn:Mn;i=(i=g.makeArray(g(e).find(r)))[i.length-1]}var s=g.Event(jn.HIDE,{relatedTarget:this._element}),a=g.Event(jn.SHOW,{relatedTarget:i});if(i&&g(i).trigger(s),g(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=g.Event(jn.HIDDEN,{relatedTarget:n._element}),e=g.Event(jn.SHOWN,{relatedTarget:i});g(i).trigger(t),g(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){g.removeData(this._element,kn),this._element=null},t._activate=function(t,e,n){function i(){return o._transitionComplete(t,r,n)}var o=this,r=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?g(e).children(Mn):g(e).find(Kn))[0],s=n&&r&&g(r).hasClass(Fn);if(r&&s){var a=_.getTransitionDurationFromElement(r);g(r).removeClass(Un).one(_.TRANSITION_END,i).emulateTransitionEnd(a)}else i()},t._transitionComplete=function(t,e,n){if(e){g(e).removeClass(Rn);var i=g(e.parentNode).find(Vn)[0];i&&g(i).removeClass(Rn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(g(t).addClass(Rn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),_.reflow(t),t.classList.contains(Fn)&&t.classList.add(Un),t.parentNode&&g(t.parentNode).hasClass(Hn)){var o=g(t).closest(Wn)[0];if(o){var r=[].slice.call(o.querySelectorAll(Bn));g(r).addClass(Rn)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(kn);if(e||(e=new i(this),t.data(kn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}}]),i}();g(document).on(jn.CLICK_DATA_API,Qn,function(t){t.preventDefault(),Yn._jQueryInterface.call(g(this),"show")}),g.fn.tab=Yn._jQueryInterface,g.fn.tab.Constructor=Yn,g.fn.tab.noConflict=function(){return g.fn.tab=Ln,Yn._jQueryInterface};var zn="toast",Xn="bs.toast",$n="."+Xn,Gn=g.fn[zn],Jn={CLICK_DISMISS:"click.dismiss"+$n,HIDE:"hide"+$n,HIDDEN:"hidden"+$n,SHOW:"show"+$n,SHOWN:"shown"+$n},Zn="fade",ti="hide",ei="show",ni="showing",ii={animation:"boolean",autohide:"boolean",delay:"number"},oi={animation:!0,autohide:!0,delay:500},ri='[data-dismiss="toast"]',si=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this,e=g.Event(Jn.SHOW);if(g(this._element).trigger(e),!e.isDefaultPrevented()){this._config.animation&&this._element.classList.add(Zn);var n=function(){t._element.classList.remove(ni),t._element.classList.add(ei),g(t._element).trigger(Jn.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(ti),_.reflow(this._element),this._element.classList.add(ni),this._config.animation){var i=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},t.hide=function(){if(this._element.classList.contains(ei)){var t=g.Event(Jn.HIDE);g(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ei)&&this._element.classList.remove(ei),g(this._element).off(Jn.CLICK_DISMISS),g.removeData(this._element,Xn),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},oi,{},g(this._element).data(),{},"object"==typeof t&&t?t:{}),_.typeCheckConfig(zn,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;g(this._element).on(Jn.CLICK_DISMISS,ri,function(){return t.hide()})},t._close=function(){function t(){e._element.classList.add(ti),g(e._element).trigger(Jn.HIDDEN)}var e=this;if(this._element.classList.remove(ei),this._config.animation){var n=_.getTransitionDurationFromElement(this._element);g(this._element).one(_.TRANSITION_END,t).emulateTransitionEnd(n)}else t()},i._jQueryInterface=function(n){return this.each(function(){var t=g(this),e=t.data(Xn);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Xn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.4.1"}},{key:"DefaultType",get:function(){return ii}},{key:"Default",get:function(){return oi}}]),i}();g.fn[zn]=si._jQueryInterface,g.fn[zn].Constructor=si,g.fn[zn].noConflict=function(){return g.fn[zn]=Gn,si._jQueryInterface},t.Alert=v,t.Button=H,t.Carousel=ut,t.Collapse=wt,t.Dropdown=ee,t.Modal=Te,t.Popover=hn,t.Scrollspy=On,t.Tab=Yn,t.Toast=si,t.Tooltip=Xe,t.Util=_,Object.defineProperty(t,"__esModule",{value:!0})});
 //# sourceMappingURL=bootstrap.min.js.map
diff --git a/www/binary-releases.html b/www/binary-releases.html
index 80b8499..118c9db 100644
--- a/www/binary-releases.html
+++ b/www/binary-releases.html
@@ -447,7 +447,7 @@
 </p>
     <p><a href="binary-releases.html#">Back to top</a> •
     <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="www/www/www/www/www/www/www/www/www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/https://imagemagick.org/script/contact.php">Contact Us</a></p>
+    <a href="www/www/www/www/www/www/www/www/www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/../www/https://imagemagick.org/script/contact.php">Contact Us</a></p>
         <p><small>©  1999-2016 ImageMagick Studio LLC</small></p>
   </footer>
 </div><!-- /.container -->
diff --git a/www/changelog.html b/www/changelog.html
index 54dd916..d1c7bcc 100644
--- a/www/changelog.html
+++ b/www/changelog.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Changelog @ ImageMagick</title>
+  <title>ImageMagick - Changelog</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="changelog, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="changelog.html" rel="canonical" />
+  <link href="../www/changelog.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,21 +72,329 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
-<div class="magick-header"><dl><dt>2019-01-01  7.0.8-23 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
-  <li> Release ImageMagick version 7.0.8-22, GIT revision 15199:ba07f7d07:20190101</li>
+<div class="magick-header"><dl><dt>2020-01-04  7.0.9-14 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-14, GIT revision 16654:89ef7ea:20200104.</li>
+<dt>2020-01-01  7.0.9-14 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support extended Fx assignment operators (e.g. *=, /=, ++, --, etc.)</li>
+  <li> Support Fx for() iterator.</li>
+  <li> Optimize Fx performance.</li>
+  <li> Ensure circle.rb renders the same for IMv6 and IMv7 (reference    https://github.com/rmagick/rmagick/issues/905).</li>
+<dt>2019-12-30  7.0.9-13 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-13, GIT revision 16616:dbafe0b:20191230.</li>
+<dt>2019-12-27  7.0.9-13 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> xc:white no longer creates a black PNM image (reference    https://github.com/ImageMagick/ImageMagick/issues/1817).</li>
+  <li> Sync pixel cache for -kmeans option.</li>
+  <li> Thread -kmeans option.</li>
+  <li> PSD: only set the alpha channel when type is not 0.</li>
+  <li> Fix Lab to custom profile (CMYK or RGB) conversion bug (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=37318).</li>
+<dt>2019-12-26  7.0.9-12 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-12, GIT revision 16587:7d6a559:20191226.</li>
+<dt>2019-12-26  7.0.9-12 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix Build failure with MinGW-w64 (reference    https://github.com/ImageMagick/ImageMagick6/issues/67).</li>
+  <li> Inject image profile properties immediately after the image is read.</li>
+<dt>2019-12-23  7.0.9-11 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-11, GIT revision 16568:1d6c960:20191224.</li>
+<dt>2019-12-18  7.0.9-11 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Replace pseudo-random number generator with a Xoshiro generator.</li>
+  <li> The -layers optimize option requires a fully transparent previous image.</li>
+<dt>2019-12-22  7.0.9-10 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-10, GIT revision 16548:281649843:20191222.</li>
+<dt>2019-12-18  7.0.9-10 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Some clang releases do not support _aligned_alloc().</li>
+  <li> Support -kmeans command-line option.</li>
+<dt>2019-12-07  7.0.9-9 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-9, GIT revision 16513:8ec82f4:20191215.</li>
+<dt>2019-12-07  7.0.9-9 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Build file clean-up (reference    https://github.com/ImageMagick/ImageMagick/pull/1798).</li>
+  <li> Improve semaphore handling @    https://github.com/ImageMagick/ImageMagick/pull/1798).</li>
+  <li> Introduce HeapOverflowSanityCheckGetExtent() method (reference    https://github.com/ImageMagick/ImageMagick/pull/1798).</li>
+<dt>2019-12-01  7.0.9-8 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-8, GIT revision 16474:0bc0e95:20191207.</li>
+<dt>2019-12-01  7.0.9-8 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> -type bilevel behavior restored, it creates a black and white image.</li>
+<dt>2019-11-30  7.0.9-7 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-7, GIT revision 16449:971ba06:20191130.</li>
+<dt>2019-11-26  7.0.9-7 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support Pocketmod image format, e.g.    convert -density 300 pages?.pdf pocketmod:organize.pdf</li>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+  <li> Update documentation.</li>
+<dt>2019-11-26  7.0.9-6 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-6, GIT revision 16407:1725ec3:20191126.</li>
+<dt>2019-11-19  7.0.9-6 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Increase the maximum number of bezier coordinates (reference    https://github.com/ImageMagick/ImageMagick/issues/1784).</li>
+  <li> Santize "'" from SHOW and WIN delegates under Linux, '"\' for Windows    (thanks to Enzo Puig).</li>
+  <li> Correct for TGA orientation (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=34757).</li>
+  <li> The result for -compose Copy -extent on a  MYK image is CMYK (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=37118).</li>
+  <li> Fix potential buffer overflow when reading a fax image (alert from    Justin).</li>
+  <li> Support dng:use-camera-wb option.</li>
+<dt>2019-11-17  7.0.9-5 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-5, GIT revision 16369:747618e:20191117.</li>
+<dt>2019-11-16  7.0.9-5 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Ensure Ascii85 compression is thread safe.</li>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-11-13  7.0.9-4 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-4, GIT revision 16354:5f53562:20191114.</li>
+<dt>2019-11-10  7.0.9-4 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Add exception parameter to CMS transform methods.</li>
+  <li> Output exception there is an attempt to perform an operation not allowed by    the security policy</li>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-10-30  7.0.9-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-2, GIT revision 16325:6f84d89:20191030.</li>
+<dt>2019-10-29  7.0.9-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> JPEG and JPG are aliases in coder security policy.</li>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-10-27  7.0.9-1 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-1, GIT revision 16313:e068be3:20191027.</li>
+<dt>2019-10-27  7.0.9-1 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-10-23  7.0.9-0 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.9-0, GIT revision 16297:8744fd9:20191024</li>
+<dt>2019-10-06  7.0.9-0 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed numerous issues  posted to GitHub (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+  <li> Support trim:background-color define for -trim option.</li>
+<dt>2019-10-05  7.0.8-68 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-68, GIT revision 16184:b75b0e5:20191005.</li>
+<dt>2019-09-30  7.0.8-68 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support animated WebP encoding/decoding (reference    https://github.com/ImageMagick/ImageMagick/pull/1708).</li>
+  <li> Text stroke cut off (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=1&amp;t=36829).</li>
+  <li> Adds support for lossless JPEG1 recompression (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=2&amp;t=36828).</li>
+<dt>2019-09-29  7.0.8-67 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-67, GIT revision 16145:6f2feb9:20190929.</li>
+<dt>2019-09-28  7.0.8-67 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> line endings renedered as empty boxes (reference    https://github.com/ImageMagick/ImageMagick/issues/1704).</li>
+<dt>2019-09-21  7.0.8-66 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-66, GIT revision 16134:f6ce80a:20190921.</li>
+<dt>2019-09-09  7.0.8-66 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support compound statements in FX while() (reference    https://github.com/ImageMagick/ImageMagick/issues/1701).</li>
+<dt>2019-09-15  7.0.8-65 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-65, GIT revision 16130:254db34:20190915.</li>
+<dt>2019-09-09  7.0.8-65 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Eliminate fault when trace delegate is not available.</li>
+  <li> Properly distinquish linear and non-linear gray colorspaces (reference    https://github.com/ImageMagick/ImageMagick/issues/1680).</li>
+<dt>2019-09-07  7.0.8-64 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-64, GIT revision 16108:2ad3cbc:20190907.</li>
+<dt>2019-09-02  7.0.8-64 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support XPM symbolic (reference    https://github.com/ImageMagick/ImageMagick/issues/1684).</li>
+  <li> DilateIntensity is channel independent (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36641).</li>
+<dt>2019-08-31  7.0.8-63 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-63, GIT revision 16088:3b7a33d:20190831.</li>
+<dt>2019-08-24  7.0.8-63 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Properly identify the DNG and AI image format (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36581).</li>
+<dt>2019-08-23  7.0.8-62 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-62, GIT revision 16061:7525595:20190823.</li>
+<dt>2019-08-23  7.0.8-62 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+  <li> Added option to limit the maximum point size with -define    caption:max-pointsize=pointsize.</li>
+  <li> Corrected JP2 numresolution calculation (reference:    https://github.com/ImageMagick/ImageMagick/issues/1673)</li>
+<dt>2019-08-19  7.0.8-62 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Conditionally compile call to AcquireCLocale() (reference    https://github.com/ImageMagick/ImageMagick/issues/1669).</li>
+  <li> More robust support for converting bitmap to vector.</li>
+<dt>2019-08-16  7.0.8-61 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-61, GIT revision 16033:0c5808c:20190816.</li>
+<dt>2019-08-03  7.0.8-61 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Issue with -background and -swirl (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36512).</li>
+<dt>2019-08-10  7.0.8-60 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-60, GIT revision 16020:52ff205:20190810.</li>
+<dt>2019-08-07  7.0.8-60 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Enable reading EXR image file from stdin.</li>
+<dt>2019-08-04  7.0.8-59 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-59, GIT revision 15986:c3de0e7:20190804.</li>
+<dt>2019-08-01  7.0.8-59 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Module is a reserved keyword for C++ 20 (reference    https://github.com/ImageMagick/ImageMagick/issues/1650).</li>
+<dt>2019-07-29  7.0.8-58 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-58, GIT revision 15962:cf00632:20190729.</li>
+<dt>2019-07-27  7.0.8-58 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Improve GetNextToken() performance.</li>
+<dt>2019-07-26  7.0.8-57 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-57, GIT revision 15948:8fba4a3:20190726.</li>
+<dt>2019-07-22  7.0.8-57 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Heap-buffer-overflow in Postscript coder (reference    https://github.com/ImageMagick/ImageMagick/issues/1644).</li>
+  <li> The -alpha shape option nondeteministic under OpenMP (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36396).</li>
+  <li> Correction to the ModulusAdd and ModulusSubtract composite op (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=2&amp;t=36413).</li>
+<dt>2019-07-20  7.0.8-56 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-56, GIT revision 15936:2ac4147:20190720.</li>
+<dt>2019-07-20  7.0.8-56 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Unexpected -alpha shape results (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36396).</li>
+  <li> Converting from PDF to PBM inverts the image (reference    https://github.com/ImageMagick/ImageMagick/issues/1643).</li>
+<dt>2019-07-18  7.0.8-55 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-55, GIT revision 15930:ac09240:20190718.</li>
+<dt>2019-07-18  7.0.8-55 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Heap-buffer overflow (reference    https://github.com/ImageMagick/ImageMagick/issues/1641</li>
+  <li> PerlMagick test suite passes again (reference    https://github.com/ImageMagick/ImageMagick/issues/1640) </li>
+<dt>2019-07-16  7.0.8-54 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-54, GIT revision 15916:e868e22:20190716.</li>
+<dt>2019-07-08  7.0.8-54 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> resolve division by zero  (reference     https://github.com/ImageMagick/ImageMagick/issues/1629).</li>
+  <li> introducing MagickLevelImageColors() MagickWand method.</li>
+  <li> Transient problem with text placement with gravity (reference    https://github.com/ImageMagick/ImageMagick/issues/1633).</li>
+  <li> Support TIM2 image format (reference    https://github.com/ImageMagick/ImageMagick/pull/1571).</li>
+  <li> For -magnify option, specify an alternative scaling method with -define    magnify:method=method, choose from these methods: eagle2X, eagle3X,    eagle3XB, epb2X, fish2X, hq2X,  scale2X (default), scale3X, xbr2X.</li>
+<dt>2019-07-05  7.0.8-53 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-53, GIT revision 15828:f5d59c0:20190705.</li>
+<dt>2019-07-05  7.0.8-53 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix -fx parsing issue (reference     https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36314).</li>
+<dt>2019-07-05  7.0.8-52 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-52, GIT revision 15825:ea47310:20190705.</li>
+<dt>2019-07-01  7.0.8-52 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Eliminate buffer overflow in TranslateEvent() (reference    https://github.com/ImageMagick/ImageMagick/issues/1621).</li>
+<dt>2019-06-30  7.0.8-51 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-51, GIT revision 15812:51f11c4:20190630.</li>
+<dt>2019-06-24  7.0.8-51 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Clone rather than copy X window name/icon.</li>
+  <li> Optimize PDF reader.</li>
+<dt>2019-06-23  7.0.8-50 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-50, GIT revision 15778:4a60519:20190623</li>
+<dt>2019-06-14  7.0.8-50 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+  <li> Added support for reading all images from a HEIC image (reference    https://github.com/ImageMagick/ImageMagick/issues/1391).</li>
+  <li> Heap-buffer-overflow in MagickCore/fourier.c (reference   https://github.com/ImageMagick/ImageMagick/issues/1588).</li>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-06-08  7.0.8-49 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-49, GIT revision 15708:6d7e1db:20190608</li>
+<dt>2019-06-03  7.0.8-49 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Add support for RGB565 image format (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=2&amp;t=36078).</li>
+  <li> Use user defined allocator instead of `malloc` (reference    https://github.com/ImageMagick/ImageMagick6/pull/49/).</li>
+  <li> Add static decorator to accelerator kernels (reference    https://github.com/ImageMagick/ImageMagick/issues/1366).</li>
+<dt>2019-06-01  7.0.8-48 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-48, GIT revision 15689:061a3bb82:20190601</li>
+<dt>2019-06-01  7.0.8-48 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix transient convolution bug (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36119).</li>
+<dt>2019-05-26  7.0.8-47 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-47, GIT revision 15681:5cffc6cbb:20190526</li>
+<dt>2019-05-19  7.0.8-47 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support 16 and 32 bit tiled float TIFF images.</li>
+  <li> Convolve morphology alpha channel fix (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=36086).</li>
+  <li> Text improvements to the internal SVG renderer.</li>
+<dt>2019-05-14  7.0.8-46 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-46, GIT revision 15655:84dd3301c:20190518</li>
+<dt>2019-05-14  7.0.8-46 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> PerlMagick unit tests pass again.</li>
+  <li> Builds under MacOS X and FreeBSD works again.</li>
+  <li> Return HEIC images in the sRGB colorspace.</li>
+<dt>2019-05-12  7.0.8-45 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-45, GIT revision 15634:784105bcb:20190512</li>
+<dt>2019-05-06  7.0.8-45 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix image signatures to ensure they are Q-depth invariant (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=1&amp;t=35970).</li>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-05-03  7.0.8-44 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-44, GIT revision 15600:41f47759a:20190503</li>
+<dt>2019-05-03  7.0.8-44 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-05-01  7.0.8-43 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-43, GIT revision 15595:0062cef74:20190502</li>
+<dt>2019-05-01  7.0.8-43 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-04-29  7.0.8-42 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-42, GIT revision 15570:71190ccd0:20190424</li>
+<dt>2019-04-20  7.0.8-42 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-04-19  7.0.8-41 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-41, GIT revision 15540:c78993d13:20190420</li>
+<dt>2019-04-13  7.0.8-41 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+  <li> Honor SOURCE_DATE_EPOCH environment variable (reference    https://github.com/ImageMagick/ImageMagick/pull/1496/).</li>
+  <li> Standardize on UTC time for any image format timestamp.</li>
+  <li> Add MagickAutoThresholdImage(), MagickCannyEdgeImage(),    MagickComplexImages(), MagickConnectedComponentsImage(),    MagickHoughLineImage(), MagickKuwaharaImage(), MagickLevelizeImageColors(),    MagickLevelImageColors(), MagickMeanShiftImage(), MagickPolynomialImage(),    MagickRangeThresholdImage(), MagickSetSeed(), MagickWaveletDenoiseImage()    methods to MagickWand API.</li>
+<dt>2019-04-12  7.0.8-40 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-40, GIT revision 15510:7e503e231:20190412</li>
+<dt>2019-04-10  7.0.8-40 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://imagemagick.org/discourse-server//viewforum.html?f=3).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+</li>
+<dt>2019-04-07  7.0.8-39 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-39, GIT revision 15489:6120f8bc1:20190406</li>
+<dt>2019-04-06  7.0.8-39 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> The -layers option compared pixels inocorrectly as opacity rather than    alpha.</li>
+  <li> The -preview raise option now returns expected results.</li>
+  <li> Initialise ghostscript instances with NULL (reference    https://github.com/ImageMagick/ImageMagick/pull/1538).</li>
+<dt>2019-04-06  7.0.8-38 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-38, GIT revision 15483:23edcef04:20190406</li>
+<dt>2019-04-06  7.0.8-38 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Modulo off by one patch for -virtual-pixel option (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=35789).</li>
+<dt>2019-04-03  7.0.8-37 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-37, GIT revision 15470:477216fd7:20190403</li>
+<dt>2019-04-03  7.0.8-37 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed -virtual-pixel option (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=35789).</li>
+<dt>2019-03-31  7.0.8-36 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-36, GIT revision 15464:3a928224d:20190331</li>
+<dt>2019-03-27  7.0.8-36 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-03-24  7.0.8-35 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-35, GIT revision 15440:4a0a88e41:20190324</li>
+<dt>2019-03-23  7.0.8-35 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> -draw image DstOver is now responsive to the composite operator (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=1&amp;t=35650).</li>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-03-15  7.0.8-34 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-34, GIT revision 15413:860af935d:20190315</li>
+<dt>2019-03-11  7.0.8-34 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Associate one lock with each resource.</li>
+  <li> Report exception if opening TIFF did not work out.</li>
+  <li> Fixed numerous use of uninitialized values, integer overflow, memory    exceeded, and timeouts (credit to OSS Fuzz).</li>
+<dt>2019-03-10  7.0.8-33 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-33, GIT revision 15401:c805e3205:20190310</li>
+<dt>2019-03-06  7.0.8-33 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix SVG conversion infinite loop (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=35591).</li>
+  <li> Initialize primitive drawing structure after resizing.</li>
+<dt>2019-03-05  7.0.8-32 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-32, GIT revision 15386:58d9c4692:20190305</li>
+<dt>2019-03-05  7.0.8-32 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fix out-of-boundary LocaleLowerCase() @    https://github.com/ImageMagick/ImageMagick/issues/1495</li>
+<dt>2019-03-04  7.0.8-31 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-31, GIT revision 15381:3122a669d:20190304</li>
+<dt>2019-03-04  7.0.8-31 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> -trim is no longer sensitive to the image virtual canvas.</li>
+<dt>2019-03-03  7.0.8-30 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-30, GIT revision 15376:16d2b4e6a:20190303</li>
+<dt>2019-03-03  7.0.8-30 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support define to remove additional background from an image during a    trim, e.g. -fuzz 5% -define trim:percent-background=0% -trim.</li>
+<dt>2019-02-28  7.0.8-29 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-29, GIT revision 15368:5d8ed9f56:20190228</li>
+<dt>2019-02-28  7.0.8-29 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+  <li> Fixed numerous use of uninitialized values, integer overflow, memory    exceeded, and timeouts (credit to OSS Fuzz).</li>
+<dt>2019-02-18  7.0.8-28 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-28, GIT revision 15345:09a7c67dd:20190218</li>
+<dt>2019-02-12  7.0.8-28 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-02-09  7.0.8-27 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-27, GIT revision 15315:5d48cd312:20190209</li>
+<dt>2019-02-09  7.0.8-27 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Mod patch to properly handle subimage ranges (e.g. image.gif[2-3]).</li>
+<dt>2019-02-03  7.0.8-26 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-26, GIT revision 15294:726bd82a3:20190203</li>
+<dt>2019-02-02  7.0.8-26 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Fixed a number of issues (reference    https://github.com/ImageMagick/ImageMagick/issues).</li>
+<dt>2019-01-27  7.0.8-25 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-25, GIT revision 15279:7da783a5b:20190127</li>
+<dt>2019-01-19  7.0.8-25 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Eliminate spurious font warning (reference    https://github.com/ImageMagick/ImageMagick/issues/1458).</li>
+  <li> Support HEIC EXIF &amp; XMP profiles.</li>
+<dt>2019-01-12  7.0.8-24 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-24, GIT revision 15233:db129ba64:20190112</li>
+<dt>2019-01-08  7.0.8-24 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Support -clahe option real clip limit (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=2&amp;t=35292).</li>
+  <li> ShadeImage() kernels can return negative pixels, clamp to range (reference    https://github.com/ImageMagick/ImageMagick/issues/1319).</li>
+  <li> Annotate with negative offsets no longer renders slanted text.</li>
+<dt>2019-01-01  7.0.8-23 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.8-23, GIT revision 15199:ba07f7d07:20190101</li>
 <dt>2019-01-01  7.0.8-23 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> CacheInfo destructor must be aligned in DestroyPixelStream().</li>
 <dt>2018-12-30  7.0.8-22 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
@@ -361,7 +674,7 @@
   <li> Fixed numerous memory leaks (reference    https://github.com/ImageMagick/ImageMagick/pull/763).</li>
 <dt>2017-09-15  7.0.7-3 Glenn Randers-Pehrson &lt;glennrp@image...&gt;</dt>
   <li> Stop potential leaks in the JNG decoder (reference:    https://github.com/ImageMagick/ImageMagick/issues/760).</li>
-  <li> Maximum valid hour is 23, not 24, in the PNG tIME chunk, and maximum    valid minute is 59, not 60.  </li>
+  <li> Maximum valid hour is 23, not 24, in the PNG tIME chunk, and maximum    valid minute is 59, not 60.</li>
 <dt>2017-09-12  7.0.7-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.7-2, GIT revision 21089:4e46ad9dd:20170912.</li>
 <dt>2017-09-11  7.0.7-2 Glenn Randers-Pehrson &lt;glennrp@image...&gt;</dt>
@@ -490,7 +803,7 @@
  2017-05-12  7.0.5-6 Cristy  &lt;quetzlzacatenango@image...&gt;</li>
   <li> Release ImageMagick version 7.0.5-6, GIT revision 20039:9371904:20170512.</li>
 <dt>2017-05-10  7.0.5-6 John Cupitt &lt;jcupitt@gmail.com&gt;</dt>
-  <li> Revise DICOM window and rescale handling (reference     https://github.com/ImageMagick/ImageMagick/pull/484)</li>
+  <li> Revise DICOM window and rescale handling (reference    https://github.com/ImageMagick/ImageMagick/pull/484)</li>
 <dt>2017-05-06  7.0.5-6 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Restore the -alpha Shape option (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31879).</li>
   <li> Fix transient PDF bug (reference    https://github.com/ImageMagick/ImageMagick/issues/463).</li>
@@ -602,7 +915,7 @@
   <li> Release ImageMagick version 7.0.3-10, GIT revision 19191:338f088:20161210.</li>
 <dt>2016-12-07  7.0.3-10 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Set colorspace to sRGB if -append has non-homogenous colorspaces (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=29105).</li>
-  <li> Respect connected-components:area-threshold define (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31006). </li>
+  <li> Respect connected-components:area-threshold define (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31006).</li>
   <li> Enable alpha channel if background color is non-opaque (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31016).</li>
   <li> Return correct offset for negative index for -fx option (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31019).</li>
   <li> Fixed improper scaling of certain FITS images (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=31028).</li>
@@ -635,7 +948,7 @@
   <li> Off by one memory allocation (reference    https://github.com/ImageMagick/ImageMagick/issues/296).</li>
   <li> The -extent option now matches the results of IMv6 (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=1&amp;t=30779).</li>
   <li> Prevent fault in MSL interpreter (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=30797).</li>
-  <li> Mask composite produces proper results for the convert utility (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=29675).    </li>
+  <li> Mask composite produces proper results for the convert utility (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=29675).</li>
 <dt>2016-10-10  7.0.3-5 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.3-5, GIT revision 18975:a8174a2:20161030.</li>
 <dt>2016-10-16  7.0.3-5 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
@@ -653,7 +966,7 @@
 <dt>2016-10-02  7.0.3-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.3-2, GIT revision 18887:6b27c5b:20161002.</li>
 <dt>2016-09-27  7.0.3-2 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
-  <li> Fixed incorrect RLE decoding when reading an SGI image (reference     https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=30514)</li>
+  <li> Fixed incorrect RLE decoding when reading an SGI image (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=3&amp;t=30514)</li>
 <dt>2016-09-20  7.0.3-1 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.3-1, GIT revision 18851:ad91ea8:20160920.</li>
 <dt>2016-09-16  7.0.3-1 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
@@ -713,8 +1026,8 @@
 <dt>2016-06-26  7.0.2-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.2-2, GIT revision 18514:a7b5b46:20160626.</li>
 <dt>2016-06-23  7.0.2-2 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
-  <li> Correct for numerical instability (reference    https://github.com/ImageMagick/ImageMagick/issues/218).<dt>			 </dt>
-  <li>2016-06-21  7.0.2-1 Cristy  &lt;quetzlzacatenango@image...&gt;</li>
+  <li> Correct for numerical instability (reference    https://github.com/ImageMagick/ImageMagick/issues/218).</li>
+<dt>2016-06-21  7.0.2-1 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.2-1, GIT revision 18479:931319b:20160622.</li>
 <dt>2016-06-17  7.0.2-1 Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
   <li> Added support for GROUP4 compression to the FAX coder.</li>
@@ -786,7 +1099,7 @@
   <li> Fix for possible security vulnerabilities (reference    https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=29588).</li>
 <dt>2016-04-30  7.0.1-0 Cristy  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> New version 7.0.1-0, GIT revision 10716:b527bce:20160430.</li>
-<dt>2016-01-30  7.0.0-0 	Fahad-Alsaidi &amp; ShamsaHamed</dt>
+<dt>2016-01-30  7.0.0-0 Fahad-Alsaidi &amp; ShamsaHamed</dt>
   <li> Add support for languages that require complex text layout (reference    https://github.com/ImageMagick/ImageMagick/pull/88).</li>
 <dt>2012-04-27  7.0.0-0 Anthony thyssen &lt;A.Thyssen@griffith...&gt;</dt>
   <li> Allow the use of set and escapes when no images in memory    (unless you attempt to access per-image meta-data)    Currently does not include %[fx:...] and %[pixel:...]</li>
@@ -809,22 +1122,24 @@
 </li></dl></div>    </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="changelog.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:27 -->
\ No newline at end of file
diff --git a/www/cipher.html b/www/cipher.html
index 0f1c0ab..2d9fbb8 100644
--- a/www/cipher.html
+++ b/www/cipher.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Encipher or Decipher an Image @ ImageMagick</title>
+  <title>ImageMagick - Encipher or Decipher an Image</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="encipher, or, decipher, an, image, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="cipher.html" rel="canonical" />
+  <link href="../www/cipher.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -89,7 +95,7 @@
 
 <h2><a class="anchor" id="encipher"></a>Encipher an Image</h2>
 
-<p>Use the <a href="../www/command-line-options.html#encipher">-encipher</a> option to scramble your image so that it is unrecognizable.  The option requires a filename that contains your passphrase.  In this example we scramble an image and save it in the PNG format:</p>
+<p>Use the <a href="command-line-options.html#encipher">-encipher</a> option to scramble your image so that it is unrecognizable.  The option requires a filename that contains your passphrase.  In this example we scramble an image and save it in the PNG format:</p>
 
 <pre class="highlight"><code>convert rose.jpg -encipher passphrase.txt rose.png
 </code></pre>
@@ -101,7 +107,7 @@
 
 <h2><a class="anchor" id="decipher"></a>Decipher an Image</h2>
 
-<p>Use the <a href="../www/command-line-options.html#decipher">-decipher</a> option to unscramble your image so that it is recognizable once again.  The option requires a filename that contains your passphrase.  In this example we unscramble an image and save it in the JPEG format:</p>
+<p>Use the <a href="command-line-options.html#decipher">-decipher</a> option to unscramble your image so that it is recognizable once again.  The option requires a filename that contains your passphrase.  In this example we unscramble an image and save it in the JPEG format:</p>
 
 <pre class="highlight"><code>convert rose.png -decipher passphrase.txt rose.jpg
 </code></pre>
@@ -145,22 +151,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="cipher.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:33 -->
\ No newline at end of file
diff --git a/www/clahe.html b/www/clahe.html
index 9ad4546..4fc8ae2 100644
--- a/www/clahe.html
+++ b/www/clahe.html
@@ -1,7 +1,144 @@
+
+
+
+
 <!DOCTYPE html>
 <html lang="en">
 <head>
+  <meta charset="utf-8"  />
+  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <title>ImageMagick - Contrast Limited Adaptive Histogram Equalization</title>
+  <meta name="application-name" content="ImageMagick" />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
+  <meta name="application-url" content="https://imagemagick.org" />
+  <meta name="generator" content="PHP" />
+  <meta name="keywords" content="contrast, limited, adaptive, histogram, equalization, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
+  <meta name="rating" content="GENERAL" />
+  <meta name="robots" content="INDEX, FOLLOW" />
+  <meta name="generator" content="ImageMagick Studio LLC" />
+  <meta name="author" content="ImageMagick Studio LLC" />
+  <meta name="revisit-after" content="2 DAYS" />
+  <meta name="resource-type" content="document" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
+  <meta name="distribution" content="Global" />
+  <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
+  <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
+  <link href="../www/www/clahe.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
+  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
+      <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="navbar-collapse collapse" id="navbarsMagick" style="">
+    <ul class="navbar-nav mr-auto">
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/www/download.html">Download</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
+      </li>
+      <li class="nav-item ">
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
+      </li>
+      <li class="nav-item">
+        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
+      </li>
+    </ul>
+    <form class="form-inline my-2 my-lg-0" action="../www/www/https://imagemagick.org/script/search.php">
+      <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
+      <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
+    </form>
+    </div>
+  </nav>
+  <div class="container">
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+         style="display:block"
+         data-ad-client="ca-pub-3129977114552745"
+         data-ad-slot="6345125851"
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
+    <script>
+      (adsbygoogle = window.adsbygoogle || []).push({});
+    </script>
+
+  </div>
+
+  <main class="container">
+    <div class="magick-template">
+<div class="magick-header">
+<p class="lead magick-description">Use Adaptive histogram equalization (AHE) to improve contrast in images.  Ordinary histogram equalization computes a global equalization whereas an adaptive method computes several histograms, each corresponding to a distinct section of the image, and uses them to redistribute the lightness values of the image.  It is suitable for improving the local contrast and enhancing the definitions of edges in each region of an image.  A variant of adaptive histogram equalization, contrast limited adaptive histogram equalization (CLAHE) limits AHE's tendency to overamplify noise in relatively homogeneous regions of an image.</p>
+<p>CLAHE is supported as of ImageMagick 7.0.8-24 with the <a href="../www/www/command-line-options.html#clahe">-clahe</a> option:</p>
+<ul>
+<h6><a class="anchor" id="clahe"></a>-clahe <var>width</var>x<var>height</var>{%}{+}<var>number-bins</var>{+}<var>clip-limit</var>{!}</h6>
+</ul>
+<p> The image is divided into tiles of <var>width</var> and <var>height</var> pixels.  Append <code>%</code> to define the width and height as percentages of the image's dimensions. The tile size should be larger than the size of features to be preserved and respects the aspect ratio of the image.  Add <code>!</code> to force an exact tile width and height. <var>number-bins</var> is the number of histogram bins per tile (min 2, max 65536).  The number of histogram bins should be smaller than the number of pixels in a single tile. <var>clip-limit</var> is the contrast limit for localized changes in contrast. A clip-limit of 2 to 3 is a good starting place (e.g. -clahe 50x50%+128+3).  Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image.  Note, if the number of bins and the clip-limit are omitted, they default to 128 and no clipping respectively.</p>
+<p>To visualize the benefits of CLAHE, we have a low contrast image of mountains:</p>
+<p>
+<ul>
+  <a href="../www/images/mountains.jpg"><img src="../www/images/mountains.jpg" width="500" height="333" alt="label" /></a>
+</ul>
+<p>We can improve the image with global histogram equalization:</p>
+<ul>
+  <a href="../www/images/mountains.jpg"><img src="../www/images/mountains-equalize.jpg" width="500" height="333" alt="label" /></a>
+</ul>
+<p>We can further improve the image with the contrast limited adaptive histogram equalization image processing technique:</p>
+<ul>
+  <a href="../www/images/mountains.jpg"><img src="../www/images/mountains-clahe.jpg" width="500" height="333" alt="label" /></a>
+</ul>
+<p>The latter image was produced with this command:</p>
+<pre class="highlight">
+magick mountains.jpg -clahe 25x25%+128+3 mountains-clahe.jpg
+</pre>
+<p>The <code>25x25%</code> argument divides the image into 16 tiles to perform local contrast enhancement.  The image dimensions are <code>1500x1000</code> so the tiles are exactly <code>375x250</code> pixels each.  Rather than a percentage, you can specify the tile dimensions directly with <code>375x250</code>.</p>
+<p>For tile sizes that do not divide evenly into the image dimensions, CLAHE utilizes virtual pixels, as such the results can vary slightly based on your chosen virtual pixel method.  For example,</p>
+<pre class="highlight">
+magick mountains.jpg -virtual-pixel mirror -clahe 300x300+128+3! mountains-clahe.jpg
+</pre>
+<p>Notice the <code>!</code>.  That forces the tile size to exactly 300x300 pixels, whereas without the <code>!</code>, the tile size respects the aspect ratio of the image and results in tile dimensions of <code>300x200</code>.</p>
+ 
+</div>
+    </div>
+  </main><!-- /.container -->
+  <footer class="magick-footer">
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="clahe.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
+    <br/>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+  </footer>
+
+  <!-- Javascript assets -->
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:07 -->
\ No newline at end of file
diff --git a/www/color-management.html b/www/color-management.html
index 8cb8135..db74802 100644
--- a/www/color-management.html
+++ b/www/color-management.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Color Management @ ImageMagick</title>
+  <title>ImageMagick - Color Management</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="color, management, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="color-management.html" rel="canonical" />
+  <link href="../www/color-management.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,22 +72,23 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 
-<p class="lead magick-description">Due to the standardization of sRGB on the Internet, most image formats use SRGB as the default working color space.  If the color space of an image is unknown and it is an 8- to 16-bit image format, assuming it is in the sRGB color space is a safe choice.  This extends to grayscale as well.  We assume non-linear grayscale. These assumptions are overridden if a particular image format includes color space and / or gamma metadata.  ImageMagick assumes linear color if the color space is RGB instead of sRGB.  You can also override the default color space assumptions with color profiles or the <a href="../www/command-line-processing.html#set">-set</a> option.</p>
+<p class="lead magick-description">Due to the standardization of sRGB on the Internet, most image formats use SRGB as the default working color space.  If the color space of an image is unknown and it is an 8- to 16-bit image format, assuming it is in the sRGB color space is a safe choice.  This extends to grayscale as well.  We assume non-linear grayscale. These assumptions are overridden if a particular image format includes color space and / or gamma metadata.  ImageMagick assumes linear color if the color space is RGB instead of sRGB.  You can also override the default color space assumptions with color profiles or the <a href="command-line-processing.html#set">-set</a> option.</p>
 
 <p>ImageMagick supports color profiles, however, for images without a profile or a declaration of colorspace, ImageMagick assumes non-linear sRGB.  Most image processing algorithms assume a linear colorspace, therefore it might be prudent to convert to linear color or remove the gamma function before certain image processing algorithms are applied. For example,</p>
 
@@ -97,9 +103,8 @@
 <p>Afterwards, the verbose information for the output file lists the colorspace as RGB. This only works on image types containing meta data that distinguishes between linear RGB and non-linear sRGB, such as PNG and GIF. Therefore, if the above command is run with a JPG or TIF output format, the verbose information for the colorspace still shows sRGB. In order to properly have the JPG output know that it is linear RGB, include an appropriate color profile.</p>
 
 
-<p>By default, converting color images to grayscale returns non-linear gray.  To instead convert to linear gray, use the <a href="../www/command-line-processing.html#set">-set</a> or <a href="../www/command-line-processing.html#intensity">-intensity</a
-> or <a href="../www/command-line-processing.html#grayscale">-grayscale</a
-> options:</p>
+<p>By default, converting color images to grayscale returns non-linear gray.  To instead convert to linear gray, use the <a href="command-line-processing.html#set">-set</a> or <a href="command-line-processing.html#intensity">-intensity</a
+> or <a href="command-line-processing.html#grayscale">-grayscale</a> options:</p>
 
 <pre class="highlight"><code>
 convert myimage.png -colorspace LinearGray myRGBimage.png
@@ -135,30 +140,32 @@
 <pre class="highlight"><code>magick myimage.png -set colorspace RGB -colorspace HSL -separate myimage_channels_%d.png
 magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set colorspace sRGB myimage2.png</code></pre>
 
-<p>A majority of the image formats assume an sRGB colorspace (e.g. JPEG, PNG, etc.). A few support only linear RGB (e.g. EXR, DPX, CIN, HDR) or only linear GRAY (e.g. PGM). A few formats support CMYK. For example JPG does, but PNG does not. Then there is the occasional format that also supports LAB (that is CieLAB) (e.g. TIFF, PSD, JPG, JP2). For additional information, see the <a href="../www/formats.html#colorspace" >Colorspace</a> and <a href="../www/formats.html#supported" >Supported Formats</a> pages.</p>
+<p>A majority of the image formats assume an sRGB colorspace (e.g. JPEG, PNG, etc.). A few support only linear RGB (e.g. EXR, DPX, CIN, HDR) or only linear GRAY. A few formats support CMYK. For example JPG does, but PNG does not. Then there is the occasional format that also supports LAB (that is CieLAB) (e.g. TIFF, PSD, JPG, JP2). For additional information, see the <a href="../www/formats.html#colorspace" >Colorspace</a> and <a href="../www/formats.html#supported" >Supported Formats</a> pages.</p>
 
-<p>When specifying individual colors as <code>rgb(...)</code> or hex, these colors will still be interpreted as non-linear, that is, as sRGB colors. However if one wants to create linear colors, use <code>icc-color(rgb,r,g,b)"</code>, where <code>r</code>, <code>g</code>, and <code>b</code> are in the range 0 to 1. See the <a href="color.html" >Color</a> page.</p>
+<p>When specifying individual colors as <code>rgb(...)</code> or hex, these colors will still be interpreted as non-linear, that is, as sRGB colors. However if one wants to create linear colors, use <code>icc-color(rgb,r,g,b)"</code>, where <code>r</code>, <code>g</code>, and <code>b</code> are in the range 0 to 1. See the <a href="../www/color.html" >Color</a> page.</p>
 
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="color-management.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:32 -->
\ No newline at end of file
diff --git a/www/color.html b/www/color.html
index 7bfb1ac..6039513 100644
--- a/www/color.html
+++ b/www/color.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Color Names @ ImageMagick</title>
+  <title>ImageMagick - Color Names</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="color, names, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="color.html" rel="canonical" />
+  <link href="../www/color.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -4949,22 +4955,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="color.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:13 -->
\ No newline at end of file
diff --git a/www/command-line-options.html b/www/command-line-options.html
index 0ab9372..13cf01d 100644
--- a/www/command-line-options.html
+++ b/www/command-line-options.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Options @ ImageMagick</title>
+  <title>ImageMagick - Command-line Options</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/command-line-options.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,17 +76,18 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="command-line-options.html#adaptive-blur">&#x2011;adaptive&#x2011;blur</a>  • <a href="command-line-options.html#adaptive-resize">&#x2011;adaptive&#x2011;resize</a>  • <a href="command-line-options.html#adaptive-sharpen">&#x2011;adaptive&#x2011;sharpen</a>  • <a href="command-line-options.html#adjoin">&#x2011;adjoin</a>  • <a href="command-line-options.html#affine">&#x2011;affine</a>  • <a href="command-line-options.html#alpha">&#x2011;alpha</a>  • <a href="command-line-options.html#annotate">&#x2011;annotate</a>  • <a href="command-line-options.html#antialias">&#x2011;antialias</a>  • <a href="command-line-options.html#append">&#x2011;append</a>  • <a href="command-line-options.html#attenuate">&#x2011;attenuate</a>  • <a href="command-line-options.html#authenticate">&#x2011;authenticate</a>  • <a href="command-line-options.html#auto-gamma">&#x2011;auto&#x2011;gamma</a>  • <a href="command-line-options.html#auto-level">&#x2011;auto&#x2011;level</a>  • <a href="command-line-options.html#auto-orient">&#x2011;auto&#x2011;orient</a>  • <a href="command-line-options.html#auto-threshold">&#x2011;auto&#x2011;threshold</a>  • <a href="command-line-options.html#backdrop">&#x2011;backdrop</a>  • <a href="command-line-options.html#background">&#x2011;background</a>  • <a href="command-line-options.html#bench">&#x2011;bench</a>  • <a href="command-line-options.html#bias">&#x2011;bias</a>  • <a href="command-line-options.html#black-point-compensation">&#x2011;black&#x2011;point&#x2011;compensation</a>  • <a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a>  • <a href="command-line-options.html#blend">&#x2011;blend</a>  • <a href="command-line-options.html#blue-primary">&#x2011;blue&#x2011;primary</a>  • <a href="command-line-options.html#blue-shift">&#x2011;blue&#x2011;shift</a>  • <a href="command-line-options.html#blur">&#x2011;blur</a>  • <a href="command-line-options.html#border">&#x2011;border</a>  • <a href="command-line-options.html#bordercolor">&#x2011;bordercolor</a>  • <a href="command-line-options.html#borderwidth">&#x2011;borderwidth</a>  • <a href="command-line-options.html#brightness-contrast">&#x2011;brightness&#x2011;contrast</a>  • <a href="command-line-options.html#cache">&#x2011;cache</a>  • <a href="command-line-options.html#canny">&#x2011;canny</a>  • <a href="command-line-options.html#caption">&#x2011;caption</a>  • <a href="command-line-options.html#cdl">&#x2011;cdl</a>  • <a href="command-line-options.html#channel">&#x2011;channel</a>  • <a href="command-line-options.html#charcoal">&#x2011;charcoal</a>  • <a href="command-line-options.html#channel-fx">&#x2011;channel&#x2011;fx</a>  • <a href="command-line-options.html#chop">&#x2011;chop</a>  • <a href="command-line-options.html#clahe">&#x2011;clahe</a>  • <a href="command-line-options.html#clamp">&#x2011;clamp</a>  • <a href="command-line-options.html#clip">&#x2011;clip</a>  • <a href="command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a>  • <a href="command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a>  • <a href="command-line-options.html#clone">&#x2011;clone</a>  • <a href="command-line-options.html#clut">&#x2011;clut</a>  • <a href="command-line-options.html#coalesce">&#x2011;coalesce</a>  • <a href="command-line-options.html#colorize">&#x2011;colorize</a>  • <a href="command-line-options.html#colormap">&#x2011;colormap</a>  • <a href="command-line-options.html#color-matrix">&#x2011;color&#x2011;matrix</a>  • <a href="command-line-options.html#colors">&#x2011;colors</a>  • <a href="command-line-options.html#colorspace">&#x2011;colorspace</a>  • <a href="command-line-options.html#combine">&#x2011;combine</a>  • <a href="command-line-options.html#comment">&#x2011;comment</a>  • <a href="command-line-options.html#compare">&#x2011;compare</a>  • <a href="command-line-options.html#complex">&#x2011;complex</a>  • <a href="command-line-options.html#compose">&#x2011;compose</a>  • <a href="command-line-options.html#composite">&#x2011;composite</a>  • <a href="command-line-options.html#compress">&#x2011;compress</a>  • <a href="command-line-options.html#connected-components">&#x2011;connected&#x2011;components</a>  • <a href="command-line-options.html#contrast">&#x2011;contrast</a>  • <a href="command-line-options.html#contrast-stretch">&#x2011;contrast&#x2011;stretch</a>  • <a href="command-line-options.html#convolve">&#x2011;convolve</a>  • <a href="command-line-options.html#copy">&#x2011;copy</a>  • <a href="command-line-options.html#crop">&#x2011;crop</a>  • <a href="command-line-options.html#cycle">&#x2011;cycle</a>  • <a href="command-line-options.html#debug">&#x2011;debug</a>  • <a href="command-line-options.html#decipher">&#x2011;decipher</a>  • <a href="command-line-options.html#deconstruct">&#x2011;deconstruct</a>  • <a href="command-line-options.html#define">&#x2011;define</a>  • <a href="command-line-options.html#delay">&#x2011;delay</a>  • <a href="command-line-options.html#delete">&#x2011;delete</a>  • <a href="command-line-options.html#density">&#x2011;density</a>  • <a href="command-line-options.html#depth">&#x2011;depth</a>  • <a href="command-line-options.html#descend">&#x2011;descend</a>  • <a href="command-line-options.html#deskew">&#x2011;deskew</a>  • <a href="command-line-options.html#despeckle">&#x2011;despeckle</a>  • <a href="command-line-options.html#direction">&#x2011;direction</a>  • <a href="command-line-options.html#displace">&#x2011;displace</a>  • <a href="command-line-options.html#display">&#x2011;display</a>  • <a href="command-line-options.html#dispose">&#x2011;dispose</a>  • <a href="command-line-options.html#dissimilarity-threshold">&#x2011;dissimilarity&#x2011;threshold</a>  • <a href="command-line-options.html#dissolve">&#x2011;dissolve</a>  • <a href="command-line-options.html#distort">&#x2011;distort</a>  • <a href="command-line-options.html#distribute-cache">&#x2011;distribute&#x2011;cache</a>  • <a href="command-line-options.html#dither">&#x2011;dither</a>  • <a href="command-line-options.html#draw">&#x2011;draw</a>  • <a href="command-line-options.html#duplicate">&#x2011;duplicate</a>  • <a href="command-line-options.html#edge">&#x2011;edge</a>  • <a href="command-line-options.html#emboss">&#x2011;emboss</a>  • <a href="command-line-options.html#encipher">&#x2011;encipher</a>  • <a href="command-line-options.html#encoding">&#x2011;encoding</a>  • <a href="command-line-options.html#endian">&#x2011;endian</a>  • <a href="command-line-options.html#enhance">&#x2011;enhance</a>  • <a href="command-line-options.html#equalize">&#x2011;equalize</a>  • <a href="command-line-options.html#evaluate">&#x2011;evaluate</a>  • <a href="command-line-options.html#evaluate-sequence">&#x2011;evaluate&#x2011;sequence</a>  • <a href="command-line-options.html#extent">&#x2011;extent</a>  • <a href="command-line-options.html#extract">&#x2011;extract</a>  • <a href="command-line-options.html#family">&#x2011;family</a>  • <a href="command-line-options.html#features">&#x2011;features</a>  • <a href="command-line-options.html#fft">&#x2011;fft</a>  • <a href="command-line-options.html#fill">&#x2011;fill</a>  • <a href="command-line-options.html#filter">&#x2011;filter</a>  • <a href="command-line-options.html#flatten">&#x2011;flatten</a>  • <a href="command-line-options.html#flip">&#x2011;flip</a>  • <a href="command-line-options.html#floodfill">&#x2011;floodfill</a>  • <a href="command-line-options.html#flop">&#x2011;flop</a>  • <a href="command-line-options.html#font">&#x2011;font</a>  • <a href="command-line-options.html#foreground">&#x2011;foreground</a>  • <a href="command-line-options.html#format">&#x2011;format</a>  • <a href="command-line-options.html#format_identify_">&#x2011;format[identify]</a>  • <a href="command-line-options.html#frame">&#x2011;frame</a>  • <a href="command-line-options.html#frame_import_">&#x2011;frame[import]</a>  • <a href="command-line-options.html#function">&#x2011;function</a>  • <a href="command-line-options.html#fuzz">&#x2011;fuzz</a>  • <a href="command-line-options.html#fx">&#x2011;fx</a>  • <a href="command-line-options.html#gamma">&#x2011;gamma</a>  • <a href="command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a>  • <a href="command-line-options.html#geometry">&#x2011;geometry</a>  • <a href="command-line-options.html#gravity">&#x2011;gravity</a>  • <a href="command-line-options.html#grayscale">&#x2011;grayscale</a>  • <a href="command-line-options.html#green-primary">&#x2011;green&#x2011;primary</a>  • <a href="command-line-options.html#hald-clut">&#x2011;hald&#x2011;clut</a>  • <a href="command-line-options.html#help">&#x2011;help</a>  • <a href="command-line-options.html#highlight-color">&#x2011;highlight&#x2011;color</a>  • <a href="command-line-options.html#hough-lines">&#x2011;hough&#x2011;lines</a>  • <a href="command-line-options.html#iconGeometry">&#x2011;iconGeometry</a>  • <a href="command-line-options.html#iconic">&#x2011;iconic</a>  • <a href="command-line-options.html#identify">&#x2011;identify</a>  • <a href="command-line-options.html#ift">&#x2011;ift</a>  • <a href="command-line-options.html#immutable">&#x2011;immutable</a>  • <a href="command-line-options.html#implode">&#x2011;implode</a>  • <a href="command-line-options.html#insert">&#x2011;insert</a>  • <a href="command-line-options.html#intensity">&#x2011;intensity</a>  • <a href="command-line-options.html#intent">&#x2011;intent</a>  • <a href="command-line-options.html#interlace">&#x2011;interlace</a>  • <a href="command-line-options.html#interpolate">&#x2011;interpolate</a>  • <a href="command-line-options.html#interline-spacing">&#x2011;interline&#x2011;spacing</a>  • <a href="command-line-options.html#interword-spacing">&#x2011;interword&#x2011;spacing</a>  • <a href="command-line-options.html#kerning">&#x2011;kerning</a>  • <a href="command-line-options.html#kuwahara">&#x2011;kuwahara</a>  • <a href="command-line-options.html#label">&#x2011;label</a>  • <a href="command-line-options.html#lat">&#x2011;lat</a>  • <a href="command-line-options.html#layers">&#x2011;layers</a>  • <a href="command-line-options.html#level">&#x2011;level</a>  • <a href="command-line-options.html#level-colors">&#x2011;level&#x2011;colors</a>  • <a href="command-line-options.html#limit">&#x2011;limit</a>  • <a href="command-line-options.html#linear-stretch">&#x2011;linear&#x2011;stretch</a>  • <a href="command-line-options.html#linewidth">&#x2011;linewidth</a>  • <a href="command-line-options.html#liquid-rescale">&#x2011;liquid&#x2011;rescale</a>  • <a href="command-line-options.html#list">&#x2011;list</a>  • <a href="command-line-options.html#log">&#x2011;log</a>  • <a href="command-line-options.html#loop">&#x2011;loop</a>  • <a href="command-line-options.html#lowlight-color">&#x2011;lowlight&#x2011;color</a>  • <a href="command-line-options.html#magnify">&#x2011;magnify</a>  • <a href="command-line-options.html#map">&#x2011;map</a>  • <a href="command-line-options.html#map_stream_">&#x2011;map[stream]</a>  • <a href="command-line-options.html#mattecolor">&#x2011;mattecolor</a>  • <a href="command-line-options.html#median">&#x2011;median</a>  • <a href="command-line-options.html#mean-shift">&#x2011;mean&#x2011;shift</a>  • <a href="command-line-options.html#metric">&#x2011;metric</a>  • <a href="command-line-options.html#mode">&#x2011;mode</a>  • <a href="command-line-options.html#modulate">&#x2011;modulate</a>  • <a href="command-line-options.html#moments">&#x2011;moments</a>  • <a href="command-line-options.html#monitor">&#x2011;monitor</a>  • <a href="command-line-options.html#monochrome">&#x2011;monochrome</a>  • <a href="command-line-options.html#morph">&#x2011;morph</a>  • <a href="command-line-options.html#morphology">&#x2011;morphology</a>  • <a href="command-line-options.html#mosaic">&#x2011;mosaic</a>  • <a href="command-line-options.html#motion-blur">&#x2011;motion&#x2011;blur</a>  • <a href="command-line-options.html#name">&#x2011;name</a>  • <a href="command-line-options.html#negate">&#x2011;negate</a>  • <a href="command-line-options.html#noise">&#x2011;noise</a>  • <a href="command-line-options.html#normalize">&#x2011;normalize</a>  • <a href="command-line-options.html#opaque">&#x2011;opaque</a>  • <a href="command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a>  • <a href="command-line-options.html#orient">&#x2011;orient</a>  • <a href="command-line-options.html#page">&#x2011;page</a>  • <a href="command-line-options.html#paint">&#x2011;paint</a>  • <a href="command-line-options.html#path">&#x2011;path</a>  • <a href="command-line-options.html#pause_animate_">&#x2011;pause[animate]</a>  • <a href="command-line-options.html#pause_import_">&#x2011;pause[import]</a>  • <a href="command-line-options.html#perceptible">&#x2011;perceptible</a>  • <a href="command-line-options.html#ping">&#x2011;ping</a>  • <a href="command-line-options.html#pointsize">&#x2011;pointsize</a>  • <a href="command-line-options.html#polaroid">&#x2011;polaroid</a>  • <a href="command-line-options.html#poly">&#x2011;poly</a>  • <a href="command-line-options.html#posterize">&#x2011;posterize</a>  • <a href="command-line-options.html#precision">&#x2011;precision</a>  • <a href="command-line-options.html#preview">&#x2011;preview</a>  • <a href="command-line-options.html#print">&#x2011;print</a>  • <a href="command-line-options.html#process">&#x2011;process</a>  • <a href="command-line-options.html#profile">&#x2011;profile</a>  • <a href="command-line-options.html#quality">&#x2011;quality</a>  • <a href="command-line-options.html#quantize">&#x2011;quantize</a>  • <a href="command-line-options.html#quiet">&#x2011;quiet</a>  • <a href="command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a>  • <a href="command-line-options.html#range-threshold">&#x2011;range&#x2011;threshold</a>  • <a href="command-line-options.html#read-mask">&#x2011;read&#x2011;mask</a>  • <a href="command-line-options.html#red-primary">&#x2011;red&#x2011;primary</a>  • <a href="command-line-options.html#regard-warnings">&#x2011;regard&#x2011;warnings</a>  • <a href="command-line-options.html#region">&#x2011;region</a>  • <a href="command-line-options.html#remap">&#x2011;remap</a>  • <a href="command-line-options.html#remote">&#x2011;remote</a>  • <a href="command-line-options.html#render">&#x2011;render</a>  • <a href="command-line-options.html#repage">&#x2011;repage</a>  • <a href="command-line-options.html#resample">&#x2011;resample</a>  • <a href="command-line-options.html#resize">&#x2011;resize</a>  • <a href="command-line-options.html#respect-parentheses">&#x2011;respect&#x2011;parentheses</a>  • <a href="command-line-options.html#reverse">&#x2011;reverse</a>  • <a href="command-line-options.html#roll">&#x2011;roll</a>  • <a href="command-line-options.html#rotate">&#x2011;rotate</a>  • <a href="command-line-options.html#sample">&#x2011;sample</a>  • <a href="command-line-options.html#sampling-factor">&#x2011;sampling&#x2011;factor</a>  • <a href="command-line-options.html#scale">&#x2011;scale</a>  • <a href="command-line-options.html#scene">&#x2011;scene</a>  • <a href="command-line-options.html#screen">&#x2011;screen</a>  • <a href="command-line-options.html#seed">&#x2011;seed</a>  • <a href="command-line-options.html#segment">&#x2011;segment</a>  • <a href="command-line-options.html#selective-blur">&#x2011;selective&#x2011;blur</a>  • <a href="command-line-options.html#separate">&#x2011;separate</a>  • <a href="command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a>  • <a href="command-line-options.html#set">&#x2011;set</a>  • <a href="command-line-options.html#shade">&#x2011;shade</a>  • <a href="command-line-options.html#shadow">&#x2011;shadow</a>  • <a href="command-line-options.html#shared-memory">&#x2011;shared&#x2011;memory</a>  • <a href="command-line-options.html#sharpen">&#x2011;sharpen</a>  • <a href="command-line-options.html#shave">&#x2011;shave</a>  • <a href="command-line-options.html#shear">&#x2011;shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a>  • <a href="command-line-options.html#silent">&#x2011;silent</a>  • <a href="command-line-options.html#similarity-threshold">&#x2011;similarity&#x2011;threshold</a>  • <a href="command-line-options.html#size">&#x2011;size</a>  • <a href="command-line-options.html#sketch">&#x2011;sketch</a>  • <a href="command-line-options.html#smush">&#x2011;smush</a>  • <a href="command-line-options.html#snaps">&#x2011;snaps</a>  • <a href="command-line-options.html#solarize">&#x2011;solarize</a>  • <a href="command-line-options.html#sparse-color">&#x2011;sparse&#x2011;color</a>  • <a href="command-line-options.html#splice">&#x2011;splice</a>  • <a href="command-line-options.html#spread">&#x2011;spread</a>  • <a href="command-line-options.html#statistic">&#x2011;statistic</a>  • <a href="command-line-options.html#stegano">&#x2011;stegano</a>  • <a href="command-line-options.html#stereo">&#x2011;stereo</a>  • <a href="command-line-options.html#storage-type">&#x2011;storage&#x2011;type</a>  • <a href="command-line-options.html#stretch">&#x2011;stretch</a>  • <a href="command-line-options.html#strip">&#x2011;strip</a>  • <a href="command-line-options.html#stroke">&#x2011;stroke</a>  • <a href="command-line-options.html#strokewidth">&#x2011;strokewidth</a>  • <a href="command-line-options.html#style">&#x2011;style</a>  • <a href="command-line-options.html#subimage-search">&#x2011;subimage&#x2011;search</a>  • <a href="command-line-options.html#swap">&#x2011;swap</a>  • <a href="command-line-options.html#swirl">&#x2011;swirl</a>  • <a href="command-line-options.html#synchronize">&#x2011;synchronize</a>  • <a href="command-line-options.html#taint">&#x2011;taint</a>  • <a href="command-line-options.html#text-font">&#x2011;text&#x2011;font</a>  • <a href="command-line-options.html#texture">&#x2011;texture</a>  • <a href="command-line-options.html#threshold">&#x2011;threshold</a>  • <a href="command-line-options.html#thumbnail">&#x2011;thumbnail</a>  • <a href="command-line-options.html#tile">&#x2011;tile</a>  • <a href="command-line-options.html#tile-offset">&#x2011;tile&#x2011;offset</a>  • <a href="command-line-options.html#tint">&#x2011;tint</a>  • <a href="command-line-options.html#title">&#x2011;title</a>  • <a href="command-line-options.html#transform">&#x2011;transform</a>  • <a href="command-line-options.html#transparent">&#x2011;transparent</a>  • <a href="command-line-options.html#transparent-color">&#x2011;transparent&#x2011;color</a>  • <a href="command-line-options.html#transpose">&#x2011;transpose</a>  • <a href="command-line-options.html#transverse">&#x2011;transverse</a>  • <a href="command-line-options.html#treedepth">&#x2011;treedepth</a>  • <a href="command-line-options.html#trim">&#x2011;trim</a>  • <a href="command-line-options.html#type">&#x2011;type</a>  • <a href="command-line-options.html#undercolor">&#x2011;undercolor</a>  • <a href="command-line-options.html#unique-colors">&#x2011;unique&#x2011;colors</a>  • <a href="command-line-options.html#units">&#x2011;units</a>  • <a href="command-line-options.html#unsharp">&#x2011;unsharp</a>  • <a href="command-line-options.html#update">&#x2011;update</a>  • <a href="command-line-options.html#verbose">&#x2011;verbose</a>  • <a href="command-line-options.html#version">&#x2011;version</a>  • <a href="command-line-options.html#view">&#x2011;view</a>  • <a href="command-line-options.html#vignette">&#x2011;vignette</a>  • <a href="command-line-options.html#virtual-pixel">&#x2011;virtual&#x2011;pixel</a>  • <a href="command-line-options.html#visual">&#x2011;visual</a>  • <a href="command-line-options.html#watermark">&#x2011;watermark</a>  • <a href="command-line-options.html#wave">&#x2011;wave</a>  • <a href="command-line-options.html#wavelet-denoise">&#x2011;wavelet&#x2011;denoise</a>  • <a href="command-line-options.html#weight">&#x2011;weight</a>  • <a href="command-line-options.html#white-point">&#x2011;white&#x2011;point</a>  • <a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a>  • <a href="command-line-options.html#window">&#x2011;window</a>  • <a href="command-line-options.html#window-group">&#x2011;window&#x2011;group</a>  • <a href="command-line-options.html#write">&#x2011;write</a>  • <a href="command-line-options.html#write-mask">&#x2011;write&#x2011;mask</a>  </p>
+<p class="text-center"><a href="command-line-options.html#adaptive-blur">&#x2011;adaptive&#x2011;blur</a>  • <a href="command-line-options.html#adaptive-resize">&#x2011;adaptive&#x2011;resize</a>  • <a href="command-line-options.html#adaptive-sharpen">&#x2011;adaptive&#x2011;sharpen</a>  • <a href="command-line-options.html#adjoin">&#x2011;adjoin</a>  • <a href="command-line-options.html#affine">&#x2011;affine</a>  • <a href="command-line-options.html#alpha">&#x2011;alpha</a>  • <a href="command-line-options.html#annotate">&#x2011;annotate</a>  • <a href="command-line-options.html#antialias">&#x2011;antialias</a>  • <a href="command-line-options.html#append">&#x2011;append</a>  • <a href="command-line-options.html#attenuate">&#x2011;attenuate</a>  • <a href="command-line-options.html#authenticate">&#x2011;authenticate</a>  • <a href="command-line-options.html#auto-gamma">&#x2011;auto&#x2011;gamma</a>  • <a href="command-line-options.html#auto-level">&#x2011;auto&#x2011;level</a>  • <a href="command-line-options.html#auto-orient">&#x2011;auto&#x2011;orient</a>  • <a href="command-line-options.html#auto-threshold">&#x2011;auto&#x2011;threshold</a>  • <a href="command-line-options.html#backdrop">&#x2011;backdrop</a>  • <a href="command-line-options.html#background">&#x2011;background</a>  • <a href="command-line-options.html#bench">&#x2011;bench</a>  • <a href="command-line-options.html#bias">&#x2011;bias</a>  • <a href="command-line-options.html#black-point-compensation">&#x2011;black&#x2011;point&#x2011;compensation</a>  • <a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a>  • <a href="command-line-options.html#blend">&#x2011;blend</a>  • <a href="command-line-options.html#blue-primary">&#x2011;blue&#x2011;primary</a>  • <a href="command-line-options.html#blue-shift">&#x2011;blue&#x2011;shift</a>  • <a href="command-line-options.html#blur">&#x2011;blur</a>  • <a href="command-line-options.html#border">&#x2011;border</a>  • <a href="command-line-options.html#bordercolor">&#x2011;bordercolor</a>  • <a href="command-line-options.html#borderwidth">&#x2011;borderwidth</a>  • <a href="command-line-options.html#brightness-contrast">&#x2011;brightness&#x2011;contrast</a>  • <a href="command-line-options.html#cache">&#x2011;cache</a>  • <a href="command-line-options.html#canny">&#x2011;canny</a>  • <a href="command-line-options.html#caption">&#x2011;caption</a>  • <a href="command-line-options.html#cdl">&#x2011;cdl</a>  • <a href="command-line-options.html#channel">&#x2011;channel</a>  • <a href="command-line-options.html#charcoal">&#x2011;charcoal</a>  • <a href="command-line-options.html#channel-fx">&#x2011;channel&#x2011;fx</a>  • <a href="command-line-options.html#chop">&#x2011;chop</a>  • <a href="command-line-options.html#clahe">&#x2011;clahe</a>  • <a href="command-line-options.html#clamp">&#x2011;clamp</a>  • <a href="command-line-options.html#clip">&#x2011;clip</a>  • <a href="command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a>  • <a href="command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a>  • <a href="command-line-options.html#clone">&#x2011;clone</a>  • <a href="command-line-options.html#clut">&#x2011;clut</a>  • <a href="command-line-options.html#coalesce">&#x2011;coalesce</a>  • <a href="command-line-options.html#colorize">&#x2011;colorize</a>  • <a href="command-line-options.html#colormap">&#x2011;colormap</a>  • <a href="command-line-options.html#color-matrix">&#x2011;color&#x2011;matrix</a>  • <a href="command-line-options.html#colors">&#x2011;colors</a>  • <a href="command-line-options.html#colorspace">&#x2011;colorspace</a>  • <a href="command-line-options.html#combine">&#x2011;combine</a>  • <a href="command-line-options.html#comment">&#x2011;comment</a>  • <a href="command-line-options.html#compare">&#x2011;compare</a>  • <a href="command-line-options.html#complex">&#x2011;complex</a>  • <a href="command-line-options.html#compose">&#x2011;compose</a>  • <a href="command-line-options.html#composite">&#x2011;composite</a>  • <a href="command-line-options.html#compress">&#x2011;compress</a>  • <a href="command-line-options.html#connected-components">&#x2011;connected&#x2011;components</a>  • <a href="command-line-options.html#contrast">&#x2011;contrast</a>  • <a href="command-line-options.html#contrast-stretch">&#x2011;contrast&#x2011;stretch</a>  • <a href="command-line-options.html#convolve">&#x2011;convolve</a>  • <a href="command-line-options.html#copy">&#x2011;copy</a>  • <a href="command-line-options.html#crop">&#x2011;crop</a>  • <a href="command-line-options.html#cycle">&#x2011;cycle</a>  • <a href="command-line-options.html#debug">&#x2011;debug</a>  • <a href="command-line-options.html#decipher">&#x2011;decipher</a>  • <a href="command-line-options.html#deconstruct">&#x2011;deconstruct</a>  • <a href="command-line-options.html#define">&#x2011;define</a>  • <a href="command-line-options.html#delay">&#x2011;delay</a>  • <a href="command-line-options.html#delete">&#x2011;delete</a>  • <a href="command-line-options.html#density">&#x2011;density</a>  • <a href="command-line-options.html#depth">&#x2011;depth</a>  • <a href="command-line-options.html#descend">&#x2011;descend</a>  • <a href="command-line-options.html#deskew">&#x2011;deskew</a>  • <a href="command-line-options.html#despeckle">&#x2011;despeckle</a>  • <a href="command-line-options.html#direction">&#x2011;direction</a>  • <a href="command-line-options.html#displace">&#x2011;displace</a>  • <a href="command-line-options.html#display">&#x2011;display</a>  • <a href="command-line-options.html#dispose">&#x2011;dispose</a>  • <a href="command-line-options.html#dissimilarity-threshold">&#x2011;dissimilarity&#x2011;threshold</a>  • <a href="command-line-options.html#dissolve">&#x2011;dissolve</a>  • <a href="command-line-options.html#distort">&#x2011;distort</a>  • <a href="command-line-options.html#distribute-cache">&#x2011;distribute&#x2011;cache</a>  • <a href="command-line-options.html#dither">&#x2011;dither</a>  • <a href="command-line-options.html#draw">&#x2011;draw</a>  • <a href="command-line-options.html#duplicate">&#x2011;duplicate</a>  • <a href="command-line-options.html#edge">&#x2011;edge</a>  • <a href="command-line-options.html#emboss">&#x2011;emboss</a>  • <a href="command-line-options.html#encipher">&#x2011;encipher</a>  • <a href="command-line-options.html#encoding">&#x2011;encoding</a>  • <a href="command-line-options.html#endian">&#x2011;endian</a>  • <a href="command-line-options.html#enhance">&#x2011;enhance</a>  • <a href="command-line-options.html#equalize">&#x2011;equalize</a>  • <a href="command-line-options.html#evaluate">&#x2011;evaluate</a>  • <a href="command-line-options.html#evaluate-sequence">&#x2011;evaluate&#x2011;sequence</a>  • <a href="command-line-options.html#extent">&#x2011;extent</a>  • <a href="command-line-options.html#extract">&#x2011;extract</a>  • <a href="command-line-options.html#family">&#x2011;family</a>  • <a href="command-line-options.html#features">&#x2011;features</a>  • <a href="command-line-options.html#fft">&#x2011;fft</a>  • <a href="command-line-options.html#fill">&#x2011;fill</a>  • <a href="command-line-options.html#filter">&#x2011;filter</a>  • <a href="command-line-options.html#flatten">&#x2011;flatten</a>  • <a href="command-line-options.html#flip">&#x2011;flip</a>  • <a href="command-line-options.html#floodfill">&#x2011;floodfill</a>  • <a href="command-line-options.html#flop">&#x2011;flop</a>  • <a href="command-line-options.html#font">&#x2011;font</a>  • <a href="command-line-options.html#foreground">&#x2011;foreground</a>  • <a href="command-line-options.html#format">&#x2011;format</a>  • <a href="command-line-options.html#format_identify_">&#x2011;format[identify]</a>  • <a href="command-line-options.html#frame">&#x2011;frame</a>  • <a href="command-line-options.html#frame_import_">&#x2011;frame[import]</a>  • <a href="command-line-options.html#function">&#x2011;function</a>  • <a href="command-line-options.html#fuzz">&#x2011;fuzz</a>  • <a href="command-line-options.html#fx">&#x2011;fx</a>  • <a href="command-line-options.html#gamma">&#x2011;gamma</a>  • <a href="command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a>  • <a href="command-line-options.html#geometry">&#x2011;geometry</a>  • <a href="command-line-options.html#gravity">&#x2011;gravity</a>  • <a href="command-line-options.html#grayscale">&#x2011;grayscale</a>  • <a href="command-line-options.html#green-primary">&#x2011;green&#x2011;primary</a>  • <a href="command-line-options.html#hald-clut">&#x2011;hald&#x2011;clut</a>  • <a href="command-line-options.html#help">&#x2011;help</a>  • <a href="command-line-options.html#highlight-color">&#x2011;highlight&#x2011;color</a>  • <a href="command-line-options.html#hough-lines">&#x2011;hough&#x2011;lines</a>  • <a href="command-line-options.html#iconGeometry">&#x2011;iconGeometry</a>  • <a href="command-line-options.html#iconic">&#x2011;iconic</a>  • <a href="command-line-options.html#identify">&#x2011;identify</a>  • <a href="command-line-options.html#ift">&#x2011;ift</a>  • <a href="command-line-options.html#immutable">&#x2011;immutable</a>  • <a href="command-line-options.html#implode">&#x2011;implode</a>  • <a href="command-line-options.html#insert">&#x2011;insert</a>  • <a href="command-line-options.html#intensity">&#x2011;intensity</a>  • <a href="command-line-options.html#intent">&#x2011;intent</a>  • <a href="command-line-options.html#interlace">&#x2011;interlace</a>  • <a href="command-line-options.html#interpolate">&#x2011;interpolate</a>  • <a href="command-line-options.html#interline-spacing">&#x2011;interline&#x2011;spacing</a>  • <a href="command-line-options.html#interword-spacing">&#x2011;interword&#x2011;spacing</a>  • <a href="command-line-options.html#kerning">&#x2011;kerning</a>  • <a href="command-line-options.html#kmeans">&#x2011;kmeans</a>  • <a href="command-line-options.html#kuwahara">&#x2011;kuwahara</a>  • <a href="command-line-options.html#label">&#x2011;label</a>  • <a href="command-line-options.html#lat">&#x2011;lat</a>  • <a href="command-line-options.html#layers">&#x2011;layers</a>  • <a href="command-line-options.html#level">&#x2011;level</a>  • <a href="command-line-options.html#level-colors">&#x2011;level&#x2011;colors</a>  • <a href="command-line-options.html#limit">&#x2011;limit</a>  • <a href="command-line-options.html#linear-stretch">&#x2011;linear&#x2011;stretch</a>  • <a href="command-line-options.html#linewidth">&#x2011;linewidth</a>  • <a href="command-line-options.html#liquid-rescale">&#x2011;liquid&#x2011;rescale</a>  • <a href="command-line-options.html#list">&#x2011;list</a>  • <a href="command-line-options.html#log">&#x2011;log</a>  • <a href="command-line-options.html#loop">&#x2011;loop</a>  • <a href="command-line-options.html#lowlight-color">&#x2011;lowlight&#x2011;color</a>  • <a href="command-line-options.html#magnify">&#x2011;magnify</a>  • <a href="command-line-options.html#map">&#x2011;map</a>  • <a href="command-line-options.html#map_stream_">&#x2011;map[stream]</a>  • <a href="command-line-options.html#mattecolor">&#x2011;mattecolor</a>  • <a href="command-line-options.html#median">&#x2011;median</a>  • <a href="command-line-options.html#mean-shift">&#x2011;mean&#x2011;shift</a>  • <a href="command-line-options.html#metric">&#x2011;metric</a>  • <a href="command-line-options.html#mode">&#x2011;mode</a>  • <a href="command-line-options.html#modulate">&#x2011;modulate</a>  • <a href="command-line-options.html#moments">&#x2011;moments</a>  • <a href="command-line-options.html#monitor">&#x2011;monitor</a>  • <a href="command-line-options.html#monochrome">&#x2011;monochrome</a>  • <a href="command-line-options.html#morph">&#x2011;morph</a>  • <a href="command-line-options.html#morphology">&#x2011;morphology</a>  • <a href="command-line-options.html#mosaic">&#x2011;mosaic</a>  • <a href="command-line-options.html#motion-blur">&#x2011;motion&#x2011;blur</a>  • <a href="command-line-options.html#name">&#x2011;name</a>  • <a href="command-line-options.html#negate">&#x2011;negate</a>  • <a href="command-line-options.html#noise">&#x2011;noise</a>  • <a href="command-line-options.html#normalize">&#x2011;normalize</a>  • <a href="command-line-options.html#opaque">&#x2011;opaque</a>  • <a href="command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a>  • <a href="command-line-options.html#orient">&#x2011;orient</a>  • <a href="command-line-options.html#page">&#x2011;page</a>  • <a href="command-line-options.html#paint">&#x2011;paint</a>  • <a href="command-line-options.html#path">&#x2011;path</a>  • <a href="command-line-options.html#pause_animate_">&#x2011;pause[animate]</a>  • <a href="command-line-options.html#pause_import_">&#x2011;pause[import]</a>  • <a href="command-line-options.html#perceptible">&#x2011;perceptible</a>  • <a href="command-line-options.html#ping">&#x2011;ping</a>  • <a href="command-line-options.html#pointsize">&#x2011;pointsize</a>  • <a href="command-line-options.html#polaroid">&#x2011;polaroid</a>  • <a href="command-line-options.html#poly">&#x2011;poly</a>  • <a href="command-line-options.html#posterize">&#x2011;posterize</a>  • <a href="command-line-options.html#precision">&#x2011;precision</a>  • <a href="command-line-options.html#preview">&#x2011;preview</a>  • <a href="command-line-options.html#print">&#x2011;print</a>  • <a href="command-line-options.html#process">&#x2011;process</a>  • <a href="command-line-options.html#profile">&#x2011;profile</a>  • <a href="command-line-options.html#quality">&#x2011;quality</a>  • <a href="command-line-options.html#quantize">&#x2011;quantize</a>  • <a href="command-line-options.html#quiet">&#x2011;quiet</a>  • <a href="command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a>  • <a href="command-line-options.html#range-threshold">&#x2011;range&#x2011;threshold</a>  • <a href="command-line-options.html#read-mask">&#x2011;read&#x2011;mask</a>  • <a href="command-line-options.html#red-primary">&#x2011;red&#x2011;primary</a>  • <a href="command-line-options.html#regard-warnings">&#x2011;regard&#x2011;warnings</a>  • <a href="command-line-options.html#region">&#x2011;region</a>  • <a href="command-line-options.html#remap">&#x2011;remap</a>  • <a href="command-line-options.html#remote">&#x2011;remote</a>  • <a href="command-line-options.html#render">&#x2011;render</a>  • <a href="command-line-options.html#repage">&#x2011;repage</a>  • <a href="command-line-options.html#resample">&#x2011;resample</a>  • <a href="command-line-options.html#resize">&#x2011;resize</a>  • <a href="command-line-options.html#respect-parentheses">&#x2011;respect&#x2011;parentheses</a>  • <a href="command-line-options.html#reverse">&#x2011;reverse</a>  • <a href="command-line-options.html#roll">&#x2011;roll</a>  • <a href="command-line-options.html#rotate">&#x2011;rotate</a>  • <a href="command-line-options.html#sample">&#x2011;sample</a>  • <a href="command-line-options.html#sampling-factor">&#x2011;sampling&#x2011;factor</a>  • <a href="command-line-options.html#scale">&#x2011;scale</a>  • <a href="command-line-options.html#scene">&#x2011;scene</a>  • <a href="command-line-options.html#screen">&#x2011;screen</a>  • <a href="command-line-options.html#seed">&#x2011;seed</a>  • <a href="command-line-options.html#segment">&#x2011;segment</a>  • <a href="command-line-options.html#selective-blur">&#x2011;selective&#x2011;blur</a>  • <a href="command-line-options.html#separate">&#x2011;separate</a>  • <a href="command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a>  • <a href="command-line-options.html#set">&#x2011;set</a>  • <a href="command-line-options.html#shade">&#x2011;shade</a>  • <a href="command-line-options.html#shadow">&#x2011;shadow</a>  • <a href="command-line-options.html#shared-memory">&#x2011;shared&#x2011;memory</a>  • <a href="command-line-options.html#sharpen">&#x2011;sharpen</a>  • <a href="command-line-options.html#shave">&#x2011;shave</a>  • <a href="command-line-options.html#shear">&#x2011;shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a>  • <a href="command-line-options.html#silent">&#x2011;silent</a>  • <a href="command-line-options.html#similarity-threshold">&#x2011;similarity&#x2011;threshold</a>  • <a href="command-line-options.html#size">&#x2011;size</a>  • <a href="command-line-options.html#sketch">&#x2011;sketch</a>  • <a href="command-line-options.html#smush">&#x2011;smush</a>  • <a href="command-line-options.html#snaps">&#x2011;snaps</a>  • <a href="command-line-options.html#solarize">&#x2011;solarize</a>  • <a href="command-line-options.html#sparse-color">&#x2011;sparse&#x2011;color</a>  • <a href="command-line-options.html#splice">&#x2011;splice</a>  • <a href="command-line-options.html#spread">&#x2011;spread</a>  • <a href="command-line-options.html#statistic">&#x2011;statistic</a>  • <a href="command-line-options.html#stegano">&#x2011;stegano</a>  • <a href="command-line-options.html#stereo">&#x2011;stereo</a>  • <a href="command-line-options.html#storage-type">&#x2011;storage&#x2011;type</a>  • <a href="command-line-options.html#stretch">&#x2011;stretch</a>  • <a href="command-line-options.html#strip">&#x2011;strip</a>  • <a href="command-line-options.html#stroke">&#x2011;stroke</a>  • <a href="command-line-options.html#strokewidth">&#x2011;strokewidth</a>  • <a href="command-line-options.html#style">&#x2011;style</a>  • <a href="command-line-options.html#subimage-search">&#x2011;subimage&#x2011;search</a>  • <a href="command-line-options.html#swap">&#x2011;swap</a>  • <a href="command-line-options.html#swirl">&#x2011;swirl</a>  • <a href="command-line-options.html#synchronize">&#x2011;synchronize</a>  • <a href="command-line-options.html#taint">&#x2011;taint</a>  • <a href="command-line-options.html#text-font">&#x2011;text&#x2011;font</a>  • <a href="command-line-options.html#texture">&#x2011;texture</a>  • <a href="command-line-options.html#threshold">&#x2011;threshold</a>  • <a href="command-line-options.html#thumbnail">&#x2011;thumbnail</a>  • <a href="command-line-options.html#tile">&#x2011;tile</a>  • <a href="command-line-options.html#tile-offset">&#x2011;tile&#x2011;offset</a>  • <a href="command-line-options.html#tint">&#x2011;tint</a>  • <a href="command-line-options.html#title">&#x2011;title</a>  • <a href="command-line-options.html#transform">&#x2011;transform</a>  • <a href="command-line-options.html#transparent">&#x2011;transparent</a>  • <a href="command-line-options.html#transparent-color">&#x2011;transparent&#x2011;color</a>  • <a href="command-line-options.html#transpose">&#x2011;transpose</a>  • <a href="command-line-options.html#transverse">&#x2011;transverse</a>  • <a href="command-line-options.html#treedepth">&#x2011;treedepth</a>  • <a href="command-line-options.html#trim">&#x2011;trim</a>  • <a href="command-line-options.html#type">&#x2011;type</a>  • <a href="command-line-options.html#undercolor">&#x2011;undercolor</a>  • <a href="command-line-options.html#unique-colors">&#x2011;unique&#x2011;colors</a>  • <a href="command-line-options.html#units">&#x2011;units</a>  • <a href="command-line-options.html#unsharp">&#x2011;unsharp</a>  • <a href="command-line-options.html#update">&#x2011;update</a>  • <a href="command-line-options.html#verbose">&#x2011;verbose</a>  • <a href="command-line-options.html#version">&#x2011;version</a>  • <a href="command-line-options.html#view">&#x2011;view</a>  • <a href="command-line-options.html#vignette">&#x2011;vignette</a>  • <a href="command-line-options.html#virtual-pixel">&#x2011;virtual&#x2011;pixel</a>  • <a href="command-line-options.html#visual">&#x2011;visual</a>  • <a href="command-line-options.html#watermark">&#x2011;watermark</a>  • <a href="command-line-options.html#wave">&#x2011;wave</a>  • <a href="command-line-options.html#wavelet-denoise">&#x2011;wavelet&#x2011;denoise</a>  • <a href="command-line-options.html#weight">&#x2011;weight</a>  • <a href="command-line-options.html#white-point">&#x2011;white&#x2011;point</a>  • <a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a>  • <a href="command-line-options.html#window">&#x2011;window</a>  • <a href="command-line-options.html#window-group">&#x2011;window&#x2011;group</a>  • <a href="command-line-options.html#write">&#x2011;write</a>  • <a href="command-line-options.html#write-mask">&#x2011;write&#x2011;mask</a>  </p>
 <p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="command-line-tools.html">command-line tools</a>. If you want a description of a particular option, click on the option name in the navigation bar above and you will go right to it. Unless otherwise noted, each option is recognized by the commands: <a href="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p>
 
 <div style="margin: auto;">
@@ -939,7 +945,7 @@
 </p>
 
 <p>Warning, some operators behave differently when the <a href="command-line-options.html#channel"
->+channel</a> default setting is in effect, verses ANY user defined <a
+>+channel</a> default setting is in effect, versus ANY user defined <a
 href="command-line-options.html#channel" >-channel</a> setting (including the equivalent of the
 default). These operators have yet to be made to understand the newer 'Sync'
 flag. </p>
@@ -958,7 +964,7 @@
 convolution equivalents however does have a understanding of the 'Sync' flag
 and will thus handle transparency correctly by default. </p>
 
-<p>As a alpha channel is optional within images, some operators will read the
+<p>As an alpha channel is optional within images, some operators will read the
 color channels of an image as a greyscale alpha mask, when the image has no
 alpha channel present, and the <a href="command-line-options.html#channel" >-channel</a> setting tells
 the operator to apply the operation using alpha channels. The <a
@@ -1031,7 +1037,8 @@
   <h3><a class="anchor" id="clahe"></a>-clahe <var>width</var>x<var>height</var>{%}{+}<var>number-bins</var>{+}<var>clip-limit</var>{!}</h3>
 </div>
 
-<p class="magick-description">contrast limited adaptive histogram equalization. The image is divided into tiles of <var>width</var> and <var>height</var> pixels.  The tile size should be larger than the size of features to be preserved and respects the aspect ratio of the image.  Add <code>!</code> to force an exact tile width and height. <var>number-bins</var> is the number of histogram bins per tile (min 2, max 65536).  The number of histogram bins should be smaller than the number of pixels in a single tile. <var>clip-limit</var> is the contrast limit for localised changes in contrast. A clip-limit of 2 to 3 is a good starting place (e.g. -clahe 50x50%+128+3).  Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image.  Note if number of bins and the clip-limit are ommitted, they default to 128 and no clipping respectively.</p>
+<p class="magick-description">contrast limited adaptive histogram equalization.</p>
+<p> The image is divided into tiles of <var>width</var> and <var>height</var> pixels.  Append <code>%</code> to define the width and height as percentages of the image's dimensions. The tile size should be larger than the size of features to be preserved and respects the aspect ratio of the image.  Add <code>!</code> to force an exact tile width and height. <var>number-bins</var> is the number of histogram bins per tile (min 2, max 65536).  The number of histogram bins should be smaller than the number of pixels in a single tile. <var>clip-limit</var> is the contrast limit for localized changes in contrast. A clip-limit of 2 to 3 is a good starting place (e.g. -clahe 50x50%+128+3).  Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image.  Note, if the number of bins and the clip-limit are ommitted, they default to 128 and no clipping respectively.</p>
 
 
 <div style="margin: auto;">
@@ -1108,7 +1115,7 @@
 effectively clone all the images. </p>
 
 <p>The <a href="command-line-options.html#clone">+clone</a> will simply make a copy of the last image
-in the image sequence, and is thus equivalent to using a argument of
+in the image sequence, and is thus equivalent to using an argument of
 '<code>−1</code>'. </p>
 
 <div style="margin: auto;">
@@ -1508,7 +1515,7 @@
 appropriately for the compose method. </p>
 
 <p>Some <a href="command-line-options.html#compose">-compose</a> methods can modify the 'destination'
-image outside the overlay area. It is disabled by default.  You can enable this by setting the this define: <a href="command-line-options.html#define">-define</a> '<code>compose:clip-to-self=true</code>'.</p>
+image outside the overlay area. It is disabled by default.  You can enable this by setting the define: <a href="command-line-options.html#define">-define</a> '<code>compose:clip-to-self=true</code>'.</p>
 
 <p>The SVG compositing specification requires that color and opacity values range between zero and QuantumRange inclusive.  You can permit values outside this range with this option: <a href="command-line-options.html#set">-set</a> '<code>option:compose:clamp=false</code></p>
 
@@ -1559,7 +1566,7 @@
   <h3><a class="anchor" id="connected-components"></a>-connected-components <var>connectivity</var></h3>
 </div>
 
-<p class="magick-description"><a href="../www/connected-components.html">connected-components</a> labeling detects connected regions in an image, choose from 4 or 8 way connectivity.</p>
+<p class="magick-description"><a href="connected-components.html">connected-components</a> labeling detects connected regions in an image, choose from 4 or 8 way connectivity.</p>
 
 <p>Use <code><a href="command-line-options.html#define" >-define</a> connected-components:verbose=true</code> to output statistics associated with each unique label.</p>
 
@@ -1757,8 +1764,7 @@
 
 <p>Get the passphrase from the file specified by <var>filename</var>.</p>
 
-<p>For more information, see the webpage, <a
-href="../www/cipher.html">ImageMagick: Encipher or
+<p>For more information, see the webpage, <a href="cipher.html">ImageMagick: Encipher or
 Decipher an Image</a>.</p>
 
 
@@ -1829,7 +1835,7 @@
 
   <tr>
     <td>bmp:subtype=<var>RGB555|RGB565|ARGB4444|ARGB1555</var></td>
-    <td>BMP channel depth subtypes. Only support in BMP (BMP4). BMP3 and BMP2 do not 
+    <td>BMP channel depth subtypes. Only support in BMP (BMP4). BMP3 and BMP2 do not
     contain header fields to support these options.</td>
   </tr>
 
@@ -1901,21 +1907,15 @@
     percent. The factor or percent is then applied after the automatic scaling.
     An example is 50%!. This produces a result 50% darker than full dynamic
     range scaling. The ^ flag assures the kernel is 'zero-summing', for
-    example when some values are positive and some are negative as in edge 
-    detection kernels. The origin addition adds that value to the center 
+    example when some values are positive and some are negative as in edge
+    detection kernels. The origin addition adds that value to the center
     pixel of the kernel. This produces an effect that is like adding the image 	
-    that many times to the result of the filtered image. The typical value 
-    is 1 so that the original image is added to the result of the convolution. 
+    that many times to the result of the filtered image. The typical value
+    is 1 so that the original image is added to the result of the convolution.
     The default is 0.</td>
   </tr>
 
   <tr>
-    <td>morphology:showKernel=<var>1</var></td>
-     <td>Outputs (to 'standard error') all the information about a specified <a
-    href="command-line-options.html#morphology" >-morphology convolve</a> kernel.</td>
-  </tr>
-
-  <tr>
     <td>dcm:display-range=<var>reset</var></td>
      <td>Sets the display range to the minimum and maximum pixel values for the
     DCM image format.</td>
@@ -1963,6 +1963,13 @@
   </tr>
 
   <tr>
+    <td>dither:diffusion-amount=<var>X%</var></td>
+    <td>Sets the amount of diffusion to use with Floyd-Steinberg diffusion</td>
+  </tr>
+
+  <tr>
+
+  <tr>
     <td>dot:layout-engine=<var>value</var></td>
      <td>Specifies the layout engine for the DOT image format (e.g.
     <code>neato</code>).</td>
@@ -1981,8 +1988,8 @@
 
   <tr>
     <td>fourier:normalize=<var>inverse</var></td>
-    <td>Sets the location for the FFT/IFT normalization as use by 
-    <a href="command-line-options.html#fft">+-fft</a> and <a href="command-line-options.html#ift">+-ift</a>. The default is 
+    <td>Sets the location for the FFT/IFT normalization as use by
+    <a href="command-line-options.html#fft">+-fft</a> and <a href="command-line-options.html#ift">+-ift</a>. The default is
     <var>forward</var>.</td>
   </tr>
 
@@ -2002,7 +2009,7 @@
   </tr>
 
   <tr>
-    <td>heic:preserve-orientation</td>
+    <td>heic:preserve-orientation=true</td>
     <td>Preserve the original EXIF orientation during HEIC decoding and rotate the pixels accordingly.
         By default, EXIF orientation is reset to "1" to match the actual orientation of pixels in HEIC.
     </td>
@@ -2032,35 +2039,35 @@
 
   <tr>
     <td>jp2:number-resolutions=<var>value</var></td>
-     <td>Sets the number of resolutions to encode.Same for JPT, JC2, and 
+     <td>Sets the number of resolutions to encode.Same for JPT, JC2, and
      J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:progression-order=<var>value</var></td>
-     <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and 
+     <td>choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
     J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:quality=<var>value,value...</var></td>
-     <td>Sets the quality layer PSNR, given in dB. The order is from left to 
-    right in ascending order. The default is a single lossless quality layer.  
+     <td>Sets the quality layer PSNR, given in dB. The order is from left to
+    right in ascending order. The default is a single lossless quality layer. 
     Same for JPT, JC2, and J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:rate=<var>value</var></td>
-     <td>Specify the compression factor to use while writing JPEG-2000 files. 
+     <td>Specify the compression factor to use while writing JPEG-2000 files.
      The compression factor is the reciprocal of the compression ratio. The 
-     valid range is 0.0 to 1.0, with 1.0 indicating lossless compression. If 
-     defined, this value overrides the -quality setting.  A quality setting 
+     valid range is 0.0 to 1.0, with 1.0 indicating lossless compression. If
+     defined, this value overrides the -quality setting.  A quality setting
      of 75 results in a rate value of 0.06641. Same for JPT, JC2, and J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:reduce-factor=<var>value</var></td>
-     <td>Sets the number of highest resolution levels to be discarded.Same for 
+     <td>Sets the number of highest resolution levels to be discarded.Same for
     JPT, JC2, and J2K.</td>
   </tr>
 
@@ -2077,7 +2084,7 @@
 
   <tr>
     <td>jpeg:dct-method=<var>value</var></td>
-     <td>Choose from <code>default</code>, <code>fastest</code>, 
+     <td>Choose from <code>default</code>, <code>fastest</code>,
     <code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>
   </tr>
 
@@ -2086,9 +2093,9 @@
      <td>Restrict the maximum JPEG file size, for example <code>-define
     jpeg:extent=400KB</code>.  The JPEG encoder will search for the highest
     compression quality level that results in an output file that does not
-    exceed the value. The <code>-quality</code> option also will be respected 
+    exceed the value. The <code>-quality</code> option also will be respected
     starting with version 6.9.2-5. Between 6.9.1-0 and 6.9.2-4, add -quality 
-    100 in order for the jpeg:extent to work properly. Prior to 6.9.1-0, the 
+    100 in order for the jpeg:extent to work properly. Prior to 6.9.1-0, the
     -quality setting was ignored.</td>
   </tr>
 
@@ -2154,8 +2161,8 @@
   <tr>
     <td>morphology:compose=<var>compose-method</var></td>
      <td>Specifies how to merge results generated by multiple<a
-    href="command-line-options.html#morphology" >-morphology</a> kernel. The default is none. One 
-    typical value is 'lighten' as used, for example, with the sobel edge 
+    href="command-line-options.html#morphology" >-morphology</a> kernel. The default is none. One
+    typical value is 'lighten' as used, for example, with the sobel edge
     kernels. </td>
   </tr>
 
@@ -2203,15 +2210,15 @@
 
   <tr>
     <td>phash:colorspaces=<var>colorspace,colorspace,...</var></td>
-    <td>the perceptual hash defaults to the sRGB and HCLp colorspaces.  When 
-    using this define, you can specify up to six alternative colorspaces. (as 
+    <td>the perceptual hash defaults to the sRGB and HCLp colorspaces.  When
+    using this define, you can specify up to six alternative colorspaces. (as
     of IM 7.0.3-8)</td>
   </tr>
 
   <tr>
     <td>phash:normalize=<var>true</var></td>
-    <td>normalizes the phash metric by dividing by the number of channels 
-    specified by <code>-define phash:colorspaces</code> when using compare 
+    <td>normalizes the phash metric by dividing by the number of channels
+    specified by <code>-define phash:colorspaces</code> when using compare
     -metric phash. (as of IM 7.0.3-8)</td>
   </tr>
 
@@ -2242,8 +2249,8 @@
     <td>png:compression-filter=<var>value</var></td>
     <td> valid values are 0 through 9. 0-4 are the corresponding PNG filters,
    5 means adaptive filtering except for images with a colormap, 6 means
-   adaptive filtering for all images, 7 means MNG "loco" compression, 8 means 
-   Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no 
+   adaptive filtering for all images, 7 means MNG "loco" compression, 8 means
+   Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no
    filtering.</td>
   </tr>
 
@@ -2355,7 +2362,7 @@
 
   <tr>
     <td>png:ignore-crc[=<var>true</var>]</td>
-     <td>When you know your image has no CRC or ADLER32 errors, this can speed up 
+     <td>When you know your image has no CRC or ADLER32 errors, this can speed up
      decoding. It is also helpful in debugging bug reports from "fuzzers".</td>
   </tr>
 
@@ -2403,19 +2410,19 @@
 
   <tr>
     <td>ps:imagemask</td>
-     <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will 
-    create Postscript files that render bilevel images with the Postscript 
+     <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will
+    create Postscript files that render bilevel images with the Postscript
     imagemask operator instead of the image operator.</td>
   </tr>
 
   <tr>
     <td>psd:additional-info=all|selective</td>
-     <td>This option should only be used when converting from a PSD file to 
+     <td>This option should only be used when converting from a PSD file to
      another PSD file. This should be placed after the image is read. The two
-     options are 'all' and 'selective'. The 'selective' option will preserve 
-     all additional information that is not related to the geometry of the 
-     image. The 'all' option should only be used when the geometry of the 
-     image has not been changed. This option is helpful when transferring 
+     options are 'all' and 'selective'. The 'selective' option will preserve
+     all additional information that is not related to the geometry of the
+     image. The 'all' option should only be used when the geometry of the
+     image has not been changed. This option is helpful when transferring
      non-simple layers, such as adjustment layers from the input PSD file to 
      the output PSD file. If this option is not used, the additional 
      information will not be preserved. This define is available as of 
@@ -2944,7 +2951,16 @@
        'Perspective' distortion, or by calculating them yourself.
        If the last two perspective scaling coefficients are zero, the
        remaining 6 represents a transposed 'Affine Matrix'. </td>
+  </tr>
 
+  <tr>
+    <td>Polynomial</td>
+    <td>
+       Do an Nth order 2D 'Polynomial' distortion using a set of corresponding 
+       control points. The order of the polynomial dictates the minimum number of 
+       control points needed. Order 1 is the same as -distort Affine. Order 1.5 is the 
+       same as -distort BilinearReverse. Typical use is for a 2nd order distortion. 
+       There is no +distort polynomial.</td>
   </tr>
 
   <tr>
@@ -3459,6 +3475,7 @@
 
 <p>Drawing primitives conform to the <a href="magick-vector-graphics.html" >Magick
 Vector Graphics</a> format.</p>
+<p>Note, drawing requires an alpha channel.  If none is available, an all opaque alpha channel is implicitedly created.</p>
 
 
 <div style="margin: auto;">
@@ -3494,8 +3511,7 @@
 
 <p>Get the passphrase from the file specified by <var>filename</var>.</p>
 
-<p>For more information, see the webpage, <a
-href="../www/cipher.html">ImageMagick: Encipher or
+<p>For more information, see the webpage, <a href="cipher.html">ImageMagick: Encipher or
 Decipher an Image</a>.</p>
 
 
@@ -3545,12 +3561,12 @@
 equalize the appropriate intensity-like channel, then convert back to RGB.</p>
 
 <p>For example using HSL, we have: ... <code>-colorspace HSL -channel lightness
--equalize -colorspace RGB</code> ...</p>
+-equalize -colorspace sRGB</code> ...</p>
 
 <p>For YIQ, YUV and OHTA use the red channel. For example, OHTA is a principal
 components transformation that puts most of the information in the first
 channel. Here we have ... <code>-colorspace OHTA -channel red -equalize
--colorspace RGB</code> ...</p>
+-colorspace sRGB</code> ...</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="evaluate"></a>-evaluate <var>operator value</var></h3>
@@ -3900,7 +3916,7 @@
 <p class="magick-description">color to use when filling a graphic primitive.</p>
 
 <p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,
-HSL, HSLA, CMYK, or CMYKA specification.  See <a href="../www/color.html" >Color Names</a> for
+HSL, HSLA, CMYK, or CMYKA specification.  See <a href="color.html" >Color Names</a> for
 a description of how to properly specify the color argument.</p>
 
 <p>Enclose the color specification in quotation marks to prevent the "#" or
@@ -4451,7 +4467,7 @@
 the expression is read from a file titled by the remaining characters in the
 string.</p>
 
-<p>See <a href="../www/fx.html">FX,
+<p>See <a href="fx.html">FX,
 The Special Effects Image Operator</a> for a detailed discussion of this
 option.</p>
 
@@ -4575,7 +4591,7 @@
   -negate output.png
 </code></pre>
 
-<p>When used as an option to <a href="../www/composite.html">composite</a>, <a
+<p>When used as an option to <a href="composite.html">composite</a>, <a
 href="command-line-options.html#gravity">-gravity</a> gives the direction that the image gravitates
 within the composite.</p>
 
@@ -5000,6 +5016,12 @@
 <p class="magick-description">the space between two letters.</p>
 
 <div style="margin: auto;">
+  <h3><a class="anchor" id="kmeans"></a>-kmeans <var>colors</var>{x<var>iterations</var>}{+<var>tolerance</var>}</h3>
+</div>
+
+<p class="magick-description">Kmeans (iterative) color reduction (e.g. <code>-kmeans 5x100+0.01</code>). Colors is the desired number of colors. Initial colors are found using color quantization. Iterations is the stopping number of iterations (default=100). Convergence is the stopping threshold on the color change between iterations (default=0.01). Processing finishes, if either iterations or tolerance are reached. Use <code>-define kmeans:seed-colors=<var>color-list</var></code> to initialize the colors, where color-list is a semicolon delimited list of seed colors (e.g. <code>-define kmeans:seed-colors="red;sRGB(19,167,254);#00ffff</code>). A color list overrides the color quantization. A non-empty list of colors overrides the number of colors. Any unassigned initial colors are assigned  random colors from the image.</p>
+
+<div style="margin: auto;">
   <h3><a class="anchor" id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>x<var>sigma</var></h3>
 </div>
 
@@ -5664,7 +5686,7 @@
 
 <p>For example:</p>
 
-<pre class="highlight"><code>convert -debug coders -log "%u %m:%l %e" in.gif out.png
+<pre class="highlight"><code>convert -debug coder -log "%u %m:%l %e" in.gif out.png
 </code></pre>
 
 <p>The default behavior is to print all of the components.</p>
@@ -5689,7 +5711,7 @@
   <h3><a class="anchor" id="magnify"></a>-magnify</h3>
 </div>
 
-<p class="magick-description">double the size of the image with pixel art scaling.</p>
+<p class="magick-description">double or triple the size of the image with pixel art scaling. Specify an alternative scaling method with <code>-define magnify:method=<var>method</var></code> Choose from these methods: <code>eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X,  scale2X, scale3X, xbr2X</code>.  The default is scale2X.</p>
 
 
 <div style="margin: auto;">
@@ -6181,32 +6203,32 @@
 <dt class="col-md-4"> ArchA      </dt> <dd class="col-md-8">  648 x  864</dd>
 <dt class="col-md-4"> A0         </dt> <dd class="col-md-8"> 2380 x 3368</dd>
 <dt class="col-md-4"> A1         </dt> <dd class="col-md-8"> 1684 x 2380</dd>
-<dt class="col-md-4"> A2         </dt> <dd class="col-md-8"> 1190 x 1684</dd> 
-<dt class="col-md-4"> A3         </dt> <dd class="col-md-8">  842 x 1190</dd> 
-<dt class="col-md-4"> A4         </dt> <dd class="col-md-8">  595 x  842</dd> 
-<dt class="col-md-4"> A4Small    </dt> <dd class="col-md-8">  595 x  842</dd> 
-<dt class="col-md-4"> A5         </dt> <dd class="col-md-8">  421 x  595</dd> 
-<dt class="col-md-4"> A6         </dt> <dd class="col-md-8">  297 x  421</dd> 
-<dt class="col-md-4"> A7         </dt> <dd class="col-md-8">  210 x  297</dd> 
-<dt class="col-md-4"> A8         </dt> <dd class="col-md-8">  148 x  210</dd> 
-<dt class="col-md-4"> A9         </dt> <dd class="col-md-8">  105 x  148</dd> 
-<dt class="col-md-4"> A10        </dt> <dd class="col-md-8">   74 x  105</dd> 
-<dt class="col-md-4"> B0         </dt> <dd class="col-md-8"> 2836 x 4008</dd> 
-<dt class="col-md-4"> B1         </dt> <dd class="col-md-8"> 2004 x 2836</dd> 
-<dt class="col-md-4"> B2         </dt> <dd class="col-md-8"> 1418 x 2004</dd> 
-<dt class="col-md-4"> B3         </dt> <dd class="col-md-8"> 1002 x 1418</dd> 
-<dt class="col-md-4"> B4         </dt> <dd class="col-md-8">  709 x 1002</dd> 
-<dt class="col-md-4"> B5         </dt> <dd class="col-md-8">  501 x  709</dd> 
-<dt class="col-md-4"> C0         </dt> <dd class="col-md-8"> 2600 x 3677</dd> 
-<dt class="col-md-4"> C1         </dt> <dd class="col-md-8"> 1837 x 2600</dd> 
-<dt class="col-md-4"> C2         </dt> <dd class="col-md-8"> 1298 x 1837</dd> 
-<dt class="col-md-4"> C3         </dt> <dd class="col-md-8">  918 x 1298</dd> 
-<dt class="col-md-4"> C4         </dt> <dd class="col-md-8">  649 x  918</dd> 
-<dt class="col-md-4"> C5         </dt> <dd class="col-md-8">  459 x  649</dd> 
-<dt class="col-md-4"> C6         </dt> <dd class="col-md-8">  323 x  459</dd> 
-<dt class="col-md-4"> Flsa       </dt> <dd class="col-md-8">  612 x  936</dd> 
-<dt class="col-md-4"> Flse       </dt> <dd class="col-md-8">  612 x  936</dd> 
-<dt class="col-md-4"> HalfLetter </dt> <dd class="col-md-8">  396 x  612</dd> 
+<dt class="col-md-4"> A2         </dt> <dd class="col-md-8"> 1190 x 1684</dd>
+<dt class="col-md-4"> A3         </dt> <dd class="col-md-8">  842 x 1190</dd>
+<dt class="col-md-4"> A4         </dt> <dd class="col-md-8">  595 x  842</dd>
+<dt class="col-md-4"> A4Small    </dt> <dd class="col-md-8">  595 x  842</dd>
+<dt class="col-md-4"> A5         </dt> <dd class="col-md-8">  421 x  595</dd>
+<dt class="col-md-4"> A6         </dt> <dd class="col-md-8">  297 x  421</dd>
+<dt class="col-md-4"> A7         </dt> <dd class="col-md-8">  210 x  297</dd>
+<dt class="col-md-4"> A8         </dt> <dd class="col-md-8">  148 x  210</dd>
+<dt class="col-md-4"> A9         </dt> <dd class="col-md-8">  105 x  148</dd>
+<dt class="col-md-4"> A10        </dt> <dd class="col-md-8">   74 x  105</dd>
+<dt class="col-md-4"> B0         </dt> <dd class="col-md-8"> 2836 x 4008</dd>
+<dt class="col-md-4"> B1         </dt> <dd class="col-md-8"> 2004 x 2836</dd>
+<dt class="col-md-4"> B2         </dt> <dd class="col-md-8"> 1418 x 2004</dd>
+<dt class="col-md-4"> B3         </dt> <dd class="col-md-8"> 1002 x 1418</dd>
+<dt class="col-md-4"> B4         </dt> <dd class="col-md-8">  709 x 1002</dd>
+<dt class="col-md-4"> B5         </dt> <dd class="col-md-8">  501 x  709</dd>
+<dt class="col-md-4"> C0         </dt> <dd class="col-md-8"> 2600 x 3677</dd>
+<dt class="col-md-4"> C1         </dt> <dd class="col-md-8"> 1837 x 2600</dd>
+<dt class="col-md-4"> C2         </dt> <dd class="col-md-8"> 1298 x 1837</dd>
+<dt class="col-md-4"> C3         </dt> <dd class="col-md-8">  918 x 1298</dd>
+<dt class="col-md-4"> C4         </dt> <dd class="col-md-8">  649 x  918</dd>
+<dt class="col-md-4"> C5         </dt> <dd class="col-md-8">  459 x  649</dd>
+<dt class="col-md-4"> C6         </dt> <dd class="col-md-8">  323 x  459</dd>
+<dt class="col-md-4"> Flsa       </dt> <dd class="col-md-8">  612 x  936</dd>
+<dt class="col-md-4"> Flse       </dt> <dd class="col-md-8">  612 x  936</dd>
+<dt class="col-md-4"> HalfLetter </dt> <dd class="col-md-8">  396 x  612</dd>
 </dl>
 
 <p>This option is also used to place subimages when writing to a multi-image
@@ -6739,6 +6761,8 @@
   -quality 92 passport.jpg
 </code></pre>
 
+<p>Note, some resampling functions are damped oscillations in approximation of a Sinc function.  As such, you may get negative lobes if your release of ImageMagick is HDRI-enabled.  To eliminate them, add <a href="command-line-options.html#clamp">-clamp</a> to your command-line.</p>
+
 <div style="margin: auto;">
   <h3><a class="anchor" id="respect-parentheses"></a>-respect-parentheses</h3>
 </div>
@@ -6952,7 +6976,7 @@
 the same name. </p>
 
 <p>If the given <var>key</var> does not match a specific known
-'attribute ', such as shown above, the setting is stored as a a free form
+'attribute ', such as shown above, the setting is stored as a free form
 'property' string.  Such settings are listed in <a href="command-line-options.html#verbose"
 >-verbose</a> information ("<code>info:</code>" output format) as "Properties".
 </p>
@@ -7097,7 +7121,7 @@
 
 <p class="magick-description">Shear the image along the x-axis and/or y-axis.</p>
 
-<p>The shear angles may be positive, negative, or zero. When <var>Ydegrees</var> is omitted it defaults to 0. When both angles are
+<p>The shear angles may be positive, negative, or zero. When <var>Ydegrees</var> is omitted it defaults to <var>Xdegrees</var>. When both angles are
 given, the horizontal component of the shear is performed before the vertical
 component.</p>
 
@@ -7777,6 +7801,9 @@
 single pixel transparent 'missed' image is returned, in the same way as when a
 <a href="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p>
 
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:percent-background=0%</code> to remove all the background from the image.  The amount of background that is tolerated in an edge specified as a percent.  0% means no background is tolerated.  50% means an edge can contain up to 50% pixels that are background per the fuzz-factor.</p>
+
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:background-color=<em>color</em></code> to identify background color surrounding the region of interest.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="type"></a>-type <var>type</var></h3>
@@ -8091,22 +8118,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="command-line-options.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="command-line-options.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:16 -->
\ No newline at end of file
diff --git a/www/command-line-processing.html b/www/command-line-processing.html
index 7fb302b..cabb980 100644
--- a/www/command-line-processing.html
+++ b/www/command-line-processing.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Processing @ ImageMagick</title>
+  <title>ImageMagick - Command-line Processing</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, processing, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/command-line-processing.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -141,9 +147,9 @@
 <li>zero, one, or more image stacks.</li>
 <li>zero or one output image filenames (required by
 <a href="convert.html">convert</a>,
-<a href="../www/composite.html">composite</a>,
+<a href="composite.html">composite</a>,
 <a href="montage.html">montage</a>,
-<a href="../www/compare.html">compare</a>,
+<a href="compare.html">compare</a>,
 <a href="import.html">import</a>,
 <a href="conjure.html">conjure</a>).
 </li>
@@ -367,7 +373,7 @@
 an operator is applied to the current image set and forgotten.  The image operators include:</p>
 
 <ul>
-<a href="command-line-options.html#annotate">&#x2011;annotate</a>  • <a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a>  • <a href="command-line-options.html#blur">&#x2011;blur</a>  • <a href="command-line-options.html#border">&#x2011;border</a>  • <a href="command-line-options.html#charcoal">&#x2011;charcoal</a>  • <a href="command-line-options.html#chop">&#x2011;chop</a>  • <a href="command-line-options.html#clip">&#x2011;clip</a>  • <a href="command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a>  • <a href="command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a>  • <a href="command-line-options.html#colors">&#x2011;colors</a>  • <a href="command-line-options.html#colorize">&#x2011;colorize</a>  • <a href="command-line-options.html#colorspace">&#x2011;colorspace</a>  • <a href="command-line-options.html#compose">&#x2011;compose</a>  • <a href="command-line-options.html#contrast">&#x2011;contrast</a>  • <a href="command-line-options.html#convolve">&#x2011;convolve</a>  • <a href="command-line-options.html#crop">&#x2011;crop</a>  • <a href="command-line-options.html#cycle">&#x2011;cycle</a>  • <a href="command-line-options.html#despeckle">&#x2011;despeckle</a>  • <a href="command-line-options.html#draw">&#x2011;draw</a>  • <a href="command-line-options.html#edge">&#x2011;edge</a>  • <a href="command-line-options.html#emboss">&#x2011;emboss</a>  • <a href="command-line-options.html#enhance">&#x2011;enhance</a>  • <a href="command-line-options.html#equalize">&#x2011;equalize</a>  • <a href="command-line-options.html#evaluate">&#x2011;evaluate</a>  • <a href="command-line-options.html#extent">&#x2011;extent</a>  • <a href="command-line-options.html#flip">&#x2011;flip</a>  • <a href="command-line-options.html#flop">&#x2011;flop</a>  • <a href="command-line-options.html#floodfill">&#x2011;floodfill</a>  • <a href="command-line-options.html#frame">&#x2011;frame</a>  • <a href="command-line-options.html#gamma">&#x2011;gamma</a>  • <a href="command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a>  • <a href="command-line-options.html#grayscale">&#x2011;grayscale</a>  • <a href="command-line-options.html#implode">&#x2011;implode</a>  • <a href="command-line-options.html#lat">&#x2011;lat</a>  • <a href="command-line-options.html#level">&#x2011;level</a>  • <a href="command-line-options.html#map">&#x2011;map</a>  • <a href="command-line-options.html#median">&#x2011;median</a>  • <a href="command-line-options.html#modulate">&#x2011;modulate</a>  • <a href="command-line-options.html#monochrome">&#x2011;monochrome</a>  • <a href="command-line-options.html#negate">&#x2011;negate</a>  • <a href="command-line-options.html#noise">&#x2011;noise</a>  • <a href="command-line-options.html#normalize">&#x2011;normalize</a>  • <a href="command-line-options.html#opaque">&#x2011;opaque</a>  • <a href="command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a>  • <a href="command-line-options.html#paint">&#x2011;paint</a>  • <a href="command-line-options.html#posterize">&#x2011;posterize</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#profile">&#x2011;profile</a>  • <a href="command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a>  • <a href="command-line-options.html#resample">&#x2011;resample</a>  • <a href="command-line-options.html#resize">&#x2011;resize</a>  • <a href="command-line-options.html#roll">&#x2011;roll</a>  • <a href="command-line-options.html#rotate">&#x2011;rotate</a>  • <a href="command-line-options.html#sample">&#x2011;sample</a>  • <a href="command-line-options.html#scale">&#x2011;scale</a>  • <a href="command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a>  • <a href="command-line-options.html#segment">&#x2011;segment</a>  • <a href="command-line-options.html#shade">&#x2011;shade</a>  • <a href="command-line-options.html#shadow">&#x2011;shadow</a>  • <a href="command-line-options.html#sharpen">&#x2011;sharpen</a>  • <a href="command-line-options.html#shave">&#x2011;shave</a>  • <a href="command-line-options.html#shear">&#x2011;shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a>  • <a href="command-line-options.html#solarize">&#x2011;solarize</a>  • <a href="command-line-options.html#splice">&#x2011;splice</a>  • <a href="command-line-options.html#spread">&#x2011;spread</a>  • <a href="command-line-options.html#strip">&#x2011;strip</a>  • <a href="command-line-options.html#swirl">&#x2011;swirl</a>  • <a href="command-line-options.html#threshold">&#x2011;threshold</a>  • <a href="command-line-options.html#transparent">&#x2011;transparent</a>  • <a href="command-line-options.html#thumbnail">&#x2011;thumbnail</a>  • <a href="command-line-options.html#tint">&#x2011;tint</a>  • <a href="command-line-options.html#transform">&#x2011;transform</a>  • <a href="command-line-options.html#trim">&#x2011;trim</a>  • <a href="command-line-options.html#unsharp">&#x2011;unsharp</a>  • <a href="command-line-options.html#version">&#x2011;version</a>  • <a href="command-line-options.html#wave">&#x2011;wave</a>  • <a href="command-line-options.html#white-point">&#x2011;white&#x2011;point</a>  • <a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a> </ul>
+<a href="command-line-options.html#annotate">&#x2011;annotate</a>  • <a href="command-line-options.html#black-threshold">&#x2011;black&#x2011;threshold</a>  • <a href="command-line-options.html#blur">&#x2011;blur</a>  • <a href="command-line-options.html#border">&#x2011;border</a>  • <a href="command-line-options.html#charcoal">&#x2011;charcoal</a>  • <a href="command-line-options.html#chop">&#x2011;chop</a>  • <a href="command-line-options.html#clip">&#x2011;clip</a>  • <a href="command-line-options.html#clip-path">&#x2011;clip&#x2011;path</a>  • <a href="command-line-options.html#clip-mask">&#x2011;clip&#x2011;mask</a>  • <a href="command-line-options.html#colors">&#x2011;colors</a>  • <a href="command-line-options.html#colorize">&#x2011;colorize</a>  • <a href="command-line-options.html#colorspace">&#x2011;colorspace</a>  • <a href="command-line-options.html#compose">&#x2011;compose</a>  • <a href="command-line-options.html#contrast">&#x2011;contrast</a>  • <a href="command-line-options.html#convolve">&#x2011;convolve</a>  • <a href="command-line-options.html#crop">&#x2011;crop</a>  • <a href="command-line-options.html#cycle">&#x2011;cycle</a>  • <a href="command-line-options.html#despeckle">&#x2011;despeckle</a>  • <a href="command-line-options.html#draw">&#x2011;draw</a>  • <a href="command-line-options.html#edge">&#x2011;edge</a>  • <a href="command-line-options.html#emboss">&#x2011;emboss</a>  • <a href="command-line-options.html#enhance">&#x2011;enhance</a>  • <a href="command-line-options.html#equalize">&#x2011;equalize</a>  • <a href="command-line-options.html#evaluate">&#x2011;evaluate</a>  • <a href="command-line-options.html#extent">&#x2011;extent</a>  • <a href="command-line-options.html#flip">&#x2011;flip</a>  • <a href="command-line-options.html#flop">&#x2011;flop</a>  • <a href="command-line-options.html#floodfill">&#x2011;floodfill</a>  • <a href="command-line-options.html#frame">&#x2011;frame</a>  • <a href="command-line-options.html#gamma">&#x2011;gamma</a>  • <a href="command-line-options.html#gaussian-blur">&#x2011;gaussian&#x2011;blur</a>  • <a href="command-line-options.html#grayscale">&#x2011;grayscale</a>  • <a href="command-line-options.html#implode">&#x2011;implode</a>  • <a href="command-line-options.html#kmeans">&#x2011;kmeans</a>  • <a href="command-line-options.html#lat">&#x2011;lat</a>  • <a href="command-line-options.html#level">&#x2011;level</a>  • <a href="command-line-options.html#map">&#x2011;map</a>  • <a href="command-line-options.html#median">&#x2011;median</a>  • <a href="command-line-options.html#modulate">&#x2011;modulate</a>  • <a href="command-line-options.html#monochrome">&#x2011;monochrome</a>  • <a href="command-line-options.html#negate">&#x2011;negate</a>  • <a href="command-line-options.html#noise">&#x2011;noise</a>  • <a href="command-line-options.html#normalize">&#x2011;normalize</a>  • <a href="command-line-options.html#opaque">&#x2011;opaque</a>  • <a href="command-line-options.html#ordered-dither">&#x2011;ordered&#x2011;dither</a>  • <a href="command-line-options.html#paint">&#x2011;paint</a>  • <a href="command-line-options.html#posterize">&#x2011;posterize</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#profile">&#x2011;profile</a>  • <a href="command-line-options.html#radial-blur">&#x2011;radial&#x2011;blur</a>  • <a href="command-line-options.html#raise">&#x2011;raise</a>  • <a href="command-line-options.html#random-threshold">&#x2011;random&#x2011;threshold</a>  • <a href="command-line-options.html#resample">&#x2011;resample</a>  • <a href="command-line-options.html#resize">&#x2011;resize</a>  • <a href="command-line-options.html#roll">&#x2011;roll</a>  • <a href="command-line-options.html#rotate">&#x2011;rotate</a>  • <a href="command-line-options.html#sample">&#x2011;sample</a>  • <a href="command-line-options.html#scale">&#x2011;scale</a>  • <a href="command-line-options.html#sepia-tone">&#x2011;sepia&#x2011;tone</a>  • <a href="command-line-options.html#segment">&#x2011;segment</a>  • <a href="command-line-options.html#shade">&#x2011;shade</a>  • <a href="command-line-options.html#shadow">&#x2011;shadow</a>  • <a href="command-line-options.html#sharpen">&#x2011;sharpen</a>  • <a href="command-line-options.html#shave">&#x2011;shave</a>  • <a href="command-line-options.html#shear">&#x2011;shear</a>  • <a href="command-line-options.html#sigmoidal-contrast">&#x2011;sigmoidal&#x2011;contrast</a>  • <a href="command-line-options.html#solarize">&#x2011;solarize</a>  • <a href="command-line-options.html#splice">&#x2011;splice</a>  • <a href="command-line-options.html#spread">&#x2011;spread</a>  • <a href="command-line-options.html#strip">&#x2011;strip</a>  • <a href="command-line-options.html#swirl">&#x2011;swirl</a>  • <a href="command-line-options.html#threshold">&#x2011;threshold</a>  • <a href="command-line-options.html#transparent">&#x2011;transparent</a>  • <a href="command-line-options.html#thumbnail">&#x2011;thumbnail</a>  • <a href="command-line-options.html#tint">&#x2011;tint</a>  • <a href="command-line-options.html#transform">&#x2011;transform</a>  • <a href="command-line-options.html#trim">&#x2011;trim</a>  • <a href="command-line-options.html#unsharp">&#x2011;unsharp</a>  • <a href="command-line-options.html#version">&#x2011;version</a>  • <a href="command-line-options.html#wave">&#x2011;wave</a>  • <a href="command-line-options.html#white-point">&#x2011;white&#x2011;point</a>  • <a href="command-line-options.html#white-threshold">&#x2011;white&#x2011;threshold</a> </ul>
 
 <p>In this example, <var>-negate</var> negates the wand image but not the wizard:</p>
 
@@ -418,7 +424,7 @@
 <p>The <var>geometry</var> argument might take any of the forms listed in the table below. These will described in more detail in the subsections following the table. The usual form is <var>size</var>[<var>offset</var>], meaning <var>size</var> is required and <var>offset</var> is optional. Occasionally, [<var>size</var>]<var>offset</var> is possible. In no cases are spaces permitted within the <var>geometry</var> argument.</p>
 
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <col width="20%"/> <col width="80%"/>
   <thead>
@@ -478,7 +484,7 @@
   </tr>
   <tr>
     <td>{<var>size</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></td>
-    <td>Horizontal and vertical offsets <var>x</var> and <var>y</var>, specified in pixels. Signs are required for both. Offsets are affected by <a href="command-line-options.html#gravity">&#x2011;gravity</a> setting. Offsets are not affected by <code>%</code> or other <var>size</var> operators.</td>
+    <td>Horizontal and vertical offsets <var>x</var> and <var>y</var>, specified in pixels. Signs are required for both. Offsets are affected by <a href="command-line-options.html#gravity">&#x2011;gravity</a> setting. Offsets are not affected by <code>%</code> or other <var>size</var> operators. Note that positive X and Y offsets are in the inward direction towards the center of the image for all <a href="command-line-options.html#gravity">&#x2011;gravity</a> options, except 'center'. For East, +X is left. For South, +Y is up. For SouthEast, +X is left and +Y is up. For center, the normal X and Y directional convention is used (+X is right and +Y is down).</td>
   </tr>
  </tbody>
 </table></div>
@@ -626,22 +632,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="command-line-processing.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="command-line-processing.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:41 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:21 -->
\ No newline at end of file
diff --git a/www/command-line-tools.html b/www/command-line-tools.html
index 4feec83..1da80ed 100644
--- a/www/command-line-tools.html
+++ b/www/command-line-tools.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/command-line-tools.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -89,22 +95,22 @@
 <p>Here is a short description for each command-line tool. Click on the program name to get details about the program usage and a list of command-line options that alters how the program behaves.  If you are just getting acquainted with ImageMagick, start with the <a href="command-line-tools.html#magick">magick</a> program.  Be sure to peruse Anthony Thyssen's tutorial on how to use ImageMagick utilities to <a href="../Usage/">create, edit, compose, or convert</a> images from the command-line.</p>
 
 <dl class="row">
-  <dt class="col-md-4"><a class="anchor" id="magick"></a><a href="../www/magick.html">magick</a></dt><dd class="col-md-8">convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</dd>
-  <dt class="col-md-4"><a class="anchor" id="magick-script"></a><a href="../www/magick-script.html">magick-script</a></dt><dd class="col-md-8">use this scripting language interpreter to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</dd>
+  <dt class="col-md-4"><a class="anchor" id="magick"></a><a href="magick.html">magick</a></dt><dd class="col-md-8">convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</dd>
+  <dt class="col-md-4"><a class="anchor" id="magick-script"></a><a href="magick-script.html">magick-script</a></dt><dd class="col-md-8">use this scripting language interpreter to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</dd>
 </dl>
 <p>We also support tools for compatibility with ImageMagick <a href="http://legacy.imagemagick.org">version 6</a>:</p>
 <dl class="row">
-  <dt class="col-md-4"><a href="../www/animate.html">animate</a></dt><dd class="col-md-8">animate an image sequence on any X server.</dd>
-  <dt class="col-md-4"><a class="anchor" id="compare"></a><a href="../www/compare.html">compare</a></dt><dd class="col-md-8">mathematically and visually annotate the difference between an image and its reconstruction.</dd>
-  <dt class="col-md-4"><a class="anchor" id="composite"></a><a href="../www/composite.html">composite</a></dt><dd class="col-md-8">overlap one image over another.</dd>
+  <dt class="col-md-4"><a href="animate.html">animate</a></dt><dd class="col-md-8">animate an image sequence on any X server.</dd>
+  <dt class="col-md-4"><a class="anchor" id="compare"></a><a href="compare.html">compare</a></dt><dd class="col-md-8">mathematically and visually annotate the difference between an image and its reconstruction.</dd>
+  <dt class="col-md-4"><a class="anchor" id="composite"></a><a href="composite.html">composite</a></dt><dd class="col-md-8">overlap one image over another.</dd>
   <dt class="col-md-4"><a class="anchor" id="conjure"></a><a href="conjure.html">conjure</a></dt><dd class="col-md-8">interpret and execute scripts written in the Magick Scripting Language (MSL).</dd>
   <dt class="col-md-4"><a class="anchor" id="convert"></a><a href="convert.html">convert</a></dt><dd class="col-md-8">convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.</dd>
   <dt class="col-md-4"><a class="anchor" id="display"></a><a href="display.html">display</a></dt><dd class="col-md-8">display an image or image sequence on any X server.</dd>
-  <dt class="col-md-4"><a class="anchor" id="identify"></a><a href="../www/identify.html">identify</a></dt><dd class="col-md-8">describe the format and characteristics of one or more image files.</dd>
+  <dt class="col-md-4"><a class="anchor" id="identify"></a><a href="identify.html">identify</a></dt><dd class="col-md-8">describe the format and characteristics of one or more image files.</dd>
   <dt class="col-md-4"><a class="anchor" id="import"></a><a href="import.html">import</a></dt><dd class="col-md-8">save any visible window on an X server and outputs it as an image file. You can capture a single window, the entire screen, or any rectangular portion of the screen.</dd>
   <dt class="col-md-4"><a class="anchor" id="mogrify"></a><a href="mogrify.html">mogrify</a></dt><dd class="col-md-8">resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.  Mogrify overwrites the original image file, whereas, <a href="convert.html">convert</a> writes to a different image file.</dd>
   <dt class="col-md-4"><a class="anchor" id="montage"></a><a href="montage.html">montage</a></dt><dd class="col-md-8">create a composite image by combining several separate images.  The images are tiled on the composite image optionally adorned with a border, frame, image name, and more.</dd>
-  <dt class="col-md-4"><a class="anchor" id="stream"></a><a href="../www/stream.html">stream</a></dt><dd class="col-md-8">a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.  It writes the pixel components as they are read from the input image a row at a time making <code>stream</code> desirable when working with large images or when you require raw pixel components.</dd>
+  <dt class="col-md-4"><a class="anchor" id="stream"></a><a href="stream.html">stream</a></dt><dd class="col-md-8">a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.  It writes the pixel components as they are read from the input image a row at a time making <code>stream</code> desirable when working with large images or when you require raw pixel components.</dd>
 </dl>
 <p>If these tools are not available on your computer, you can instead utilize them as a subcommand of the <code>magick</code> command.  For example,</p>
 <pre class="highlight"><code>magick identify -verbose myImage.png</code></pre>
@@ -114,22 +120,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="command-line-tools.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="command-line-tools.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:24 -->
\ No newline at end of file
diff --git a/www/compare.html b/www/compare.html
index d793407..51903d6 100644
--- a/www/compare.html
+++ b/www/compare.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Compare @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Compare</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, compare, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="compare.html" rel="canonical" />
+  <link href="../www/compare.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,23 +72,24 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="compare.html#usage">Example Usage</a> • <a href="compare.html#options">Option Summary</a></p>
 
-<p class="lead magick-description">Use the <code>compare</code> program to mathematically and visually annotate the difference between an image and its reconstruction.  See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>compare</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">Use the <code>compare</code> program to mathematically and visually annotate the difference between an image and its reconstruction.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>compare</code> command or see below for example usages of the command.</p>
 
 <h2><a class="anchor" id="usage"></a>Example Usage</h2>
 
@@ -149,278 +155,278 @@
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decrypt image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#background">-background <var>color</var></a></td>
+    <td><a href="command-line-options.html#background">-background <var>color</var></a></td>
     <td>background color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
     <td>improve brightness / contrast of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compose">-compose <var>operator</var></a></td>
+    <td><a href="command-line-options.html#compose">-compose <var>operator</var></a></td>
     <td>set image composite operator</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#crop">-crop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#crop">-crop <var>geometry</var></a></td>
     <td>crop the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#decipher">-decipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#decipher">-decipher <var>filename</var></a></td>
     <td>convert cipher pixels to plain</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold <var>value</var></a></td>
     <td>maximum distortion for (sub)image match (default 0.2)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
+    <td><a href="command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
     <td>distort image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encipher">-encipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#encipher">-encipher <var>filename</var></a></td>
     <td>convert plain pixels to cipher pixels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
+    <td><a href="command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
     <td>colors within this distance are considered equal</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gravity">-gravity <var>type</var></a></td>
+    <td><a href="command-line-options.html#gravity">-gravity <var>type</var></a></td>
     <td>horizontal and vertical text placement</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#highlight-color">-highlight-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#highlight-color">-highlight-color <var>color</var></a></td>
     <td>emphasize pixel differences with this color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#identify">-identify</a></td>
+    <td><a href="command-line-options.html#identify">-identify</a></td>
     <td>identify the format and characteristics of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#level">-level <var>value</var></a></td>
+    <td><a href="command-line-options.html#level">-level <var>value</var></a></td>
     <td>adjust the level of image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#lowlight-color">-lowlight-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#lowlight-color">-lowlight-color <var>color</var></a></td>
     <td>de-emphasize pixel differences with this color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#metric">-metric <var>type</var></a></td>
+    <td><a href="command-line-options.html#metric">-metric <var>type</var></a></td>
     <td>measure differences between images with this metric</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#profile">-profile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#profile">-profile <var>filename</var></a></td>
     <td>add, delete, or apply an image profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quality">-quality <var>value</var></a></td>
+    <td><a href="command-line-options.html#quality">-quality <var>value</var></a></td>
     <td>JPEG/MIFF/PNG compression level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#read-mask">-read-mask <var>filename</var></a></td>
+    <td><a href="command-line-options.html#read-mask">-read-mask <var>filename</var></a></td>
     <td>associate a read mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#repage">-repage <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#repage">-repage <var>geometry</var></a></td>
     <td>size and location of an image canvas</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resize">-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resize">-resize <var>geometry</var></a></td>
     <td>resize the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
     <td>apply Paeth rotation to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#separate">-separate</a></td>
+    <td><a href="command-line-options.html#separate">-separate</a></td>
     <td>separate an image channel into a grayscale image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
     <td>increase the contrast without saturating highlights or shadows</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#similarity-threshold">-similarity-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#similarity-threshold">-similarity-threshold <var>value</var></a></td>
     <td>minimum distortion for (sub)image match (default 0.0)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#subimage-search">-subimage-search</a></td>
+    <td><a href="command-line-options.html#subimage-search">-subimage-search</a></td>
     <td>search for subimage</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#synchronize">-synchronize</a></td>
+    <td><a href="command-line-options.html#synchronize">-synchronize</a></td>
     <td>synchronize image to storage device</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#taint">-taint</a></td>
+    <td><a href="command-line-options.html#taint">-taint</a></td>
     <td>mark the image as modified</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#trim">-trim</a></td>
+    <td><a href="command-line-options.html#trim">-trim</a></td>
     <td>trim image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write-mask">-read-mask <var>filename</var></a></td>
+    <td><a href="command-line-options.html#write-mask">-read-mask <var>filename</var></a></td>
     <td>associate a write mask with the image</td>
   </tr>
 
@@ -430,22 +436,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="compare.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:14 -->
\ No newline at end of file
diff --git a/www/compose.html b/www/compose.html
index 78dd1b8..23c1f6a 100644
--- a/www/compose.html
+++ b/www/compose.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Alpha Compositing @ ImageMagick</title>
+  <title>ImageMagick - Alpha Compositing</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="alpha, compositing, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="compose.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -630,21 +636,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="compose.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="compose.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:12 -->
\ No newline at end of file
diff --git a/www/composite.html b/www/composite.html
index 850018d..7a307cb 100644
--- a/www/composite.html
+++ b/www/composite.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Composite @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Composite</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, composite, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="composite.html" rel="canonical" />
+  <link href="../www/composite.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,23 +72,24 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="composite.html#usage">Example Usage</a> • <a href="composite.html#options">Option Summary</a></p>
 
-<p class="lead magick-description">Use the <code>composite</code> program to overlap one image over another.  See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>composite</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">Use the <code>composite</code> program to overlap one image over another.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>composite</code> command or see below for example usages of the command.</p>
 
 <h2><a class="anchor" id="usage"></a>Example Usage</h2>
 
@@ -130,399 +136,399 @@
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#affine">-affine <var>matrix</var></a></td>
+    <td><a href="command-line-options.html#affine">-affine <var>matrix</var></a></td>
     <td>affine transform matrix</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decrypt image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blend">-blend <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#blend">-blend <var>geometry</var></a></td>
     <td>blend images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
     <td>chromaticity blue primary point</td>
   </tr>
 
 
   <tr>
-    <td><a href="../www/command-line-options.html#border">-border <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#border">-border <var>geometry</var></a></td>
     <td>surround image with a border of color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
     <td>border color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colors">-colors <var>value</var></a></td>
+    <td><a href="command-line-options.html#colors">-colors <var>value</var></a></td>
     <td>preferred number of colors in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#comment">-comment <var>string</var></a></td>
+    <td><a href="command-line-options.html#comment">-comment <var>string</var></a></td>
     <td>annotate image with comment</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compose">-compose <var>operator</var></a></td>
+    <td><a href="command-line-options.html#compose">-compose <var>operator</var></a></td>
     <td>set image composite operator</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compress">-compress <var>type</var></a></td>
+    <td><a href="command-line-options.html#compress">-compress <var>type</var></a></td>
     <td>image compression type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#decipher">-decipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#decipher">-decipher <var>filename</var></a></td>
     <td>convert cipher pixels to plain</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#displace">-displace <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#displace">-displace <var>geometry</var></a></td>
     <td>shift image pixels defined by a displacement map</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dissolve">-dissolve <var>value</var></a></td>
+    <td><a href="command-line-options.html#dissolve">-dissolve <var>value</var></a></td>
     <td>dissolve the two images a given percent</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dither">-dither  <var>method</var></a></td>
+    <td><a href="command-line-options.html#dither">-dither  <var>method</var></a></td>
     <td>apply error diffusion to image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encipher">-encipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#encipher">-encipher <var>filename</var></a></td>
     <td>convert plain pixels to cipher pixels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encoding">-encoding <var>type</var></a></td>
+    <td><a href="command-line-options.html#encoding">-encoding <var>type</var></a></td>
     <td>text encoding type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#endian">-endian <var>type</var></a></td>
+    <td><a href="command-line-options.html#endian">-endian <var>type</var></a></td>
     <td>endianness (MSB or LSB) of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#filter">-filter <var>type</var></a></td>
+    <td><a href="command-line-options.html#filter">-filter <var>type</var></a></td>
     <td>use this filter when resizing an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#font">-font <var>name</var></a></td>
+    <td><a href="command-line-options.html#font">-font <var>name</var></a></td>
     <td>render text with this font</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
     <td>preferred size or location of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gravity">-gravity <var>type</var></a></td>
+    <td><a href="command-line-options.html#gravity">-gravity <var>type</var></a></td>
     <td>horizontal and vertical text placement</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
     <td>chromaticity green primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#identify">-identify</a></td>
+    <td><a href="command-line-options.html#identify">-identify</a></td>
     <td>identify the format and characteristics of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#label">-label <var>string</var></a></td>
+    <td><a href="command-line-options.html#label">-label <var>string</var></a></td>
     <td>assign a label to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#level">-level <var>value</var></a></td>
+    <td><a href="command-line-options.html#level">-level <var>value</var></a></td>
     <td>adjust the level of image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monochrome">-monochrome</a></td>
+    <td><a href="command-line-options.html#monochrome">-monochrome</a></td>
     <td>transform image to black and white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#page">-page <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#page">-page <var>geometry</var></a></td>
     <td>size and location of an image canvas (setting)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
+    <td><a href="command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
     <td>font point size</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#profile">-profile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#profile">-profile <var>filename</var></a></td>
     <td>add, delete, or apply an image profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quality">-quality <var>value</var></a></td>
+    <td><a href="command-line-options.html#quality">-quality <var>value</var></a></td>
     <td>JPEG/MIFF/PNG compression level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
     <td>chromaticity red primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
     <td>apply Paeth rotation to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scene">-scene <var>value</var></a></td>
+    <td><a href="command-line-options.html#scene">-scene <var>value</var></a></td>
     <td>image scene number</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shave">-shave <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shave">-shave <var>geometry</var></a></td>
     <td>shave pixels from the image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stegano">-stegano <var>offset</var></a></td>
+    <td><a href="command-line-options.html#stegano">-stegano <var>offset</var></a></td>
     <td>hide watermark within an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stereo">-stereo <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#stereo">-stereo <var>geometry</var></a></td>
     <td>combine two image to create a stereo anaglyph</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strip">-strip</a></td>
+    <td><a href="command-line-options.html#strip">-strip</a></td>
     <td>strip image of all profiles and comments</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#swap">-swap <var>indexes</var></a></td>
+    <td><a href="command-line-options.html#swap">-swap <var>indexes</var></a></td>
     <td>swap two images in the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#synchronize">-synchronize</a></td>
+    <td><a href="command-line-options.html#synchronize">-synchronize</a></td>
     <td>synchronize image to storage device</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#taint">-taint</a></td>
+    <td><a href="command-line-options.html#taint">-taint</a></td>
     <td>mark the image as modified</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
     <td>create a thumbnail of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tile">-tile</a></td>
+    <td><a href="command-line-options.html#tile">-tile</a></td>
     <td>repeat composite operation across and down image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transform">-transform</a></td>
+    <td><a href="command-line-options.html#transform">-transform</a></td>
     <td>affine transform image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
+    <td><a href="command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
     <td>color tree depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#type">-type <var>type</var></a></td>
+    <td><a href="command-line-options.html#type">-type <var>type</var></a></td>
     <td>image type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#units">-units <var>type</var></a></td>
+    <td><a href="command-line-options.html#units">-units <var>type</var></a></td>
     <td>the units of image resolution</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#watermark">-watermark <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#watermark">-watermark <var>geometry</var></a></td>
     <td>percent brightness and saturation of a watermark</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-point">-white-point <var>point</var></a></td>
+    <td><a href="command-line-options.html#white-point">-white-point <var>point</var></a></td>
     <td>chromaticity white point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
     <td>force all pixels above the threshold into white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write">-write <var>filename</var></a></td>
+    <td><a href="command-line-options.html#write">-write <var>filename</var></a></td>
     <td>write images to this file</td>
   </tr>
 
@@ -532,22 +538,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="composite.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:25 -->
\ No newline at end of file
diff --git a/www/conjure.html b/www/conjure.html
index 0c68b02..15fd1f5 100644
--- a/www/conjure.html
+++ b/www/conjure.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Conjure @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Conjure</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, conjure, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/conjure.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -152,7 +158,7 @@
 msl:font-metrics.origin.y
 </code></pre>
 
-<p>MSL supports most methods and attributes discussed in the <a href="../www/perl-magick.html">Perl API for ImageMagick</a>.
+<p>MSL supports most methods and attributes discussed in the <a href="perl-magick.html">Perl API for ImageMagick</a>.
 </p>
 
 <p>In addition, MSL supports the <code>swap</code> element with a single <code>indexes</code> element.</p>
@@ -1142,22 +1148,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="conjure.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="conjure.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 10:31 -->
\ No newline at end of file
diff --git a/www/connected-components.html b/www/connected-components.html
index 05f119a..20b0ecb 100644
--- a/www/connected-components.html
+++ b/www/connected-components.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Connected Components Labeling @ ImageMagick</title>
+  <title>ImageMagick - Connected Components Labeling</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="connected, components, labeling, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="connected-components.html" rel="canonical" />
+  <link href="../www/connected-components.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -101,7 +107,7 @@
   4: 21x23+0+45 8.8,55.9 409 srgb(255,255,255)
   1: 4x10+252+0 253.9,4.1 31 srgb(255,255,255)
 </code></pre>
-<p>Use <code>-connected-components 8</code> to visit 8 neighbors rather than 4.  By default, neighbor colors must be exact to be part of a unique object. Use the <a href="../www/command-line-options.html#fuzz">-fuzz</a> option to include pixels as part of an object that are <var>close</var> in color.</p>
+<p>Use <code>-connected-components 8</code> to visit 8 neighbors rather than 4.  By default, neighbor colors must be exact to be part of a unique object. Use the <a href="command-line-options.html#fuzz">-fuzz</a> option to include pixels as part of an object that are <var>close</var> in color.</p>
 <p>You might want to eliminate small objects by merging them with their larger neighbors.  If so, use this command:</p>
 <pre class="highlight"><code>magick objects.gif -define connected-components:area-threshold=410 -connected-components 4 \
   -auto-level objects.jpg</code></pre>
@@ -123,22 +129,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="connected-components.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:15 -->
\ No newline at end of file
diff --git a/www/contact.html b/www/contact.html
index 1092ae6..df1af8a 100644
--- a/www/contact.html
+++ b/www/contact.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Contact the Development Team @ ImageMagick</title>
+  <title>ImageMagick - Contact the Development Team</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="contact, the, development, team, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/https://imagemagick.org/script/contact.php" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -89,7 +95,7 @@
 040d70</code>, in the Authenticate field and fill in the remaining fields.  Press Send to forward your message to the ImageMagick wizards:</p>
   <br/>
   <form method="post" name="post" id="post" action="https://imagemagick.org/script/contact.php" enctype="application/x-www-form-urlencoded">
-  <div class="table-responsive">
+  <div class="table-responsive" style="font-size:87.5% !important;">
   <table class="table table-sm table-striped">
     <tr>
       <td><label id="authenticate" title="Your authentication code">Authenticate</label></td>
@@ -143,21 +149,22 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="https://imagemagick.org/script/contact.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="https://imagemagick.org/script/contact.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
diff --git a/www/convert.html b/www/convert.html
index 6b1e4a0..66cb58c 100644
--- a/www/convert.html
+++ b/www/convert.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Convert @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Convert</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, convert, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/convert.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -127,7 +133,7 @@
 
 <p>The <code>convert</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td><a href="command-line-options.html#adaptive-blur">-adaptive-blur <var>geometry</var></a></td>
@@ -721,6 +727,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#colors">-kmeans <var>geometry</var></a></td>
+    <td>K means color reduction</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
     <td>edge preserving noise reduction filter</td>
   </tr>
@@ -1342,22 +1353,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="convert.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="convert.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:13 -->
\ No newline at end of file
diff --git a/www/develop.html b/www/develop.html
index 2e0c586..e0c04d5 100644
--- a/www/develop.html
+++ b/www/develop.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Develop @ ImageMagick</title>
+  <title>ImageMagick - Develop</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="develop, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/develop.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,23 +76,25 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 
-<p class="lead magick-description">ImageMagick includes a number of ready-made interfaces. This makes it possible to modify or create images automagically and dynamically utilizing your favorite development platform.</p>
+<p class="lead magick-description">The functionality of ImageMagick is typically utilized from the <a href="command-line-processing.html">command-line</a> or you can use the features from programs written in your favorite language. Choose from these interfaces: <a href="develop.html#ada">G2F</a> (Ada), <a href="develop.html#c">MagickCore</a> (C), <a href="develop.html#c">MagickWand</a> (C), <a href="develop.html#ch">ChMagick</a> (Ch), <a href="develop.html#com_">ImageMagickObject</a> (COM+), <a href="develop.html#c__">Magick++</a> (C++), <a href="develop.html#java">JMagick</a> (Java), <a href="develop.html#javascript">WASM-ImageMagick</a> (Javawww/Typescript), <a href="develop.html#julia">JuliaIO</a> (Julia), <a href="develop.html#lisp">L-Magick</a> (Lisp), <a href="develop.html#lua">Lua</a> (LuaJIT), <a href="develop.html#neko">NMagick</a> (Neko/haXe), <a href="develop.html#dot-net">Magick.NET</a> (.NET), <a href="develop.html#pascal">PascalMagick</a> (Pascal),  <a href="develop.html#perl">PerlMagick</a> (Perl), <a href="develop.html#php">MagickWand for PHP</a> (PHP),  <a href="develop.html#php">IMagick</a> (PHP), <a href="develop.html#python">PythonMagick</a> (Python), <a href="develop.html#r">magick</a> (R), <a href="develop.html#ruby">RMagick</a> (Ruby), or <a href="develop.html#tcl">TclMagick</a> (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and <var>automagically</var>.</p>
+<p>Choose from these language interfaces:</p>
 
 <dl class="row">
   <dt class="col-md-4"><a class="anchor" id="c"></a>C</dt>
 
-<dd class="col-md-8">Use <a href="../www/magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language.  There is also the low-level <a href="../www/magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
+<dd class="col-md-8">Use <a href="magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language.  There is also the low-level <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="ch"></a>Ch</dt>
 
@@ -95,11 +102,11 @@
 
   <dt class="col-md-4"><a class="anchor" id="com_"></a>COM+</dt>
 
-<dd class="col-md-8">Use <a href="../www/ImageMagickObject.html">ImageMagickObject</a> to convert, compose, and edit images from a Windows COM+ compatible component.</dd>
+<dd class="col-md-8">Use <a href="ImageMagickObject.html">ImageMagickObject</a> to convert, compose, and edit images from a Windows COM+ compatible component.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="c__"></a>C++</dt>
 
-<dd class="col-md-8"><a href="../www/magick++.html">Magick++</a> provides an object-oriented C++ interface to ImageMagick.  See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
+<dd class="col-md-8"><a href="magick++.html">Magick++</a> provides an object-oriented C++ interface to ImageMagick.  See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="go"></a>GO</dt>
   <dd class="col-md-8"><a href="https://github.com/gographics/imagick">GoImagick</a> is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.</dd>
@@ -108,6 +115,10 @@
 
 <dd class="col-md-8"><a href="http://www.jmagick.org">JMagick</a> provides an object-oriented Java interface to ImageMagick.  <a href="http://im4java.sourceforge.net">Im4java</a> is a pure-java interface to the ImageMagick command-line.</dd>
 
+<dt class="col-md-4"><a class="anchor" id="javascript"></a>Javawww/TypeScript</dt>
+
+<dd class="col-md-8"><a href="https://github.com/KnicKnic/WASM-ImageMagick">WASM-ImageMagick</a> Webassembly compiliation of ImageMagick that allows serverless clientside bindings for Typescript and Javascript. Works in Progressive Web Apps.</dd>
+
   <dt class="col-md-4"><a class="anchor" id="julia"></a>Julia</dt>
 
 <dd class="col-md-8"><a href="https://github.com/JuliaIO/ImageMagick.jl">JuliaIO</a> provides an object-oriented Julia interface to ImageMagick.</dd>
@@ -143,7 +154,7 @@
 
   <dt class="col-md-4"><a class="anchor" id="perl"></a>Perl</dt>
 
-<dd class="col-md-8">Use <a href="../www/perl-magick.html">PerlMagick</a> to convert, compose, and edit images from the Perl language.</dd>
+<dd class="col-md-8">Use <a href="perl-magick.html">PerlMagick</a> to convert, compose, and edit images from the Perl language.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="php"></a>PHP</dt>
 
@@ -177,10 +188,10 @@
 
   <dt class="col-md-4"><a class="anchor" id="ruby"></a>Ruby</dt>
 
-<dd class="col-md-8"><a href="https://rmagick.github.io/">RMagick</a> is an interface between the Ruby programming language and the <a href="../www/magick-core.html">MagickCore</a> image processing libraries.  Get started with RMagick by perusing the <a href="https://rmagick.github.io/">documentation</a>.</dd>
+<dd class="col-md-8"><a href="https://rmagick.github.io/">RMagick</a> is an interface between the Ruby programming language and the <a href="magick-core.html">MagickCore</a> image processing libraries.  Get started with RMagick by perusing the <a href="https://rmagick.github.io/">documentation</a>.</dd>
   <dt class="col-md-4"><a class="anchor" id="php"></a> </dt>
 
-<dd class="col-md-8"><a href="http://magickwand.rubyforge.org/">MagickWand for Ruby</a> is an interface between the Ruby programming language and the <a href="../www/magick-wand.html">MagickWand</a> image processing libraries.  Get started with MagickWand for PHP by perusing the <a href="http://magickwand.rubyforge.org/">documentation</a>.</dd>
+<dd class="col-md-8"><a href="http://magickwand.rubyforge.org/">MagickWand for Ruby</a> is an interface between the Ruby programming language and the <a href="magick-wand.html">MagickWand</a> image processing libraries.  Get started with MagickWand for PHP by perusing the <a href="http://magickwand.rubyforge.org/">documentation</a>.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="php"></a> </dt>
 <dd class="col-md-8"><a href="https://github.com/minimagick">MiniMagick</a> is a Ruby wrapper for ImageMagick command line. MiniMagick gives you convenient access to all the command line options ImageMagick supports.</dd>
@@ -205,22 +216,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="develop.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="develop.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:47 -->
\ No newline at end of file
diff --git a/www/display.html b/www/display.html
index 98c31c7..479a501 100644
--- a/www/display.html
+++ b/www/display.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Display @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Display</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, display, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/display.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -573,22 +579,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="display.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="display.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:43 -->
\ No newline at end of file
diff --git a/www/distribute-pixel-cache.html b/www/distribute-pixel-cache.html
index 9fb0544..84dae97 100644
--- a/www/distribute-pixel-cache.html
+++ b/www/distribute-pixel-cache.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Distributed Pixel Cache @ ImageMagick</title>
+  <title>ImageMagick - Distributed Pixel Cache</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="distributed, pixel, cache, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="distribute-pixel-cache.html" rel="canonical" />
-  <link href="../images/wand.png" rel="icon" />
-  <link href="../images/wand.ico" rel="shortcut icon" />
-  <link href="assets/magick.css" rel="stylesheet" />
+  <link href="../www/www/distribute-pixel-cache.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,45 +44,46 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -101,22 +107,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="distribute-pixel-cache.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="distribute-pixel-cache.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:06 -->
\ No newline at end of file
diff --git a/www/download.html b/www/download.html
index 7b73e92..0886397 100644
--- a/www/download.html
+++ b/www/download.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Download @ ImageMagick</title>
+  <title>ImageMagick - Download</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="download, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/download.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,27 +76,28 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="download.html#unix">Unix Binary Release</a> • <a href="download.html#macosx">Mac OS X Binary Release</a> • <a href="download.html#iOS">iOS Binary Release</a> • <a href="download.html#windows">Windows Binary Release</a></p>
 
-<p class="lead magick-description">You can install ImageMagick from <a href="../www/install-source.html">source</a>.  However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run <a href="download.html#unix">Unix</a> or <a href="download.html#windows">Windows</a> executable.  Before you download, you may want to review recent <a href="../www/changelog.html">changes</a> to the ImageMagick distribution.</p>
+<p class="lead magick-description">You can install ImageMagick from <a href="install-source.html">source</a>.  However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run <a href="download.html#unix">Unix</a> or <a href="download.html#windows">Windows</a> executable.  Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>
 
-<p>ImageMagick source and binary distributions are available from a variety of FTP and Web <a href="../www/mirror.html">mirrors</a> around the world.</p>
+<p>ImageMagick source and binary distributions are available from a variety of FTP and Web <a href="mirror.html">mirrors</a> around the world.</p>
 
 <h2><a class="anchor" id="unix"></a>Unix Binary Release</h2>
 
-<p>These are the Unix variations that we support.  If your system is not on the list, try installing from <a href="../www/install-source.html">source</a>. Although ImageMagick runs fine on a single core computer, it automagically runs in parallel on dual and quad-core systems reducing run times considerably.</p>
+<p>These are the Unix variations that we support.  If your system is not on the list, try installing from <a href="install-source.html">source</a>. Although ImageMagick runs fine on a single core computer, it automagically runs in parallel on multi-core systems reducing run times considerably.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
   <tr>
@@ -102,16 +108,23 @@
   </tr>
 
   <tr>
-      <td>ImageMagick-7.0.8-23.x86_64.rpm</td>
-      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.8-23.x86_64.rpm">download</a></td>
-    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-7.0.8-23.x86_64.rpm">download</a></td>
+    <td>magick</td>
+      <td><a href= "https://imagemagick.org/download/binaries/magick">download</a></td>
+    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/magick">download</a></td>
+    <td>Complete portable application on Linux, no installation required.  Just download and run.</td>
+  </tr>
+
+  <tr>
+      <td>ImageMagick-7.0.9-14.x86_64.rpm</td>
+      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.9-14.x86_64.rpm">download</a></td>
+    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-7.0.9-14.x86_64.rpm">download</a></td>
     <td>Redhat / CentOS 7.1 x86_64 RPM</td>
   </tr>
 
   <tr>
-      <td>ImageMagick-libs-7.0.8-23.x86_64.rpm</td>
-      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-23.x86_64.rpm">download</a></td>
-    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-libs-7.0.8-23.x86_64.rpm">download</a></td>
+      <td>ImageMagick-libs-7.0.9-14.x86_64.rpm</td>
+      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.9-14.x86_64.rpm">download</a></td>
+    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/linux/CentOS/x86_64/ImageMagick-libs-7.0.9-14.x86_64.rpm">download</a></td>
     <td>Redhat / CentOS 7.1 x86_64 RPM</td>
   </tr>
 
@@ -148,8 +161,10 @@
 
 <p>ImageMagick RPM's are self-installing.  Simply type the following command and you're ready to start using ImageMagick:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.8-23.x86_64.rpm</span></pre><p>You'll need the libraries as well:</p>
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.8-23.x86_64.rpm</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.9-14.x86_64.rpm</span></pre><p>You'll need the libraries as well:</p>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.9-14.x86_64.rpm</span></pre>
+<p>Note, if there are missing dependencies, install them from the <a href="https://fedoraproject.org/wiki/EPEL">EPEL</a> repo.</p>
+
 <p>For other systems, create (or choose) a directory to install the package into and change to that directory, for example:</p>
 
 <pre class="highlight"><code>cd $HOME</code></pre>
@@ -160,7 +175,7 @@
 
 <p>Set the <code>MAGICK_HOME</code> environment variable to the path where you extracted the ImageMagick files. For example:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.8"</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.9"</span></pre>
 <p>If the <code>bin</code> subdirectory of the extracted package is not already in your executable search path, add it to your <code>PATH</code> environment variable. For example:</p>
 
 <pre class="highlight"><code>export PATH="$MAGICK_HOME/bin:$PATH</code></pre>
@@ -181,13 +196,17 @@
 
 <h2><a class="anchor" id="macosx"></a>Mac OS X Binary Release</h2>
 
-<p>We recommend <a href="http://www.macports.org">MacPorts</a> which custom builds ImageMagick in your environment (some users prefer <a href="http://brew.sh">Homebrew</a>).  Download MacPorts and type:</p>
+<p>We recommend <a href="https://brew.sh">Homebrew</a> which custom builds ImageMagick in your environment (some users prefer <a href="https://macports.org">MacPorts</a>).  Download HomeBrew and type:</p>
 
-<pre class="highlight"><code>sudo port install ImageMagick</code></pre>
+<pre class="highlight"><code>brew install imagemagick</code></pre>
 
-<p>The <code>port</code> command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically.  Alternatively, you can download the ImageMagick Mac OS X distribution we provide:</p>
+<p>ImageMagick depends on Ghostscript fonts.  To install them, type:</p>
 
-<div class="table-responsive">
+<pre class="highlight"><code>brew install ghostscript</code></pre>
+
+<p>The <code>brew</code> command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically.  Alternatively, you can download the ImageMagick Mac OS X distribution we provide:</p>
+
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
   <tr>
@@ -198,9 +217,9 @@
   </tr>
 
   <tr>
-    <td>ImageMagick-x86_64-apple-darwin17.7.0.tar.gz</td>
-    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-x86_64-apple-darwin17.7.0.tar.gz">download</a></td>
-    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-x86_64-apple-darwin17.7.0.tar.gz">download</a></td>
+    <td>ImageMagick-x86_64-apple-darwin19.2.0.tar.gz</td>
+    <td><a href="https://imagemagick.org/download/binaries/ImageMagick-x86_64-apple-darwin19.2.0.tar.gz">download</a></td>
+    <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-x86_64-apple-darwin19.2.0.tar.gz">download</a></td>
     <td>macOS High Sierra</td>
   </tr>
 </table></div>
@@ -217,7 +236,7 @@
 
 <p>Set the <code>MAGICK_HOME</code> environment variable to the path where you extracted the ImageMagick files. For example:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.8"</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>export MAGICK_HOME="$HOME/ImageMagick-7.0.9"</span></pre>
 <p>If the <code>bin</code> subdirectory of the extracted package is not already in your executable search path, add it to your <code>PATH</code> environment variable. For example:</p>
 
 <pre class="highlight"><code>export PATH="$MAGICK_HOME/bin:$PATH"</code></pre>
@@ -260,7 +279,7 @@
 
 <p>To run the script:</p>
 <pre class="highlight"><code>./imagemagick_compile.sh <var>VERSION</var></code></pre>
-<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.8-23, svn, ...)</p>
+<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.9-14, svn, ...)</p>
 
 <p>This script compiles ImageMagick as a static library to be included in iOS projects and adds support for</p>
 <ul>
@@ -298,7 +317,7 @@
 
 <p>The Windows version of ImageMagick is self-installing.  Simply click on the appropriate version below and it will launch itself and ask you a few installation questions.  Versions with <var>Q8</var> in the name are 8 bits-per-pixel component (e.g. 8-bit red, 8-bit green, etc.), whereas,  <var>Q16</var> in the filename are 16 bits-per-pixel component. A Q16 version permits you to read or write 16-bit images without losing precision but requires twice as much resources as the Q8 version.  Versions with <var>dll</var> in the filename include ImageMagick libraries as <a href="http://www.answers.com/topic/dll">dynamic link libraries</a>. Unless you have a Windows 32-bit OS, we recommend this version of ImageMagick for 64-bit Windows:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
   <tr>
@@ -309,16 +328,16 @@
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-x64-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-x64-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-x64-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-x64-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-x64-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-x64-dll.exe">download</a></td>
     <td>Win64 dynamic at 16 bits-per-pixel component</td>
   </tr>
 </table></div>
 
 <p>Or choose from these alternate Windows binary distributions:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <col width="50%"/> <col width="10%"/> <col width="10%"/> <col width="30%"/>
   <tr>
@@ -329,93 +348,93 @@
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-x64-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-x64-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-x64-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-x64-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-x64-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-x64-static.exe">download</a></td>
    <td>Win64 static at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q8-x64-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q8-x64-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q8-x64-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q8-x64-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q8-x64-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q8-x64-dll.exe">download</a></td>
    <td>Win64 dynamic at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q8-x64-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q8-x64-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q8-x64-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q8-x64-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q8-x64-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q8-x64-static.exe">download</a></td>
     <td>Win64 static at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-HDRI-x64-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x64-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x64-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-HDRI-x64-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x64-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x64-dll.exe">download</a></td>
     <td>Win64 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-HDRI-x64-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x64-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x64-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-HDRI-x64-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x64-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x64-static.exe">download</a></td>
     <td>Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-x86-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-x86-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-x86-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-x86-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-x86-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-x86-dll.exe">download</a></td>
     <td>Win32 dynamic at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-x86-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-x86-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-x86-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-x86-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-x86-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-x86-static.exe">download</a></td>
     <td>Win32 static at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q8-x86-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q8-x86-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q8-x86-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q8-x86-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q8-x86-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q8-x86-dll.exe">download</a></td>
     <td>Win32 dynamic at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q8-x86-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q8-x86-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q8-x86-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q8-x86-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q8-x86-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q8-x86-static.exe">download</a></td>
     <td>Win32 static at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-HDRI-x86-dll.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x86-dll.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x86-dll.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-HDRI-x86-dll.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x86-dll.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x86-dll.exe">download</a></td>
     <td>Win32 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-Q16-HDRI-x86-static.exe</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x86-static.exe">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-Q16-HDRI-x86-static.exe">download</a></td>
+        <td>ImageMagick-7.0.9-14-Q16-HDRI-x86-static.exe</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x86-static.exe">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-Q16-HDRI-x86-static.exe">download</a></td>
     <td>Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-portable-Q16-x86.zip</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-portable-Q16-x86.zip">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-portable-Q16-x86.zip">download</a></td>
+        <td>ImageMagick-7.0.9-14-portable-Q16-x86.zip</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-portable-Q16-x86.zip">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-portable-Q16-x86.zip">download</a></td>
     <td>Portable Win32 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
   <tr>
-        <td>ImageMagick-7.0.8-23-portable-Q16-x64.zip</td>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.8-23-portable-Q16-x64.zip">download</a></td>
-      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.8-23-portable-Q16-x64.zip">download</a></td>
+        <td>ImageMagick-7.0.9-14-portable-Q16-x64.zip</td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.9-14-portable-Q16-x64.zip">download</a></td>
+      <td><a href="ftp://ftp.imagemagick.org/pub/ImageMagick/binaries/ImageMagick-7.0.9-14-portable-Q16-x64.zip">download</a></td>
     <td>Portable Win64 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 </table></div>
@@ -428,7 +447,7 @@
 magick identify logo.gif
 magick logo.gif win:</code></pre>
 
-<p>If you have any problems, you likely need <code>vcomp120.dll</code>.  To install it, download <a href="https://www.microsoft.com/en-us/download/details.aspx?id=40784">Visual C++ 2013 Redistributable Package</a>.</p>
+<p>If you have any problems, you likely need <code>vcomp120.dll</code>.  To install it, download <a href="https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads">Visual C++ Redistributable Package</a>.</p>
 
 <p>Note, use a double quote (<code>"</code>) rather than a single quote (<code>'</code>) for the ImageMagick command line under Windows:</p>
 
@@ -444,22 +463,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="download.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="download.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:11 -->
\ No newline at end of file
diff --git a/www/escape.html b/www/escape.html
index fc4c350..09ef638 100644
--- a/www/escape.html
+++ b/www/escape.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Format and Print Image Properties @ ImageMagick</title>
+  <title>ImageMagick - Format and Print Image Properties</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="format, print, image, properties, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="escape.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,19 +76,20 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="lead magick-description">There are copious amounts of extra data associated with images (metadata), beyond the actual image pixels. This metadata can be useful, either for display, or for various calculations, or in modifying the behavior of later image processing operations.  You can utilize percent escapes in a number of options, for example in <a href="../www/command-line-options.html#format_identify_">-format</a> or in montage <a href="../www/command-line-options.html#label" >-label</a>, to print various properties and other settings associated with an image.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-striped">
 <tr>
     <td><b>Profile Data</b></td>
@@ -146,7 +152,7 @@
 <p>Remember, all long name forms of percent escapes are handled in a is case
 insensitive manner. </p>
 
-<p><b>As of IM v6.8.0-5</b> you can now access the Artifact and Option
+<p>You can now access the Artifact and Option
 free-form string tables directly, allowing you to override the above sequence,
 and avoid accessing an attribute or property of the same name.</p>
 
@@ -154,6 +160,7 @@
 %[option:<var>setting</var>]
 </code></pre>
 
+<p>Escape handling requires access to an image container.  If none are available, a blank image is created to ensure the expression can be processed and a value returned.  For example, <code>magick -print "%[fx:.8765/3.14]" null: null:</code>.</p>
 
 <h3>Single Letter Attribute Percent Escapes</h3>
 
@@ -161,7 +168,7 @@
 common attributes and properties of an image, such as: the image filename
 filename, type, width, height. </p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>\n</td>
@@ -382,7 +389,7 @@
 <p>In addition to the above specific and calculated attributes are recognized
 when enclosed in braces (long form):</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>%[basename]</td>
@@ -653,12 +660,7 @@
 <p>How Global Options are used when a library function requests an Artifact is
 one of the key differences between IMv6 and IMv7.</p>
 
-<p>In <b>ImageMagick version 6</b>... before each operator, any global Options
-are copied to per-image Artifacts, for every image in the current image list.
-This allows various operators to find its operational 'defines' or Artifacts.
-</p>
-
-<p>In <b>ImageMagick version 7</b>... sets a link back to the global options
+<p>Sets a link back to the global options
 data, so that if a specific per-image Artifact is not found , then it will
 look for a equivalent global Option for that image list.  directly.  This
 saves coping these free-form options into artifacts repeatally, and means you
@@ -696,13 +698,13 @@
 <p>There are some special prefixes (before the first ':') which performs
 calculations based on the user provided string that follows that prefix.  For
 example you can do a numerical calculation use <code>%[fx:...]</code> to
-evaluate the given <a href="fx.html">FX</a> expressions:</p>
+evaluate the given <a href="../www/fx.html">FX</a> expressions:</p>
 
 <pre class="highlight"><code>%[fx:<var>expression</var>]
 </code></pre>
 
 <p>Use <code>pixel:</code> or <code>hex:</code> to evaluate a pixel color as defined by the <a
-href="fx.html">FX</a>
+href="../www/fx.html">FX</a>
 expression:</p>
 
 <pre class="highlight"><code>%[pixel:<var>expression</var>]
@@ -909,21 +911,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="escape.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="escape.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:21 -->
\ No newline at end of file
diff --git a/www/examples.html b/www/examples.html
index 1cfd4d1..0676334 100644
--- a/www/examples.html
+++ b/www/examples.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Examples of ImageMagick Usage @ ImageMagick</title>
+  <title>ImageMagick - Examples of ImageMagick Usage</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="examples, of, imagemagick, usage, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="examples.html" rel="canonical" />
+  <link href="../www/examples.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -88,23 +94,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="examples.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:01 -->
\ No newline at end of file
diff --git a/www/exception.html b/www/exception.html
index 5722894..371cfd7 100644
--- a/www/exception.html
+++ b/www/exception.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Exceptions @ ImageMagick</title>
+  <title>ImageMagick - Exceptions</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="exceptions, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="exception.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -278,21 +284,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="exception.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="exception.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:09 -->
\ No newline at end of file
diff --git a/www/export.html b/www/export.html
index 2ae9c86..2298507 100644
--- a/www/export.html
+++ b/www/export.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Export Classification @ ImageMagick</title>
+  <title>ImageMagick - Export Classification</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="export, classification, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="export.html" rel="canonical" />
-  <link href="../images/wand.png" rel="icon" />
-  <link href="../images/wand.ico" rel="shortcut icon" />
-  <link href="assets/magick.css" rel="stylesheet" />
+  <link href="../www/www/export.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -88,22 +94,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="export.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="export.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:33 -->
\ No newline at end of file
diff --git a/www/formats.html b/www/formats.html
index 667f8a3..a6f183f 100644
--- a/www/formats.html
+++ b/www/formats.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Formats @ ImageMagick</title>
+  <title>ImageMagick - Formats</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="formats, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/formats.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -149,7 +155,7 @@
 including sub-formats). The following table provides a summary of
 the supported image formats.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tbody>
   <tr>
@@ -177,7 +183,7 @@
     <td>ARW</td>
     <td>R</td>
     <td>Sony Digital Camera Alpha Raw Image Format</td>
-    <td> </td>
+    <td>Set <code>-define dng:use-camera-wb=true</code> to use the RAW-embedded color profile for Sony cameras.</td>
   </tr>
 
   <tr>
@@ -598,7 +604,7 @@
     <td><a href="http://www.jpeg.org/">JPEG</a></td>
     <td>RW</td>
     <td>Joint Photographic Experts Group JFIF format</td>
-    <td>Note, JPEG is a lossy compression.  In addition, you cannot create black and white images with JPEG nor can you save transparency.<br /><br /> Requires <a href="http://www.ijg.org/files/">jpegsrc.v8c.tar.gz</a>.  You can set quality scaling for luminance and chrominance separately (e.g. <a href="command-line-options.html#quality">-quality</a> 90,70). You can optionally define the DCT method, for example to specify the float method, use <a href="command-line-options.html#define">-define jpeg:dct-method=float</a>. By default we compute optimal Huffman coding tables.  Specify <a href="command-line-options.html#define">-define jpeg:optimize-coding=false</a> to use the default Huffman tables. Two other options include <a href="command-line-options.html#define">-define jpeg:block-smoothing</a> and <a href="command-line-options.html#define">-define jpeg:fancy-upsampling</a>. Set the sampling factor with <a href="command-line-options.html#define">-define jpeg:sampling-factor</a>. You can size the image with <code>jpeg:size</code>, for example <a href="command-line-options.html#define">-define jpeg:size=128x128</a>. To restrict the maximum file size, use <code>jpeg:extent</code>, for example <a href="command-line-options.html#define">-define jpeg:extent=400KB</a>.  To define one or more custom quantization tables, use <a href="command-line-options.html#define">-define jpeg:q-table=<i>filename</i></a>. To avoid reading a particular associated image profile, use <a href="command-line-options.html#define">-define profile:skip=<i>name</i></a> (e.g. profile:skip=ICC).</td>
+    <td>Note, JPEG is a lossy compression.  In addition, you cannot create black and white images with JPEG nor can you save transparency.<br /><br /> Requires <a href="http://www.ijg.org/files/">jpegsrc.v8c.tar.gz</a>.  You can set quality scaling for luminance and chrominance separately (e.g. <a href="command-line-options.html#quality">-quality</a> 90,70). You can optionally define the DCT method, for example to specify the float method, use <a href="command-line-options.html#define">-define jpeg:dct-method=float</a>. By default we compute optimal Huffman coding tables.  Specify <a href="command-line-options.html#define">-define jpeg:optimize-coding=false</a> to use the default Huffman tables. Two other options include <a href="command-line-options.html#define">-define jpeg:block-smoothing</a> and <a href="command-line-options.html#define">-define jpeg:fancy-upsampling</a>. Set the sampling factor with <a href="command-line-options.html#define">-define jpeg:sampling-factor</a>. You can size the image with <code>jpeg:size</code>, for example <a href="command-line-options.html#define">-define jpeg:size=128x128</a>. To restrict the maximum file size, use <code>jpeg:extent</code>, for example <a href="command-line-options.html#define">-define jpeg:extent=400KB</a>.  To define one or more custom quantization tables, use <a href="command-line-options.html#define">-define jpeg:q-table=<i>filename</i></a>. These values are multiplied by <a href="command-line-options.html#quality">-quality</a> argument divided by 100.0. To avoid reading a particular associated image profile, use <a href="command-line-options.html#define">-define profile:skip=<i>name</i></a> (e.g. profile:skip=ICC).</td>
   </tr>
 
   <tr>
@@ -616,6 +622,13 @@
   </tr>
 
   <tr>
+    <td><a href="https://en.wikipedia.org/wiki/JPEG_XR">JXL</a></td>
+    <td>RW</td>
+    <td>JPEG1 recompression as specified in https://arxiv.org/pdf/1908.03565.pdf</td>
+    <td>Requires the <a href="https://github.com/google/brunsli">brunsli</a> delegate library.</td>
+  </tr>
+
+  <tr>
     <td>MAN</td>
     <td>R</td>
     <td>Unix reference manual pages</td>
@@ -686,7 +699,7 @@
     <td>MRW</td>
     <td>R</td>
     <td>Sony (Minolta) Raw Image File</td>
-    <td> </td>
+    <td>Set <code>-define dng:use-camera-wb=true</code> to use the RAW-embedded color profile for Sony cameras.</td>
   </tr>
 
   <tr>
@@ -804,7 +817,7 @@
     <td>PDF</td>
     <td>RW</td>
     <td>Portable Document Format</td>
-    <td>Requires <a href="http://www.cs.wisc.edu/%7Eghost">Ghostscript</a> to read.  By default, ImageMagick sets the page size to the MediaBox. Some PDF files, however, have a CropBox or TrimBox that is smaller than the MediaBox and may include white space, registration or cutting marks outside the CropBox or TrimBox. To force ImageMagick to use the CropBox or TrimBox rather than the MediaBox, use <a href="command-line-options.html#define">-define</a> (e.g. <code>-define pdf:use-cropbox=true</code> or <code>-define pdf:use-trimbox=true</code>).  Use <a href="command-line-options.html#density">-density</a> to improve the appearance of your PDF rendering (e.g. -density 300x300).  Use <a href="command-line-options.html#alpha">-alpha remove </a> to remove transparency. To specify direct conversion from  Postscript to PDF, use <code>-define delegate:bimodel=true</code>. Use <code>-define pdf:fit-page=true</code> to scale to the page size. To immediately stop processing upon an error, set <code>-define pdf:stop-on-error</code> to <code>true</code>. To set the page direction preferences to right-to-left, try  <code>-define pdf:page-direction=right-to-left</code>.</td>
+    <td>Requires <a href="http://www.cs.wisc.edu/%7Eghost">Ghostscript</a> to read.  By default, ImageMagick sets the page size to the MediaBox. Some PDF files, however, have a CropBox or TrimBox that is smaller than the MediaBox and may include white space, registration or cutting marks outside the CropBox or TrimBox. To force ImageMagick to use the CropBox or TrimBox rather than the MediaBox, use <a href="command-line-options.html#define">-define</a> (e.g. <code>-define pdf:use-cropbox=true</code> or <code>-define pdf:use-trimbox=true</code>).  Use <a href="command-line-options.html#density">-density</a> to improve the appearance of your PDF rendering (e.g. -density 300x300).  Use <a href="command-line-options.html#alpha">-alpha remove </a> to remove transparency. To specify direct conversion from  Postscript to PDF, use <code>-define delegate:bimodel=true</code>. Use <code>-define pdf:fit-page=true</code> to scale to the page size. To immediately stop processing upon an error, set <code>-define pdf:stop-on-error</code> to <code>true</code>. To set the page direction preferences to right-to-left, try  <code>-define pdf:page-direction=right-to-left</code>. Use <a href="command-line-options.html#alpha">-alpha remove </a> to remove transparency.</td>
   </tr>
 
   <tr>
@@ -927,6 +940,13 @@
   </tr>
 
   <tr>
+    <td>POCKETMOD</td>
+    <td>RW</td>
+    <td>Pocketmod personal organizer format</td>
+    <td>Example usage: <code>convert -density 300 pages?.pdf pocketmod:organize.pdf</code> </td>
+  </tr>
+
+  <tr>
     <td><a href="http://netpbm.sourceforge.net/doc/ppm.html">PPM</a></td>
     <td>RW</td>
     <td>Portable pixmap format (color)</td>
@@ -937,7 +957,7 @@
     <td>PS</td>
     <td>RW</td>
     <td>Adobe PostScript file</td>
-    <td>Requires <a href="http://www.cs.wisc.edu/%7Eghost">Ghostscript</a> to read. To force ImageMagick to respect the crop box, use <a href="command-line-options.html#define">-define</a> (e.g. <code>-define eps:use-cropbox=true</code>). Use <a href="command-line-options.html#density">-density</a> to improve the appearance of your Postscript rendering (e.g. -density 300x300). Use <a href="command-line-options.html#alpha">-alpha remove </a> to remove transparency. To specify direct conversion from PDF to Postscript, use <code>-define delegate:bimodel=true</code>.</td>
+    <td>Requires <a href="http://www.cs.wisc.edu/%7Eghost">Ghostscript</a> to read. To force ImageMagick to respect the crop box, use <a href="command-line-options.html#define">-define</a> (e.g. <code>-define eps:use-cropbox=true</code>). Use <a href="command-line-options.html#density">-density</a> to improve the appearance of your Postscript rendering (e.g. -density 300x300).  Use <a href="command-line-options.html#alpha">-alpha remove </a> to remove transparency. To specify direct conversion from PDF to Postscript, use <code>-define delegate:bimodel=true</code>.</td>
   </tr>
 
   <tr>
@@ -1004,6 +1024,13 @@
   </tr>
 
   <tr>
+    <td>RGB565</td>
+    <td>R</td>
+    <td>Raw red, green, blue pixels in the 5-6-5 format</td>
+    <td>Use <a href="command-line-options.html#size">-size</a> to specify the image width and height.</td>
+  </tr>
+
+  <tr>
     <td>RGBA</td>
     <td>RW</td>
     <td>Raw red, green, blue, and alpha samples</td>
@@ -1084,7 +1111,7 @@
     <td><a href="http://www.w3.org/Graphics/SVG">SVG</a></td>
     <td>RW</td>
     <td>Scalable Vector Graphics</td>
-    <td>ImageMagick utilizes <a href="http://www.inkscape.org/">inkscape</a> if its in your execution path otherwise <a href="http://developer.gnome.org/rsvg/">RSVG</a>. If neither are available, ImageMagick reverts to its internal SVG renderer. The default resolution is 96 DPI. Use <a href="command-line-options.html#size">-size</a> command line option to specify the maximum width and height.</td>
+    <td>ImageMagick utilizes <a href="http://www.inkscape.org/">inkscape</a> if its in your execution path otherwise <a href="http://developer.gnome.org/rsvg/">RSVG</a>. If neither are available, ImageMagick reverts to its internal SVG renderer. The default resolution is 96 DPI. Use <a href="command-line-options.html#size">-size</a> command line option to specify the maximum width and height. If you want to render a very large SVG and you trust the source, enable this option: <code>-define svg:xml-parse-huge=true</code>.</td>
   </tr>
 
   <tr>
@@ -1276,7 +1303,7 @@
 
 <p>ImageMagick supports a number of image format specifications which refer to images prepared via an algorithm, or input/output targets. The following table lists these pseudo-image formats:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <th>Tag</th>
@@ -1397,7 +1424,7 @@
     <td>PANGO</td>
     <td>R</td>
     <td>Image caption</td>
-    <td>You can configure the caption layout with these defines: <code>-define pango:auto-dir=</code><var>true/false</var>, <code>-define pango:ellipsize=</code><var>start/middle/end</var>, <code>-define pango:gravity-hint=</code><var>natural/strong/line</var>, <code>-define pango:hinting=</code><var>none/auto/full</var>, <code>-define pango:indent=</code><var>points</var>, <code>-define pango:justify=</code><var>true/false</var>, <code>-define pango:language=</code><var>en_US/etc</var>, <code>-define pango:markup=</code><var>true/false</var>, <code>-define pango:single-paragraph=</code><var>true/false</var> and <code>-define pango:wrap=</code><var>word/char/word-char</var>.</td>
+    <td>You can configure the caption layout with these defines: <code>-define pango:auto-dir=</code><var>true/false</var>, <code>-define pango:ellipsize=</code><var>start/middle/end</var>, <code>-define pango:gravity-hint=</code><var>natural/strong/line</var>, <code>-define pango:hinting=</code><var>none/auto/full</var>, <code>-define pango:indent=</code><var>points</var>, <code>-define pango:justify=</code><var>true/false</var>, <code>-define pango:language=</code><var>en_US/etc</var>, <code>-define pango:markup=</code><var>true/false</var>, <code>-define pango:single-paragraph=</code><var>true/false</var>, <code>-define pango:wrap=</code><var>word/char/word-char</var> and <code>-define pango:align=</code><var>left/center/right</var>.</td>
   </tr>
 
   <tr>
@@ -1509,7 +1536,7 @@
 
 <p>ImageMagick includes a number of built-in (embedded) images which may be referenced as if they were an image file. The <code>magick:</code> format tag may be used via the syntax <code>magick:</code><var>name</var> to request an embedded image (e.g. <code>magick:logo</code>). For backwards compatibility, the image specifications <code>GRANITE:</code>, <code>LOGO:</code>, <code>NETSCAPE:</code>, and <code>ROSE:</code> may also be used to request images with those names.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <th>Tag</th>
@@ -1559,7 +1586,7 @@
 
 <p>ImageMagick includes a number of built-in (embedded) patterns which may be referenced as if they were an image file. The <code>pattern:</code> format tag may be used via the syntax <code>pattern:</code><var>name</var> to request an embedded pattern (e.g. <code>pattern:checkerboard</code>). The pattern size is controlled with the <a href="command-line-options.html#size">-size</a> command line option.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <th>Tag</th>
@@ -1951,7 +1978,7 @@
 
 <p>ImageMagick provides a number of format identifiers which are used to add, remove, and save embedded profiles for images which can support embedded profiles. Image types which may contain embedded profiles are TIFF, JPEG, and PDF.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tbody>
   <tr>
@@ -2018,22 +2045,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="formats.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="formats.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:31 -->
\ No newline at end of file
diff --git a/www/fx.html b/www/fx.html
index 2d6671b..6a9e5c3 100644
--- a/www/fx.html
+++ b/www/fx.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>The FX Special Effects Image Operator @ ImageMagick</title>
+  <title>ImageMagick - The FX Special Effects Image Operator</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="the, fx, special, effects, image, operator, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="fx.html" rel="canonical" />
+  <link href="../www/fx.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -98,7 +104,7 @@
 
 <p>The expression can be simple:</p>
 
-<pre class="highlight"><code>convert -size 64x64 canvas:black -channel blue -fx "1/2" fx_navy.png
+<pre class="highlight"><code>magick -size 64x64 canvas:black -channel blue -fx "1/2" fx_navy.png
 </code></pre>
 
 <p>Here, we convert a black to a navy blue image:</p>
@@ -111,9 +117,9 @@
 
 <p>Or the expression can be complex:</p>
 
-<pre class="highlight"><code>convert rose.jpg \
+<pre class="highlight"><code>magick rose: \
   -fx "(1.0/(1.0+exp(10.0*(0.5-u)))-0.006693)*1.0092503" \
-  rose-sigmoidal.png'
+  rose-sigmoidal.png
 </code></pre>
 
 <p>This expression results in a high contrast version of the source image:</p>
@@ -126,9 +132,9 @@
 
 <p>The expression can include variable assignments.  Assignments, in most cases, reduce the complexity of an expression and permit some operations that might not be possible any other way.  For example, lets create a radial gradient:</p>
 
-<pre class="highlight"><code>convert -size 70x70 canvas: \
-  -fx "Xi=i-w/2; Yj=j-h/2; 1.2*(0.5-hypot(Xi,Yj)/70.0)+0.5"
-  radial-gradient.png'
+<pre class="highlight"><code>magick -size 70x70 canvas: \
+  -fx "Xi=i-w/2; Yj=j-h/2; 1.2*(0.5-hypot(Xi,Yj)/70.0)+0.5" \
+  radial-gradient.png
 </code></pre>
 
 <p>The command above returns this image:</p>
@@ -139,12 +145,33 @@
 
 <p>This FX expression adds random noise to an image:</p>
 
-<pre class="highlight"><code>convert photo.jpg -fx 'iso=32; rone=rand(); rtwo=rand(); \
+<pre class="highlight"><code>magick photo.jpg -fx 'iso=32; rone=rand(); rtwo=rand(); \
   myn=sqrt(-2*ln(rone))*cos(2*Pi*rtwo); myntwo=sqrt(-2*ln(rtwo))* \
   cos(2*Pi*rone); pnoise=sqrt(p)*myn*sqrt(iso)* \
   channel(4.28,3.86,6.68,0)/255; max(0,p+pnoise)' noisy.png
 </code></pre>
 
+<p>This Fx script utilizes a loop to create a <a href="https://en.wikipedia.org/wiki/Julia_set">Julia set</a>:</p>
+
+<pre class="highlight"><code>magick -size 400x400 xc:black -colorspace gray -fx " \
+  Xi=2.4*i/w-1.2;
+  Yj=2.4*j/h-1.2;
+  for (pixel=0.0, (hypot(Xi,Yj) &lt; 2.0) &amp;&amp; (pixel &lt; 1.0),
+    delta=Xi^2-Yj^2;
+    Yj=2.0*Xi*Yj+0.2;
+    Xi=delta+0.4;
+    pixel+=0.00390625
+  );
+  pixel == 1.0 ? 0.0 : pixel" \
+  \( -size 1x1 xc:white xc:red xc:orange xc:yellow xc:green1 xc:cyan xc:blue \
+     xc:blueviolet xc:white -reverse +append -filter Cubic -resize 1024x1! \) \
+  -clut -rotate -90 julia-set.png
+</code></pre>
+
+<ul>
+  <a href="../images/julia-set.png"><img src="../images/julia-set.png" width="160" height="160" alt="Julia Fractals" /></a>
+</ul>
+
 <p>See <a href="../Usage/transform/index.html#fx">Using FX, The Special Effects Image Operator</a> for more examples.</p>
 
 <p>The next section discusses the FX expression language.</p>
@@ -162,8 +189,8 @@
     <dd class="col-md-8"> E (Euler's number), Epsilon, QuantumRange, QuantumScale, Opaque, Phi (golden ratio), Pi, Transparent</dd>
   <dt class="col-md-4"> FX operators (in order of precedence): </dt>
      <dd class="col-md-8"> ^ (power), unary -, *, /, % (modulo), +, -,
-     &lt;&lt;, &gt;&gt;, &lt;, &lt;=, &gt;, &gt;=, ==, !=,
-     &amp; (bitwise AND),   | (bitwise OR),
+     &lt;&lt;, &gt;&gt;, &lt;, &lt;=, &gt;, &gt;=, +=, -=, *=, /=, ++, --,
+     ==, !=, &amp; (bitwise AND),   | (bitwise OR),
      &amp;&amp; (logical AND),  || (logical OR),
      ~ (logical NOT),  ?: (ternary conditional)</dd>
   <dt class="col-md-4"> math functions: </dt>
@@ -177,59 +204,59 @@
   <dt class="col-md-4"> color hex values:</dt>
     <dd class="col-md-8"> #ccc, #cbfed0, #b9e1cc00, etc.</dd>
   <dt class="col-md-4"> symbols:</dt><dd class="col-md-8"><dl>
-     <li><code>u</code>=> first image in list</li>
-     <li><code>v</code>=> second image in list</li>
-     <li><code>s</code>=> current image in list (for %[fx:] otherwise = u)</li>
-     <li><code>t</code>=> index of current image (s) in list</li>
-     <li><code>n</code>=> number of images in list</li>
+     <dd><code>u</code>: first image in list</dd>
+     <dd><code>v</code>: second image in list</dd>
+     <dd><code>s</code>: current image in list (for %[fx:] otherwise = u)</dd>
+     <dd><code>t</code>: index of current image (s) in list</dd>
+     <dd><code>n</code>: number of images in list</dd>
 
-     <li><code>i</code>=> column offset</li>
-     <li><code>j</code>=> row offset</li>
-     <li><code>p</code>=> pixel to use (absolute or relative to current pixel)</li>
+     <dd><code>i</code>: column offset</dd>
+     <dd><code>j</code>: row offset</dd>
+     <dd><code>p</code>: pixel to use (absolute or relative to current pixel)</dd>
 
-     <li><code>w</code>=> width of this image</li>
-     <li><code>h</code>=> height of this image</li>
-     <li><code>z</code>=> channel depth</li>
+     <dd><code>w</code>: width of this image</dd>
+     <dd><code>h</code>: height of this image</dd>
+     <dd><code>z</code>: channel depth</dd>
 
-     <li><code>r</code>=> red value (from RGBA), of a specific or current pixel</li>
-     <li><code>g</code>=> green</li>
-     <li><code>b</code>=> blue</li>
-     <li><code>a</code>=> alpha</li>
-     <li><code>o</code>=> opacity</li>
+     <dd><code>r</code>: red value (from RGBA), of a specific or current pixel</dd>
+     <dd><code>g</code>: green</dd>
+     <dd><code>b</code>: blue</dd>
+     <dd><code>a</code>: alpha</dd>
+     <dd><code>o</code>: opacity</dd>
 
-     <li><code>c</code>=> cyan value of CMYK color of pixel</li>
-     <li><code>y</code>=> yellow</li>
-     <li><code>m</code>=> magenta</li>
-     <li><code>k</code>=> black</li>
+     <dd><code>c</code>: cyan value of CMYK color of pixel</dd>
+     <dd><code>y</code>: yellow</dd>
+     <dd><code>m</code>: magenta</dd>
+     <dd><code>k</code>: black</dd>
 
-     <li><code>intensity</code>=> pixel intensity</li>
+     <dd><code>intensity</code>: pixel intensity</dd>
 
-     <li><code>hue</code>=> pixel hue</li>
-     <li><code>saturation</code>=> pixel saturation</li>
-     <li><code>lightness</code>=> pixel lightness</li>
-     <li><code>luma</code>=> pixel luma</li>
+     <dd><code>hue</code>: pixel hue</dd>
+     <dd><code>saturation</code>: pixel saturation</dd>
+     <dd><code>lightness</code>: pixel lightness</dd>
+     <dd><code>luma</code>: pixel luma</dd>
 
-     <li><code>page.width</code>=> page width</li>
-     <li><code>page.height</code>=> page height</li>
-     <li><code>page.x</code>=> page x offset</li>
-     <li><code>page.y</code>=> page y offset</li>
+     <dd><code>page.width</code>: page width</dd>
+     <dd><code>page.height</code>: page height</dd>
+     <dd><code>page.x</code>: page x offset</dd>
+     <dd><code>page.y</code>: page y offset</dd>
 
-     <li><code>printsize.x</code>=> x printsize</li>
-     <li><code>printsize.y</code>=> y printsize</li>
+     <dd><code>printsize.x</code>: x printsize</dd>
+     <dd><code>printsize.y</code>: y printsize</dd>
 
-     <li><code>resolution.x</code>=> x resolution</li>
-     <li><code>resolution.y</code>=> y resolution</li>
+     <dd><code>resolution.x</code>: x resolution</dd>
+     <dd><code>resolution.y</code>: y resolution</dd>
 
-     <li><code>depth</code>=> image depth</li>
-     <li><code>extent</code>=> image extent</li>
-     <li><code>minima</code>=> image minima</li>
-     <li><code>maxima</code>=> image maxima</li>
-     <li><code>mean</code>=> image mean</li>
-     <li><code>standard_deviation</code>=> image standard deviation</li>
-     <li><code>kurtosis</code>=> image kurtosis</li>
-     <li><code>skewness</code>=> image skewness (add a channel specifier to compute a statistic for that channel, e.g. depth.r)</li></dl></dd>
+     <dd><code>depth</code>: image depth</dd>
+     <dd><code>extent</code>: image extent</dd>
+     <dd><code>minima</code>: image minima</dd>
+     <dd><code>maxima</code>: image maxima</dd>
+     <dd><code>mean</code>: image mean</dd>
+     <dd><code>standard_deviation</code>: image standard deviation</dd>
+     <dd><code>kurtosis</code>: image kurtosis</dd>
+     <dd><code>skewness</code>: image skewness (add a channel specifier to compute a statistic for that channel, e.g. depth.r)</dd></dl></dd>
   <dt class="col-md-4"> iterators:</dt>
-    <dd class="col-md-8"> while()</dd>
+    <dd class="col-md-8"> for(), while()</dd>
   <dt class="col-md-4"> image attributes:</dt>
   	<dd class="col-md-8"> image.depth, image.kurtosis, image.maxima, image.minima, image.resolution.x, image.resolution.y, image.skewness, image.standard_deviation</dd>
 </dl>
@@ -268,7 +295,7 @@
 <dt class="col-md-4"> <code>e</code></dt><dd class="col-md-8"> constant (2.71828...)</dd>
 <dt class="col-md-4"> <code>QuantumRange</code></dt><dd class="col-md-8"> constant maximum pixel value (255 for Q8, 65535 for Q16)</dd>
 <dt class="col-md-4"> <code>QuantumScale</code></dt><dd class="col-md-8"> constant 1.0/<code>QuantumRange</code></dd>
-<dt class="col-md-4"> <code>intensity</code></dt><dd class="col-md-8"> pixel intensity whose value respects the <a href="../www/command-line-options.html#intensity">-intensity</a> option.</dd>
+<dt class="col-md-4"> <code>intensity</code></dt><dd class="col-md-8"> pixel intensity whose value respects the <a href="command-line-options.html#intensity">-intensity</a> option.</dd>
 <dt class="col-md-4"> <code>hue</code></dt><dd class="col-md-8"> pixel hue</dd>
 <dt class="col-md-4"> <code>saturation</code></dt><dd class="col-md-8"> pixel saturation</dd>
 <dt class="col-md-4"> <code>lightness</code></dt><dd class="col-md-8"> pixel lightness; equivalent to 0.5*max(red,green,blue) + 0.5*min(red,green,blue)</dd>
@@ -298,9 +325,11 @@
 <dt class="col-md-4"> <code>erf(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> error function</dd>
 <dt class="col-md-4"> <code>exp(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> natural exponential function (<var>e<sup>x</sup></var>)</dd>
 <dt class="col-md-4"> <code>floor(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> largest integral value not greater than argument</dd>
+<dt class="col-md-4"> <code>for(</code><var>initialization</var>, <var>condition test</var>, <var>expression</var><code>)</code></dt><dd class="col-md-8"> iterate while the condition is not equal to 0</dd>
 <dt class="col-md-4"> <code>gauss(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> gaussian function; gauss(<var>x</var>)=exp(<var>-x*x/2</var>)/sqrt(2*pi)</dd>
 <dt class="col-md-4"> <code>gcd(</code><var>x</var>,<var>y</var><code>)</code></dt><dd class="col-md-8"> greatest common denominator</dd>
 <dt class="col-md-4"> <code>hypot(</code><var>x</var>,<var>y</var><code>)</code></dt><dd class="col-md-8"> the square root of x<sup>2</sup>+y<sup>2</sup></dd>
+<dt class="col-md-4"> <code>if(</code><var>condition test</var>, <var>expression</var>, <var>expression</var><code>)</code></dt><dd class="col-md-8"> interpret expression depending on condition</dd>
 <dt class="col-md-4"> <code>int(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> greatest integer function (return greatest integer less than or equal to <var>x</var>)</dd>
 <dt class="col-md-4"> <code>isnan(</code><var>x</var><code>)</code></dt><dd class="col-md-8">return 1.0 if <var>x</var> is NAN, 0.0 otherwise</dd>
 <dt class="col-md-4"> <code>j0(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> Bessel functions of <var>x</var> of the first kind of order 0</dd>
@@ -326,7 +355,7 @@
 <dt class="col-md-4"> <code>tan(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> tangent function</dd>
 <dt class="col-md-4"> <code>tanh(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> hyperbolic tangent function</dd>
 <dt class="col-md-4"> <code>trunc(</code><var>x</var><code>)</code></dt><dd class="col-md-8"> round to integer, towards zero</dd>
-<dt class="col-md-4"> <code>while(</code><var>condition</var>,<var>expression</var><code>)</code></dt><dd class="col-md-8"> iterate while the condition is not equal to 0</dd>
+<dt class="col-md-4"> <code>while(</code><var>condition test</var>, <var>expression</var><code>)</code></dt><dd class="col-md-8"> iterate while the condition is not equal to 0</dd>
 <dt class="col-md-4"> <code>image.depth, image.kurtosis, image.maxima, image.minima, image.resolution.x, image.resolution.y, image.skewness, image.standard_deviation</code></dt><dd class="col-md-8"> image attributes</dd>
 </dl>
 <p>The expression semantics include these rules:</p>
@@ -349,14 +378,14 @@
 
 <p>As an example, we form an image by averaging the first image and third images (the second (index 1) image is ignored and just junked):</p>
 
-<pre class="highlight"><code>convert image1.jpg image2.jpg image3.jpg -fx "(u+u[2])/2.0" image.jpg
+<pre class="highlight"><code>magick image1.jpg image2.jpg image3.jpg -fx "(u+u[2])/2.0" image.jpg
 </code></pre>
 
 <p>By default, the image to which <code>p</code>, <code>r</code>, <code>g</code>, <code>b</code>, <code>a</code>, etc., are applied is the current image <code>s</code> in the image list. This is equivalent to <code>u</code> except when used in an escape sequence <code>%[fx:...]</code>. </p>
 
-<p>It is important to note the special role played by the first image. This is the only image in the image sequence that is modified, other images are used only for their data. As an illustrative example, consider the following, and note that the setting <a href="../www/command-line-options.html#channel">-channel red</a> instructs <a href="../www/command-line-options.html#fx">-fx</a> to modify only the red channel; nothing in the green or blue channels will change. It is instructive to ponder why the result is not symmetric.</p>
+<p>It is important to note the special role played by the first image. This is the only image in the image sequence that is modified, other images are used only for their data. As an illustrative example, consider the following, and note that the setting <a href="command-line-options.html#channel">-channel red</a> instructs <a href="command-line-options.html#fx">-fx</a> to modify only the red channel; nothing in the green or blue channels will change. It is instructive to ponder why the result is not symmetric.</p>
 
-<pre class="highlight"><code>convert -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
+<pre class="highlight"><code>magick -channel red logo: -flop logo: -resize "20%" -fx "(u+v)/2" image.jpg
 </code></pre>
 
 <ul>
@@ -383,61 +412,63 @@
 p{12,34}.b   blue pixel value at column number 12, row 34 of the image
 </code></pre>
 
-<p>Integer values of the position retrieve the color of the pixel referenced, while non-integer position values return a blended color according to the current <a href="../www/command-line-options.html#interpolate">-interpolate</a> setting.</p>
+<p>Integer values of the position retrieve the color of the pixel referenced, while non-integer position values return a blended color according to the current <a href="command-line-options.html#interpolate">-interpolate</a> setting.</p>
 
-<p>A position outside the boundary of the image retrieves a value dictated by the <a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel</a> option setting.</p>
+<p>A position outside the boundary of the image retrieves a value dictated by the <a href="command-line-options.html#virtual-pixel">-virtual-pixel</a> option setting.</p>
 
 <h3>Apply an Expression to Select Image Channels</h3>
 
-<p>Use the <a href="../www/command-line-options.html#channel">-channel</a> setting to specify the output channel of the result. If no output channel is given, the result is set over all channels except the opacity channel. For example, to replace the red channel of <code>alpha.png</code> with the average of the green channels from the images <code>alpha.png</code> and <code>beta.png</code>, use:</p>
+<p>Use the <a href="command-line-options.html#channel">-channel</a> setting to specify the output channel of the result. If no output channel is given, the result is set over all channels except the opacity channel. For example, to replace the red channel of <code>alpha.png</code> with the average of the green channels from the images <code>alpha.png</code> and <code>beta.png</code>, use:</p>
 
-<pre class="highlight"><code>convert alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
+<pre class="highlight"><code>magick alpha.png beta.png -channel red -fx "(u.g+v.g)/2" gamma.png
 </code></pre>
 
 
 <h3>Results</h3>
 
-<p>The <a href="../www/command-line-options.html#fx">-fx</a> operator evaluates the given expression for each channel (set by <a href="../www/command-line-options.html#channel">-channel</a>) of each pixel in the first image (<code>u</code>) in the sequence. The computed values are temporarily stored in a copy (clone) of that first image until all the pixels have been processed, after which this single new image replaces the list of images in the current image sequence.  As such, in the previous example the updated version of <code>alpha.png</code> replaces both of the original images, <code>alpha.png</code> and <code>beta.png</code>, before being saved as <code>gamma.png</code>.</p>
+<p>The <a href="command-line-options.html#fx">-fx</a> operator evaluates the given expression for each channel (set by <a href="command-line-options.html#channel">-channel</a>) of each pixel in the first image (<code>u</code>) in the sequence. The computed values are temporarily stored in a copy (clone) of that first image until all the pixels have been processed, after which this single new image replaces the list of images in the current image sequence.  As such, in the previous example the updated version of <code>alpha.png</code> replaces both of the original images, <code>alpha.png</code> and <code>beta.png</code>, before being saved as <code>gamma.png</code>.</p>
 
 <p>The current image <code>s</code> is set to the first image in the sequence (<code>u</code>), and <code>t</code> to its index, 0.  The symbols <code>i</code> and <code>j</code> reference the current pixel being processed.</p>
 
 
-<p>For use with <a href="../www/command-line-options.html#format_identify_">-format</a>, the value-escape <code>%[fx:]</code> is evaluated just once for each image in the current image sequence. As each image in the sequence is being evaluated, <code>s</code> and <code>t</code> successively refer to the current image and its index, while <code>i</code> and <code>j</code> are set to zero, and the current channel set to red (<a href="../www/command-line-options.html#channel">-channel</a> is ignored). An example:</p>
+<p>For use with <a href="command-line-options.html#format_identify_">-format</a>, the value-escape <code>%[fx:]</code> is evaluated just once for each image in the current image sequence. As each image in the sequence is being evaluated, <code>s</code> and <code>t</code> successively refer to the current image and its index, while <code>i</code> and <code>j</code> are set to zero, and the current channel set to red (<a href="command-line-options.html#channel">-channel</a> is ignored). An example:</p>
 
-<pre class="highlight"><code>$ convert canvas:'rgb(25%,50%,75%)' rose: -colorspace rgb  \
-  -format 'Red channel of NW corner of image #%[fx:t] is %[fx:s]' info:
-Red channel of NW corner of image #0 is 0.453758
-Red channel of NW corner of image #1 is 0.184588
+<pre class="highlight"><code>$ magick canvas:'rgb(25%,50%,75%)' rose: -colorspace rgb  \
+  -format 'Red channel of NW corner of image #%[fx:t] is %[fx:s]\n' info:
+Red channel of NW corner of image #0 is 0.464883
+Red channel of NW corner of image #1 is 0.184582
 </code></pre>
 
 <p>Here we use the image indexes to <var>rotate</var> each image differently, and use <code>-set</code> with the image index to set a different <var>pause delay</var> on the first image in the animation:</p>
 
-<pre class="highlight"><code>convert rose: -duplicate 29 -virtual-pixel Gray -distort SRT '%[fx:360.0*t/n]' \
+<pre class="highlight"><code>magick rose: -duplicate 29 -virtual-pixel Gray -distort SRT '%[fx:360.0*t/n]' \
   -set delay '%[fx:t == 0 ? 240 : 10]' -loop 0 rose.gif"
 </code></pre>
 
-<p>The color-escape <code>%[pixel:]</code> or <code>%[hex:]</code> is evaluated once per image and per color channel in that image (<a href="../www/command-line-options.html#channel">-channel</a> is ignored), The values generated are then converted into a color string (a named color or hex color value).  The symbols <code>i</code> and <code>j</code> are set to zero, and <code>s</code> and <code>t</code> refer to each successively current image and index.</p>
+<p>The color-escape <code>%[pixel:]</code> or <code>%[hex:]</code> is evaluated once per image and per color channel in that image (<a href="command-line-options.html#channel">-channel</a> is ignored), The values generated are then converted into a color string (a named color or hex color value).  The symbols <code>i</code> and <code>j</code> are set to zero, and <code>s</code> and <code>t</code> refer to each successively current image and index.</p>
 
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="fx.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:43 -->
\ No newline at end of file
diff --git a/www/gradient.html b/www/gradient.html
index e803914..7b245b3 100644
--- a/www/gradient.html
+++ b/www/gradient.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Image Gradients @ ImageMagick</title>
+  <title>ImageMagick - Image Gradients</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="image, gradients, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/gradient.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -100,7 +106,7 @@
 
 <p>The default for a linear gradient has color1 at the top of the image and color2 at the bottom of the image. Similarly, the default for a radial gradient has color1 at the center of the image and color2 at the boundary of the image.</p>
 
-<p>Gradient colors may be any valid color defined per <a href="color.html" target="_blank">../www/color.html</a>. The named colors of black/white/grayXX and gray(XX[%]) are non-linear gray. For Unix systems, enclose rgb(a) and hex colors in quotes. Use double quotes, if using variables for the values.</p>
+<p>Gradient colors may be any valid color defined per <a href="../www/color.html" target="_blank">../www/color.html</a>. The named colors of black/white/grayXX and gray(XX[%]) are non-linear gray. For Unix systems, enclose rgb(a) and hex colors in quotes. Use double quotes, if using variables for the values.</p>
 
 <p>Here is an example linear (as opposed to radial) gradient:</p>
 
@@ -249,22 +255,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="gradient.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="gradient.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:14 -->
\ No newline at end of file
diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html
index 0c05ad0..d9aed7b 100644
--- a/www/high-dynamic-range.html
+++ b/www/high-dynamic-range.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>High Dynamic-Range Images @ ImageMagick</title>
+  <title>ImageMagick - High Dynamic-Range Images</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="high, dynamic-range, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/high-dynamic-range.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -114,22 +120,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="high-dynamic-range.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="high-dynamic-range.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:14 -->
\ No newline at end of file
diff --git a/www/history.html b/www/history.html
index a64cc9a..bd9316b 100644
--- a/www/history.html
+++ b/www/history.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>History @ ImageMagick</title>
+  <title>ImageMagick - History</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="history, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="history.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -57,7 +62,7 @@
         <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
-        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
+        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server//">Community</a>
       </li>
     </ul>
     <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -106,17 +112,18 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="history.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="history.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
@@ -124,3 +131,4 @@
   <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 28th November 2019 09:11 -->
\ No newline at end of file
diff --git a/www/identify.html b/www/identify.html
index 8436a78..d41c63f 100644
--- a/www/identify.html
+++ b/www/identify.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Identify @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Identify</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, identify, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="identify.html" rel="canonical" />
+  <link href="../www/identify.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,23 +72,24 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="identify.html#usage">Example Usage</a> • <a href="identify.html#options">Option Summary</a></p>
 
-<p class="lead magick-description">The <code>identify</code> program describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image.  Many more attributes are available with the verbose option.  See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>identify</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">The <code>identify</code> program describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image.  Many more attributes are available with the verbose option.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>identify</code> command or see below for example usages of the command.</p>
 
 <h2><a class="anchor" id="usage"></a>Example Usage</h2>
 
@@ -93,6 +99,10 @@
 rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000
 </code></pre>
 
+<p>By default, <code>identify</code> provides the following output:</p>
+
+<p><code>Filename[frame #] image-format widthxheight page-widthxpage-height+x-offset+y-offset colorspace user-time elapsed-time</code></p>
+
 <p>Next, we look at the same image in greater detail:</p>
 
 <pre class="pre-scrollable"><code>-> magick identify -verbose rose.jpg
@@ -215,213 +225,213 @@
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#antialias">-antialias</a></td>
+    <td><a href="command-line-options.html#antialias">-antialias</a></td>
     <td>remove pixel-aliasing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decrypt image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip">-clip</a></td>
+    <td><a href="command-line-options.html#clip">-clip</a></td>
     <td>clip along the first path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
+    <td><a href="command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
     <td>associate clip mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
+    <td><a href="command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
     <td>clip along a named path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#crop">-crop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#crop">-crop <var>geometry</var></a></td>
     <td>crop the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#endian">-endian <var>type</var></a></td>
+    <td><a href="command-line-options.html#endian">-endian <var>type</var></a></td>
     <td>endianness (MSB or LSB) of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#features">-features <var>distance</var></a></td>
+    <td><a href="command-line-options.html#features">-features <var>distance</var></a></td>
     <td>analyze image features (e.g. contract, correlations, etc.).</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#format_identify_">-format <var>string</var></a></td>
+    <td><a href="command-line-options.html#format_identify_">-format <var>string</var></a></td>
     <td>output formatted image characteristics</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gamma">-gamma <var>value</var></a></td>
+    <td><a href="command-line-options.html#gamma">-gamma <var>value</var></a></td>
     <td>level of gamma correction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
+    <td><a href="command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
     <td>convert image to grayscale</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#list">-list <var>type</var></a></td>
+    <td><a href="command-line-options.html#list">-list <var>type</var></a></td>
     <td>Color, Configure, Delegate, Format, Magic, Module, Resource, or Type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mask">-mask <var>filename</var></a></td>
+    <td><a href="command-line-options.html#mask">-mask <var>filename</var></a></td>
     <td>associate a mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#moments">-moments</a></td>
+    <td><a href="command-line-options.html#moments">-moments</a></td>
     <td>display image moments and perceptual hash.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#precision">-precision <var>value</var></a></td>
+    <td><a href="command-line-options.html#precision">-precision <var>value</var></a></td>
     <td>set the maximum number of significant digits to be printed</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strip">-strip</a></td>
+    <td><a href="command-line-options.html#strip">-strip</a></td>
     <td>strip image of all profiles and comments</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unique">-unique</a></td>
+    <td><a href="command-line-options.html#unique">-unique</a></td>
     <td>display image the number of unique colors in the image.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#units">-units <var>type</var></a></td>
+    <td><a href="command-line-options.html#units">-units <var>type</var></a></td>
     <td>the units of image resolution</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
@@ -432,22 +442,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="identify.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:38 -->
\ No newline at end of file
diff --git a/www/import.html b/www/import.html
index fe47611..ba5ac4e 100644
--- a/www/import.html
+++ b/www/import.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Import @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Import</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, import, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/import.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -434,22 +440,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="import.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="import.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:24 -->
\ No newline at end of file
diff --git a/www/index.html b/www/index.html
index 83d5dc4..80cd568 100644
--- a/www/index.html
+++ b/www/index.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Convert, Edit, Or Compose Bitmap Images @ ImageMagick</title>
+  <title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="convert, edit, or, compose, bitmap, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="index.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item active">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -86,28 +92,23 @@
 <p class="lead magick-description"><a href="../images/wizard.png" title="And Now a Touch of Magick"><img class="img-fluid magick-icon" id="logo" alt="And Now a Touch of Magick" width="265" height="352" src="../images/wizard.jpg" /></a> 
 Use ImageMagick<sup><a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;entry=78333969">&#174;</a></sup> to create, edit, compose, or convert bitmap images.  It can read and write images in a variety of <a href="../www/formats.html">formats</a> (over 200) including PNG, JPEG, GIF, HEIC, TIFF, <a href="../www/motion-picture.html">DPX</a>, <a href="../www/high-dynamic-range.html">EXR</a>, WebP, Postscript, PDF, and SVG.  Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.</p>
 
-<p>The functionality of ImageMagick is typically utilized from the <a href="../www/command-line-processing.html">command-line</a> or you can use the features from programs written in your favorite language. Choose from these interfaces: <a href="../www/develop.html#ada">G2F</a> (Ada), <a href="../www/develop.html#c">MagickCore</a> (C), <a href="../www/develop.html#c">MagickWand</a> (C), <a href="../www/develop.html#ch">ChMagick</a> (Ch), <a href="../www/develop.html#com_">ImageMagickObject</a> (COM+), <a href="../www/develop.html#c__">Magick++</a> (C++), <a href="../www/develop.html#java">JMagick</a> (Java), <a href="../www/develop.html#julia">JuliaIO</a> (Julia), <a href="../www/develop.html#lisp">L-Magick</a> (Lisp), <a href="../www/develop.html#lua">Lua</a> (LuaJIT), <a href="../www/develop.html#neko">NMagick</a> (Neko/haXe), <a href="../www/develop.html#dot-net">Magick.NET</a> (.NET), <a href="../www/develop.html#pascal">PascalMagick</a> (Pascal),  <a href="../www/develop.html#perl">PerlMagick</a> (Perl), <a href="../www/develop.html#php">MagickWand for PHP</a> (PHP),  <a href="../www/develop.html#php">IMagick</a> (PHP), <a href="../www/develop.html#python">PythonMagick</a> (Python), <a href="../www/develop.html#r">magick</a> (R), <a href="../www/develop.html#ruby">RMagick</a> (Ruby), or <a href="../www/develop.html#tcl">TclMagick</a> (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and <var>automagically</var>.</p>
-<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 <p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="license.html">license</a>.</p>
+<p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 
-<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to help prevent security vulnerabilities.</p>
+<p>The current release is ImageMagick <a href="../www/download.html">7.0.9-14</a>.  It runs on <a href="../www/download.html#unix">Linux</a>, <a href="../www/download.html#windows">Windows</a>, <a href="../www/download.html#macosx">Mac Os X</a>, <a href="../www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
 
-<p>The current release is ImageMagick <a href="../www/download.html">7.0.8-23</a>.  It runs on <a href="../www/download.html#unix">Linux</a>, <a href="../www/download.html#windows">Windows</a>, <a href="../www/download.html#macosx">Mac Os X</a>, <a href="../www/download.html#iOS">iOS</a>, Android OS, and others.</p>
-
-<p>The authoritative ImageMagick web site is <a href="../">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a>.</p>
-
-<p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="../">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
 
 <h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
-<p>Here are just a few <a href="examples.html">examples</a> of what ImageMagick can do for you:</p>
-<div class="table-responsive">
+<p>Here are just a few <a href="../www/examples.html">examples</a> of what ImageMagick can do for you:</p>
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td><a href="../Usage/anim_basics/">Animation</a></td>
     <td>create a GIF animation sequence from a group of images.</td>
   </tr>
   <tr>
-    <td><a href="color-management.html">Color management</a></td>
+    <td><a href="../www/color-management.html">Color management</a></td>
     <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
   </tr>
   <tr>
@@ -119,11 +120,11 @@
     <td>bidirectional text support and shaping.</td>
   </tr>
   <tr>
-    <td><a href="composite.html">Composite</a></td>
+    <td><a href="../www/composite.html">Composite</a></td>
     <td>overlap one image over another.</td>
   </tr>
   <tr>
-    <td><a href="connected-components.html">Connected component labeling</a></td>
+    <td><a href="../www/connected-components.html">Connected component labeling</a></td>
     <td>uniquely label connected regions in an image.</td>
   </tr>
   <tr>
@@ -139,7 +140,7 @@
     <td>implements the forward and inverse <a href="https://en.wikipedia.org/wiki/Discrete_Fourier_transform">DFT</a>.</td>
   </tr>
   <tr>
-    <td><a href="distribute-pixel-cache.html">Distributed pixel cache</a></td>
+    <td><a href="../www/distribute-pixel-cache.html">Distributed pixel cache</a></td>
     <td>offload intermediate pixel storage to one or more remote servers.</td>
   </tr>
   <tr>
@@ -147,7 +148,7 @@
     <td>add shapes or text to an image.</td>
   </tr>
   <tr>
-    <td><a href="cipher.html">Encipher or decipher an image</a></td>
+    <td><a href="../www/cipher.html">Encipher or decipher an image</a></td>
     <td>convert ordinary images into unintelligible gibberish and back again.</td>
   </tr>
   <tr>
@@ -160,22 +161,26 @@
   </tr>
   <tr>
     <td><a href="../www/architecture.html#distributed">Heterogeneous distributed processing</a></td>
-    <td>certain algorithms are <a href="opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
+    <td>certain algorithms are <a href="../www/opencl.html">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</td>
   </tr>
   <tr>
     <td><a href="../www/high-dynamic-range.html">High dynamic-range images</a></td>
     <td>accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</td>
   </tr>
   <tr>
-    <td><a href="fx.html">Image calculator</a></td>
-    <td>apply a mathematical expression to an image or image channels.</td>
+    <td><a href="../www/clahe.html">Histogram Equalization</a></td>
+    <td>Use adaptive histogram equalization to improve contrast in images.</td>
+  </tr>
+  <tr>
+    <td><a href="../www/fx.html">Image calculator</a></td>
+    <td>apply a mathematical expression to an image, image sequence, or image channels.</td>
   </tr>
   <tr>
     <td><a href="../www/gradient.html">Image gradients</a></td>
     <td>create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</td>
   </tr>
   <tr>
-    <td><a href="identify.html">Image identification</a></td>
+    <td><a href="../www/identify.html">Image identification</a></td>
     <td>describe the format and attributes of an image.</td>
   </tr>
   <tr>
@@ -216,7 +221,7 @@
   </tr>
   <tr>
     <td><a href="../www/architecture.html#threads">Threads of execution support</a></td>
-    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
+    <td>ImageMagick is thread safe and most internal algorithms execute in <a href="../www/openmp.html">parallel</a> to take advantage of speed-ups offered by multicore processor chips.</td>
   </tr>
   <tr>
     <td><a href="../Usage/resize/">Transform</a></td>
@@ -233,21 +238,24 @@
 </table>
 </div>
 
-<p><a href="../Usage/">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="../www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
+<p><a href="../Usage/" target="_blank">Examples of ImageMagick Usage</a> shows how to use ImageMagick from the <a href="../www/command-line-processing.html">command-line</a> to accomplish any of these tasks and much more. Also, see <a href="http://www.fmwconcepts.com/imagemagick/" target="_blank">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations. With <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>, use ImageMagick without having to install ImageMagick on your server or desktop.</p>
 
 <h2><a class="anchor" id="news"></a>News</h2>
 
-<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="porting.html">porting guide</a>.</p>
+<p>Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.  Learn how ImageMagick version 7 differs from previous versions with our <a href="../www/porting.html">porting guide</a>.</p>
 
 <p>ImageMagick best practices <strong>strongly</strong> encourages you to configure a <a href="../www/security-policy.html">security policy</a> that suits your local environment.</p>
 
+<p>The ImageMagick development process ensures a stable API and <a href="https://abi-laboratory.pro/tracker/timeline/imagemagick/">ABI</a>. Before each ImageMagick release, we perform a comprehensive security assessment that includes <a href="https://github.com/google/sanitizers/wiki/AddressSanitizer">memory error</a>, <a href="https://github.com/google/sanitizers/wiki/ThreadSanitizer">thread data race</a> detection, and continuous <a href="https://github.com/google/oss-fuzz">fuzzing</a> to detect and prevent security vulnerabilities.</p>
+
 <p>As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace.  Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).</p>
 
 <p>Want more performance from ImageMagick?  Try these options:</p>
 
 <ul>
-<li>Add more memory to your system, see <a href="../www/architecture.html#cache">the pixel cache</a>;</li>
-<li>Add more cores to your system, see <a href="../www/architecture.html#threads">threads of execution support</a>;</li>
+<li>add more memory to your system, see <a href="../www/architecture.html#cache">the pixel cache</a>;</li>
+<li>add more cores to your system, see <a href="../www/architecture.html#threads">threads of execution support</a>;</li>
+<li>reduce lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library;</li>
 <li>push large images to a solid-state drive, see <a href="../www/architecture.html#tera-pixel">large image support</a>.</li>
 </ul>
 <p>If these options are prohibitive, you can reduce the quality of the image results.  The default build is Q16 HDRI.  If you disable <a href="../www/high-dynamic-range.html">HDRI</a>, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations.  The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative).  If you build the Q8 non-HDRI  version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values.  For a Q8 non-HDRI build of ImageMagick, use these <code>configure</code> script options: <code>--with-quantum-depth=8 --disable-hdri</code>.</p>
@@ -259,22 +267,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="index.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="index.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:10 -->
\ No newline at end of file
diff --git a/www/install-source.html b/www/install-source.html
index 4211e76..df5d511 100644
--- a/www/install-source.html
+++ b/www/install-source.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Install from Source @ ImageMagick</title>
+  <title>ImageMagick - Install from Source</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="install, from, source, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="install-source.html" rel="canonical" />
+  <link href="../www/install-source.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -88,7 +94,7 @@
 <pre class="highlight"><code>identify -version
 </code></pre>
 
-<p>If the <a href="identify.html">identify</a> program executes and identifies itself as ImageMagick, you may not need to install ImageMagick from source unless you want to add support for additional image formats or upgrade to a newer version.  You also have the option of installing a pre-compiled <a href="../www/download.html">binary release</a>.  However, if you still want to install from source, choose a platform, <a href="install-source.html#unix">Unix</a> or <a href="install-source.html#windows">Windows</a>.  Before installing from source, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>
+<p>If the <a href="identify.html">identify</a> program executes and identifies itself as ImageMagick, you may not need to install ImageMagick from source unless you want to add support for additional image formats or upgrade to a newer version.  You also have the option of installing a pre-compiled <a href="download.html">binary release</a>.  However, if you still want to install from source, choose a platform, <a href="install-source.html#unix">Unix</a> or <a href="install-source.html#windows">Windows</a>.  Before installing from source, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>
 
 <p>The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://git.imagemagick.org/repos/ImageMagick">https://git.imagemagick.org/repos/ImageMagick</a>.  We test and deploy ImageMagick with <a href="https://travis-ci.org/ImageMagick">Travis CI</a> and <a href="https://ci.appveyor.com/project/dlemstra/imagemagick-windows">AppVeyor</a>.</p>
 
@@ -103,8 +109,8 @@
 
 <p>Next configure and compile ImageMagick.  Note the <a href="https://en.wikipedia.org/wiki/Pkg-config">pkg-config</a> script is required so that ImageMagick can find certain optional delegate libraries on your system.  To configure, type:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre>
-<p>If ImageMagick configured and compiled without complaint, you are ready to install it on your system.  Administrator privileges are required to install.  To install, type</p>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre><p>For advanced users, we recommend a modules build:</p>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>./configure --with-modules --enable-shared --with-perl</span></pre><p>If ImageMagick configured and compiled without complaint, you are ready to install it on your system.  Administrator privileges are required to install.  To install, type</p>
 
 <pre class="highlight"><code>sudo make install
 </code></pre>
@@ -124,13 +130,13 @@
 <pre class="highlight"><code>make check
 </code></pre>
 
-<p>Congratulations, you have a working ImageMagick distribution and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="../www/develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>
+<p>Congratulations, you have a working ImageMagick distribution and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>
 
-<p>The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider.  For example, what does one do if ImageMagick fails to configure or compile?  Or what if you don't have administrator privileges and what if you don't want to install ImageMagick in the default <code>/../usr/local</code> folder?  You will find the answer to these questions, and more, in <a href="advanced-unix-installation.html">Advanced Unix Source Installation</a>.</p>
+<p>The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider.  For example, what does one do if ImageMagick fails to configure or compile?  Or what if you don't have administrator privileges and what if you don't want to install ImageMagick in the default <code>/../usr/local</code> folder?  You will find the answer to these questions, and more, in <a href="../www/advanced-unix-installation.html">Advanced Unix Source Installation</a>.</p>
 
 <h2><a class="anchor" id="windows"></a>Install from Windows Source</h2>
 
-<p>Building ImageMagick source for Windows requires a modern version of Microsoft Visual Studio IDE.  Users have reported success with the Borland C++ compiler as well.  If you don't have a compiler you can still install a self-installing <a href="../www/download.html">binary release</a>.</p>
+<p>Building ImageMagick source for Windows requires a modern version of Microsoft Visual Studio IDE.  Users have reported success with the Borland C++ compiler as well.  If you don't have a compiler you can still install a self-installing <a href="download.html">binary release</a>.</p>
 
 <p>Clone the Github repo:<p>
 
@@ -140,45 +146,47 @@
 
 <pre class="highlight"><code>unzip ImageMagick-windows.zip</code></pre>
 
-<p>Next, launch your Visual Studio IDE and choose <kbd>Open->Project</kbd>.  Select the configure workspace from the <kbd>ImageMagick-7.0.8/VisualMagick/configure</kbd> folder and press Open.  Choose <kbd>Build->Build Solution</kbd>
+<p>Next, launch your Visual Studio IDE and choose <kbd>Open->Project</kbd>.  Select the configure workspace from the <kbd>ImageMagick-7.0.9/VisualMagick/configure</kbd> folder and press Open.  Choose <kbd>Build->Build Solution</kbd>
 to compile the program and on completion run the program.</p>
 
 <p><img class="img-fluid mx-auto d-block" src="../images/configure.jpg" alt="[configure]" /></p>
 
-<p>Press <kbd>Next</kbd> and click on the multi-threaded static build.  If you are using the Visual Studio 6.0 IDE, make sure no check is next to the <var>Generate Visual Studio 7</var> format option.  Now press, on <kbd>Next</kbd> twice and finally <kbd>Finish</kbd>.  The configuration utility just created a workspace required to build ImageMagick from source.  Choose <kbd>Open->Project</kbd> and select the VisualStaticMT workspace from the <kbd>ImageMagick-7.0.8/VisualMagick/</kbd>  folder.  Finally, choose <kbd>Build->Build Solution</kbd> to compile and build the ImageMagick distribution.</p>
+<p>Press <kbd>Next</kbd> and click on the multi-threaded static build.  If you are using the Visual Studio 6.0 IDE, make sure no check is next to the <var>Generate Visual Studio 7</var> format option.  Now press, on <kbd>Next</kbd> twice and finally <kbd>Finish</kbd>.  The configuration utility just created a workspace required to build ImageMagick from source.  Choose <kbd>Open->Project</kbd> and select the VisualStaticMT workspace from the <kbd>ImageMagick-7.0.9/VisualMagick/</kbd>  folder.  Finally, choose <kbd>Build->Build Solution</kbd> to compile and build the ImageMagick distribution.</p>
 
 <p>To verify ImageMagick is working properly, launch a MS-DOS Command Prompt window and type</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>convert logo: image.jpg</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>convert logo: image.jpg</span></pre>
 <p>For a more comprehensive test, run the ImageMagick validation suite:</p>
 
 <pre class="highlight"><code>validate
 </code></pre>
 
-<p>Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="../www/develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>
+<p>Congratulations, you have a working ImageMagick distribution under Windows and you are ready to use ImageMagick to <a href="../Usage/">convert, compose, or edit</a> your images or perhaps you'll want to use one of the <a href="develop.html">Application Program Interfaces</a> for C, C++, Perl, and others.</p>
 
-<p>The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider.  For example, what does one do if ImageMagick fails to configure or compile?  Or what if you want to install ImageMagick in a place other than the <kbd>ImageMagick-7.0.8/VisualMagick/bin</kbd> folder?  Or perhaps you want to build and install the <a href="ImageMagickObject.html">ImageMagickObject</a> COM+ component.  You will find the answer to these questions, and more, in <a href="advanced-windows-installation.html">Advanced Windows Source Installation</a>.</p>
+<p>The above instructions will satisfy a great number of ImageMagick users, but we suspect a few will have additional questions or problems to consider.  For example, what does one do if ImageMagick fails to configure or compile?  Or what if you want to install ImageMagick in a place other than the <kbd>ImageMagick-7.0.9/VisualMagick/bin</kbd> folder?  Or perhaps you want to build and install the <a href="ImageMagickObject.html">ImageMagickObject</a> COM+ component.  You will find the answer to these questions, and more, in <a href="../www/advanced-windows-installation.html">Advanced Windows Source Installation</a>.</p>
 
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="install-source.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:38 -->
\ No newline at end of file
diff --git a/www/jp2.html b/www/jp2.html
index eae846b..24bf79f 100644
--- a/www/jp2.html
+++ b/www/jp2.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>JP2 Encoding Options @ ImageMagick</title>
+  <title>ImageMagick - JP2 Encoding Options</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="jp2, encoding, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/jp2.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -93,42 +99,42 @@
 
 <p>Use this command to convert a JPEG-2000 image to the PNG image format:</p>
 
-<pre class="highlight"><code>convert wizard.jp2 wizard.png
+<pre class="highlight"><code>magick convert wizard.jp2 wizard.png
 </code></pre>
 
 <p>Let's convert a JPEG image to a lossless JPEG-2000 image:</p>
 
-<pre class="highlight"><code>convert wizard.jpg -quality 0 wizard.jp2
+<pre class="highlight"><code>magick convert wizard.jpg -quality 0 wizard.jp2
 </code></pre>
 
 <p>Here we extract an area from the image:</p>
 
-<pre class="highlight"><code>convert 'wizard.jp2[640x480+0+0]' wizard.png
+<pre class="highlight"><code>magick convert 'wizard.jp2[640x480+0+0]' wizard.png
 </code></pre>
 
 <p>Extract a particular tile from the image:</p>
 
-<pre class="highlight"><code>convert 'wizard.jp2[2]' wizard.png
+<pre class="highlight"><code>magick convert 'wizard.jp2[2]' wizard.png
 </code></pre>
 
 <p>Specify a subsampling factor:</p>
 
-<pre class="highlight"><code>convert wizard.png -colorspace YUV -sampling-factor 2,2 wizard.jp2
+<pre class="highlight"><code>magick convert wizard.png -colorspace YUV -sampling-factor 2,2 wizard.jp2
 </code></pre>
 
 <p>Save a tiled JPEG-2000 image:</p>
 
-<pre class="highlight"><code>convert wizard.png 'wizard.png[512x512]'
+<pre class="highlight"><code>magick convert wizard.png 'wizard.png[512x512]'
 </code></pre>
 
 <p>Write a digital Cinema 4K profile compliant codestream:</p>
 
-<pre class="highlight"><code>convert wizard.png -resize 4096x2160! -depth 12 wizard.jp2
+<pre class="highlight"><code>magick convert wizard.png -resize 4096x2160! -depth 12 wizard.jp2
 </code></pre>
 
 <p>Here is a complete list of JPEG-2000 decoding options:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>jp2:quality-layers=<var>x</var></td>
@@ -142,7 +148,7 @@
 
 <p>Here is a complete list of JPEG-2000 encoding options:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>jp2:number-resolutions=<var>x</var></td>
@@ -166,22 +172,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="jp2.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="jp2.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 10:31 -->
\ No newline at end of file
diff --git a/www/license.html b/www/license.html
index 64fc42e..bbcf69a 100644
--- a/www/license.html
+++ b/www/license.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>License @ ImageMagick</title>
+  <title>ImageMagick - License</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="license, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="license.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -134,7 +140,7 @@
 
 <p>The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:</p>
 
-<p>Copyright © 1999-2018 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
+<p>Copyright © 1999-2017 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
 
 <p><b>1. Definitions</b>.</p>
 
@@ -211,21 +217,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="license.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="license.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:49 -->
\ No newline at end of file
diff --git a/www/links.html b/www/links.html
index 600da29..c83c6ba 100644
--- a/www/links.html
+++ b/www/links.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Related Web Sites @ ImageMagick</title>
+  <title>ImageMagick - Related Web Sites</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="related, web, sites, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/links.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -87,8 +93,8 @@
 
 <h2><a class="anchor" id="web"></a>Use ImageMagick Online</h2>
 <ul>
-  <dd class="col-md-8"><a href="http://jqmagick.imagemagick.org/">JqMagick</a></dd>
-  <dd class="col-md-8"><a href="https://www.imagemagick.org/MagickStudio/">Magick Studio</a></dd>
+  <dd class="col-md-8"><a href="../jqmagick">JqMagick</a></dd>
+  <dd class="col-md-8"><a href="../MagickStudio/">Magick Studio</a></dd>
 </ul>
 
 <h2><a class="anchor" id="command-line"></a>Command-line Tutorials</h2>
@@ -160,7 +166,7 @@
 
 <h2><a class="anchor" id="other-projects"></a>Other Projects</h2>
 <ul>
-  <dd class="col-md-8"><a href="https://github.com/puelocesar/android-lib-magick">ImageMagick API on the Android Platform</a></dd>
+  <dd class="col-md-8"><a href="https://github.com/cherryleafroad/Android-ImageMagick7">ImageMagick API on the Android Platform</a></dd>
   <dd class="col-md-8"><a href="https://imagemagick.org/download/iOS/">ImageMagick API on the iOS / iPhone  Platform</a></dd>
   <dd class="col-md-8"><a href="http://www.wizards-toolkit.org/">Wizard's Toolkit</a></dd>
   <dd class="col-md-8"><a href="http://www.multipole.org/">Computational Simulation of Multi-Body Interactions with O(n) Scaling</a></dd>
@@ -170,22 +176,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="links.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="links.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:49 -->
\ No newline at end of file
diff --git a/www/magick++.html b/www/magick++.html
index 237c94d..1668ac8 100644
--- a/www/magick++.html
+++ b/www/magick++.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Magick++, C++ API @ ImageMagick</title>
+  <title>ImageMagick - Magick++, C++ API</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magick++, c++, api, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="magick++.html" rel="canonical" />
+  <link href="../www/magick++.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -85,7 +91,7 @@
 
 <a class="anchor" id="intro"></a>
 <p class="lead magick-description"><a href="api/Magick++/index.html">Magick++ API</a> is the object-oriented C++ API to the <a href="../">ImageMagick</a> image-processing library.</p>
-<p>Magick++ supports an object model which is inspired by <a href="perl-magick.html">PerlMagick</a>.
+<p>Magick++ supports an object model which is inspired by <a href="../www/perl-magick.html">PerlMagick</a>.
 Images support implicit reference counting so that copy constructors
 and assignment incur almost no cost. The cost of actually copying an
 image (if necessary) is done just before modification and this copy
@@ -111,7 +117,7 @@
 functions which comprise the API.  See a <a href="../Magick++/tutorial/Magick++_tutorial.pdf">  Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt" >source</a> if you want to correct, enhance, or expand the tutorial.</p>
 <h2>Obtaining Magick++</h2>
 <a class="anchor" id="get"></a>
-<p>Magick++ is included as part of <a href="api/quantize.html">ImageMagick</a>
+<p>Magick++ is included as part of <a href="../index.html">ImageMagick</a>
 source releases and may be retrieved via <a href="../www/download.html">HTTP</a>
 or <a href="https://github.com/ImageMagick/ImageMagick/tree/master/Magick%2B%2B">GitHub</a>.
 </p>
@@ -192,22 +198,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="magick++.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:41 -->
\ No newline at end of file
diff --git a/www/magick-core.html b/www/magick-core.html
index 36888ba..e6744bf 100644
--- a/www/magick-core.html
+++ b/www/magick-core.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickCore, Low-level C API @ ImageMagick</title>
+  <title>ImageMagick - MagickCore, Low-level C API</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickcore, low-level, c, api, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="magick-core.html" rel="canonical" />
+  <link href="../www/magick-core.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -136,7 +142,7 @@
   <li><a href="api/version.html">Get the Version and Copyrights</a></li>
   <li><a href="api/mime.html">Mime Methods</a></li>
   <li><a href="api/deprecate.html">Deprecated Methods</a></li>
-  <li><a href="exception.html">Error and Warning Codes</a></li>
+  <li><a href="../www/exception.html">Error and Warning Codes</a></li>
 </ul>
 
 <p>After you write your MagickCore program, compile it like this:</p>
@@ -337,22 +343,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="magick-core.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:22 -->
\ No newline at end of file
diff --git a/www/magick-script.html b/www/magick-script.html
index 274e44f..3fab3aa 100644
--- a/www/magick-script.html
+++ b/www/magick-script.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Magick-script @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Magick-script</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, magick-script, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="magick-script.html" rel="canonical" />
+  <link href="../www/magick-script.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,21 +72,22 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="lead magick-description">Use the <code>magick-script</code> scripting language to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.   See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>convert</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">Use the <code>magick-script</code> scripting language to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.   See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>convert</code> command or see below for example usages of the command.</p>
 
 <p>Here is an example script:</p>
 
@@ -96,1191 +102,1191 @@
 
 <p>The <code>magick</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-blur">-adaptive-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-blur">-adaptive-blur <var>geometry</var></a></td>
     <td>adaptively blur pixels; decrease effect near edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-resize">-adaptive-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-resize">-adaptive-resize <var>geometry</var></a></td>
     <td>adaptively resize image with data dependent triangulation.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-sharpen">-adaptive-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen <var>geometry</var></a></td>
     <td>adaptively sharpen pixels; increase effect near edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adjoin">-adjoin</a></td>
+    <td><a href="command-line-options.html#adjoin">-adjoin</a></td>
     <td>join images into a single multi-image file</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#affine">-affine <var>matrix</var></a></td>
+    <td><a href="command-line-options.html#affine">-affine <var>matrix</var></a></td>
     <td>affine transform matrix</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#annotate">-annotate <var>geometry text</var></a></td>
+    <td><a href="command-line-options.html#annotate">-annotate <var>geometry text</var></a></td>
     <td>annotate the image with text</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#antialias">-antialias</a></td>
+    <td><a href="command-line-options.html#antialias">-antialias</a></td>
     <td>remove pixel-aliasing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#append">-append</a></td>
+    <td><a href="command-line-options.html#append">-append</a></td>
     <td>append an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decipher image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-gamma">-auto-gamma</a></td>
+    <td><a href="command-line-options.html#auto-gamma">-auto-gamma</a></td>
     <td>automagically adjust gamma level of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-level">-auto-level</a></td>
+    <td><a href="command-line-options.html#auto-level">-auto-level</a></td>
     <td>automagically adjust color levels of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-orient">-auto-orient</a></td>
+    <td><a href="command-line-options.html#auto-orient">-auto-orient</a></td>
     <td>automagically orient image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#background">-background <var>color</var></a></td>
+    <td><a href="command-line-options.html#background">-background <var>color</var></a></td>
     <td>background color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bench">-bench <var>iterations</var></a></td>
+    <td><a href="command-line-options.html#bench">-bench <var>iterations</var></a></td>
     <td>measure performance</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bias">-bias <var>value</var></a></td>
+    <td><a href="command-line-options.html#bias">-bias <var>value</var></a></td>
     <td>add bias when convolving an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
     <td>force all pixels below the threshold into black</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
     <td>chromaticity blue primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blue-shift">-blue-shift <var>factor</var></a></td>
+    <td><a href="command-line-options.html#blue-shift">-blue-shift <var>factor</var></a></td>
     <td>simulate a scene at nighttime in the moonlight</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blur">-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#blur">-blur <var>geometry</var></a></td>
     <td>reduce image noise and reduce detail levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#border">-border <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#border">-border <var>geometry</var></a></td>
     <td>surround image with a border of color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
     <td>border color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
     <td>improve brightness / contrast of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#canny">-canny <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#canny">-canny <var>geometry</var></a></td>
     <td>use a multi-stage algorithm to detect a wide range of edges in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#caption">-caption <var>string</var></a></td>
+    <td><a href="command-line-options.html#caption">-caption <var>string</var></a></td>
     <td>assign a caption to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#cdl">-cdl <var>filename</var></a></td>
+    <td><a href="command-line-options.html#cdl">-cdl <var>filename</var></a></td>
     <td>color correct with a color decision list</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#charcoal">-charcoal <var>radius</var></a></td>
+    <td><a href="command-line-options.html#charcoal">-charcoal <var>radius</var></a></td>
     <td>simulate a charcoal drawing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#chop">-chop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#chop">-chop <var>geometry</var></a></td>
     <td>remove pixels from the image interior</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clamp">-clamp</a></td>
+    <td><a href="command-line-options.html#clamp">-clamp</a></td>
     <td>set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip">-clip</a></td>
+    <td><a href="command-line-options.html#clip">-clip</a></td>
     <td>clip along the first path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
+    <td><a href="command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
     <td>associate clip mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
+    <td><a href="command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
     <td>clip along a named path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clone">-clone <var>index</var></a></td>
+    <td><a href="command-line-options.html#clone">-clone <var>index</var></a></td>
     <td>clone an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clut">-clut</a></td>
+    <td><a href="command-line-options.html#clut">-clut</a></td>
     <td>apply a color lookup table to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#connected-components">-connected-components <var>connectivity</var></a></td>
+    <td><a href="command-line-options.html#connected-components">-connected-components <var>connectivity</var></a></td>
     <td>connected-components uniquely labeled, choose from 4 or 8 way connectivity</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#contrast-stretch">-contrast-stretch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#contrast-stretch">-contrast-stretch <var>geometry</var></a></td>
     <td>improve the contrast in an image by `stretching' the range of intensity value</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#coalesce">-coalesce</a></td>
+    <td><a href="command-line-options.html#coalesce">-coalesce</a></td>
     <td>merge a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorize">-colorize <var>value</var></a></td>
+    <td><a href="command-line-options.html#colorize">-colorize <var>value</var></a></td>
     <td>colorize the image with the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#color-matrix">-color-matrix <var>matrix</var></a></td>
+    <td><a href="command-line-options.html#color-matrix">-color-matrix <var>matrix</var></a></td>
     <td>apply color correction to the image.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colors">-colors <var>value</var></a></td>
+    <td><a href="command-line-options.html#colors">-colors <var>value</var></a></td>
     <td>preferred number of colors in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#combine">-combine</a></td>
+    <td><a href="command-line-options.html#combine">-combine</a></td>
     <td>combine a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#comment">-comment <var>string</var></a></td>
+    <td><a href="command-line-options.html#comment">-comment <var>string</var></a></td>
     <td>annotate image with comment</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compare">-compare</a></td>
+    <td><a href="command-line-options.html#compare">-compare</a></td>
     <td>compare image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#complex">-complex<var>operator</var></a></td>
+    <td><a href="command-line-options.html#complex">-complex<var>operator</var></a></td>
     <td>perform complex mathematics on an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compose">-compose <var>operator</var></a></td>
+    <td><a href="command-line-options.html#compose">-compose <var>operator</var></a></td>
     <td>set image composite operator</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#composite">-composite</a></td>
+    <td><a href="command-line-options.html#composite">-composite</a></td>
     <td>composite image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compress">-compress <var>type</var></a></td>
+    <td><a href="command-line-options.html#compress">-compress <var>type</var></a></td>
     <td>image compression type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#contrast">-contrast</a></td>
+    <td><a href="command-line-options.html#contrast">-contrast</a></td>
     <td>enhance or reduce the image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#convolve">-convolve <var>coefficients</var></a></td>
+    <td><a href="command-line-options.html#convolve">-convolve <var>coefficients</var></a></td>
     <td>apply a convolution kernel to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#copy">-copy <var>geometry</var> <var>offset</var></a></td>
+    <td><a href="command-line-options.html#copy">-copy <var>geometry</var> <var>offset</var></a></td>
     <td>copy pixels from one area of an image to another</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#crop">-crop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#crop">-crop <var>geometry</var></a></td>
     <td>crop the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#cycle">-cycle <var>amount</var></a></td>
+    <td><a href="command-line-options.html#cycle">-cycle <var>amount</var></a></td>
     <td>cycle the image colormap</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#decipher">-decipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#decipher">-decipher <var>filename</var></a></td>
     <td>convert cipher pixels to plain</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#deconstruct">-deconstruct</a></td>
+    <td><a href="command-line-options.html#deconstruct">-deconstruct</a></td>
     <td>break down an image sequence into constituent parts</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#delay">-delay <var>value</var></a></td>
+    <td><a href="command-line-options.html#delay">-delay <var>value</var></a></td>
     <td>display the next image after pausing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#delete">-delete <var>index</var></a></td>
+    <td><a href="command-line-options.html#delete">-delete <var>index</var></a></td>
     <td>delete the image from the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#despeckle">-despeckle</a></td>
+    <td><a href="command-line-options.html#despeckle">-despeckle</a></td>
     <td>reduce the speckles within an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#direction">-direction <var>type</var></a></td>
+    <td><a href="command-line-options.html#direction">-direction <var>type</var></a></td>
     <td>render text right-to-left or left-to-right</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#display">-display <var>server</var></a></td>
+    <td><a href="command-line-options.html#display">-display <var>server</var></a></td>
     <td>get image or font from this X server</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dispose">-dispose <var>method</var></a></td>
+    <td><a href="command-line-options.html#dispose">-dispose <var>method</var></a></td>
     <td>layer disposal method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#distribute-cache">-distribute-cache <var>port</var></a></td>
+    <td><a href="command-line-options.html#distribute-cache">-distribute-cache <var>port</var></a></td>
     <td>launch a distributed pixel cache server</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
+    <td><a href="command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
     <td>distort image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dither">-dither  <var>method</var></a></td>
+    <td><a href="command-line-options.html#dither">-dither  <var>method</var></a></td>
     <td>apply error diffusion to image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#draw">-draw <var>string</var></a></td>
+    <td><a href="command-line-options.html#draw">-draw <var>string</var></a></td>
     <td>annotate the image with a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#duplicate">-duplicate <var>count,indexes</var></a></td>
+    <td><a href="command-line-options.html#duplicate">-duplicate <var>count,indexes</var></a></td>
     <td>duplicate an image one or more times</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#edge">-edge <var>radius</var></a></td>
+    <td><a href="command-line-options.html#edge">-edge <var>radius</var></a></td>
     <td>apply a filter to detect edges in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#emboss">-emboss <var>radius</var></a></td>
+    <td><a href="command-line-options.html#emboss">-emboss <var>radius</var></a></td>
     <td>emboss an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encipher">-encipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#encipher">-encipher <var>filename</var></a></td>
     <td>convert plain pixels to cipher pixels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encoding">-encoding <var>type</var></a></td>
+    <td><a href="command-line-options.html#encoding">-encoding <var>type</var></a></td>
     <td>text encoding type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#endian">-endian <var>type</var></a></td>
+    <td><a href="command-line-options.html#endian">-endian <var>type</var></a></td>
     <td>endianness (MSB or LSB) of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#enhance">-enhance</a></td>
+    <td><a href="command-line-options.html#enhance">-enhance</a></td>
     <td>apply a digital filter to enhance a noisy image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#equalize">-equalize</a></td>
+    <td><a href="command-line-options.html#equalize">-equalize</a></td>
     <td>perform histogram equalization to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#evaluate">-evaluate <var>operator value</var></a></td>
+    <td><a href="command-line-options.html#evaluate">-evaluate <var>operator value</var></a></td>
     <td>evaluate an arithmetic, relational, or logical expression</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#evaluate-sequence">-evaluate-sequence <var>operator</var></a></td>
+    <td><a href="command-line-options.html#evaluate-sequence">-evaluate-sequence <var>operator</var></a></td>
     <td>evaluate an arithmetic, relational, or logical expression for an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extent">-extent <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extent">-extent <var>geometry</var></a></td>
     <td>set the image size</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#family">-family <var>name</var></a></td>
+    <td><a href="command-line-options.html#family">-family <var>name</var></a></td>
     <td>render text with this font family</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#features">-features <var>distance</var></a></td>
+    <td><a href="command-line-options.html#features">-features <var>distance</var></a></td>
     <td>analyze image features (e.g. contract, correlations, etc.).</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fft">-fft</a></td>
+    <td><a href="command-line-options.html#fft">-fft</a></td>
     <td>implements the discrete Fourier transform (DFT)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fill">-fill <var>color</var></a></td>
+    <td><a href="command-line-options.html#fill">-fill <var>color</var></a></td>
     <td>color to use when filling a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#filter">-filter <var>type</var></a></td>
+    <td><a href="command-line-options.html#filter">-filter <var>type</var></a></td>
     <td>use this filter when resizing an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flatten">-flatten</a></td>
+    <td><a href="command-line-options.html#flatten">-flatten</a></td>
     <td>flatten a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flip">-flip</a></td>
+    <td><a href="command-line-options.html#flip">-flip</a></td>
     <td>flip image in the vertical direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#floodfill">-floodfill <var>geometry color</var></a></td>
+    <td><a href="command-line-options.html#floodfill">-floodfill <var>geometry color</var></a></td>
     <td>floodfill the image with color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flop">-flop</a></td>
+    <td><a href="command-line-options.html#flop">-flop</a></td>
     <td>flop image in the horizontal direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#font">-font <var>name</var></a></td>
+    <td><a href="command-line-options.html#font">-font <var>name</var></a></td>
     <td>render text with this font</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#format_identify_">-format <var>string</var></a></td>
+    <td><a href="command-line-options.html#format_identify_">-format <var>string</var></a></td>
     <td>output formatted image characteristics</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#frame">-frame <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#frame">-frame <var>geometry</var></a></td>
     <td>surround image with an ornamental border</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#function">-function <var>name</var></a></td>
+    <td><a href="command-line-options.html#function">-function <var>name</var></a></td>
     <td>apply a function to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
+    <td><a href="command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
     <td>colors within this distance are considered equal</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fx">-fx <var>expression</var></a></td>
+    <td><a href="command-line-options.html#fx">-fx <var>expression</var></a></td>
     <td>apply mathematical expression to an image channel(s)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gamma">-gamma <var>value</var></a></td>
+    <td><a href="command-line-options.html#gamma">-gamma <var>value</var></a></td>
     <td>level of gamma correction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gaussian-blur">-gaussian-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#gaussian-blur">-gaussian-blur <var>geometry</var></a></td>
     <td>reduce image noise and reduce detail levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
     <td>preferred size or location of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gravity">-gravity <var>type</var></a></td>
+    <td><a href="command-line-options.html#gravity">-gravity <var>type</var></a></td>
     <td>horizontal and vertical text placement</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
+    <td><a href="command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
     <td>convert image to grayscale</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
     <td>chromaticity green primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#hough-lines">-hough-lines <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#hough-lines">-hough-lines <var>geometry</var></a></td>
     <td>identify lines in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#identify">-identify</a></td>
+    <td><a href="command-line-options.html#identify">-identify</a></td>
     <td>identify the format and characteristics of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ift">-ift</a></td>
+    <td><a href="command-line-options.html#ift">-ift</a></td>
     <td>implements the inverse discrete Fourier transform (DFT)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#implode">-implode <var>amount</var></a></td>
+    <td><a href="command-line-options.html#implode">-implode <var>amount</var></a></td>
     <td>implode image pixels about the center</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#insert">-insert <var>index</var></a></td>
+    <td><a href="command-line-options.html#insert">-insert <var>index</var></a></td>
     <td>insert last image into the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#intensity">-intensity <var>method</var></a></td>
+    <td><a href="command-line-options.html#intensity">-intensity <var>method</var></a></td>
     <td>method to generate an intensity value from a pixel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#intent">-intent <var>type</var></a></td>
+    <td><a href="command-line-options.html#intent">-intent <var>type</var></a></td>
     <td>type of rendering intent when managing the image color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interline-spacing">-interline-spacing <var>value</var></a></td>
+    <td><a href="command-line-options.html#interline-spacing">-interline-spacing <var>value</var></a></td>
     <td>the space between two text lines</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interword-spacing">-interword-spacing <var>value</var></a></td>
+    <td><a href="command-line-options.html#interword-spacing">-interword-spacing <var>value</var></a></td>
     <td>the space between two words</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#kerning">-kerning <var>value</var></a></td>
+    <td><a href="command-line-options.html#kerning">-kerning <var>value</var></a></td>
     <td>the space between two characters</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
     <td>edge preserving noise reduction filter</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#label">-label <var>string</var></a></td>
+    <td><a href="command-line-options.html#label">-label <var>string</var></a></td>
     <td>assign a label to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#lat">-lat <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#lat">-lat <var>geometry</var></a></td>
     <td>local adaptive thresholding</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#layers">-layers <var>method</var></a></td>
+    <td><a href="command-line-options.html#layers">-layers <var>method</var></a></td>
     <td>optimize or compare image layers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#level">-level <var>value</var></a></td>
+    <td><a href="command-line-options.html#level">-level <var>value</var></a></td>
     <td>adjust the level of image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#linear-stretch">-linear-stretch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#linear-stretch">-linear-stretch <var>geometry</var></a></td>
     <td>linear with saturation histogram stretch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#liquid-rescale">-liquid-rescale <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#liquid-rescale">-liquid-rescale <var>geometry</var></a></td>
     <td>rescale image with seam-carving</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#list">-list <var>type</var></a></td>
+    <td><a href="command-line-options.html#list">-list <var>type</var></a></td>
     <td>Color, Configure, Delegate, Format, Magic, Module, Resource, or Type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#loop">-loop <var>iterations</var></a></td>
+    <td><a href="command-line-options.html#loop">-loop <var>iterations</var></a></td>
     <td>add Netscape loop extension to your GIF animation</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mask">-mask <var>filename</var></a></td>
+    <td><a href="command-line-options.html#mask">-mask <var>filename</var></a></td>
     <td>associate a mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
     <td>frame color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#median">-median <var>radius</var></a></td>
+    <td><a href="command-line-options.html#median">-median <var>radius</var></a></td>
     <td>apply a median filter to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mean-shift">-mean-shift <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#mean-shift">-mean-shift <var>geometry</var></a></td>
     <td>delineate arbitrarily shaped clusters in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#metric">-metric <var>type</var></a></td>
+    <td><a href="command-line-options.html#metric">-metric <var>type</var></a></td>
     <td>measure differences between images with this metric</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mode">-mode <var>radius</var></a></td>
+    <td><a href="command-line-options.html#mode">-mode <var>radius</var></a></td>
     <td>make each pixel the 'predominant color' of the neighborhood</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#modulate">-modulate <var>value</var></a></td>
+    <td><a href="command-line-options.html#modulate">-modulate <var>value</var></a></td>
     <td>vary the brightness, saturation, and hue</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#moments">-moments</a></td>
+    <td><a href="command-line-options.html#moments">-moments</a></td>
     <td>display image moments.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monochrome">-monochrome</a></td>
+    <td><a href="command-line-options.html#monochrome">-monochrome</a></td>
     <td>transform image to black and white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#morph">-morph <var>value</var></a></td>
+    <td><a href="command-line-options.html#morph">-morph <var>value</var></a></td>
     <td>morph an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#morphology">-morphology <var>method</var></a> <var>kernel</var></td>
+    <td><a href="command-line-options.html#morphology">-morphology <var>method</var></a> <var>kernel</var></td>
     <td>apply a morphology method to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#motion-blur">-motion-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#motion-blur">-motion-blur <var>geometry</var></a></td>
     <td>simulate motion blur</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#noise">-noise <var>radius</var></a></td>
+    <td><a href="command-line-options.html#noise">-noise <var>radius</var></a></td>
     <td>add or reduce noise in an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#normalize">-normalize</a></td>
+    <td><a href="command-line-options.html#normalize">-normalize</a></td>
     <td>transform image to span the full range of colors</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#opaque">-opaque <var>color</var></a></td>
+    <td><a href="command-line-options.html#opaque">-opaque <var>color</var></a></td>
     <td>change this color to the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ordered-dither">-ordered-dither <var>NxN</var></a></td>
+    <td><a href="command-line-options.html#ordered-dither">-ordered-dither <var>NxN</var></a></td>
     <td>ordered dither the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#orient">-orient <var>type</var></a></td>
+    <td><a href="command-line-options.html#orient">-orient <var>type</var></a></td>
     <td>image orientation</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#page">-page <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#page">-page <var>geometry</var></a></td>
     <td>size and location of an image canvas (setting)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#paint">-paint <var>radius</var></a></td>
+    <td><a href="command-line-options.html#paint">-paint <var>radius</var></a></td>
     <td>simulate an oil painting</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#perceptible">-perceptible</a></td>
+    <td><a href="command-line-options.html#perceptible">-perceptible</a></td>
     <td>set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ping">-ping</a></td>
+    <td><a href="command-line-options.html#ping">-ping</a></td>
     <td>efficiently determine image attributes</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
+    <td><a href="command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
     <td>font point size</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#polaroid">-polaroid <var>angle</var></a></td>
+    <td><a href="command-line-options.html#polaroid">-polaroid <var>angle</var></a></td>
     <td>simulate a Polaroid picture</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#poly">-poly <var>terms</var></a></td>
+    <td><a href="command-line-options.html#poly">-poly <var>terms</var></a></td>
     <td>build a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs).</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#posterize">-posterize <var>levels</var></a></td>
+    <td><a href="command-line-options.html#posterize">-posterize <var>levels</var></a></td>
     <td>reduce the image to a limited number of color levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#precision">-precision <var>value</var></a></td>
+    <td><a href="command-line-options.html#precision">-precision <var>value</var></a></td>
     <td>set the maximum number of significant digits to be printed</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#preview">-preview <var>type</var></a></td>
+    <td><a href="command-line-options.html#preview">-preview <var>type</var></a></td>
     <td>image preview type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#print">-print <var>string</var></a></td>
+    <td><a href="command-line-options.html#print">-print <var>string</var></a></td>
     <td>interpret string and print to console</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#process">-process <var>image-filter</var></a></td>
+    <td><a href="command-line-options.html#process">-process <var>image-filter</var></a></td>
     <td>process the image with a custom image filter</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#profile">-profile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#profile">-profile <var>filename</var></a></td>
     <td>add, delete, or apply an image profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quality">-quality <var>value</var></a></td>
+    <td><a href="command-line-options.html#quality">-quality <var>value</var></a></td>
     <td>JPEG/MIFF/PNG compression level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#radial-blur">-radial-blur <var>angle</var></a></td>
+    <td><a href="command-line-options.html#radial-blur">-radial-blur <var>angle</var></a></td>
     <td>radial blur the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#raise">-raise <var>value</var></a></td>
+    <td><a href="command-line-options.html#raise">-raise <var>value</var></a></td>
     <td>lighten/darken image edges to create a 3-D effect</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#random-threshold">-random-threshold <var>low,high</var></a></td>
+    <td><a href="command-line-options.html#random-threshold">-random-threshold <var>low,high</var></a></td>
     <td>random threshold the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
     <td>chromaticity red primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#region">-region <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#region">-region <var>geometry</var></a></td>
     <td>apply options to a portion of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#remap">-remap <var>filename</var></a></td>
+    <td><a href="command-line-options.html#remap">-remap <var>filename</var></a></td>
     <td>transform image colors to match this set of colors</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#render">-render</a></td>
+    <td><a href="command-line-options.html#render">-render</a></td>
     <td>render vector graphics</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#repage">-repage <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#repage">-repage <var>geometry</var></a></td>
     <td>size and location of an image canvas</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resample">-resample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resample">-resample <var>geometry</var></a></td>
     <td>change the resolution of an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resize">-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resize">-resize <var>geometry</var></a></td>
     <td>resize the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#roll">-roll <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#roll">-roll <var>geometry</var></a></td>
     <td>roll an image vertically or horizontally</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
     <td>apply Paeth rotation to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sample">-sample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sample">-sample <var>geometry</var></a></td>
     <td>scale image with pixel sampling</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scale">-scale <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#scale">-scale <var>geometry</var></a></td>
     <td>scale the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scene">-scene <var>value</var></a></td>
+    <td><a href="command-line-options.html#scene">-scene <var>value</var></a></td>
     <td>image scene number</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#segment">-segment <var>values</var></a></td>
+    <td><a href="command-line-options.html#segment">-segment <var>values</var></a></td>
     <td>segment an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#threshold">-selective-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#threshold">-selective-blur <var>geometry</var></a></td>
     <td>selectively blur pixels within a contrast threshold</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#separate">-separate</a></td>
+    <td><a href="command-line-options.html#separate">-separate</a></td>
     <td>separate an image channel into a grayscale image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sepia-tone">-sepia-tone <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#sepia-tone">-sepia-tone <var>threshold</var></a></td>
     <td>simulate a sepia-toned photo</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shade">-shade <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#shade">-shade <var>degrees</var></a></td>
     <td>shade the image using a distant light source</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shadow">-shadow <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shadow">-shadow <var>geometry</var></a></td>
     <td>simulate an image shadow</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shave">-shave <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shave">-shave <var>geometry</var></a></td>
     <td>shave pixels from the image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shear">-shear <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shear">-shear <var>geometry</var></a></td>
     <td>slide one edge of the image along the X or Y axis</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
     <td>increase the contrast without saturating highlights or shadows</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#smush">-smush <var>offset</var></a></td>
+    <td><a href="command-line-options.html#smush">-smush <var>offset</var></a></td>
     <td>smush an image sequence together</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sketch">-sketch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sketch">-sketch <var>geometry</var></a></td>
     <td>simulate a pencil sketch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#solarize">-solarize <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#solarize">-solarize <var>threshold</var></a></td>
     <td>negate all pixels above the threshold level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#splice">-splice <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#splice">-splice <var>geometry</var></a></td>
     <td>splice the background color into the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#spread">-spread <var>radius</var></a></td>
+    <td><a href="command-line-options.html#spread">-spread <var>radius</var></a></td>
     <td>displace image pixels by a random amount</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#statistic">-statistic <var>type</var> <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#statistic">-statistic <var>type</var> <var>geometry</var></a></td>
     <td>replace each pixel with corresponding statistic from the neighborhood</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strip">-strip</a></td>
+    <td><a href="command-line-options.html#strip">-strip</a></td>
     <td>strip image of all profiles and comments</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stroke">-stroke <var>color</var></a></td>
+    <td><a href="command-line-options.html#stroke">-stroke <var>color</var></a></td>
     <td>graphic primitive stroke color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strokewidth">-strokewidth <var>value</var></a></td>
+    <td><a href="command-line-options.html#strokewidth">-strokewidth <var>value</var></a></td>
     <td>graphic primitive stroke width</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stretch">-stretch <var>type</var></a></td>
+    <td><a href="command-line-options.html#stretch">-stretch <var>type</var></a></td>
     <td>render text with this font stretch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#style">-style <var>type</var></a></td>
+    <td><a href="command-line-options.html#style">-style <var>type</var></a></td>
     <td>render text with this font style</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#swap">-swap <var>indexes</var></a></td>
+    <td><a href="command-line-options.html#swap">-swap <var>indexes</var></a></td>
     <td>swap two images in the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#swirl">-swirl <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#swirl">-swirl <var>degrees</var></a></td>
     <td>swirl image pixels about the center</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#synchronize">-synchronize</a></td>
+    <td><a href="command-line-options.html#synchronize">-synchronize</a></td>
     <td>synchronize image to storage device</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#taint">-taint</a></td>
+    <td><a href="command-line-options.html#taint">-taint</a></td>
     <td>mark the image as modified</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#texture">-texture <var>filename</var></a></td>
+    <td><a href="command-line-options.html#texture">-texture <var>filename</var></a></td>
     <td>name of texture to tile onto the image background</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#threshold">-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#threshold">-threshold <var>value</var></a></td>
     <td>threshold the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
     <td>create a thumbnail of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tile">-tile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#tile">-tile <var>filename</var></a></td>
     <td>tile image when filling a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tile-offset">-tile-offset <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#tile-offset">-tile-offset <var>geometry</var></a></td>
     <td>set the image tile offset</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tint">-tint <var>value</var></a></td>
+    <td><a href="command-line-options.html#tint">-tint <var>value</var></a></td>
     <td>tint the image with the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transform">-transform</a></td>
+    <td><a href="command-line-options.html#transform">-transform</a></td>
     <td>affine transform image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent">-transparent <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent">-transparent <var>color</var></a></td>
     <td>make this color transparent within the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transpose">-transpose</a></td>
+    <td><a href="command-line-options.html#transpose">-transpose</a></td>
     <td>flip image in the vertical direction and rotate 90 degrees</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transverse">-transverse</a></td>
+    <td><a href="command-line-options.html#transverse">-transverse</a></td>
     <td>flop image in the horizontal direction and rotate 270 degrees</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
+    <td><a href="command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
     <td>color tree depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#trim">-trim</a></td>
+    <td><a href="command-line-options.html#trim">-trim</a></td>
     <td>trim image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#type">-type <var>type</var></a></td>
+    <td><a href="command-line-options.html#type">-type <var>type</var></a></td>
     <td>image type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#undercolor">-undercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#undercolor">-undercolor <var>color</var></a></td>
     <td>annotation bounding box color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unique-colors">-unique-colors</a></td>
+    <td><a href="command-line-options.html#unique-colors">-unique-colors</a></td>
     <td>discard all but one of any pixel color.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#units">-units <var>type</var></a></td>
+    <td><a href="command-line-options.html#units">-units <var>type</var></a></td>
     <td>the units of image resolution</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#view">-view</a></td>
+    <td><a href="command-line-options.html#view">-view</a></td>
     <td>FlashPix viewing transforms</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#vignette">-vignette <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#vignette">-vignette <var>geometry</var></a></td>
     <td>soften the edges of the image in vignette style</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#wave">-wave <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#wave">-wave <var>geometry</var></a></td>
     <td>alter an image along a sine wave</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#wavelet">-wavelet-denoise <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#wavelet">-wavelet-denoise <var>threshold</var></a></td>
     <td>removes noise from the image using a wavelet transform</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#weight">-weight <var>type</var></a></td>
+    <td><a href="command-line-options.html#weight">-weight <var>type</var></a></td>
     <td>render text with this font weight</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-point">-white-point <var>point</var></a></td>
+    <td><a href="command-line-options.html#white-point">-white-point <var>point</var></a></td>
     <td>chromaticity white point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
     <td>force all pixels above the threshold into white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write">-write <var>filename</var></a></td>
+    <td><a href="command-line-options.html#write">-write <var>filename</var></a></td>
     <td>write images to this file</td>
   </tr>
 </table>
@@ -1289,22 +1295,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="magick-script.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:14 -->
\ No newline at end of file
diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html
index b4d573e..ac529e3 100644
--- a/www/magick-vector-graphics.html
+++ b/www/magick-vector-graphics.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Magick Vector Graphics @ ImageMagick</title>
+  <title>ImageMagick - Magick Vector Graphics</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magick, vector, graphics, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/magick-vector-graphics.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,17 +76,18 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="../www/magick-vector-graphics.html#overview">MVG Overview</a> • <a href="../www/magick-vector-graphics.html#primitives">Drawing Primitives</a></p>
+<p class="text-center"><a href="magick-vector-graphics.html#overview">MVG Overview</a> • <a href="magick-vector-graphics.html#primitives">Drawing Primitives</a></p>
 
 <p class="lead magick-description">This specification defines the features and syntax for Magick Vector Graphics (MVG), a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick.  You can use the language to draw from the
 command line, from an MVG file, from an <a href="http://www.w3.org/TR/SVG/">SVG -- Scalable Vector Graphics</a> file or from one of the ImageMagick <a href="../www/api.html">program interfaces</a>.  Use this command, for example, to render an arc:</p>
@@ -270,7 +276,7 @@
 
 <p>to produce the same pie chart we created with the MVG language.</p>
 
-<p>Drawing is available from many of the ImageMagick <a href="../www/api.html">program interfaces</a> as well.  ImageMagick converts the drawing API calls to MVG and renders it.  Here is example code written in the <a href="../www/magick-wand.html">MagickWand</a> language: </p>
+<p>Drawing is available from many of the ImageMagick <a href="../www/api.html">program interfaces</a> as well.  ImageMagick converts the drawing API calls to MVG and renders it.  Here is example code written in the <a href="magick-wand.html">MagickWand</a> language: </p>
 
 <pre class="pre-scrollable"><code>(void) PushDrawingWand(draw_wand);
 {
@@ -369,7 +375,7 @@
 
 <p>Here is a complete description of the MVG drawing primitives:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <th>Primitive</th>
@@ -439,7 +445,7 @@
   </tr>
   <tr>
     <td><a class="anchor" id="fill"></a>fill <var>color</var></td>
-    <td>Choose from any of these <a href="../www/color.html">colors</a>.</td>
+    <td>Choose from any of these <a href="color.html">colors</a>.</td>
   </tr>
   <tr>
     <td><a class="anchor" id="fill-opacity"></a>fill-opacity <var>opacity</var></td>
@@ -690,7 +696,7 @@
 
   <tr>
     <td>change-mask</td>
-    <td>Replace any destination pixel that is the similar to the source images pixel (as defined by the current <a href="../www/magick-vector-graphics.html#fuzz">-fuzz</a> factor), with transparency. </td>
+    <td>Replace any destination pixel that is the similar to the source images pixel (as defined by the current <a href="magick-vector-graphics.html#fuzz">-fuzz</a> factor), with transparency. </td>
   </tr>
   </tbody>
 </table></td>
@@ -888,22 +894,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="magick-vector-graphics.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="magick-vector-graphics.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 10:32 -->
\ No newline at end of file
diff --git a/www/magick-wand.html b/www/magick-wand.html
index 7e9a7e5..d5b2252 100644
--- a/www/magick-wand.html
+++ b/www/magick-wand.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>MagickWand, C API @ ImageMagick</title>
+  <title>ImageMagick - MagickWand, C API</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magickwc, api, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="magick-wand.html" rel="canonical" />
+  <link href="../www/magick-wand.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -94,7 +100,7 @@
   <li><a href="api/mogrify.html">Command-line Interface</a></li>
   <li><a href="api/wand-view.html">Wand View Methods</a></li>
   <li><a href="api/magick-deprecate.html">Deprecated Methods</a></li>
-  <li><a href="exception.html">Error and Warning Codes</a></li>
+  <li><a href="../www/exception.html">Error and Warning Codes</a></li>
 </ul>
 
 <p>After you write your MagickWand program, compile it like this:</p>
@@ -389,22 +395,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="magick-wand.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:50 -->
\ No newline at end of file
diff --git a/www/magick.html b/www/magick.html
index 610e960..9af3b98 100644
--- a/www/magick.html
+++ b/www/magick.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Magick @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Magick</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, magick, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="magick.html" rel="canonical" />
+  <link href="../www/magick.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,21 +72,22 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="lead magick-description">Use the <code>magick</code> program to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.   See <a href="../www/command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>convert</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">Use the <code>magick</code> program to convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.   See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>convert</code> command or see below for example usages of the command.</p>
 
 <p>We list a few examples of the <code>magick</code> command here to illustrate its usefulness and ease of use.  To get started, lets convert an image in the JPEG format to PNG:</p>
 
@@ -121,7 +127,7 @@
   -resize 400% -sigmoidal-contrast 11.6933 -colorspace sRGB output.png');
 </code></pre>
 
-<p>Utilize other command-line <a href="../www/command-line-tools.html">tools</a> from the <code>magick</code> tool.  To invoke this functionality, simply create a symbolic link to the <code>magick</code> tool or specify the tool you want to use as the first argument.  These two methods are equivalent:</p>
+<p>Utilize other command-line <a href="command-line-tools.html">tools</a> from the <code>magick</code> tool.  To invoke this functionality, simply create a symbolic link to the <code>magick</code> tool or specify the tool you want to use as the first argument.  These two methods are equivalent:</p>
 
 <pre class="highlight"><code>ln -s magick convert
 convert rose.jpg rose.png
@@ -134,1196 +140,1196 @@
 
 <p>The <code>magick</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-blur">-adaptive-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-blur">-adaptive-blur <var>geometry</var></a></td>
     <td>adaptively blur pixels; decrease effect near edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-resize">-adaptive-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-resize">-adaptive-resize <var>geometry</var></a></td>
     <td>adaptively resize image with data dependent triangulation.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adaptive-sharpen">-adaptive-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen <var>geometry</var></a></td>
     <td>adaptively sharpen pixels; increase effect near edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#adjoin">-adjoin</a></td>
+    <td><a href="command-line-options.html#adjoin">-adjoin</a></td>
     <td>join images into a single multi-image file</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#affine">-affine <var>matrix</var></a></td>
+    <td><a href="command-line-options.html#affine">-affine <var>matrix</var></a></td>
     <td>affine transform matrix</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#alpha">-alpha</a></td>
+    <td><a href="command-line-options.html#alpha">-alpha</a></td>
     <td>on, activate, off, deactivate, set, opaque, copy",
 transparent, extract, background, or shape the alpha channel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#annotate">-annotate <var>geometry text</var></a></td>
+    <td><a href="command-line-options.html#annotate">-annotate <var>geometry text</var></a></td>
     <td>annotate the image with text</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#antialias">-antialias</a></td>
+    <td><a href="command-line-options.html#antialias">-antialias</a></td>
     <td>remove pixel-aliasing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#append">-append</a></td>
+    <td><a href="command-line-options.html#append">-append</a></td>
     <td>append an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decipher image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-gamma">-auto-gamma</a></td>
+    <td><a href="command-line-options.html#auto-gamma">-auto-gamma</a></td>
     <td>automagically adjust gamma level of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-level">-auto-level</a></td>
+    <td><a href="command-line-options.html#auto-level">-auto-level</a></td>
     <td>automagically adjust color levels of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#auto-orient">-auto-orient</a></td>
+    <td><a href="command-line-options.html#auto-orient">-auto-orient</a></td>
     <td>automagically orient image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#background">-background <var>color</var></a></td>
+    <td><a href="command-line-options.html#background">-background <var>color</var></a></td>
     <td>background color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bench">-bench <var>iterations</var></a></td>
+    <td><a href="command-line-options.html#bench">-bench <var>iterations</var></a></td>
     <td>measure performance</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bias">-bias <var>value</var></a></td>
+    <td><a href="command-line-options.html#bias">-bias <var>value</var></a></td>
     <td>add bias when convolving an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
     <td>force all pixels below the threshold into black</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#blue-primary">-blue-primary <var>point</var></a></td>
     <td>chromaticity blue primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blue-shift">-blue-shift <var>factor</var></a></td>
+    <td><a href="command-line-options.html#blue-shift">-blue-shift <var>factor</var></a></td>
     <td>simulate a scene at nighttime in the moonlight</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#blur">-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#blur">-blur <var>geometry</var></a></td>
     <td>reduce image noise and reduce detail levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#border">-border <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#border">-border <var>geometry</var></a></td>
     <td>surround image with a border of color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#bordercolor">-bordercolor <var>color</var></a></td>
     <td>border color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#brightness-contrast">-brightness-contrast <var>geometry</var></a></td>
     <td>improve brightness / contrast of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#canny">-canny <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#canny">-canny <var>geometry</var></a></td>
     <td>use a multi-stage algorithm to detect a wide range of edges in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#caption">-caption <var>string</var></a></td>
+    <td><a href="command-line-options.html#caption">-caption <var>string</var></a></td>
     <td>assign a caption to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#cdl">-cdl <var>filename</var></a></td>
+    <td><a href="command-line-options.html#cdl">-cdl <var>filename</var></a></td>
     <td>color correct with a color decision list</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#charcoal">-charcoal <var>radius</var></a></td>
+    <td><a href="command-line-options.html#charcoal">-charcoal <var>radius</var></a></td>
     <td>simulate a charcoal drawing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#chop">-chop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#chop">-chop <var>geometry</var></a></td>
     <td>remove pixels from the image interior</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clahe">-clahe <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#clahe">-clahe <var>geometry</var></a></td>
     <td>contrast limited adaptive histogram equalization</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clamp">-clamp</a></td>
+    <td><a href="command-line-options.html#clamp">-clamp</a></td>
     <td>set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip">-clip</a></td>
+    <td><a href="command-line-options.html#clip">-clip</a></td>
     <td>clip along the first path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
+    <td><a href="command-line-options.html#clip-mask">-clip-mask</a> <var>filename</var></td>
     <td>associate clip mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
+    <td><a href="command-line-options.html#clip-path">-clip-path <var>id</var></a></td>
     <td>clip along a named path from the 8BIM profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clone">-clone <var>index</var></a></td>
+    <td><a href="command-line-options.html#clone">-clone <var>index</var></a></td>
     <td>clone an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#clut">-clut</a></td>
+    <td><a href="command-line-options.html#clut">-clut</a></td>
     <td>apply a color lookup table to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#connected-components">-connected-components <var>connectivity</var></a></td>
+    <td><a href="command-line-options.html#connected-components">-connected-components <var>connectivity</var></a></td>
     <td>connected-components uniquely labeled, choose from 4 or 8 way connectivity</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#contrast-stretch">-contrast-stretch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#contrast-stretch">-contrast-stretch <var>geometry</var></a></td>
     <td>improve the contrast in an image by `stretching' the range of intensity value</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#coalesce">-coalesce</a></td>
+    <td><a href="command-line-options.html#coalesce">-coalesce</a></td>
     <td>merge a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorize">-colorize <var>value</var></a></td>
+    <td><a href="command-line-options.html#colorize">-colorize <var>value</var></a></td>
     <td>colorize the image with the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#color-matrix">-color-matrix <var>matrix</var></a></td>
+    <td><a href="command-line-options.html#color-matrix">-color-matrix <var>matrix</var></a></td>
     <td>apply color correction to the image.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colors">-colors <var>value</var></a></td>
+    <td><a href="command-line-options.html#colors">-colors <var>value</var></a></td>
     <td>preferred number of colors in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#combine">-combine</a></td>
+    <td><a href="command-line-options.html#combine">-combine</a></td>
     <td>combine a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#comment">-comment <var>string</var></a></td>
+    <td><a href="command-line-options.html#comment">-comment <var>string</var></a></td>
     <td>annotate image with comment</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compare">-compare</a></td>
+    <td><a href="command-line-options.html#compare">-compare</a></td>
     <td>compare image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#complex">-complex<var>operator</var></a></td>
+    <td><a href="command-line-options.html#complex">-complex<var>operator</var></a></td>
     <td>perform complex mathematics on an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compose">-compose <var>operator</var></a></td>
+    <td><a href="command-line-options.html#compose">-compose <var>operator</var></a></td>
     <td>set image composite operator</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#composite">-composite</a></td>
+    <td><a href="command-line-options.html#composite">-composite</a></td>
     <td>composite image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#compress">-compress <var>type</var></a></td>
+    <td><a href="command-line-options.html#compress">-compress <var>type</var></a></td>
     <td>image compression type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#contrast">-contrast</a></td>
+    <td><a href="command-line-options.html#contrast">-contrast</a></td>
     <td>enhance or reduce the image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#convolve">-convolve <var>coefficients</var></a></td>
+    <td><a href="command-line-options.html#convolve">-convolve <var>coefficients</var></a></td>
     <td>apply a convolution kernel to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#copy">-copy <var>geometry</var> <var>offset</var></a></td>
+    <td><a href="command-line-options.html#copy">-copy <var>geometry</var> <var>offset</var></a></td>
     <td>copy pixels from one area of an image to another</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#crop">-crop <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#crop">-crop <var>geometry</var></a></td>
     <td>crop the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#cycle">-cycle <var>amount</var></a></td>
+    <td><a href="command-line-options.html#cycle">-cycle <var>amount</var></a></td>
     <td>cycle the image colormap</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#decipher">-decipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#decipher">-decipher <var>filename</var></a></td>
     <td>convert cipher pixels to plain</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#deconstruct">-deconstruct</a></td>
+    <td><a href="command-line-options.html#deconstruct">-deconstruct</a></td>
     <td>break down an image sequence into constituent parts</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#delay">-delay <var>value</var></a></td>
+    <td><a href="command-line-options.html#delay">-delay <var>value</var></a></td>
     <td>display the next image after pausing</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#delete">-delete <var>index</var></a></td>
+    <td><a href="command-line-options.html#delete">-delete <var>index</var></a></td>
     <td>delete the image from the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#despeckle">-despeckle</a></td>
+    <td><a href="command-line-options.html#despeckle">-despeckle</a></td>
     <td>reduce the speckles within an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#direction">-direction <var>type</var></a></td>
+    <td><a href="command-line-options.html#direction">-direction <var>type</var></a></td>
     <td>render text right-to-left or left-to-right</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#display">-display <var>server</var></a></td>
+    <td><a href="command-line-options.html#display">-display <var>server</var></a></td>
     <td>get image or font from this X server</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dispose">-dispose <var>method</var></a></td>
+    <td><a href="command-line-options.html#dispose">-dispose <var>method</var></a></td>
     <td>layer disposal method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#distribute-cache">-distribute-cache <var>port</var></a></td>
+    <td><a href="command-line-options.html#distribute-cache">-distribute-cache <var>port</var></a></td>
     <td>launch a distributed pixel cache server</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
+    <td><a href="command-line-options.html#distort">-distort <var>type coefficients</var></a></td>
     <td>distort image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#dither">-dither  <var>method</var></a></td>
+    <td><a href="command-line-options.html#dither">-dither  <var>method</var></a></td>
     <td>apply error diffusion to image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#draw">-draw <var>string</var></a></td>
+    <td><a href="command-line-options.html#draw">-draw <var>string</var></a></td>
     <td>annotate the image with a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#duplicate">-duplicate <var>count,indexes</var></a></td>
+    <td><a href="command-line-options.html#duplicate">-duplicate <var>count,indexes</var></a></td>
     <td>duplicate an image one or more times</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#edge">-edge <var>radius</var></a></td>
+    <td><a href="command-line-options.html#edge">-edge <var>radius</var></a></td>
     <td>apply a filter to detect edges in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#emboss">-emboss <var>radius</var></a></td>
+    <td><a href="command-line-options.html#emboss">-emboss <var>radius</var></a></td>
     <td>emboss an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encipher">-encipher <var>filename</var></a></td>
+    <td><a href="command-line-options.html#encipher">-encipher <var>filename</var></a></td>
     <td>convert plain pixels to cipher pixels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#encoding">-encoding <var>type</var></a></td>
+    <td><a href="command-line-options.html#encoding">-encoding <var>type</var></a></td>
     <td>text encoding type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#endian">-endian <var>type</var></a></td>
+    <td><a href="command-line-options.html#endian">-endian <var>type</var></a></td>
     <td>endianness (MSB or LSB) of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#enhance">-enhance</a></td>
+    <td><a href="command-line-options.html#enhance">-enhance</a></td>
     <td>apply a digital filter to enhance a noisy image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#equalize">-equalize</a></td>
+    <td><a href="command-line-options.html#equalize">-equalize</a></td>
     <td>perform histogram equalization to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#evaluate">-evaluate <var>operator value</var></a></td>
+    <td><a href="command-line-options.html#evaluate">-evaluate <var>operator value</var></a></td>
     <td>evaluate an arithmetic, relational, or logical expression</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#evaluate-sequence">-evaluate-sequence <var>operator</var></a></td>
+    <td><a href="command-line-options.html#evaluate-sequence">-evaluate-sequence <var>operator</var></a></td>
     <td>evaluate an arithmetic, relational, or logical expression for an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extent">-extent <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extent">-extent <var>geometry</var></a></td>
     <td>set the image size</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#family">-family <var>name</var></a></td>
+    <td><a href="command-line-options.html#family">-family <var>name</var></a></td>
     <td>render text with this font family</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#features">-features <var>distance</var></a></td>
+    <td><a href="command-line-options.html#features">-features <var>distance</var></a></td>
     <td>analyze image features (e.g. contract, correlations, etc.).</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fft">-fft</a></td>
+    <td><a href="command-line-options.html#fft">-fft</a></td>
     <td>implements the discrete Fourier transform (DFT)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fill">-fill <var>color</var></a></td>
+    <td><a href="command-line-options.html#fill">-fill <var>color</var></a></td>
     <td>color to use when filling a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#filter">-filter <var>type</var></a></td>
+    <td><a href="command-line-options.html#filter">-filter <var>type</var></a></td>
     <td>use this filter when resizing an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flatten">-flatten</a></td>
+    <td><a href="command-line-options.html#flatten">-flatten</a></td>
     <td>flatten a sequence of images</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flip">-flip</a></td>
+    <td><a href="command-line-options.html#flip">-flip</a></td>
     <td>flip image in the vertical direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#floodfill">-floodfill <var>geometry color</var></a></td>
+    <td><a href="command-line-options.html#floodfill">-floodfill <var>geometry color</var></a></td>
     <td>floodfill the image with color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#flop">-flop</a></td>
+    <td><a href="command-line-options.html#flop">-flop</a></td>
     <td>flop image in the horizontal direction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#font">-font <var>name</var></a></td>
+    <td><a href="command-line-options.html#font">-font <var>name</var></a></td>
     <td>render text with this font</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#format_identify_">-format <var>string</var></a></td>
+    <td><a href="command-line-options.html#format_identify_">-format <var>string</var></a></td>
     <td>output formatted image characteristics</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#frame">-frame <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#frame">-frame <var>geometry</var></a></td>
     <td>surround image with an ornamental border</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#function">-function <var>name</var></a></td>
+    <td><a href="command-line-options.html#function">-function <var>name</var></a></td>
     <td>apply a function to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
+    <td><a href="command-line-options.html#fuzz">-fuzz <var>distance</var></a></td>
     <td>colors within this distance are considered equal</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#fx">-fx <var>expression</var></a></td>
+    <td><a href="command-line-options.html#fx">-fx <var>expression</var></a></td>
     <td>apply mathematical expression to an image channel(s)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gamma">-gamma <var>value</var></a></td>
+    <td><a href="command-line-options.html#gamma">-gamma <var>value</var></a></td>
     <td>level of gamma correction</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gaussian-blur">-gaussian-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#gaussian-blur">-gaussian-blur <var>geometry</var></a></td>
     <td>reduce image noise and reduce detail levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#geometry">-geometry <var>geometry</var></a></td>
     <td>preferred size or location of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#gravity">-gravity <var>type</var></a></td>
+    <td><a href="command-line-options.html#gravity">-gravity <var>type</var></a></td>
     <td>horizontal and vertical text placement</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
+    <td><a href="command-line-options.html#grayscale">-grayscale <var>method</var></a></td>
     <td>convert image to grayscale</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#green-primary">-green-primary <var>point</var></a></td>
     <td>chromaticity green primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#hough-lines">-hough-lines <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#hough-lines">-hough-lines <var>geometry</var></a></td>
     <td>identify lines in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#identify">-identify</a></td>
+    <td><a href="command-line-options.html#identify">-identify</a></td>
     <td>identify the format and characteristics of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ift">-ift</a></td>
+    <td><a href="command-line-options.html#ift">-ift</a></td>
     <td>implements the inverse discrete Fourier transform (DFT)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#implode">-implode <var>amount</var></a></td>
+    <td><a href="command-line-options.html#implode">-implode <var>amount</var></a></td>
     <td>implode image pixels about the center</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#insert">-insert <var>index</var></a></td>
+    <td><a href="command-line-options.html#insert">-insert <var>index</var></a></td>
     <td>insert last image into the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#intensity">-intensity <var>method</var></a></td>
+    <td><a href="command-line-options.html#intensity">-intensity <var>method</var></a></td>
     <td>method to generate an intensity value from a pixel</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#intent">-intent <var>type</var></a></td>
+    <td><a href="command-line-options.html#intent">-intent <var>type</var></a></td>
     <td>type of rendering intent when managing the image color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interline-spacing">-interline-spacing <var>value</var></a></td>
+    <td><a href="command-line-options.html#interline-spacing">-interline-spacing <var>value</var></a></td>
     <td>the space between two text lines</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interword-spacing">-interword-spacing <var>value</var></a></td>
+    <td><a href="command-line-options.html#interword-spacing">-interword-spacing <var>value</var></a></td>
     <td>the space between two words</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#kerning">-kerning <var>value</var></a></td>
+    <td><a href="command-line-options.html#kerning">-kerning <var>value</var></a></td>
     <td>the space between two characters</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
     <td>edge preserving noise reduction filter</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#label">-label <var>string</var></a></td>
+    <td><a href="command-line-options.html#label">-label <var>string</var></a></td>
     <td>assign a label to an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#lat">-lat <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#lat">-lat <var>geometry</var></a></td>
     <td>local adaptive thresholding</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#layers">-layers <var>method</var></a></td>
+    <td><a href="command-line-options.html#layers">-layers <var>method</var></a></td>
     <td>optimize or compare image layers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#level">-level <var>value</var></a></td>
+    <td><a href="command-line-options.html#level">-level <var>value</var></a></td>
     <td>adjust the level of image contrast</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#linear-stretch">-linear-stretch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#linear-stretch">-linear-stretch <var>geometry</var></a></td>
     <td>linear with saturation histogram stretch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#liquid-rescale">-liquid-rescale <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#liquid-rescale">-liquid-rescale <var>geometry</var></a></td>
     <td>rescale image with seam-carving</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#list">-list <var>type</var></a></td>
+    <td><a href="command-line-options.html#list">-list <var>type</var></a></td>
     <td>Color, Configure, Delegate, Format, Magic, Module, Resource, or Type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#loop">-loop <var>iterations</var></a></td>
+    <td><a href="command-line-options.html#loop">-loop <var>iterations</var></a></td>
     <td>add Netscape loop extension to your GIF animation</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mask">-mask <var>filename</var></a></td>
+    <td><a href="command-line-options.html#mask">-mask <var>filename</var></a></td>
     <td>associate a mask with the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#mattecolor">-mattecolor <var>color</var></a></td>
     <td>frame color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#median">-median <var>radius</var></a></td>
+    <td><a href="command-line-options.html#median">-median <var>radius</var></a></td>
     <td>apply a median filter to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mean-shift">-mean-shift <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#mean-shift">-mean-shift <var>geometry</var></a></td>
     <td>delineate arbitrarily shaped clusters in the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#metric">-metric <var>type</var></a></td>
+    <td><a href="command-line-options.html#metric">-metric <var>type</var></a></td>
     <td>measure differences between images with this metric</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#mode">-mode <var>radius</var></a></td>
+    <td><a href="command-line-options.html#mode">-mode <var>radius</var></a></td>
     <td>make each pixel the 'predominant color' of the neighborhood</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#modulate">-modulate <var>value</var></a></td>
+    <td><a href="command-line-options.html#modulate">-modulate <var>value</var></a></td>
     <td>vary the brightness, saturation, and hue</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#moments">-moments</a></td>
+    <td><a href="command-line-options.html#moments">-moments</a></td>
     <td>display image moments.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monochrome">-monochrome</a></td>
+    <td><a href="command-line-options.html#monochrome">-monochrome</a></td>
     <td>transform image to black and white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#morph">-morph <var>value</var></a></td>
+    <td><a href="command-line-options.html#morph">-morph <var>value</var></a></td>
     <td>morph an image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#morphology">-morphology <var>method</var></a> <var>kernel</var></td>
+    <td><a href="command-line-options.html#morphology">-morphology <var>method</var></a> <var>kernel</var></td>
     <td>apply a morphology method to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#motion-blur">-motion-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#motion-blur">-motion-blur <var>geometry</var></a></td>
     <td>simulate motion blur</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#negate">-negate</a></td>
+    <td><a href="command-line-options.html#negate">-negate</a></td>
     <td>replace each pixel with its complementary color </td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#noise">-noise <var>radius</var></a></td>
+    <td><a href="command-line-options.html#noise">-noise <var>radius</var></a></td>
     <td>add or reduce noise in an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#normalize">-normalize</a></td>
+    <td><a href="command-line-options.html#normalize">-normalize</a></td>
     <td>transform image to span the full range of colors</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#opaque">-opaque <var>color</var></a></td>
+    <td><a href="command-line-options.html#opaque">-opaque <var>color</var></a></td>
     <td>change this color to the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ordered-dither">-ordered-dither <var>NxN</var></a></td>
+    <td><a href="command-line-options.html#ordered-dither">-ordered-dither <var>NxN</var></a></td>
     <td>ordered dither the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#orient">-orient <var>type</var></a></td>
+    <td><a href="command-line-options.html#orient">-orient <var>type</var></a></td>
     <td>image orientation</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#page">-page <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#page">-page <var>geometry</var></a></td>
     <td>size and location of an image canvas (setting)</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#paint">-paint <var>radius</var></a></td>
+    <td><a href="command-line-options.html#paint">-paint <var>radius</var></a></td>
     <td>simulate an oil painting</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#perceptible">-perceptible</a></td>
+    <td><a href="command-line-options.html#perceptible">-perceptible</a></td>
     <td>set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#ping">-ping</a></td>
+    <td><a href="command-line-options.html#ping">-ping</a></td>
     <td>efficiently determine image attributes</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
+    <td><a href="command-line-options.html#pointsize">-pointsize <var>value</var></a></td>
     <td>font point size</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#polaroid">-polaroid <var>angle</var></a></td>
+    <td><a href="command-line-options.html#polaroid">-polaroid <var>angle</var></a></td>
     <td>simulate a Polaroid picture</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#poly">-poly <var>terms</var></a></td>
+    <td><a href="command-line-options.html#poly">-poly <var>terms</var></a></td>
     <td>build a polynomial from the image sequence and the corresponding terms (coefficients and degree pairs).</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#posterize">-posterize <var>levels</var></a></td>
+    <td><a href="command-line-options.html#posterize">-posterize <var>levels</var></a></td>
     <td>reduce the image to a limited number of color levels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#precision">-precision <var>value</var></a></td>
+    <td><a href="command-line-options.html#precision">-precision <var>value</var></a></td>
     <td>set the maximum number of significant digits to be printed</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#preview">-preview <var>type</var></a></td>
+    <td><a href="command-line-options.html#preview">-preview <var>type</var></a></td>
     <td>image preview type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#print">-print <var>string</var></a></td>
+    <td><a href="command-line-options.html#print">-print <var>string</var></a></td>
     <td>interpret string and print to console</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#process">-process <var>image-filter</var></a></td>
+    <td><a href="command-line-options.html#process">-process <var>image-filter</var></a></td>
     <td>process the image with a custom image filter</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#profile">-profile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#profile">-profile <var>filename</var></a></td>
     <td>add, delete, or apply an image profile</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quality">-quality <var>value</var></a></td>
+    <td><a href="command-line-options.html#quality">-quality <var>value</var></a></td>
     <td>JPEG/MIFF/PNG compression level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#radial-blur">-radial-blur <var>angle</var></a></td>
+    <td><a href="command-line-options.html#radial-blur">-radial-blur <var>angle</var></a></td>
     <td>radial blur the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#raise">-raise <var>value</var></a></td>
+    <td><a href="command-line-options.html#raise">-raise <var>value</var></a></td>
     <td>lighten/darken image edges to create a 3-D effect</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#random-threshold">-random-threshold <var>low,high</var></a></td>
+    <td><a href="command-line-options.html#random-threshold">-random-threshold <var>low,high</var></a></td>
     <td>random threshold the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
+    <td><a href="command-line-options.html#red-primary">-red-primary <var>point</var></a></td>
     <td>chromaticity red primary point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#region">-region <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#region">-region <var>geometry</var></a></td>
     <td>apply options to a portion of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#remap">-remap <var>filename</var></a></td>
+    <td><a href="command-line-options.html#remap">-remap <var>filename</var></a></td>
     <td>transform image colors to match this set of colors</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#render">-render</a></td>
+    <td><a href="command-line-options.html#render">-render</a></td>
     <td>render vector graphics</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#repage">-repage <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#repage">-repage <var>geometry</var></a></td>
     <td>size and location of an image canvas</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resample">-resample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resample">-resample <var>geometry</var></a></td>
     <td>change the resolution of an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#resize">-resize <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#resize">-resize <var>geometry</var></a></td>
     <td>resize the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#roll">-roll <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#roll">-roll <var>geometry</var></a></td>
     <td>roll an image vertically or horizontally</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#rotate">-rotate <var>degrees</var></a></td>
     <td>apply Paeth rotation to the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sample">-sample <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sample">-sample <var>geometry</var></a></td>
     <td>scale image with pixel sampling</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scale">-scale <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#scale">-scale <var>geometry</var></a></td>
     <td>scale the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#scene">-scene <var>value</var></a></td>
+    <td><a href="command-line-options.html#scene">-scene <var>value</var></a></td>
     <td>image scene number</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#segment">-segment <var>values</var></a></td>
+    <td><a href="command-line-options.html#segment">-segment <var>values</var></a></td>
     <td>segment an image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#threshold">-selective-blur <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#threshold">-selective-blur <var>geometry</var></a></td>
     <td>selectively blur pixels within a contrast threshold</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#separate">-separate</a></td>
+    <td><a href="command-line-options.html#separate">-separate</a></td>
     <td>separate an image channel into a grayscale image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sepia-tone">-sepia-tone <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#sepia-tone">-sepia-tone <var>threshold</var></a></td>
     <td>simulate a sepia-toned photo</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shade">-shade <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#shade">-shade <var>degrees</var></a></td>
     <td>shade the image using a distant light source</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shadow">-shadow <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shadow">-shadow <var>geometry</var></a></td>
     <td>simulate an image shadow</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sharpen">-sharpen <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shave">-shave <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shave">-shave <var>geometry</var></a></td>
     <td>shave pixels from the image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#shear">-shear <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#shear">-shear <var>geometry</var></a></td>
     <td>slide one edge of the image along the X or Y axis</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sigmoidal">-sigmoidal-contrast <var>geometry</var></a></td>
     <td>increase the contrast without saturating highlights or shadows</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#smush">-smush <var>offset</var></a></td>
+    <td><a href="command-line-options.html#smush">-smush <var>offset</var></a></td>
     <td>smush an image sequence together</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sketch">-sketch <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sketch">-sketch <var>geometry</var></a></td>
     <td>simulate a pencil sketch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#solarize">-solarize <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#solarize">-solarize <var>threshold</var></a></td>
     <td>negate all pixels above the threshold level</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#splice">-splice <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#splice">-splice <var>geometry</var></a></td>
     <td>splice the background color into the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#spread">-spread <var>radius</var></a></td>
+    <td><a href="command-line-options.html#spread">-spread <var>radius</var></a></td>
     <td>displace image pixels by a random amount</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#statistic">-statistic <var>type</var> <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#statistic">-statistic <var>type</var> <var>geometry</var></a></td>
     <td>replace each pixel with corresponding statistic from the neighborhood</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strip">-strip</a></td>
+    <td><a href="command-line-options.html#strip">-strip</a></td>
     <td>strip image of all profiles and comments</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stroke">-stroke <var>color</var></a></td>
+    <td><a href="command-line-options.html#stroke">-stroke <var>color</var></a></td>
     <td>graphic primitive stroke color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#strokewidth">-strokewidth <var>value</var></a></td>
+    <td><a href="command-line-options.html#strokewidth">-strokewidth <var>value</var></a></td>
     <td>graphic primitive stroke width</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stretch">-stretch <var>type</var></a></td>
+    <td><a href="command-line-options.html#stretch">-stretch <var>type</var></a></td>
     <td>render text with this font stretch</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#style">-style <var>type</var></a></td>
+    <td><a href="command-line-options.html#style">-style <var>type</var></a></td>
     <td>render text with this font style</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#swap">-swap <var>indexes</var></a></td>
+    <td><a href="command-line-options.html#swap">-swap <var>indexes</var></a></td>
     <td>swap two images in the image sequence</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#swirl">-swirl <var>degrees</var></a></td>
+    <td><a href="command-line-options.html#swirl">-swirl <var>degrees</var></a></td>
     <td>swirl image pixels about the center</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#synchronize">-synchronize</a></td>
+    <td><a href="command-line-options.html#synchronize">-synchronize</a></td>
     <td>synchronize image to storage device</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#taint">-taint</a></td>
+    <td><a href="command-line-options.html#taint">-taint</a></td>
     <td>mark the image as modified</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#texture">-texture <var>filename</var></a></td>
+    <td><a href="command-line-options.html#texture">-texture <var>filename</var></a></td>
     <td>name of texture to tile onto the image background</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#threshold">-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#threshold">-threshold <var>value</var></a></td>
     <td>threshold the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#thumbnail">-thumbnail <var>geometry</var></a></td>
     <td>create a thumbnail of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tile">-tile <var>filename</var></a></td>
+    <td><a href="command-line-options.html#tile">-tile <var>filename</var></a></td>
     <td>tile image when filling a graphic primitive</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tile-offset">-tile-offset <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#tile-offset">-tile-offset <var>geometry</var></a></td>
     <td>set the image tile offset</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#tint">-tint <var>value</var></a></td>
+    <td><a href="command-line-options.html#tint">-tint <var>value</var></a></td>
     <td>tint the image with the fill color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transform">-transform</a></td>
+    <td><a href="command-line-options.html#transform">-transform</a></td>
     <td>affine transform image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent">-transparent <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent">-transparent <var>color</var></a></td>
     <td>make this color transparent within the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transpose">-transpose</a></td>
+    <td><a href="command-line-options.html#transpose">-transpose</a></td>
     <td>flip image in the vertical direction and rotate 90 degrees</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transverse">-transverse</a></td>
+    <td><a href="command-line-options.html#transverse">-transverse</a></td>
     <td>flop image in the horizontal direction and rotate 270 degrees</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
+    <td><a href="command-line-options.html#treedepth">-treedepth <var>value</var></a></td>
     <td>color tree depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#trim">-trim</a></td>
+    <td><a href="command-line-options.html#trim">-trim</a></td>
     <td>trim image edges</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#type">-type <var>type</var></a></td>
+    <td><a href="command-line-options.html#type">-type <var>type</var></a></td>
     <td>image type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#undercolor">-undercolor <var>color</var></a></td>
+    <td><a href="command-line-options.html#undercolor">-undercolor <var>color</var></a></td>
     <td>annotation bounding box color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unique-colors">-unique-colors</a></td>
+    <td><a href="command-line-options.html#unique-colors">-unique-colors</a></td>
     <td>discard all but one of any pixel color.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#units">-units <var>type</var></a></td>
+    <td><a href="command-line-options.html#units">-units <var>type</var></a></td>
     <td>the units of image resolution</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#unsharp">-unsharp <var>geometry</var></a></td>
     <td>sharpen the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#view">-view</a></td>
+    <td><a href="command-line-options.html#view">-view</a></td>
     <td>FlashPix viewing transforms</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#vignette">-vignette <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#vignette">-vignette <var>geometry</var></a></td>
     <td>soften the edges of the image in vignette style</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#wave">-wave <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#wave">-wave <var>geometry</var></a></td>
     <td>alter an image along a sine wave</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#wavelet">-wavelet-denoise <var>threshold</var></a></td>
+    <td><a href="command-line-options.html#wavelet">-wavelet-denoise <var>threshold</var></a></td>
     <td>removes noise from the image using a wavelet transform</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#weight">-weight <var>type</var></a></td>
+    <td><a href="command-line-options.html#weight">-weight <var>type</var></a></td>
     <td>render text with this font weight</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-point">-white-point <var>point</var></a></td>
+    <td><a href="command-line-options.html#white-point">-white-point <var>point</var></a></td>
     <td>chromaticity white point</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
+    <td><a href="command-line-options.html#white-threshold">-white-threshold <var>value</var></a></td>
     <td>force all pixels above the threshold into white</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#write">-write <var>filename</var></a></td>
+    <td><a href="command-line-options.html#write">-write <var>filename</var></a></td>
     <td>write images to this file</td>
   </tr>
 </table>
@@ -1332,22 +1338,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="magick.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:38 -->
\ No newline at end of file
diff --git a/www/miff.html b/www/miff.html
index 37b9d7f..fd35593 100644
--- a/www/miff.html
+++ b/www/miff.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Magick Image File Format @ ImageMagick</title>
+  <title>ImageMagick - Magick Image File Format</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="magick, image, file, format, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/miff.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -92,7 +98,7 @@
 
 <p>The following is a partial list of <var> key = value</var> combinations that are typically be found in a MIFF file:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>background-color = <var>color</var></td>
@@ -104,7 +110,7 @@
   </tr>
   <tr>
     <td>matte-color = <var>color</var></td>
-    <td>these optional keys reflect the image background, border, and matte colors respectively.  A <a href="../www/color.html">color</a> can be a name (e.g. white) or a hex value (e.g. #ccc).</td>
+    <td>these optional keys reflect the image background, border, and matte colors respectively.  A <a href="color.html">color</a> can be a name (e.g. white) or a hex value (e.g. #ccc).</td>
   </tr>
   <tr>
     <td>class = { DirectClass, PseudoClass }</td>
@@ -223,7 +229,7 @@
 columns=1280  rows=1024  depth=8
 compression=RLE
 colorspace=RGB
-copyright={© 1999-2018 ImageMagick Studio LLC}
+copyright={© 1999-2017 ImageMagick Studio LLC}
 &#8942;
 </code></pre>
 
@@ -253,22 +259,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="miff.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="miff.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 10:31 -->
\ No newline at end of file
diff --git a/www/mirror.html b/www/mirror.html
index 189b772..6793c72 100644
--- a/www/mirror.html
+++ b/www/mirror.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Mirror @ ImageMagick</title>
+  <title>ImageMagick - Mirror</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="mirror, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="mirror.html" rel="canonical" />
+  <link href="../www/mirror.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,22 +72,23 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="lead magick-description">ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below.  ImageMagick stable and development source releases are also available from <a href="http://git.imagemagick.org/repos/ImageMagick">Git</a>.  Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.  The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.</p>
-<p>The latest release of ImageMagick is version 7.0.8-23.</p>
+<p class="lead magick-description">ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below.  ImageMagick stable and development source releases are also available from <a href="https://github.com/ImageMagick">Git</a>.  Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.  The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.</p>
+<p>The latest release of ImageMagick is version 7.0.9-14.</p>
 <dl>
   <dt>Germany</dt>
     <dd><a href="http://mirror.checkdomain.de/imagemagick/">http://mirror.checkdomain.de/imagemagick/</a></dd>
@@ -111,27 +117,29 @@
     <dd><a href="rsync://mirror.imagemagick.org/magick_html">rsync://mirror.imagemagick.org/magick_html/</a> (Web site mirror)</dd>
     <dd><a href="rsync://mirror.imagemagick.org/magick_ftp">rsync://mirror.imagemagick.org/magick_ftp/</a> (FTP mirror)</dd>
 </dl>
-<p>If you want to add a new mirror, please <a href="../www/https://imagemagick.org/script/contact.php">contact us</a>.</p>
+<p>If you want to add a new mirror, please <a href="https://imagemagick.org/script/contact.php">contact us</a>.</p>
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="mirror.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:31 -->
\ No newline at end of file
diff --git a/www/mogrify.html b/www/mogrify.html
index f1cf144..cbda0e7 100644
--- a/www/mogrify.html
+++ b/www/mogrify.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Mogrify @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Mogrify</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, mogrify, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/mogrify.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -711,6 +717,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#colors">-kmeans <var>geometry</var></a></td>
+    <td>K means color reduction</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#kuwahara">-kuwahara <var>geometry</var></a></td>
     <td>edge preserving noise reduction filter</td>
   </tr>
@@ -1323,22 +1334,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="mogrify.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="mogrify.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:37 -->
\ No newline at end of file
diff --git a/www/montage.html b/www/montage.html
index 0d75e82..7350de9 100644
--- a/www/montage.html
+++ b/www/montage.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Montage @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Montage</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, montage, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/montage.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -263,6 +269,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#delay">-delay <var>value</var></a></td>
+    <td>display the next image after pausing</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
@@ -508,7 +519,7 @@
   </tr>
 
   <tr>
-    <td><a href="command-line-options.html#scenes">-scenes<var>range</var></a></td>
+    <td><a href="command-line-options.html#scenes">-scenes <var>range</var></a></td>
     <td>image scene range</td>
   </tr>
 
@@ -553,8 +564,8 @@
   </tr>
 
   <tr>
-    <td><a href="command-line-options.html#tile">-tile <var>filename</var></a></td>
-    <td>tile image when filling a graphic primitive</td>
+    <td><a href="command-line-options.html#tile">-tile <var>geometry</var></a></td>
+    <td>number of tiles per row and column (e.g. -tile 8x)</td>
   </tr>
 
   <tr>
@@ -645,22 +656,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="montage.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="montage.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:13 -->
\ No newline at end of file
diff --git a/www/motion-picture.html b/www/motion-picture.html
index 7154d06..780d957 100644
--- a/www/motion-picture.html
+++ b/www/motion-picture.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Motion Picture Digital Images @ ImageMagick</title>
+  <title>ImageMagick - Motion Picture Digital Images</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="motion, picture, digital, images, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/motion-picture.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -199,22 +205,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="motion-picture.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="motion-picture.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:06 -->
\ No newline at end of file
diff --git a/www/opencl.html b/www/opencl.html
index 9800b69..492db1b 100644
--- a/www/opencl.html
+++ b/www/opencl.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Parallel Execution with OpenCL @ ImageMagick</title>
+  <title>ImageMagick - Parallel Execution with OpenCL</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="parallel, execution, with, opencl, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="opencl.html" rel="canonical" />
+  <link href="../www/opencl.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -115,22 +121,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="opencl.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 12:14 -->
\ No newline at end of file
diff --git a/www/openmp.html b/www/openmp.html
index aed9c03..290439a 100644
--- a/www/openmp.html
+++ b/www/openmp.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Parallel Execution with OpenMP @ ImageMagick</title>
+  <title>ImageMagick - Parallel Execution with OpenMP</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="parallel, execution, with, openmp, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="openmp.html" rel="canonical" />
+  <link href="../www/openmp.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,27 +72,29 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 
 <p class="lead magick-description">Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips and <a href="http://www.openmp.org">OpenMP</a>. OpenMP, is an API specification for parallel programming. If your compiler supports OpenMP (e.g. gcc, Visual Studio 2005) directives, ImageMagick automatically includes support. To verify, look for the OpenMP feature of ImageMagick with this command:</p>
 <pre class="highlight"><code>-> magick identify -version
-Version: ImageMagick 7.0.8-21 2019-01-04 Q16 https://imagemagick.org
-Copyright: © 1999-2019 ImageMagick Studio LLC
-Features: OpenMP</code></pre>
+Version: ImageMagick 7.0.9-7 2020-09-04 Q16 https://imagemagick.org
+Copyright: © 1999-2020 ImageMagick Studio LLC
+Features: OpenMP(4.5)</code></pre>
 <p>With OpenMP enabled, most ImageMagick algorithms execute on all the cores on your system in parallel.  ImageMagick typically divides the work so that each thread processes 64 rows of pixels. As rows are completed, OpenMP assigns more chunks of pixel rows to each thread until the algorithm completes. For example, if you have a quad-core system, and attempt to resize an image, the resizing takes place on 4 cores (8 if hyperthreading is enabled).</p>
+<p>You can further increase performance by reducing lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library.  To enable, add <code>--with-tcmalloc</code> to the <code>configure</code> command-line when you build ImageMagick.</p>
 <h5>The Perils of Parallel Execution</h5>
 <p>It can be difficult to predict behavior in a parallel environment. Performance might depend on a number of factors including the compiler, the version of the OpenMP library, the processor type, the number of cores, the amount of memory, whether hyperthreading is enabled, the mix of applications that are executing concurrently with ImageMagick, or the particular image-processing algorithm you utilize. The only way to be certain of the optimal performance, in terms of the number of threads, is to benchmark. ImageMagick includes progressive threading when benchmarking a command and returns the elapsed time and efficiency for one or more threads. This can help you identify how many threads are the most efficient in your environment. Here is an example benchmark for threads 1-8:</p>
 
@@ -105,22 +112,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="openmp.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 09:50 -->
\ No newline at end of file
diff --git a/www/perl-magick.html b/www/perl-magick.html
index 9842882..87bb826 100644
--- a/www/perl-magick.html
+++ b/www/perl-magick.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>PerlMagick, Perl API @ ImageMagick</title>
+  <title>ImageMagick - PerlMagick, Perl API</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="perlmagick, perl, api, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="perl-magick.html" rel="canonical" />
+  <link href="../www/perl-magick.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,26 +72,27 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="perl-magick.html#installation">Installation</a> • <a href="perl-magick.html#overview">Overview</a> • <a href="perl-magick.html#example">Example Script</a> • <a href="perl-magick.html#read">Read or Write an Image</a> • <a href="perl-magick.html#manipulate">Manipulate an Image</a> • <a href="perl-magick.html#set-attribute">Set an Image Attribute</a> • <a href="perl-magick.html#get-attribute">Get an Image Attribute</a> • <a href="perl-magick.html#compare">Compare an Image to its Reconstruction</a> • <a href="perl-magick.html#montage">Create an Image Montage</a> • <a href="perl-magick.html#blobs">Working with Blobs</a> • <a href="perl-magick.html#direct-access">Direct-access to Image Pixels</a> • <a href="perl-magick.html#miscellaneous">Miscellaneous Methods</a> • <a href="perl-magick.html#exceptions">Handling Exceptions</a>• <a href="perl-magick.html#constants">Constant</a> </p>
 
 <a class="anchor" id="introduction"></a>
-<p class="lead magick-description"><a href="../www/download.html">PerlMagick</a> is an objected-oriented <a href="http://www.perl.com/perl/">Perl</a> interface to ImageMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl script. This makes it very suitable for Web CGI scripts. You must have ImageMagick 6.5.5 or above and Perl version 5.005_02 or greater installed on your system for PerlMagick to build properly.</p>
+<p class="lead magick-description"><a href="download.html">PerlMagick</a> is an objected-oriented <a href="http://www.perl.com/perl/">Perl</a> interface to ImageMagick. Use the module to read, manipulate, or write an image or image sequence from within a Perl script. This makes it very suitable for Web CGI scripts. You must have ImageMagick 6.5.5 or above and Perl version 5.005_02 or greater installed on your system for PerlMagick to build properly.</p>
 
-<p>There are a number of useful scripts available to show you the value of PerlMagick. You can do Web based image manipulation and conversion with <a href="https://imagemagick.org/download/perl">MagickStudio</a>, or use <a href="http://git.imagemagick.org/repos/ImageMagick/PerlMagick/demo">L-systems</a> to create images of plants using mathematical constructs, and finally navigate through collections of thumbnail images and select the image to view with the <a href="http://webmagick.sourceforge.net/">WebMagick Image Navigator</a>.</p>
+<p>There are a number of useful scripts available to show you the value of PerlMagick. You can do Web based image manipulation and conversion with <a href="https://imagemagick.org/download/perl">MagickStudio</a>, or use <a href="https://github.com/ImageMagick/ImageMagick/tree/master/PerlMagick/demo/tree.pl">L-systems</a> to create images of plants using mathematical constructs, and finally navigate through collections of thumbnail images and select the image to view with the <a href="http://webmagick.sourceforge.net/">WebMagick Image Navigator</a>.</p>
 
 <p>You can try PerlMagick from your Web browser at the <a href="../MagickStudio/scripts/MagickStudio.cgi">ImageMagick Studio</a>. Or, you can see <a href="examples.html">examples</a> of select PerlMagick functions.</p>
 
@@ -108,7 +114,7 @@
 
 <p>Next configure and compile ImageMagick:</p>
 
-<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.8</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure -with-perl</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre>
+<pre class="highlight"><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.9<br/>$ ./configure -with-perl<br/>$ make</span></pre>
 <p>If ImageMagick / PerlMagick configured and compiled without complaint, you are ready to install it on your system.  Administrator privileges are required to install.  To install, type</p>
 
 <pre class="highlight"><code>sudo make install
@@ -129,7 +135,7 @@
 
 <p><b>Windows XP / Windows 2000</b></p>
 
-<p>ImageMagick must already be installed on your system. Also, the ImageMagick source distribution for <a href="../www/download.html">Windows 2000</a> is required. You must also have the <code>nmake</code> from the Visual C++ or J++ development environment. Copy <code>\bin\IMagick.dll</code> and <code>\bin\X11.dll</code> to a directory in your dynamic load path such as <code>c:\perl\site\5.00502</code>.</p>
+<p>ImageMagick must already be installed on your system. Also, the ImageMagick source distribution for <a href="download.html">Windows 2000</a> is required. You must also have the <code>nmake</code> from the Visual C++ or J++ development environment. Copy <code>\bin\IMagick.dll</code> and <code>\bin\X11.dll</code> to a directory in your dynamic load path such as <code>c:\perl\site\5.00502</code>.</p>
 
 <p>Next, type</p>
 
@@ -432,7 +438,7 @@
 
   <tr>
     <td>Annotate</td>
-    <td>text=&gt;<i>string</i>, font=&gt;<i>string</i>, family=&gt;<i>string</i>, style=&gt;{Normal, Italic, Oblique, Any}, stretch=&gt;{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=&gt;<i>integer</i>, pointsize=&gt;<i>integer</i>, density=&gt;<i>geometry</i>, stroke=&gt;<i><a href="color.html">color name</a></i>, strokewidth=&gt;<i>integer</i>, fill=&gt;<i><a href="color.html">color name</a></i>, undercolor=&gt;<i><a href="color.html">color name</a></i>, kerning=&gt;<i>float</i>, geometry=&gt;<i>geometry</i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=&gt;{true, false}, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, affine=&gt;<i>array of float values</i>, translate=&gt;<i>float, float</i>, scale=&gt;<i>float, float</i>, rotate=&gt;<i>float</i>. skewX=&gt;<i>float</i>, skewY=&gt; <i>float</i>, align=&gt;{Left, Center, Right}, encoding=&gt;{UTF-8}, interline-spacing=&gt;<i>double</i>, interword-spacing=&gt;<i>double</i>, direction=&gt;{right-to-left, left-to-right}</td>
+    <td>text=&gt;<i>string</i>, font=&gt;<i>string</i>, family=&gt;<i>string</i>, style=&gt;{Normal, Italic, Oblique, Any}, stretch=&gt;{Normal, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, SemiExpanded, Expanded, ExtraExpanded, UltraExpanded}, weight=&gt;<i>integer</i>, pointsize=&gt;<i>integer</i>, density=&gt;<i>geometry</i>, stroke=&gt;<i><a href="color.html">color name</a></i>, strokewidth=&gt;<i>integer</i>, fill=&gt;<i><a href="color.html">color name</a></i>, undercolor=&gt;<i><a href="color.html">color name</a></i>, kerning=&gt;<i>float</i>, geometry=&gt;<i>geometry</i>, gravity=&gt;{NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast}, antialias=&gt;{true, false}, x=&gt;<i>integer</i>, y=&gt;<i>integer</i>, affine=&gt;<i>array of float values</i>, translate=&gt;<i>float, float</i>, scale=&gt;<i>float, float</i>, rotate=&gt;<i>float</i>. skewX=&gt;<i>float</i>, skewY=&gt; <i>float</i>, align=&gt;{Left, Center, Right}, encoding=&gt;{UTF-8}, interline-spacing=&gt;<i>double</i>, interword-spacing=&gt;<i>double</i>, direction=&gt;{right-to-left, left-to-right}, decorate=&gt;{none, underline, overline, line-through}</td>
     <td>annotate an image with text. See <a href="perl-magick.html#misc">QueryFontMetrics</a> to get font metrics without rendering any text.</td>
   </tr>
 
@@ -533,12 +539,6 @@
   </tr>
 
   <tr>
-    <td>Coalesce</td>
-    <td><br /></td>
-    <td>merge a sequence of images</td>
-  </tr>
-
-  <tr>
     <td>Color</td>
     <td>color=&gt;<i><a href="color.html">color name</a></i></td>
     <td>set the entire image to this color.</td>
@@ -815,6 +815,12 @@
   </tr>
 
   <tr>
+    <td>Kmeans</td>
+    <td>geometry=&gt;<i>geometry</i>, 'colors'=&gt;<i>double</i>, 'iterations'=&gt;<i>double</i>, 'tolerance'=&gt;<i>double</i></td>
+    <td>K means color reduction.</td>
+  </tr>
+
+  <tr>
     <td>Kuwahara</td>
     <td>geometry=&gt;<i>geometry</i>, radius=&gt;<i>double</i>, sigma=&gt;<i>double</i>, bias=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}</td>
     <td>edge preserving noise reduction filter</td>
@@ -1322,7 +1328,7 @@
 
 <p>You can optionally add <i>Image</i> to any method name. For example, TrimImage() is an alias for method Trim().</p>
 
-<p>Most of the attributes listed above have an analog in <a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
+<p>Most of the attributes listed above have an analog in <a href="convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
 
 <h2><a class="anchor" id="set-attribute"></a>Set an Image Attribute</h2>
 
@@ -1735,7 +1741,7 @@
 <p>SetAttribute() is an alias for method Set().</p>
 
 <p>Most of the attributes listed above have an analog in
-<a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
+<a href="convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
 
 <h2><a class="anchor" id="get-attribute"></a>Get an Image Attribute</h2>
 
@@ -2007,7 +2013,7 @@
 <p>GetAttribute() is an alias for method Get().</p>
 
 <p>Most of the attributes listed above have an analog in
-<a href="../www/convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
+<a href="convert.html">convert</a>. See the documentation for a more detailed description of these attributes.</p>
 
 <h2><a class="anchor" id="compare"></a>Compare an Image to its Reconstruction</h2>
 
@@ -2192,13 +2198,13 @@
 
 <p>MontageImage() is an alias for method Montage().</p>
 
-<p>Most of the attributes listed above have an analog in <a href="../www/montage.html">montage</a>. See the documentation for a more detailed description of these attributes.</p>
+<p>Most of the attributes listed above have an analog in <a href="montage.html">montage</a>. See the documentation for a more detailed description of these attributes.</p>
 
 <h2><a class="anchor" id="blobs"></a>Working with Blobs</h2>
 
 <p>A blob contains data that directly represent a particular image
 format in memory instead of on disk. PerlMagick supports
-blobs in any of these image <a href="../www/formats.html">formats</a> and provides methods to convert a blob to or from a particular image format.</p>
+blobs in any of these image <a href="formats.html">formats</a> and provides methods to convert a blob to or from a particular image format.</p>
 
 <table class="table table-sm table-striped">
   <caption>Blob Methods</caption>
@@ -2304,6 +2310,16 @@
 
 <p>copies all the images from object <code>$p</code> to <code>$q</code>. You can use this method for single or multi-image sequences.</p>
 
+<p>Coalesce() composites a set of images while respecting any page
+offsets and disposal methods.  GIF, MIFF, and MNG animation sequences
+typically start with an image background and each subsequent image
+varies in size and offset.  A new image sequence is returned with all
+images the same size as the first images virtual canvas and composited
+with the next image in the sequence.. For example,</p>
+
+<pre class="highlight"><code>$q = $p-&gt;Coalesce();
+</code></pre>
+
 <p>The ComplexImages() method performs complex mathematics on an image sequence. For example,</p>
 
 <pre class="highlight"><code>$p = $image-&gt;ComplexImages('conjugate');
@@ -2442,7 +2458,7 @@
 <pre class="highlight"><code>$mime = $image-&gt;MagickToMime('tif');
 </code></pre>
 
-<p>Use RemoteCommand() to send a command to an already running <a href="../www/display.html">display</a> or <a href="animate.html">animate</a> application. The only parameter is the name of the image file to display or animate.</p>
+<p>Use RemoteCommand() to send a command to an already running <a href="display.html">display</a> or <a href="animate.html">animate</a> application. The only parameter is the name of the image file to display or animate.</p>
 
 <pre class="highlight"><code>$image-&gt;RemoteCommand('image.jpg');
 </code></pre>
@@ -2500,7 +2516,7 @@
 <pre class="highlight"><code>Error 400: Memory allocation failed
 </code></pre>
 
-<p>Review the complete list of <a href="exception.html">error and warning codes</a>.</p>
+<p>Review the complete list of <a href="../www/exception.html">error and warning codes</a>.</p>
 
 <p>The following illustrates how you can use a numeric status code:</p>
 
@@ -2566,22 +2582,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="perl-magick.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 11:48 -->
\ No newline at end of file
diff --git a/www/porting.html b/www/porting.html
index f9aad84..8ae306f 100644
--- a/www/porting.html
+++ b/www/porting.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Porting to ImageMagick Version 7 @ ImageMagick</title>
+  <title>ImageMagick - Porting to ImageMagick Version 7</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="porting, to, imagemagick, version, 7, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="porting.html" rel="canonical" />
+  <link href="../www/porting.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,24 +72,25 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 
 <p class="text-center"><a href="porting.html#imv7">ImageMagick Version 7</a> • <a href="porting.html#hdri">High Dynamic Range Imaging</a> • <a href="porting.html#channels">Pixel Channels</a> • <a href="porting.html#alpha">Alpha</a> • <a href="porting.html#grayscale">Grayscale</a> • <a href="porting.html#mask">Masks</a> • <a href="porting.html#core">MagickCore API</a> • <a href="porting.html#headers">Header Files</a>  • <a href="porting.html#deprecate">Deprecated Features Removed</a> • <a href="porting.html#cli">Command-line Interface</a> • <a href="porting.html#summary">Version 7 Change Summary</a> </p>
 
-<p class="lead magick-description">The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other.  With ImageMagick version 7 we improved the design based on lessons learned from the version 6 implementation.  ImageMagick was originally designed to display RGB images to an X Windows server.  Over time we extended support to RGBA images and then to the CMYK and CMYKA image format.  With ImageMagick version 7, we extend support to arbitrary colorspaces with an arbitrary number of pixel channels.  In addition, ImageMagick 7 stores pixel channels as floats permitting out of band values (e.g. negative) and reduces rounding error.  There are numerous other design enhancements described within.</p>
+<p class="lead magick-description">The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other.  With ImageMagick version 7, we improved the design based on lessons learned from the version 6 implementation.  ImageMagick was originally designed to display RGB images to an X Windows server.  Over time we extended support to RGBA images and then to the CMYK and CMYKA image format.  With ImageMagick version 7, we extend support to arbitrary colorspaces with an arbitrary number of pixel channels.  In addition, ImageMagick 7 stores pixel channels as floats permitting out of band values (e.g. negative) and reduces rounding error.  There are numerous other design enhancements described within.</p>
 
 <p>To support variable pixel channels in the MagickCore API, pixel handling has changed when getting or setting the pixel channels.  You can access channels as an array, <var>pixel[i]</var>, or use an accessor method such as GetPixelRed() or SetPixelRed().  There are some modest changes to the MagickCore and MagickWand API's.   The Magick++ and PerlMagick API's have not changed and matches that of the ImageMagick version 6.</p>
 
@@ -105,7 +111,7 @@
 <p>Now that ImageMagick version 7 is released, we continue to support and enhance version 6 for a minimum of 10 years.</p>
 
 <h2><a class="anchor" id="hdri"></a>High Dynamic Range Imaging</h2>
-<p>ImageMagick version 7 enables <a href="../www/high-dynamic-range.html">high dynamic range imaging</a> (HDRI) by default.  HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.  In addition, image processing results are more accurate.  The disadvantage is it requires more memory and may result in slower processing times.  If you see differences in the results of your version 6 command-line with version 7, it is likely due to HDRI.  You may need to add <code>-clamp</code> to your command-line to constrain pixels to the 0 .. QuantumRange range, or disable HDRI when you build ImageMagick version 7.  To disable HDRI (recommended for smart phone builds such as iOS or production sites where performance is a premium), simply add <code>--disable-hdri</code> to the configure script command line when building ImageMagick.</p>
+<p>ImageMagick version 7 enables <a href="high-dynamic-range.html">high dynamic range imaging</a> (HDRI) by default.  HDRI accurately represents the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.  In addition, image processing results are more accurate.  The disadvantage is it requires more memory and may result in slower processing times.  If you see differences in the results of your version 6 command-line with version 7, it is likely due to HDRI.  You may need to add <code>-clamp</code> to your command-line to constrain pixels to the 0 .. QuantumRange range, or disable HDRI when you build ImageMagick version 7.  To disable HDRI (recommended for smart phone builds such as iOS or production sites where performance is a premium), simply add <code>--disable-hdri</code> to the configure script command line when building ImageMagick.</p>
 
 <h2><a class="anchor" id="channels"></a>Pixel Channels</h2>
 <p>A pixel is comprised of one or more color values, or <var>channels</var> (e.g. red pixel channel).</p>
@@ -306,7 +312,7 @@
 <p>Previously, grayscale images were Rec601Luminance and consumed 4 channels: red, green, blue, and alpha.  With version 7, grayscale consumes only 1 channel requiring far less resources as a result.</p>
 
 <h2><a class="anchor" id="mask"></a>Masks</h2>
-<p>Version 7 supports masks for most image operators.  White pixels in a read mask ignores corresponding pixel in an image whereas white pixels in a write mask protects the corresponding pixel in the image.  From the command-line, you can associate a mask with an image with the <code>-read-mask</code> and <code>-write-mask</code> options.  This polarity is matches the masks in version 6 of ImageMagick for ease of porting your workflow.  For convenience, we continue to support the <code>-mask</code> option in version 7 to match the behavior of version 6.</p>
+<p>Version 7 supports masks for most image operators.  White pixels in a read mask ignores corresponding pixel in an image whereas white pixels in a write mask protects the corresponding pixel in the image.  From the command-line, you can associate a mask with an image with the <code>-read-mask</code> and <code>-write-mask</code> options.  This polarity matches the masks in version 6 of ImageMagick for ease of porting your workflow.  For convenience, we continue to support the <code>-mask</code> option in version 7 to match the behavior of version 6.</p>
 <p>In this example, we compute the distortion of a masked reconstructed image:</p>
 <pre class="highlight"><code>compare -metric rmse -read-mask hat_mask.png hat.png wizard.png difference.png</code></pre>
 <p>Here we protect certain pixels from change:</p>
@@ -385,6 +391,8 @@
 and continue processing (as appropriate due to error) in co-processes or
 interactive usage. </p>
 
+<p>With the IMv7 parser, activated by the `magick` utility, settings are applied to each image in memory in turn (if any). While an option: only need to be applied once globally. Using the other utilities directly, or as an argument to the `magick` CLI (e.g. `magick convert`) utilizes the legacy parser.</p>
+
 <p>The parenthesis options used to 'push' the current image list, and image
 settings (EG: '<code>(</code>' and '<code>)</code>' ) on to a stack now has
 a completely separate image settings stack. That is parenthesis 'push/pull'
@@ -449,7 +457,7 @@
 <dt class="col-md-4">-gamma</dt>
 <dd class="col-md-8">Multiple gamma arguments (e.g. <code>-gamma 1,2,3</code>) are no longer supported, instead use <code>-channel</code> (e.g. <code>-channel blue -gamma 2)</code>.</dd>
 <dt class="col-md-4">-region</dt>
-<dd class="col-md-8">This option set a write mask for the region you define.  In IMv6, a separate image was clone instead, operated on, and the results were composited to the source image.  In addition, the draw transformations are relative to the upper left corner of the image, previously in IMv6 they were relative to the region.</dd>
+<dd class="col-md-8">This option sets a write mask for the region you define.  In IMv6, a separate image was cloned instead, operated on, and the results were composited to the source image.  In addition, the draw transformations are relative to the upper left corner of the image, previously in IMv6 they were relative to the region.</dd>
 </dl>
 
 <p>Use <code>-define morphology:showKernel=1</code> to post the morphology or convolution kernel.  Previously it was <code>-define showKernel=1</code>.</p>
@@ -475,6 +483,9 @@
     secondary image reads (for use in things like alpha composition) from
     the 'in-place' image being processed.  In other commands (such as "magick") it is equivalent to a explicit "<code>-read</code>" (see below) of the next option as a image (as it was in IMv6).  </dd>
 
+<dt class="col-md-4">-alpha activate/deactivate</dt>
+<dd class="col-md-8">enables and disables the alpha channel, respectively, with persistence. This is like on/off in Imagemagick 6. In Imagemagick 7, -alpha off will remove the alpha channel permanently such that -alpha on will not re-enable it.</dd>
+
 <dt class="col-md-4">-alpha discrete</dt>
 <dd class="col-md-8">treat the alpha channel independently (do not blend).</dd>
 
@@ -652,22 +663,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="porting.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:01 -->
\ No newline at end of file
diff --git a/www/quantize.html b/www/quantize.html
index 6a0f7c3..a3fd631 100644
--- a/www/quantize.html
+++ b/www/quantize.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Color Reduction Utilizing Adaptive Spatial Subdivision @ ImageMagick</title>
+  <title>ImageMagick - Color Reduction Utilizing Adaptive Spatial Subdivision</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="color, reduction, utilizing, adaptive, spatial, subdivision, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="quantize.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -187,7 +193,7 @@
 
 <p>These errors are measured and printed when the <a href="../www/command-line-options.html#colors">-colors</a> and <a href="../www/command-line-options.html#verbose">-verbose</a> options are specified on the <a href="../www/convert.html">convert</a> command line:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>mean error per pixel</td>
@@ -208,21 +214,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="quantize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="quantize.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:34 -->
\ No newline at end of file
diff --git a/www/resources.html b/www/resources.html
index f94b8aa..da9e86c 100644
--- a/www/resources.html
+++ b/www/resources.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Resources @ ImageMagick</title>
+  <title>ImageMagick - Resources</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="resources, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/resources.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -99,7 +105,7 @@
 <dt class="col-md-4"><a href="https://imagemagick.org/source/colors.xml">colors.xml</a></dt>
   <dd class="col-md-8">Associate a color name with its red, green, blue, and alpha intensities.
 
-  A number of command line options require a <a href="../www/color.html">color parameter</a>.  It is often convenient to refer to a color by name (e.g. white) rather than by hex value (e.g. #fff).  This file maps a color name to its equivalent red, green, blue, and alpha intensities (e.g. for white, red = 255, green = 255, blue = 255, and alpha = 0).
+  A number of command line options require a <a href="color.html">color parameter</a>.  It is often convenient to refer to a color by name (e.g. white) rather than by hex value (e.g. #fff).  This file maps a color name to its equivalent red, green, blue, and alpha intensities (e.g. for white, red = 255, green = 255, blue = 255, and alpha = 0).
   </dd>
 
 <dt class="col-md-4"><a class="anchor" id="configure.xml"/><a href="https://imagemagick.org/source/configure.xml">configure.xml</a></dt>
@@ -209,7 +215,7 @@
 $USERPROFILE/.config/ImageMagick
 &lt;<var>client path</var>&gt;</code></pre>
 
-<p>Above, $PREFIX is the default install path, typically <code>c:\\Program Files\\ImageMagick-7.0.8</code>.</p>
+<p>Above, $PREFIX is the default install path, typically <code>c:\\Program Files\\ImageMagick-7.0.9</code>.</p>
 
 <p>For an uninstalled Windows installation, the configuration load order is:</p>
 
@@ -226,31 +232,31 @@
 <h5>Coders</h5>
 <p>An image coder (i.e. encoder / decoder) is responsible for registering, optionally classifying, optionally reading, optionally writing, and unregistering one image format (e.g. PNG, GIF, JPEG, etc.).  ImageMagick searches for coders in the following order and it uses the first match found:</p>
 
-<pre class="highlight"><code>$MAGICK_HOME/lib/ImageMagick-7.0.8/modules-Q16/coders
-&lt;<var>client path</var>&gt;/../lib/ImageMagick-7.0.8/modules-Q16/coders
-$MAGICK_HOME/lib/ImageMagick-7.0.8/modules-Q16/coders
-$MAGICK_HOME/share/ImageMagick-7.0.8/modules-Q16/coders
+<pre class="highlight"><code>$MAGICK_HOME/lib/ImageMagick-7.0.9/modules-Q16/coders
+&lt;<var>client path</var>&gt;/../lib/ImageMagick-7.0.9/modules-Q16/coders
+$MAGICK_HOME/lib/ImageMagick-7.0.9/modules-Q16/coders
+$MAGICK_HOME/share/ImageMagick-7.0.9/modules-Q16/coders
 $XDG_CACHE_HOME/ImageMagick
 $HOME/.config/ImageMagick
-&lt;<var>client path</var>&gt;/lib/ImageMagick-7.0.8/modules-Q16/coders</code></pre>
+&lt;<var>client path</var>&gt;/lib/ImageMagick-7.0.9/modules-Q16/coders</code></pre>
 
 <h5>Filters</h5>
 <p>ImageMagick provides a convenient mechanism for adding your own custom image processing algorithms.  ImageMagick searches for filters in the following order and it uses the first match found:</p>
-<pre class="highlight"><code>$MAGICK_HOME/lib/ImageMagick-7.0.8/modules-Q16/filters
-&lt;<var>client path</var>&gt;/../lib/ImageMagick-7.0.8/modules-Q16/filters
-$MAGICK_HOME/lib/ImageMagick-7.0.8/modules-Q16/filters
-$MAGICK_HOME/share/ImageMagick-7.0.8/modules-Q16/filters
+<pre class="highlight"><code>$MAGICK_HOME/lib/ImageMagick-7.0.9/modules-Q16/filters
+&lt;<var>client path</var>&gt;/../lib/ImageMagick-7.0.9/modules-Q16/filters
+$MAGICK_HOME/lib/ImageMagick-7.0.9/modules-Q16/filters
+$MAGICK_HOME/share/ImageMagick-7.0.9/modules-Q16/filters
 $XDG_CACHE_HOME/ImageMagick
 $HOME/.config/ImageMagick
-&lt;<var>client path</var>&gt;/lib/ImageMagick-7.0.8/modules-Q16/filters</code></pre>
+&lt;<var>client path</var>&gt;/lib/ImageMagick-7.0.9/modules-Q16/filters</code></pre>
 
 <h2><a class="anchor" id="fonts"></a>Fonts</h2>
 
 <p>ImageMagick is able to load raw TrueType and Postscript font files.  It searches for the font configuration file, <a href="resources.html#type.xml">type.xml</a>, in the following order, and loads them if found:</p>
 
 <pre class="highlight"><code>$MAGICK_CONFIGURE_PATH
-$MAGICK_HOME/etc/ImageMagick/-7.0.8
-$MAGICK_HOME/share/ImageMagick-7.0.8
+$MAGICK_HOME/etc/ImageMagick/-7.0.9
+$MAGICK_HOME/share/ImageMagick-7.0.9
 $XDG_CACHE_HOME/ImageMagick
 $HOME/.config/ImageMagick
 &lt;<var>client path</var>&gt;/etc/ImageMagick
@@ -260,7 +266,7 @@
 
 <p>Environment variables recognized by ImageMagick include:</p>
 
-<div class="table-responsive">
+<div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-striped">
   <tr>
     <td>HOME</td>
@@ -371,22 +377,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="resources.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="resources.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:21 -->
\ No newline at end of file
diff --git a/www/search.html b/www/search.html
index 017d07b..21dbccd 100644
--- a/www/search.html
+++ b/www/search.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Search @ ImageMagick</title>
+  <title>ImageMagick - Search</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="search, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="https://imagemagick.org/script/search.php" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -39,7 +44,7 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
         <a class="nav-link" href="../www/download.html">Download</a>
@@ -57,7 +62,7 @@
         <a class="nav-link" href="../www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
-        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
+        <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server//">Community</a>
       </li>
     </ul>
     <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -121,17 +127,18 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
+    <a href="../www/architecture.html">Architecture</a>
+     
+    <a href="https://imagemagick.org/script/search.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="../www/links.html">Related</a> •
      <a href="../www/sitemap.html">Sitemap</a>
-       
-    <a href="https://imagemagick.org/script/search.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/../www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
diff --git a/www/security-policy.html b/www/security-policy.html
index fe2e48a..c4bcb68 100644
--- a/www/security-policy.html
+++ b/www/security-policy.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Security Policy @ ImageMagick</title>
+  <title>ImageMagick - Security Policy</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="security, policy, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/security-policy.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -91,6 +97,7 @@
 <p>As an example, suppose you download an image from the internet and unbeknownst to you its been crafted to generate a 20000 by 20000 pixel image. ImageMagick attempts to allocate enough resources (memory, disk) and your system will likely deny the resource request and exit. However, its also possible that your computer might be temporarily sluggish or unavailable or ImageMagick may abort. To prevent such a scenario, you can set limits in the <code>policy.xml</code> configuration file. You might wonder why ImageMagick does not already include reasonable limits? Simply because what is reasonable in your environment, might not be reasonable to someone else. For example, you may have ImageMagick sandboxed where security is not a concern, whereas another user may use ImageMagick to process images on their publically accessible website.  Or ImageMagick runs on a host with 1TB of memory whereas another ImageMagick instance runs on an iPhone. By policy, permitting giga-pixel image processing on the large memory host makes sense, not so much for the resource constrained iPhone. If you utilize ImageMagick from a public website, you may want to increase security by preventing usage of the MVG or HTTPS coders. Only you can decide what are reasonable limits taking in consideration your environment. We provide this policy with reasonable limits and encourage you to modify it to suit your local environment:</p>
 
 <pre class="pre-scrollable"><code>&lt;policymap>
+  &lt;!-- temporary path must be a preexisting writable directory -->
   &lt;policy domain="resource" name="temporary-path" value="/tmp"/>
   &lt;policy domain="resource" name="memory" value="256MiB"/>
   &lt;policy domain="resource" name="map" value="512MiB"/>
@@ -114,6 +121,8 @@
   &lt;policy domain="coder" rights="none" pattern="XPS" />
   &lt;policy domain="filter" rights="none" pattern="*" />
   &lt;policy domain="delegate" rights="none" pattern="HTTPS" />  <!--  prevent 'curl' program from reading HTTPS URL's -->
+  &lt;policy domain="delegate" rights="none" pattern="SHOW" />
+  &lt;policy domain="delegate" rights="none" pattern="WIN" />
   &lt;policy domain="path" rights="none" pattern="@*"/>  <!-- indirect reads not permitted -->
 &lt;/policymap></code></pre>
 
@@ -131,11 +140,11 @@
 <p>As of ImageMagick version 7.0.4-7, you can conveniently deny access to all delegates and coders except for a small subset of proven web-safe image types.  For example,</p>
 
 <pre class="highlight"><code>&lt;policy domain="delegate" rights="none" pattern="*" />
-&lt;policy domain="coder" rights="none" pattern="*" />
-&lt;policy domain="coder" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" /></code></pre>
+&lt;policy domain="module" rights="none" pattern="*" />
+&lt;policy domain="module" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" /></code></pre>
 
 <p>Here we disable just a few Postscript related formats:</p>
-<pre class="highlight"><code>&lt;policy domain="coder" rights="none" pattern="{EPS,PS2,PS3,PS,PDF,XPS}" /></code></pre>
+<pre class="highlight"><code>&lt;policy domain="module" rights="none" pattern="{PDF,PS,PS2,PS3,XPS}" /></code></pre>
 
 <p>As of ImageMagick 7.0.7-0, you can allocate the pixel cache and some internal buffers with anonymous memory mapping rather than from heap.  As a consequence, the pixels are initialized to zero.  You can also securely delete any temporary files for increased security.  The value is the number of times to shred (replace its content with random data) before deleting a temporary file.  For example,</p>
 <pre class="highlight"><code>&lt;policy domain="system" name="memory-map" value="anonymous"/>
@@ -189,7 +198,7 @@
     name: precision
     value: 6
   Policy: Path
-    rights: None 
+    rights: None
     pattern: @*
 
 Path: [built-in]
@@ -243,22 +252,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="security-policy.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="security-policy.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:35 -->
\ No newline at end of file
diff --git a/www/sitemap.html b/www/sitemap.html
index 65420d1..a03aafb 100644
--- a/www/sitemap.html
+++ b/www/sitemap.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Sitemap @ ImageMagick</title>
+  <title>ImageMagick - Sitemap</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="sitemap, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="../www/sitemap.html" rel="canonical" />
-  <link href="../images/wand.png" rel="icon" />
-  <link href="../images/wand.ico" rel="shortcut icon" />
-  <link href="assets/magick.css" rel="stylesheet" />
+  <link href="../www/www/sitemap.html" rel="canonical" />
+  <link href="../www/images/wand.png" rel="icon" />
+  <link href="../www/images/wand.ico" rel="shortcut icon" />
+  <link href="../www/assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../www/images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,28 +44,28 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../www/index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="download.html">Download</a>
+        <a class="nav-link" href="../www/www/download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="command-line-tools.html">Tools</a>
+        <a class="nav-link" href="../www/www/command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="../www/www/command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="resources.html">Resources</a>
+        <a class="nav-link" href="../www/www/resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="develop.html">Develop</a>
+        <a class="nav-link" href="../www/www/develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
       </li>
     </ul>
-    <form class="form-inline my-2 my-lg-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-lg-0" action="../www/www/https://imagemagick.org/script/search.php">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -71,47 +76,48 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
 <p class="text-center"><a href="sitemap.html#overview">ImageMagick Overview</a> • <a href="sitemap.html#download">Download ImageMagick</a> • <a href="sitemap.html#install">Install ImageMagick</a> • <a href="sitemap.html#command-line">Command-line Tools</a> • <a href="sitemap.html#program-interfaces">Program Interfaces</a> • <a href="sitemap.html#formats">Image Formats</a> • <a href="sitemap.html#help">Getting Help</a> • <a href="sitemap.html#support">Support ImageMagick</a> • <a href="sitemap.html#miscellaneous">Miscellaneous Topics</a></p>
 
-<p class="lead magick-description">Use this ImageMagick sitemap to quickly jump to one of the areas of interest listed below.  If you can't find what you want on this page, try our <a href="https://imagemagick.org/script/search.php">site search</a>.</p>
+<p class="lead magick-description">Use this ImageMagick sitemap to quickly jump to one of the areas of interest listed below.  If you can't find what you want on this page, try our <a href="../www/www/https://imagemagick.org/script/search.php">site search</a>.</p>
 
 <h2><a class="anchor" id="overview"></a>ImageMagick Overview</h2>
 
 <dl class="magick-list-unstyled">
-  <li><a href="../www/index.html">Introduction</a>: convert, edit, or compose images from the command-line or program interface.</li>
-  <li><a href="../www/examples.html">Examples of ImageMagick usage</a>: a few examples that show what you can do with an image using ImageMagick.</li>
+  <li><a href="../www/www/index.html">Introduction</a>: convert, edit, or compose images from the command-line or program interface.</li>
+  <li><a href="../www/www/examples.html">Examples of ImageMagick usage</a>: a few examples that show what you can do with an image using ImageMagick.</li>
   <li><a href="../Usage/">Anthony Thyssen's examples of ImageMagick usage</a>:  a comprehensive tutorial of using ImageMagick from the command line.</li>
-  <li><a href="../www/color.html">Color names</a>: how to specify a color name, a hex color, or a numerical RGB, RGBA, HSL, HSLA, CMYK, or CMYKA color.</li>
-  <li><a href="../www/color-management.html">Color management</a>: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</li>
-  <li><a href="resources.html">Resources</a>: ImageMagick depends on external resources including configuration files, loadable modules, fonts, and environment variables.</li>
-  <li><a href="../www/openmp.html">Parallel execution</a>: ImageMagick is threaded to take advantage of speed-ups offered by the multicore processor chips.</li>
-  <li><a href="security-policy.html">Security policy</a>: best practices strongly encourages you to configure a security policy that suits your local environment.</li>
-  <li><a href="architecture.html">Architecture</a>: get to know more about the software and algorithms behind ImageMagick.</li>
-  <li><a href="../www/license.html">License</a>: the legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick.</li>
-  <li><a href="../www/export.html">Export classification</a>: export control status of ImageMagick.</li>
-  <li><a href="../www/porting.html">ImageMagick version 7</a>: learn how ImageMagick version 7 differs from previous versions.</li>
-  <li><a href="../www/history.html">History</a>: how ImageMagick was conceived and developed.</li>
+  <li><a href="../www/www/color.html">Color names</a>: how to specify a color name, a hex color, or a numerical RGB, RGBA, HSL, HSLA, CMYK, or CMYKA color.</li>
+  <li><a href="../www/www/color-management.html">Color management</a>: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</li>
+  <li><a href="../www/www/resources.html">Resources</a>: ImageMagick depends on external resources including configuration files, loadable modules, fonts, and environment variables.</li>
+  <li><a href="../www/www/openmp.html">Parallel execution</a>: ImageMagick is threaded to take advantage of speed-ups offered by the multicore processor chips.</li>
+  <li><a href="../www/www/security-policy.html">Security policy</a>: best practices strongly encourages you to configure a security policy that suits your local environment.</li>
+  <li><a href="../www/www/architecture.html">Architecture</a>: get to know more about the software and algorithms behind ImageMagick.</li>
+  <li><a href="../www/www/license.html">License</a>: the legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick.</li>
+  <li><a href="../www/www/export.html">Export classification</a>: export control status of ImageMagick.</li>
+  <li><a href="../www/www/porting.html">ImageMagick version 7</a>: learn how ImageMagick version 7 differs from previous versions.</li>
+  <li><a href="../www/www/history.html">History</a>: how ImageMagick was conceived and developed.</li>
 </dl>
 
 <h2><a class="anchor" id="download"></a>Download ImageMagick</h2>
 
 <dl class="magick-list-unstyled">
-  <li><a href="download.html">Download ImageMagick</a>: ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors.</li>
+  <li><a href="../www/www/download.html">Download ImageMagick</a>: ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors.</li>
   <li> <dl class="magick-list-unstyled">
     <li><a href="../download">Unix source</a>: Unix source distributions.</li>
     <li><a href="https://imagemagick.org/download/windows">Windows source</a>: Windows source distributions.</li>
     <li><a href="https://imagemagick.org/download/binaries">Unix and Windows binaries</a>: Unix and Windows binary distributions.</li>
-    <li><a href="http://git.imagemagick.org/repos/ImageMagick">Git repository</a>: stable and development source releases.</li>
+    <li><a href="https://github.com/ImageMagick">Git repository</a>: stable and development source releases.</li>
     <li><a href="http://www.magickwand.org/">MagickWand for PHP</a>: a native PHP-extension to the ImageMagick MagickWand API.</li>
     <li><a href="https://imagemagick.org/download/delegates">Delegate libraries</a>: ImageMagick depends on a number of optional delegate libraries to extend its functionality.</li>
   </dl> </li>
@@ -121,50 +127,50 @@
 
   <p>You can install ImageMagick from source. However, if you don't have a proper development environment or if you're anxious to get started, download a ready-to-run Unix or Windows executable.</p>
 <dl class="magick-list-unstyled">
-    <li><a href="../www/install-source.html">Install from source</a>: ImageMagick builds under Windows, Mac OS X, and Linux.</li>
-    <li><a href="download.html">Install from a binary distribution</a>: install a ready-to-run Unix or Windows executable.</li>
-    <li><a href="../www/ImageMagickObject.html">Install ImageMagickObject COM+ component</a>: install the Windows ImageMagick COM+ component.</li>
+    <li><a href="../www/www/install-source.html">Install from source</a>: ImageMagick builds under Windows, Mac OS X, and Linux.</li>
+    <li><a href="../www/www/download.html">Install from a binary distribution</a>: install a ready-to-run Unix or Windows executable.</li>
+    <li><a href="../www/www/ImageMagickObject.html">Install ImageMagickObject COM+ component</a>: install the Windows ImageMagick COM+ component.</li>
 </dl>
 
 <h2><a class="anchor" id="command-line"></a>Command-line Tools</h2>
 <dl class="magick-list-unstyled">
-  <li><a href="command-line-tools.html">Command-line tools</a>: overview of the ImageMagick commands.</li>
+  <li><a href="../www/www/command-line-tools.html">Command-line tools</a>: overview of the ImageMagick commands.</li>
   <li> <dl class="magick-list-unstyled">
-    <li><a href="../www/animate.html">animate</a>: animates an image sequence on any X server.</li>
-    <li><a href="../www/compare.html">compare</a>: mathematically and visually annotate the difference between an image and its reconstruction.</li>
-    <li><a href="../www/composite.html">composite</a>: overlaps one image over another.</li>
-    <li><a href="conjure.html">conjure</a>: interprets and executes scripts written in the Magick Scripting Language (MSL).</li>
-    <li><a href="convert.html">convert</a>: convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.</li>
-    <li><a href="display.html">display</a>: displays an image or image sequence on any X server.</li>
-    <li><a href="../www/identify.html">identify</a>: describes the format and characteristics of one or more image files.</li>
-    <li><a href="import.html">import</a>: saves any visible window on an X server and outputs it as an image file.</li>
-    <li><a href="mogrify.html">mogrify</a>: resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.</li>
-    <li><a href="montage.html">montage</a>: create a composite image by combining several separate images.</li>
-    <li><a href="../www/stream.html">stream</a>: a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.</li>
+    <li><a href="../www/www/animate.html">animate</a>: animates an image sequence on any X server.</li>
+    <li><a href="../www/www/compare.html">compare</a>: mathematically and visually annotate the difference between an image and its reconstruction.</li>
+    <li><a href="../www/www/composite.html">composite</a>: overlaps one image over another.</li>
+    <li><a href="../www/www/conjure.html">conjure</a>: interprets and executes scripts written in the Magick Scripting Language (MSL).</li>
+    <li><a href="../www/www/convert.html">convert</a>: convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.</li>
+    <li><a href="../www/www/display.html">display</a>: displays an image or image sequence on any X server.</li>
+    <li><a href="../www/www/identify.html">identify</a>: describes the format and characteristics of one or more image files.</li>
+    <li><a href="../www/www/import.html">import</a>: saves any visible window on an X server and outputs it as an image file.</li>
+    <li><a href="../www/www/mogrify.html">mogrify</a>: resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and more.</li>
+    <li><a href="../www/www/montage.html">montage</a>: create a composite image by combining several separate images.</li>
+    <li><a href="../www/www/stream.html">stream</a>: a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.</li>
   </dl></li>
-  <li><a href="command-line-processing.html">Command line processing</a>: the anatomy of the command line.</li>
-  <li><a href="command-line-options.html">Command line options</a>: annotated list of all options that can appear on the command-line.</li>
-  <li><a href="../www/fx.html">Fx</a>: apply a mathematical expression to an image or image channels.</li>
+  <li><a href="../www/www/command-line-processing.html">Command line processing</a>: the anatomy of the command line.</li>
+  <li><a href="../www/www/command-line-options.html">Command line options</a>: annotated list of all options that can appear on the command-line.</li>
+  <li><a href="../www/www/fx.html">Fx</a>: apply a mathematical expression to an image or image channels.</li>
   <li><a href="http://www.fmwconcepts.com/imagemagick/">Fred's ImageMagick Scripts</a>:  a plethora of command-line scripts that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations.</li>
 </dl>
 
 <h2><a class="anchor" id="program-interfaces"></a>Program Interfaces</h2>
 
 <dl class="magick-list-unstyled">
-  <li><a href="develop.html">Program interfaces</a>: application programming interfaces.</li>
+  <li><a href="../www/www/develop.html">Program interfaces</a>: application programming interfaces.</li>
   <li> <dl class="magick-list-unstyled">
     <li><a href="../ChMagick">ChMagick</a>: is a <a href="http://www.softintegration.com/">Ch</a> an embeddable MagickCore C/C++ interpreter for cross-platform scripting.</li>
     <li><a href="http://common-lisp.net/project/cl-magick/">CL-Magick</a>: provides a Common Lisp interface to the ImageMagick library.</li>
-    <li><a href="http://magick.codeplex.com/">Magick.NT</a>: Use Magick.NET to convert, compose, and edit images from Windows .NET.</li>
+    <li><a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>: Use Magick.NET to convert, compose, and edit images from Windows .NET.</li>
     <li><a href="../Magick++">Magick++</a>: provides an object-oriented C++ interface to ImageMagick.</li>
     <li><a href="http://pecl.html.net/package/imagick">IMagick</a>: is a native PHP extension to create and modify images using the ImageMagick API.</li>
     <li><a href="https://github.com/techblue/jmagick">JMagick</a>: provides an object-oriented Java interface to ImageMagick.</li>
-    <li><a href="../www/magick-core.html">MagickCore</a>: C API, recommended for wizard-level developers.</li>
-    <li><a href="../www/magick-wand.html">MagickWand</a>: convert, compose, and edit images from the C language.</li>
+    <li><a href="../www/www/magick-core.html">MagickCore</a>: C API, recommended for wizard-level developers.</li>
+    <li><a href="../www/www/magick-wand.html">MagickWand</a>: convert, compose, and edit images from the C language.</li>
     <li><a href="http://www.magickwand.org/">MagickWand for PHP</a>: a native PHP-extension to the ImageMagick MagickWand API.</li>
     <li><a href="http://code.google.com/p/nmagick">nMagick</a>: is a port of the ImageMagick library to the haXe and Neko platforms.</li>
     <li><a href="http://wiki.freepascal.org/PascalMagick">PascalMagick</a>: a Pascal binding for the MagickWand API and also the low-level MagickCore library.</li>
-    <li><a href="../www/perl-magick.html">PerlMagick</a>: convert, compose, and edit images from the Perl language.</li>
+    <li><a href="../www/www/perl-magick.html">PerlMagick</a>: convert, compose, and edit images from the Perl language.</li>
     <li><a href="https://imagemagick.org/download/python/">PythonMagick</a>: an object-oriented Python interface to ImageMagick.</li>
     <li><a href="http://rmagick.rubyforge.org/">RMagick</a>: is an interface between the Ruby programming language and ImageMagick.</li>
     <li><a href="http://tclmagick.sourceforge.net/">TclMagick</a>: a native Tcl-extension to the ImageMagick MagickWand API.</li>
@@ -173,11 +179,11 @@
 
 <h2><a class="anchor" id="format"></a>Image Formats</h2>
 <dl class="magick-list-unstyled">
-  <li><a href="formats.html">Supported image formats</a>: annotated list of all image formats that ImageMagick can read and/or write.</li>
-  <li><a href="motion-picture.html">Motion picture digital images</a>: use SMPTE DPX Version 2.0 to process images used by the motion picture (film and high-definition) industry.</li>
-  <li><a href="high-dynamic-range.html">High dynamic-range images</a>: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</li>
-  <li><a href="magick-vector-graphics.html">Magick Vector Graphics</a>: a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick.</li>
-  <li><a href="miff.html">Magick Image File Format</a>: MIFF is ImageMagick's own platform-independent format for storing bitmap images.</li>
+  <li><a href="../www/www/formats.html">Supported image formats</a>: annotated list of all image formats that ImageMagick can read and/or write.</li>
+  <li><a href="../www/www/motion-picture.html">Motion picture digital images</a>: use SMPTE DPX Version 2.0 to process images used by the motion picture (film and high-definition) industry.</li>
+  <li><a href="../www/www/high-dynamic-range.html">High dynamic-range images</a>: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</li>
+  <li><a href="../www/www/magick-vector-graphics.html">Magick Vector Graphics</a>: a modularized language for describing two-dimensional vector and mixed vector/raster graphics in ImageMagick.</li>
+  <li><a href="../www/www/miff.html">Magick Image File Format</a>: MIFF is ImageMagick's own platform-independent format for storing bitmap images.</li>
 </dl>
 
 <h2><a class="anchor" id="help"></a>Getting Help</h2>
@@ -186,14 +192,14 @@
   <li><a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=imagemagick-20&amp;creative=9325&amp;path=tg/detail/-/1590595904/qid=1123551819/sr=8-1/ref=pd_bbs_sbs_1?v=glance%26s=books%26n=507846">Definitive Guide to ImageMagick</a>: this book explains ImageMagick in a practical, learn-by-example fashion.</li>
   <li><a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;camp=1789&amp;tag=imagemagick-20&amp;creative=9325&amp;path=tg/detail/-/1904811868/qid=1123551819/sr=8-1/ref=pd_bbs_sbs_1?v=glance%26s=books%26n=507846">ImageMagick Tricks</a>: this book is packed with examples of photo manipulations, logo creation, animations, and complete web projects.</li>
   <li><a href="https://imagemagick.org/discourse-server/">Discourse server</a>: get help from fellow ImageMagick users and developers, post to these forums.</li>
-  <li><a href="https://imagemagick.org/script/contact.php">Contact the Wizards</a>: for bug reports (only if you do not want to sign up to the <a href="https://imagemagick.org/discourse-server/">discourse server</a>), a source or documentation patch, a security or license issue, or if you want to be a sponsor of the ImageMagick project.</li>
+  <li><a href="../www/www/https://imagemagick.org/script/contact.php">Contact the Wizards</a>: for bug reports (only if you do not want to sign up to the <a href="https://imagemagick.org/discourse-server/">discourse server</a>), a source or documentation patch, a security or license issue, or if you want to be a sponsor of the ImageMagick project.</li>
 </dl>
 
 <h2><a class="anchor" id="support"></a>Support ImageMagick</h2>
 
 <dl class="magick-list-unstyled">
-  <li><a href="https://imagemagick.org/discourse-server//viewforum.html?f=3">Report bugs and vulnerabilities</a>: our highest priority is to fix security defects and bug reports, usually within 48 hours of your report.  The bug discourse server requires that you register.  If you do not want to register, you can <a href="https://imagemagick.org/script/contact.php">contact the ImageMagick developers</a> with a convenient web form.</li>
-  <li><a href="support.html">Sponsor ImageMagick</a>: contribute bug fixes, enhancements, hardware, funds, etc. to ensure the ImageMagick project thrives.</li>
+  <li><a href="https://imagemagick.org/discourse-server//viewforum.html?f=3">Report bugs and vulnerabilities</a>: our highest priority is to fix security defects and bug reports, usually within 48 hours of your report.  The bug discourse server requires that you register.  If you do not want to register, you can <a href="../www/www/https://imagemagick.org/script/contact.php">contact the ImageMagick developers</a> with a convenient web form.</li>
+  <li><a href="../www/www/support.html">Sponsor ImageMagick</a>: contribute bug fixes, enhancements, hardware, funds, etc. to ensure the ImageMagick project thrives.</li>
 </dl>
 
 <h2><a class="anchor" id="miscellaneous"></a>Miscellaneous Topics</h2>
@@ -201,41 +207,41 @@
 <dl class="magick-list-unstyled">
   <li><a href="../Usage/anim_basics/">Animation</a>: create a GIF animation sequence from a group of images.</li>
   <li><a href="https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25405">Canny edge detection</a>: extract edges from an image using the Canny technique.</li>
-  <li><a href="../www/color-management.html">Color management</a>: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</li>
-  <li><a href="command-line-processing.html">Command-line processing</a>: utilize ImageMagick from the command line.</li>
-  <li><a href="../www/connected-components.html">Connected Component Labeling</a>: uniquely label connected regions in an image.</li>
-  <li><a href="../www/composite.html">Composite</a>: overlap one image over another.</li>
-  <li><a href="../www/connected-components.html">Connected Component Labeling</a>: uniquely label connected regions in an image.</li>
+  <li><a href="../www/www/color-management.html">Color management</a>: accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</li>
+  <li><a href="../www/www/command-line-processing.html">Command-line processing</a>: utilize ImageMagick from the command line.</li>
+  <li><a href="../www/www/composite.html">Composite</a>: overlap one image over another.</li>
+  <li><a href="../www/www/connected-components.html">Connected component labeling</a>: uniquely label connected regions in an image.</li>
   <li><a href="../Usage/crop/">Decorate</a>: add a border or frame to an image.</li>
   <li><a href="../Usage/fourier">Discrete Fourier transform</a>: implements the forward and inverse DFT.</li>
-  <li><a href="../www/distribute-pixel-cache.html">Distributed pixel cache</a>: offload intermediate pixel storage to one or more remote servers .</li>
+  <li><a href="../www/www/distribute-pixel-cache.html">Distributed pixel cache</a>: offload intermediate pixel storage to one or more remote servers .</li>
   <li><a href="../Usage/draw/">Draw</a>: add shapes or text to an image.</li>
-  <li><a href="../www/cipher.html">Encipher or decipher an image</a>: convert ordinary images into unintelddgible gibberish and back again.</li>
-  <li><a href="../www/escape.html">Escapes</a>: utilize percent escapes in a number of options, for example in <a href="command-line-options.html#format_identify_"
-  >-format</a> or in montage <a href="command-line-options.html#label"
+  <li><a href="../www/www/cipher.html">Encipher or decipher an image</a>: convert ordinary images into unintelddgible gibberish and back again.</li>
+  <li><a href="../www/www/escape.html">Escapes</a>: utilize percent escapes in a number of options, for example in <a href="../www/www/command-line-options.html#format_identify_"
+  >-format</a> or in montage <a href="../www/www/command-line-options.html#label"
   >-label</a>, to print various properties and other settings associated with an
   image.</li>
-  <li><a href="convert.html">Format conversion</a>: convert an image from one <a href="formats.html">format </a> to another (e.g. PNG to JPEG).</li>
+  <li><a href="../www/www/convert.html">Format conversion</a>: convert an image from one <a href="../www/www/formats.html">format </a> to another (e.g. PNG to JPEG).</li>
   <li><a href="../Usage/distorts/">Generalized pixel distortion</a>: correct for, or induce image distortions including perspective.</li>
-  <li><a href="architecture.html#distributed">Heterogeneous distributed processing</a>: <a href="../www/opencl.html">certain algorithms</a> are <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</li>
-  <li><a href="high-dynamic-range.html">High dynamic-range images</a>: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</li>
+  <li><a href="../www/www/architecture.html#distributed">Heterogeneous distributed processing</a>: <a href="../www/www/opencl.html">certain algorithms</a> are <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>-enabled to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors.</li>
+  <li><a href="../www/www/high-dynamic-range.html">High dynamic-range images</a>: accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.</li>
+  <li><a href="../www/www/clahe.html">Histogram equalization</a>: adaptive histogram equalization can improve contrast in an image.</li>
   <li><a href="https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25476">Hough lines</a>: fit straight lines to edges in an image using the Hough transform technique.</li>
-  <li><a href="../www/fx.html">Image calculator</a>: apply a mathematical expression to an image or image channels.</li>
-  <li><a href="gradient.html">Image gradients</a>: create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</li>
-  <li><a href="../www/identify.html">Image identification</a>: describe the format and attributes of an image.</li>
-  <li><a href="download.html#iOS">ImageMagick on the iPhone</a>: convert, edit, or compose images on your iPhone.</li>
-  <li><a href="https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=26480">Kuwahara Filter</a>: apply an edge perserving noise and color reduction filter to an image.</li>
-  <li><a href="architecture.html#tera-pixel">Large image support</a>: read, process, or write mega-, giga-, or tera-pixel image sizes.</li>
+  <li><a href="../www/www/fx.html">Image calculator</a>: apply a mathematical expression to an image or image channels.</li>
+  <li><a href="../www/www/gradient.html">Image gradients</a>: create a gradual blend of two colors whose shape is horizontal, vertical, circular, or elliptical.</li>
+  <li><a href="../www/www/identify.html">Image identification</a>: describe the format and attributes of an image.</li>
+  <li><a href="../www/www/download.html#iOS">ImageMagick on the iPhone</a>: convert, edit, or compose images on your iPhone.</li>
+  <li><a href="https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=26480">Kuwahara filter</a>: apply an edge perserving noise and color reduction filter to an image.</li>
+  <li><a href="../www/www/architecture.html#tera-pixel">Large image support</a>: read, process, or write mega-, giga-, or tera-pixel image sizes.</li>
   <li><a href="https://imagemagick.org/discourse-server//viewtopic.html?f=4&amp;t=25504">Mean-shift</a>: apply a color reduction technique to an image.</li>
-  <li><a href="montage.html">Montage</a>: juxtapose image thumbnails on an image canvas.</li>
+  <li><a href="../www/www/montage.html">Montage</a>: juxtapose image thumbnails on an image canvas.</li>
   <li><a href="../Usage/morphology/">Morphology of shapes</a>: extract features, describe shapes and recognize patterns in images.</li>
-  <li><a href="motion-picture.html">Motion picture support</a>: read and write the common image formats used in digital film work.</li>
+  <li><a href="../www/www/motion-picture.html">Motion picture support</a>: read and write the common image formats used in digital film work.</li>
   <li><a href="../Usage/blur/">Special effects</a>: blur, sharpen, threshold, or tint an image.</li>
   <li><a href="../Usage/text/">Text &amp; comments</a>: insert descriptive or artistic text in an image.</li>
-  <li><a href="architecture.html#threads">Threads of execution support</a>: ImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.</li>
+  <li><a href="../www/www/architecture.html#threads">Threads of execution support</a>: ImageMagick is thread safe and most internal algorithms execute in parallel to take advantage of speed-ups offered by multicore processor chips.</li>
   <li><a href="../Usage/resize/">Transform</a>: resize, rotate, crop, or trim an image.</li>
   <li><a href="../Usage/masking/">Transparency</a>: render portions of an image invisible.</li>
-  <li><a href="architecture.html#virtual-pixels">Virtual pixel support</a>: convenient access to pixels outside the image region.</li>
+  <li><a href="../www/www/architecture.html#virtual-pixels">Virtual pixel support</a>: convenient access to pixels outside the image region.</li>
 </dl>
 <h2><a class="anchor" id="legacy"></a>ImageMagick Legacy</h2>
 <p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a></p>
@@ -244,23 +250,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
-    <a href="links.html">Related</a> •
-     <a href="sitemap.html">Sitemap</a>
-       
-    <a href="sitemap.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
+    <p><a href="../www/www/security-policy.html">Security</a> •
+    <a href="../www/www/architecture.html">Architecture</a>
+     
+    <a href="sitemap.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../www/images/wand.ico"/></a>
+     
+    <a href="../www/www/links.html">Related</a> •
+     <a href="../www/www/sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="../www/www/support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="../www/www/https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
-  <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script src="../www/assets/magick.js" crossorigin="anonymous"></script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 12:06 -->
\ No newline at end of file
diff --git a/www/source/configure.xml b/www/source/configure.xml
index 63fbfbe..f816123 100644
--- a/www/source/configure.xml
+++ b/www/source/configure.xml
@@ -15,7 +15,7 @@
   <configure name="CODER_PATH" value="/usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/coders"/>
   <configure name="CONFIGURE_PATH" value="/usr/local/etc/ImageMagick-7/"/>
   <configure name="CONFIGURE" value="./configure  '--with-modules'"/>
-  <configure name="COPYRIGHT" value="Copyright (C) 1999-2019 ImageMagick Studio LLC"/>
+  <configure name="COPYRIGHT" value="Copyright (C) 1999-2020 ImageMagick Studio LLC"/>
   <configure name="CPPFLAGS" value="-I/usr/local/include/ImageMagick-7"/>
   <configure name="CXXFLAGS" value="-g -O2 -pthread"/>
   <configure name="CXX" value="g++"/>
diff --git a/www/stream.html b/www/stream.html
index d4f5ccb..ff50906 100644
--- a/www/stream.html
+++ b/www/stream.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Command-line Tools: Stream @ ImageMagick</title>
+  <title>ImageMagick - Command-line Tools: Stream</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="command-line, tools:, stream, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,19 +19,24 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="stream.html" rel="canonical" />
+  <link href="../www/stream.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
-    <a class="navbar-brand" href="../"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
+    <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
       <span class="navbar-toggler-icon"></span>
     </button>
@@ -39,22 +44,22 @@
     <div class="navbar-collapse collapse" id="navbarsMagick" style="">
     <ul class="navbar-nav mr-auto">
       <li class="nav-item ">
-        <a class="nav-link" href="api/quantize.html">Home <span class="sr-only">(current)</span></a>
+        <a class="nav-link" href="../index.html">Home <span class="sr-only">(current)</span></a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/download.html">Download</a>
+        <a class="nav-link" href="download.html">Download</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-tools.html">Tools</a>
+        <a class="nav-link" href="command-line-tools.html">Tools</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/command-line-processing.html">Command-line</a>
+        <a class="nav-link" href="command-line-processing.html">Command-line</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/resources.html">Resources</a>
+        <a class="nav-link" href="resources.html">Resources</a>
       </li>
       <li class="nav-item ">
-        <a class="nav-link" href="../www/develop.html">Develop</a>
+        <a class="nav-link" href="develop.html">Develop</a>
       </li>
       <li class="nav-item">
         <a class="nav-link" target="_blank" href="https://imagemagick.org/discourse-server/">Community</a>
@@ -67,17 +72,18 @@
     </div>
   </nav>
   <div class="container">
-   <script async="async" src="https://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
+   <script async="async" src="http://localhost/pagead/js/adsbygoogle.js"></script>    <ins class="adsbygoogle"
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -116,157 +122,157 @@
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
+    <td><a href="command-line-options.html#authenticate">-authenticate <var>value</var></a></td>
     <td>decrypt image with this password</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#channel">-channel <var>type</var></a></td>
+    <td><a href="command-line-options.html#channel">-channel <var>type</var></a></td>
     <td>apply option to select image channels</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
+    <td><a href="command-line-options.html#colorspace">-colorspace <var>type</var></a></td>
     <td>set image colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#debug">-debug <var>events</var></a></td>
+    <td><a href="command-line-options.html#debug">-debug <var>events</var></a></td>
     <td>display copious debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#define">-define <var>format:option</var></a></td>
+    <td><a href="command-line-options.html#define">-define <var>format:option</var></a></td>
     <td>define one or more image format options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#density">-density <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#density">-density <var>geometry</var></a></td>
     <td>horizontal and vertical density of the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#depth">-depth <var>value</var></a></td>
+    <td><a href="command-line-options.html#depth">-depth <var>value</var></a></td>
     <td>image depth</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#extract">-extract <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#extract">-extract <var>geometry</var></a></td>
     <td>extract area from image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#help">-help</a></td>
+    <td><a href="command-line-options.html#help">-help</a></td>
     <td>print program options</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interlace">-interlace <var>type</var></a></td>
+    <td><a href="command-line-options.html#interlace">-interlace <var>type</var></a></td>
     <td>type of image interlacing scheme</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
+    <td><a href="command-line-options.html#interpolate">-interpolate <var>method</var></a></td>
     <td>pixel color interpolation method</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#limit">-limit <var>type value</var></a></td>
+    <td><a href="command-line-options.html#limit">-limit <var>type value</var></a></td>
     <td>pixel cache resource limit</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#list">-list <var>type</var></a></td>
+    <td><a href="command-line-options.html#list">-list <var>type</var></a></td>
     <td>Color, Configure, Delegate, Format, Magic, Module, Resource, or Type</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#log">-log <var>format</var></a></td>
+    <td><a href="command-line-options.html#log">-log <var>format</var></a></td>
     <td>format of debugging information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#stream-map">-map <var>components</var></a></td>
+    <td><a href="command-line-options.html#stream-map">-map <var>components</var></a></td>
     <td>store pixels in this format.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#monitor">-monitor</a></td>
+    <td><a href="command-line-options.html#monitor">-monitor</a></td>
     <td>monitor progress</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
+    <td><a href="command-line-options.html#quantize">-quantize <var>colorspace</var></a></td>
     <td>reduce image colors in this colorspace</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#quiet">-quiet</a></td>
+    <td><a href="command-line-options.html#quiet">-quiet</a></td>
     <td>suppress all warning messages</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#regard-warnings">-regard-warnings</a></td>
+    <td><a href="command-line-options.html#regard-warnings">-regard-warnings</a></td>
     <td>pay attention to warning messages.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
+    <td><a href="command-line-options.html#respect-parentheses">-respect-parentheses</a></td>
     <td>settings remain in effect until parenthesis boundary.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#sampling-factor">-sampling-factor <var>geometry</var></a></td>
     <td>horizontal and vertical sampling factor</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#seed">-seed <var>value</var></a></td>
+    <td><a href="command-line-options.html#seed">-seed <var>value</var></a></td>
     <td>seed a new sequence of pseudo-random numbers</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#set">-set <var>attribute value</var></a></td>
+    <td><a href="command-line-options.html#set">-set <var>attribute value</var></a></td>
     <td>set an image attribute</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#size">-size <var>geometry</var></a></td>
+    <td><a href="command-line-options.html#size">-size <var>geometry</var></a></td>
     <td>width and height of image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#storage-type">-storage-type <var>type</var></a></td>
+    <td><a href="command-line-options.html#storage-type">-storage-type <var>type</var></a></td>
     <td>store pixels with this storage type.</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#synchronize">-synchronize</a></td>
+    <td><a href="command-line-options.html#synchronize">-synchronize</a></td>
     <td>synchronize image to storage device</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#taint">-taint</a></td>
+    <td><a href="command-line-options.html#taint">-taint</a></td>
     <td>mark the image as modified</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
+    <td><a href="command-line-options.html#transparent-color">-transparent-color <var>color</var></a></td>
     <td>transparent color</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#verbose">-verbose</a></td>
+    <td><a href="command-line-options.html#verbose">-verbose</a></td>
     <td>print detailed information about the image</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#version">-version</a></td>
+    <td><a href="command-line-options.html#version">-version</a></td>
     <td>print version information</td>
   </tr>
 
   <tr>
-    <td><a href="../www/command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
+    <td><a href="command-line-options.html#virtual-pixel">-virtual-pixel <var>method</var></a></td>
     <td>access method for pixels outside the boundaries of the image</td>
   </tr>
 
@@ -277,22 +283,24 @@
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
-    <p><a href="../www/security-policy.html">Security</a> •
-    <a href="../www/architecture.html">Architecture</a> •
-    <a href="../www/links.html">Related</a> •
-     <a href="../www/sitemap.html">Sitemap</a>
-       
+    <p><a href="security-policy.html">Security</a> •
+    <a href="architecture.html">Architecture</a>
+     
     <a href="stream.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="../www/support.html">Donate</a> •
-    <a href="../www/https://imagemagick.org/script/contact.php">Contact Us</a>
+     
+    <a href="links.html">Related</a> •
+     <a href="sitemap.html">Sitemap</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
+<!-- Magick Cache 5th January 2020 10:31 -->
\ No newline at end of file
diff --git a/www/support.html b/www/support.html
index 82ed732..7425ba3 100644
--- a/www/support.html
+++ b/www/support.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>Support ImageMagick Development @ ImageMagick</title>
+  <title>ImageMagick - Support ImageMagick Development</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="support, imagemagick, development, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/support.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -159,22 +165,23 @@
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="support.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="support.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:42 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:50 -->
\ No newline at end of file
diff --git a/www/webp.html b/www/webp.html
index e5b10c9..9934219 100644
--- a/www/webp.html
+++ b/www/webp.html
@@ -7,9 +7,9 @@
 <head>
   <meta charset="utf-8"  />
   <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
-  <title>WebP Encoding Options @ ImageMagick</title>
+  <title>ImageMagick - WebP Encoding Options</title>
   <meta name="application-name" content="ImageMagick" />
-  <meta name="description" content="Use ImageMagick® to create, edit, compose, or convert bitmap images. You can resize your image, crop it, change its shades and colors, add captions, among other operations." />
+  <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
   <meta name="application-url" content="https://imagemagick.org" />
   <meta name="generator" content="PHP" />
   <meta name="keywords" content="webp, encoding, options, ImageMagick, PerlMagick, image processing, image, photo, software, Magick++, OpenMP, convert" />
@@ -19,9 +19,15 @@
   <meta name="author" content="ImageMagick Studio LLC" />
   <meta name="revisit-after" content="2 DAYS" />
   <meta name="resource-type" content="document" />
-  <meta name="copyright" content="Copyright (c) 1999-2019 ImageMagick Studio LLC" />
+  <meta name="copyright" content="Copyright (c) 1999-2020 ImageMagick Studio LLC" />
   <meta name="distribution" content="Global" />
   <meta name="magick-serial" content="P131-S030410-R485315270133-P82224-A6668-G1245-1" />
+  <meta property='og:url' content='../' />
+  <meta property='og:title' content='ImageMagick' />
+  <meta property='og:image' content='../images/logo.png' />
+  <meta property='og:type' content='website' />
+  <meta property='og:site_name' content='ImageMagick' />
+  <meta property='og:description' content="Convert, Edit, or Compose Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
   <link href="../www/webp.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
@@ -29,7 +35,6 @@
   <link href="assets/magick.css" rel="stylesheet" />
 </head>
 <body>
-  <header>
   <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
     <a class="navbar-brand" href="../index.html"><img class="d-block" id="icon" alt="ImageMagick" width="32" height="32" src="../images/wand.ico"/></a>
     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsMagick" aria-controls="navbarsMagick" aria-expanded="false" aria-label="Toggle navigation">
@@ -71,13 +76,14 @@
          style="display:block"
          data-ad-client="ca-pub-3129977114552745"
          data-ad-slot="6345125851"
-         data-ad-format="auto"></ins>
+         data-full-width-responsive="true"
+         data-ad-format="horizontal"></ins>
     <script>
       (adsbygoogle = window.adsbygoogle || []).push({});
     </script>
 
   </div>
-  </header>
+
   <main class="container">
     <div class="magick-template">
 <div class="magick-header">
@@ -163,7 +169,7 @@
   </tr>
   <tr>
     <td>segment=<var>value</var></td>
-    <td>Choose from 1 to 4, the maximum numbher of segments to use.</td>
+    <td>Choose from 1 to 4, the maximum number of segments to use.</td>
   </tr>
   <tr>
     <td>show-compressed=<var>true, false</var></td>
@@ -184,28 +190,33 @@
     <td>thread-level=<var>value</var></td>
     <td>enable multi-threaded encoding.</td>
   </tr>
+  <tr>
+    <td>use-sharp-yuv=<var>value</var></td>
+    <td>if needed, use sharp (and slow) RGB->YUV conversion.</td>
+  </tr>
 </table></div>
 </div>
     </div>
   </main><!-- /.container -->
   <footer class="magick-footer">
     <p><a href="security-policy.html">Security</a> •
-    <a href="architecture.html">Architecture</a> •
+    <a href="architecture.html">Architecture</a>
+     
+    <a href="webp.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+     
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
-       
-    <a href="webp.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
-       
-    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
-    <a href="support.html">Donate</a> •
-    <a href="https://imagemagick.org/script/contact.php">Contact Us</a>
     <br/>
-    <small>© 1999-2019 ImageMagick Studio LLC</small></p>
+    <a href="support.html">Donate</a> •
+    <a href="http://pgp.mit.edu/pks/lookup?op=get&amp;search=0x89AB63D48277377A">Public Key</a> •
+    <a href="https://imagemagick.org/script/contact.php">Contact Us</a> 
+    <br/>
+    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
   </footer>
 
   <!-- Javascript assets -->
   <script src="assets/magick.js" crossorigin="anonymous"></script>
-  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.3.1/jquery.min.js"><\/script>')</script>
+  <script>window.jQuery || document.write('<script src="https://localhost/ajax/libs/jquery/3.4.1/jquery.min.js"><\/script>')</script>
 </body>
 </html>
-<!-- Magick Cache 5th January 2019 11:43 -->
\ No newline at end of file
+<!-- Magick Cache 5th January 2020 11:13 -->
\ No newline at end of file