diff --git a/configure b/configure
index aa55384..a0f4a96 100755
--- a/configure
+++ b/configure
@@ -709,6 +709,7 @@
 MrSIDDecodeDelegate
 MPEGEncodeDelegate
 MPEGDecodeDelegate
+MogrifyDelegate
 MANDelegate
 LaunchDelegate
 LPRDelegate
@@ -719,14 +720,14 @@
 ILBMDecodeDelegate
 HTMLDecodeDelegate
 HPGLDecodeDelegate
+GVCDecodeDelegate
 GnuplotDecodeDelegate
-MogrifyDelegate
-DisplayDelegate
-ConvertDelegate
 EditorDelegate
 EchoDelegate
+DisplayDelegate
+ConvertDelegate
 DVIDecodeDelegate
-GVCDecodeDelegate
+DOCDecodeDelegate
 DNGDecodeDelegate
 CatDelegate
 BrowseDelegate
@@ -3697,7 +3698,7 @@
 
 MAGICK_VERSION=7.0.0-0
 
-MAGICK_SVN_REVISION=15693M
+MAGICK_SVN_REVISION=15718:15720M
 
 
 # Substitute library versioning
@@ -32668,6 +32669,7 @@
 BrowseDelegateDefault='xdg-open'
 CatDelegateDefault='cat'
 DNGDecodeDelegateDefault='ufraw-batch'
+DOCDecodeDelegateDefault='soffice'
 GVCDecodeDelegateDefault='dot'
 DVIDecodeDelegateDefault='dvips'
 EchoDelegateDefault='echo'
@@ -32966,16 +32968,16 @@
 fi
 
 
-# Extract the first word of ""$GVCDecodeDelegateDefault"", so it can be a program name with args.
-set dummy "$GVCDecodeDelegateDefault"; ac_word=$2
+# Extract the first word of ""$DOCDecodeDelegateDefault"", so it can be a program name with args.
+set dummy "$DOCDecodeDelegateDefault"; 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_GVCDecodeDelegate+:} false; then :
+if ${ac_cv_path_DOCDecodeDelegate+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GVCDecodeDelegate in
+  case $DOCDecodeDelegate in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GVCDecodeDelegate="$GVCDecodeDelegate" # Let the user override the test with a path.
+  ac_cv_path_DOCDecodeDelegate="$DOCDecodeDelegate" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -32985,7 +32987,7 @@
   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_GVCDecodeDelegate="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_DOCDecodeDelegate="$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
@@ -32993,14 +32995,14 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_GVCDecodeDelegate" && ac_cv_path_GVCDecodeDelegate=""$GVCDecodeDelegateDefault""
+  test -z "$ac_cv_path_DOCDecodeDelegate" && ac_cv_path_DOCDecodeDelegate=""$DOCDecodeDelegateDefault""
   ;;
 esac
 fi
-GVCDecodeDelegate=$ac_cv_path_GVCDecodeDelegate
-if test -n "$GVCDecodeDelegate"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GVCDecodeDelegate" >&5
-$as_echo "$GVCDecodeDelegate" >&6; }
+DOCDecodeDelegate=$ac_cv_path_DOCDecodeDelegate
+if test -n "$DOCDecodeDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOCDecodeDelegate" >&5
+$as_echo "$DOCDecodeDelegate" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -33048,88 +33050,6 @@
 fi
 
 
-# Extract the first word of ""$EchoDelegateDefault"", so it can be a program name with args.
-set dummy "$EchoDelegateDefault"; 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_EchoDelegate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $EchoDelegate in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_EchoDelegate="$EchoDelegate" # 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_EchoDelegate="$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_EchoDelegate" && ac_cv_path_EchoDelegate=""$EchoDelegateDefault""
-  ;;
-esac
-fi
-EchoDelegate=$ac_cv_path_EchoDelegate
-if test -n "$EchoDelegate"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EchoDelegate" >&5
-$as_echo "$EchoDelegate" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of ""$EditorDelegateDefault"", so it can be a program name with args.
-set dummy "$EditorDelegateDefault"; 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_EditorDelegate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $EditorDelegate in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_EditorDelegate="$EditorDelegate" # 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_EditorDelegate="$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_EditorDelegate" && ac_cv_path_EditorDelegate=""$EditorDelegateDefault""
-  ;;
-esac
-fi
-EditorDelegate=$ac_cv_path_EditorDelegate
-if test -n "$EditorDelegate"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EditorDelegate" >&5
-$as_echo "$EditorDelegate" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
 # Extract the first word of ""$ConvertDelegateDefault"", so it can be a program name with args.
 set dummy "$ConvertDelegateDefault"; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -33212,16 +33132,16 @@
 fi
 
 
