<pre style='margin:0'>
Ryan Carsten Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/3b09622203ec5778d4211c1853e3b1e24a5732bd">https://github.com/macports/macports-ports/commit/3b09622203ec5778d4211c1853e3b1e24a5732bd</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 3b09622203e inkscape*: Fix build with libxml2 2.12.0, poppler 24.03.0
</span>3b09622203e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 3b09622203ec5778d4211c1853e3b1e24a5732bd
</span>Author: Ryan Carsten Schmidt <ryandesign@macports.org>
AuthorDate: Wed Mar 6 11:13:55 2024 -0600

<span style='display:block; white-space:pre;color:#404040;'>    inkscape*: Fix build with libxml2 2.12.0, poppler 24.03.0
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/69422
</span>---
 graphics/inkscape-devel/Portfile                   |  5 ++-
 graphics/inkscape-devel/files/libxml2-2.12.0.patch | 16 ++++++++
 .../inkscape-devel/files/poppler-24.03.0.patch     | 48 ++++++++++++++++++++++
 graphics/inkscape/Portfile                         |  5 ++-
 graphics/inkscape/files/libxml2-2.12.0.patch       | 16 ++++++++
 graphics/inkscape/files/poppler-24.03.0.patch      | 48 ++++++++++++++++++++++
 6 files changed, 136 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape-devel/Portfile b/graphics/inkscape-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index bcc0f0dc0f2..d04f81cd3da 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/inkscape-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,6 +112,9 @@ depends_run-append \