-# Extract the first word of ""$MogrifyDelegateDefault"", so it can be a program name with args.
-set dummy "$MogrifyDelegateDefault"; ac_word=$2
+# Extract the first word of ""$EchoDelegateDefault"", so it can be a program name with args.
+set dummy "$EchoDelegateDefault"; 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_MogrifyDelegate+:} false; then :
+if ${ac_cv_path_EchoDelegate+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $MogrifyDelegate in
+  case $EchoDelegate in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_MogrifyDelegate="$MogrifyDelegate" # Let the user override the test with a path.
+  ac_cv_path_EchoDelegate="$EchoDelegate" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -33231,7 +33151,7 @@
   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_MogrifyDelegate="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_EchoDelegate="$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
@@ -33239,14 +33159,55 @@
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_MogrifyDelegate" && ac_cv_path_MogrifyDelegate=""$MogrifyDelegateDefault""
+  test -z "$ac_cv_path_EchoDelegate" && ac_cv_path_EchoDelegate=""$EchoDelegateDefault""
   ;;
 esac
 fi
-MogrifyDelegate=$ac_cv_path_MogrifyDelegate
-if test -n "$MogrifyDelegate"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MogrifyDelegate" >&5
-$as_echo "$MogrifyDelegate" >&6; }
+EchoDelegate=$ac_cv_path_EchoDelegate
+if test -n "$EchoDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EchoDelegate" >&5
+$as_echo "$EchoDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of ""$EditorDelegateDefault"", so it can be a program name with args.
+set dummy "$EditorDelegateDefault"; 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_EditorDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $EditorDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_EditorDelegate="$EditorDelegate" # 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_EditorDelegate="$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_EditorDelegate" && ac_cv_path_EditorDelegate=""$EditorDelegateDefault""
+  ;;
+esac
+fi
+EditorDelegate=$ac_cv_path_EditorDelegate
+if test -n "$EditorDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EditorDelegate" >&5
+$as_echo "$EditorDelegate" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -33294,6 +33255,47 @@
 fi
 
 
+# Extract the first word of ""$GVCDecodeDelegateDefault"", so it can be a program name with args.
+set dummy "$GVCDecodeDelegateDefault"; 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_GVCDecodeDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GVCDecodeDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GVCDecodeDelegate="$GVCDecodeDelegate" # 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_GVCDecodeDelegate="$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_GVCDecodeDelegate" && ac_cv_path_GVCDecodeDelegate=""$GVCDecodeDelegateDefault""
+  ;;
+esac
+fi
+GVCDecodeDelegate=$ac_cv_path_GVCDecodeDelegate
+if test -n "$GVCDecodeDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GVCDecodeDelegate" >&5
+$as_echo "$GVCDecodeDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of ""$HPGLDecodeDelegateDefault"", so it can be a program name with args.
 set dummy "$HPGLDecodeDelegateDefault"; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -33704,6 +33706,47 @@
 fi
 
 
+# Extract the first word of ""$MogrifyDelegateDefault"", so it can be a program name with args.
+set dummy "$MogrifyDelegateDefault"; 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_MogrifyDelegate+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MogrifyDelegate in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MogrifyDelegate="$MogrifyDelegate" # 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_MogrifyDelegate="$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_MogrifyDelegate" && ac_cv_path_MogrifyDelegate=""$MogrifyDelegateDefault""
+  ;;
+esac
+fi
+MogrifyDelegate=$ac_cv_path_MogrifyDelegate
+if test -n "$MogrifyDelegate"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MogrifyDelegate" >&5
+$as_echo "$MogrifyDelegate" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
 # Extract the first word of ""$MPEGDecodeDelegateDefault"", so it can be a program name with args.
 set dummy "$MPEGDecodeDelegateDefault"; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -34795,6 +34838,7 @@
   ConvertDelegate="$ConvertDelegateDefault"
   DisplayDelegate="$DisplayDelegateDefault"
   DNGDecodeDelegate="$DNGDecodeDelegateDefault"
+  DOCDecodeDelegate="$DOCDecodeDelegateDefault"
   DVIDecodeDelegate="$DVIDecodeDelegateDefault"
   EchoDelegate="$EchoDelegateDefault"
   EditorDelegate="$EditorDelegateDefault"