</span>                     port:py${python_version}-numpy \
                     port:py${python_version}-scour
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          libxml2-2.12.0.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    poppler-24.03.0.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
     reinplace "s|\"python-interpreter\", *\{\"python3\"|\"python-interpreter\", \{\"python${python_major}.${python_minor}\"|g" \
         ${worksrcpath}/src/extension/implementation/script.cpp
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -122,7 +125,7 @@ post-patch {
</span>         ${worksrcpath}/share/palettes/CMakeLists.txt \
         ${worksrcpath}/share/symbols/CMakeLists.txt \
         ${worksrcpath}/share/templates/CMakeLists.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|^#include \"Object.h\"|#include <poppler/Object.h>|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace {s|^#include "Object\.h"|#include <poppler/Object.h>|} \
</span>         ${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.cpp \
         ${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.h
     reinplace "s|\"\$\{CMAKE_INSTALL_LIBDIR\}/inkscape\"|\$\{CMAKE_INSTALL_LIBDIR\}|" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape-devel/files/libxml2-2.12.0.patch b/graphics/inkscape-devel/files/libxml2-2.12.0.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4dc4f228e2f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape-devel/files/libxml2-2.12.0.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix build failure with libxml2 >= 2.12.0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: use of undeclared identifier 'xmlFree'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/issues/4753
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/commit/694d8ae43d06efff21adebf377ce614d660b24cd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/object/uri.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/object/uri.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,6 +13,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define INKSCAPE_URI_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/uri.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlmemory.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape-devel/files/poppler-24.03.0.patch b/graphics/inkscape-devel/files/poppler-24.03.0.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9fe338bed2a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape-devel/files/poppler-24.03.0.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix build failure with poppler >= 24.03.0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: cannot initialize a variable of type 'int' with an rvalue of type 'Function::Type'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: invalid operands to binary expression ('Function::Type' and 'int')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/issues/4787
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/merge_requests/6209
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/extension/internal/pdfinput/svg-builder.cpp.orig   2023-07-16 09:32:51.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/extension/internal/pdfinput/svg-builder.cpp        2024-03-06 11:14:51.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1158,9 +1158,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define INT_EPSILON 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    _POPPLER_CONST Function *func) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int type = func->getType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    auto type = func->getType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     auto space = shading->getColorSpace();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ( type == Function::Type::Sampled || type == Function::Type::Exponential ) {  // Sampled or exponential function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ( type == 0 || type == 2 ) {  // Sampled or exponential function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         GfxColor stop1, stop2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (!svgGetShadingColor(shading, 0.0, &stop1) || !svgGetShadingColor(shading, 1.0, &stop2)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1168,7 +1172,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             _addStopToGradient(gradient, 0.0, &stop1, space, 1.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             _addStopToGradient(gradient, 1.0, &stop2, space, 1.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else if ( type == Function::Type::Stitching ) { // Stitching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if ( type == 3 ) { // Stitching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const double *bounds = stitchingFunc->getBounds();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const double *encode = stitchingFunc->getEncode();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1183,7 +1191,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for ( int i = 0 ; i < num_funcs ; i++ ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             svgGetShadingColor(shading, bounds[i + 1], &color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Add stops
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if (stitchingFunc->getFunc(i)->getType() == Function::Type::Exponential) {    // process exponential fxn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (stitchingFunc->getFunc(i)->getType() == 2) {    // process exponential fxn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (expE > 1.0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     expE = (bounds[i + 1] - bounds[i])/expE;    // approximate exponential as a single straight line at x=1
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape/Portfile b/graphics/inkscape/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 81da9012598..e1b8edc6a36 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/inkscape/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,6 +112,9 @@ depends_run-append \
</span>                     port:py${python_version}-numpy \
                     port:py${python_version}-scour
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          libxml2-2.12.0.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    poppler-24.03.0.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-patch {
     reinplace "s|\"python-interpreter\", *\{\"python3\"|\"python-interpreter\", \{\"python${python_major}.${python_minor}\"|g" \
         ${worksrcpath}/src/extension/implementation/script.cpp
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -122,7 +125,7 @@ post-patch {
</span>         ${worksrcpath}/share/palettes/CMakeLists.txt \
         ${worksrcpath}/share/symbols/CMakeLists.txt \
         ${worksrcpath}/share/templates/CMakeLists.txt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|^#include \"Object.h\"|#include <poppler/Object.h>|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace {s|^#include "Object\.h"|#include <poppler/Object.h>|} \
</span>         ${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.cpp \
         ${worksrcpath}/src/extension/internal/pdfinput/pdf-parser.h
     reinplace "s|\"\$\{CMAKE_INSTALL_LIBDIR\}/inkscape\"|\$\{CMAKE_INSTALL_LIBDIR\}|" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape/files/libxml2-2.12.0.patch b/graphics/inkscape/files/libxml2-2.12.0.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4dc4f228e2f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape/files/libxml2-2.12.0.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix build failure with libxml2 >= 2.12.0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: use of undeclared identifier 'xmlFree'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/issues/4753
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/commit/694d8ae43d06efff21adebf377ce614d660b24cd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/object/uri.h.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/object/uri.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,6 +13,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define INKSCAPE_URI_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <libxml/uri.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <libxml/xmlmemory.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/inkscape/files/poppler-24.03.0.patch b/graphics/inkscape/files/poppler-24.03.0.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9fe338bed2a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/inkscape/files/poppler-24.03.0.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix build failure with poppler >= 24.03.0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: cannot initialize a variable of type 'int' with an rvalue of type 'Function::Type'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+error: invalid operands to binary expression ('Function::Type' and 'int')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/issues/4787
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://gitlab.com/inkscape/inkscape/-/merge_requests/6209
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/extension/internal/pdfinput/svg-builder.cpp.orig   2023-07-16 09:32:51.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/extension/internal/pdfinput/svg-builder.cpp        2024-03-06 11:14:51.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1158,9 +1158,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define INT_EPSILON 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    _POPPLER_CONST Function *func) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    int type = func->getType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    auto type = func->getType();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     auto space = shading->getColorSpace();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ( type == Function::Type::Sampled || type == Function::Type::Exponential ) {  // Sampled or exponential function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ( type == 0 || type == 2 ) {  // Sampled or exponential function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         GfxColor stop1, stop2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (!svgGetShadingColor(shading, 0.0, &stop1) || !svgGetShadingColor(shading, 1.0, &stop2)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1168,7 +1172,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             _addStopToGradient(gradient, 0.0, &stop1, space, 1.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             _addStopToGradient(gradient, 1.0, &stop2, space, 1.0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else if ( type == Function::Type::Stitching ) { // Stitching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if ( type == 3 ) { // Stitching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const double *bounds = stitchingFunc->getBounds();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         const double *encode = stitchingFunc->getEncode();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1183,7 +1191,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for ( int i = 0 ; i < num_funcs ; i++ ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             svgGetShadingColor(shading, bounds[i + 1], &color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Add stops
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_CHECK_VERSION(24, 3, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if (stitchingFunc->getFunc(i)->getType() == Function::Type::Exponential) {    // process exponential fxn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (stitchingFunc->getFunc(i)->getType() == 2) {    // process exponential fxn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (expE > 1.0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     expE = (bounds[i + 1] - bounds[i])/expE;    // approximate exponential as a single straight line at x=1
</span></pre><pre style='margin:0'>

</pre>