<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a730d9b40b524b74da41c6c69aaaf57822b0bc9f">https://github.com/macports/macports-ports/commit/a730d9b40b524b74da41c6c69aaaf57822b0bc9f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit a730d9b40b524b74da41c6c69aaaf57822b0bc9f
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Sun Aug 25 21:53:59 2024 -0400

<span style='display:block; white-space:pre;color:#404040;'>    qt5: update to 5.15.15
</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/64518
</span>---
 aqua/qt5/Portfile                              | 241 +++++++++++--------------
 aqua/qt5/files/CVE-2023-32573-qtsvg-5.15.diff  |  34 ----
 aqua/qt5/files/CVE-2023-32762-qtbase-5.15.diff |  13 --
 aqua/qt5/files/CVE-2023-32763-qtbase-5.15.diff |  47 -----
 aqua/qt5/files/CVE-2023-33285-qtbase-5.15.diff |  70 -------
 aqua/qt5/files/CVE-2023-37369-qtbase-5.15.diff | 203 ---------------------
 aqua/qt5/files/CVE-2023-38197-qtbase-5.15.diff | 219 ----------------------
 aqua/qt5/files/CVE-2023-51714-qtbase-5.15.diff |  99 ----------
 aqua/qt5/files/CVE-2024-25580-qtbase-5.15.diff | 197 --------------------
 aqua/qt5/files/mysql-plugin-qtbug-109832.patch |  36 ----
 10 files changed, 110 insertions(+), 1049 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/Portfile b/aqua/qt5/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 15e443d25c0..1d3c0730f76 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt5/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,7 +14,7 @@ license             {LGPL-3 GPL-3 OpenSSLException}
</span> homepage            https://www.qt.io
 
 # When updating, also update py-pyside2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set qt_version      5.15.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set qt_version      5.15.15
</span> version             ${qt_version}
 set middle_name     everywhere-opensource
 set worksrcdir_middle_name everywhere
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,9 +189,9 @@ set llvm_version 17
</span> array set modules {
     qt3d {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            2c83ae296e3427bdbfcf571905d5bbb97f8a0abe
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            d058c53e72dd7caa92e6c1a4a2ed301aee55a9bd92828136752f0a1299fe694b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            118298584
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            d1e37ba6de35f817bb35afc5c5430a38aae04417 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5a400db06eb676dab23f9d4d25805bf051e38380b9b37ade3340cc2c3130db73 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            118255492
</span>         }
         ""
         "port:assimp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -204,9 +204,9 @@ array set modules {
</span>     }
     qtbase {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            674d1a2fd0748110832ac6037fea792c6f7dfd61
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            4c01b7b0f1f3c1e05ae6bf53c66e49c65c6b3872475bac26b0fb228136914af0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            50840192
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            7ff4cbd9d13c17acfe2afa02306a450112e07e71 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            e5f941fecf694ecba97c550b45b0634e552166cc6c815bcfdc481edd62796ba1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            51366204
</span>         }
         ""
         "port:zlib port:libpng path:include/turbojpeg.h:libjpeg-turbo port:freetype path:bin/dbus-daemon:dbus path:lib/pkgconfig/glib-2.0.pc:glib2 path:lib/pkgconfig/icu-uc.pc:icu port:pcre2 path:lib/pkgconfig/harfbuzz.pc:harfbuzz port:double-conversion port:zstd"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -214,14 +214,14 @@ array set modules {
</span>         {"Qt Core" "Qt GUI" "Qt Network" "Qt SQL" "Qt Test" "Qt Widgets" "Qt Concurrent" "Qt D-Bus" "Qt OpenGL" "Qt Platform Headers" "Qt Print Support" "Qt XML"}
         ""
         "variant overrides: "
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "revision 1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "revision 0"
</span>         "License: "
     }
     qtcharts {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            1d97f2eae0b7e51a53ac375e5d875fe2e2e76ede
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            97ad0afca7eab9440d3a6908f5499b29a78401a04503c4f9fc4fa87287dda8e2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            4254676
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            7acff484e6181757993edace2ebbe74ea0c7f262 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            71276bb80db9140810cce1213edbc227a833e29390f8cb8d903d1c9e5ece0a45 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            4246388
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -234,9 +234,9 @@ array set modules {
</span>     }
     qtconnectivity {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            403877bfc62aed148ac99e6aeafda138706e6821
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            cfaed2d7a0520491cf1ef95de689b25cbb0304b22fefab4e95307647ea6d48b4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            2829264
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            d3669dec8fdd051382fffd6a74fbcfee720eaea9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            6d014421596ecf53c341b30d256c5c65108787dcce3def41e86acb7344f615b0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2820640
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,9 +249,9 @@ array set modules {
</span>     }
     qtdatavis3d {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            a0540fb2684e58cdebb2322ce6e10ee8297c43d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            0d8bfd1bd973c50adf62dd96a070dc7089b9466ddb2c7385c3bfbbf88a71efcb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            5193584
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            b5f202d848082dbc55168ed71daf6009ee573b8f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            c045ec186f418ab83e28fb13f89081f213058fc2f09aaaf9e39561d8d41a9c88 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5184772
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -264,9 +264,9 @@ array set modules {
</span>     }
     qtdeclarative {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            959076cce268de06d9f38e0b231562e2fe56fdab
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            03b920dfba5ad8b741d7610ad2e37336b4d669c6613fca64426244b7e7f9df9e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            21602960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            9af037e35c3ed1470a3a6bd4514981e730c2694a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ff5fed427aca97d24c2bb94c1ed492b16e6d5920e92a7e38ffa79c426604ac1a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            21596972
</span>         }
         "port:python311"
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -279,9 +279,9 @@ array set modules {
</span>     }
     qtdoc {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            82ed62dd4ca72dea4b3327037d6387823eb551dd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            f0bd34f8d92f807a50118d353e1c8e6ce987a70c8a33bb7233723a3f2bb5cc44
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            5751304
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            9b868184254b3778e585345f39a92e928f5a4900 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ce424b60d9bcb84826f4b17dc7ac3de073b3160f8e755742dd7b90b09e98ab83 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5779424
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -294,9 +294,9 @@ array set modules {
</span>     }
     qtgamepad {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            2a40ddffc2e932e669d3c08d50ee4a7047f24ce7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            58653d5fb2e989ebac25be73bb0eec8d646625ecab1cb419b2ec00a5d1fe4f2e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            389876
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2e9e9fc24f35932b6cebeee9146a9c9f2c5ec809 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            64c7f22df2b082766be4658ab5e59e07965f1648d060598c49de5031911f2065 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            380888
</span>         }
         ""
         "port:libsdl2"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -309,9 +309,9 @@ array set modules {
</span>     }
     qtgraphicaleffects {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            02242ca34e7db919d7156ac15a26301542eb8a5c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            4664b1096c848d3679b91df3062508a1992ce75eaa0eb292947dfae2b61ad4e9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            14045416
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            0211e08283a246c379f78ffc1244a0acf6129065 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            09a3e5e2958d1ac262318c1b0ecabf3493289213a808e80ea0c6b94a2acafdf0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            14034724
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -324,9 +324,9 @@ array set modules {
</span>     }
     qtimageformats {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            5d08fe5565a67748c5279b9c119990f95940ce8b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            f5125e32ff40fe8688872cbd92b56127d17edda4471d41605da0a5bbf7adb489
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            1865016
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            786fc0578fc0ced1ed913c1b4f3d9742e03fbf98 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            39fa9a16477d31e3225938c8c9169cda4605dfd2e8811c5c945077bf9f0b453d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            1890840
</span>         }
         ""
         "port:jasper port:libmng port:tiff port:webp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -339,9 +339,9 @@ array set modules {
</span>     }
     qtlocation {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            45f0868f30edc6b5d104bffdade41f03bc76d7a2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            1315d04bc488575918bc3e480e7c02e6721f4d1a57849241615534ecf56cc9b1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            6553488
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cbcd84ec454ada93f08bda9c3eb9f96e2944782c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            62def9692fd8102293786d61a924cc8a00da2c0daf867ab485a9d3f483ce4549 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            6549724
</span>         }
         ""
         "path:lib/pkgconfig/icu-uc.pc:icu port:zlib"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -354,9 +354,9 @@ array set modules {
</span>     }
     qtlottie  {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            96761b4a3ecd5b1e9aaa17e82be02b46e0e3a965
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            8e44fe071ccaa2bf039e1e9af2b7c6c0221182fb2395ac1682e49d8077c320d8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            85336
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            7d206165ec6728b7af7ea9efd4f9a38ffe172500 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8984a59a6732dd8daff3ffc89fde1ab8b17fc3d95a43412a8814f9d743c7f5d1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            76324
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -369,9 +369,9 @@ array set modules {
</span>     }
     qtmacextras {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            85c8d1233ff94834bca6a0748d266f79cb4e374f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            207c93712f8df6cdb71544595b2aa6b9b7b082cd759fea8640f31f45cf19dcd8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            72488
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            73b7f036edb436d7292599ef2f01e679fff1540a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fa5245ba71e6e50a41a34467f6a9a697a7f3174d65abe18af30e6340d80bec60 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            63544
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -384,9 +384,9 @@ array set modules {
</span>     }
     qtmultimedia {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            e3e3929ef8cc840d4f615c2355b28bb0523e7d85
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            1040585c91f9da6768973d9c81d31d571c152464a9f5021b5270a5ab1e874429
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            3830956
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            4829ef0aa3c1ed3882680878223e572efe2f5237 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            a7b4a801d2400e05ca5e5ce9d15d2af9dc03262a3148dc57d8e2b29c13ffd7f8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            3841580
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -399,9 +399,9 @@ array set modules {
</span>     }
     qtnetworkauth {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            c839d626d5aaf0fadc17f5a7797922ba9c29ea52
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            797626e86d3ecfe6c319ed3f2e26017c8dbdf7fdcb6b22317b00371ee67988d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            144752
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            30a06b10d94dce653b7dfb1f50786077f3dd2ca9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2903fd11e60cad0d4f4e0c86cae8af516db5b41f68a8736676e7ffae9a9217f1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            135604
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -414,9 +414,9 @@ array set modules {
</span>     }
     qtpurchasing {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            0fe179ae64c6db572509539dc69dc9b66609217c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            c97e5efc015d31d6a3ef38038438735e44b9d34e524ab6632d48a11f776fe24e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            309768
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            b111c2e23448c6ea300be7d346566161fab8850c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            59e0423a926137802c16dfb441e3c2d873a3813297fa64504d0afe6d36658844 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            300856
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -429,9 +429,9 @@ array set modules {
</span>     }
     qtquick3d {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            af6c40e3fb6c0bb8be360ceeaf88c7c72ae5d7c6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            df71f11bf032e3ddbba777ecedf159a5b7cccc48147801f22e64ecb224447af3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            55764980
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            47b3a16e3e745b7a7bdf76c85be1cc4df2e5290c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8642e4b3191eba7763d8a0f46272830f315fbf3d5539c5ada7fa9c1f0e8040ef \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            55783696
</span>         }
         ""
         "port:assimp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -444,9 +444,9 @@ array set modules {
</span>     }
     qtquickcontrols {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            46fd24771c4e4354163fb036777d15018dde89e7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            6321844236fd7ef25a89b147bb6b0c3f8aaea51e88e156cf2c81ab4e321ea164
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            5982828
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            7e8d893df2cf3914dde66283f9aac033eb6439ae \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            b02430c25a6e543eed2ec6ffc7e0786ed8b5b169f3f679d21f2c489f4f06ce2a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5973656
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -459,9 +459,9 @@ array set modules {
</span>     }
     qtquickcontrols2 {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            9621d9122d617409ab84f6c650ceac2981ece5a9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            4d9ef0ba0369b1bb83abe71d62ae3261d908a3c039bb63556cb0901450ccb4bb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            8294356
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            f1cb96823e730ab221bb634b4f1e571da49540cf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fe16175f55f518d358ec3c2ba10769cc0b1bfd5b28515d3305267c61127db724 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8285788
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -474,9 +474,9 @@ array set modules {
</span>     }
     qtquicktimeline {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            0ff6d8b85d8c17b7fea2793e7803a9546d741a7f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            861603b09e9b9c6505b0b8091cf03e19e59ea7647559b660434838fdc1529270
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            105600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2929db63c5d4188b1169f658beee8fc6947d4b56 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            880c1c804c15cdf621041e59a4503f8ee83e5e4abc106e947a0e7356945fea6c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            96544
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -489,9 +489,9 @@ array set modules {
</span>     }
     qtremoteobjects {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            1a6f540b3613ec8ff28c3f7e6528191edc8dc378
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            755ee0d45aa4f374088d793336ea5837a1cfe26ad9b69ee0a857f58451723bf3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            379368
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            02aa1a9be049d3773a8302852f96a028c7fc3546 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cf9ab6f453c0cd20443a912a13fae48a7fdece8b4409adc1b57ffd319c5f53b7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            370512
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -504,9 +504,9 @@ array set modules {
</span>     }
     qtscript {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            5d3e1da4c5604fde986ab1d128e99cdfdd5591b3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            b9fc94c913958a416a3f671bf9ff4cc237f966706e46738ed57d7c5ef0b03ef5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            2664960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            1d3b1e56ec6be914fd7f30a4a7075ee7441c28b4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ed6edb23556558fef44835a6a1ca5eb6a632f2df0373d11ca1e424d93658c2eb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2657832
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -519,9 +519,9 @@ array set modules {
</span>     }
     qtscxml {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            c214ab35cb94f71d98afa625fd48ea57a9404e4e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            5a67ee5fe2a0f311d2c37ecce1854ea927ee7daab73f361b9e5531314f0baae2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            437972
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            97b75a8f6fd5ebcf36210df1cd08e5fae7a16004 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8e7ff0e13bbdf6bc6f3141d62cf6b21a62ed5a21a4aa2079258fb548d80885c8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            429200
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -534,9 +534,9 @@ array set modules {
</span>     }
     qtsensors {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            995cf0f58caf8ce542b3642150c90e8bc0c10ccf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            8b2f4ee921d6b5d1c5893e1813b6e59d0cae9397832d8747aa8bcf34c369bc67
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            2059976
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2e076d7ce2149ac4ec7029cc88e14f30aee6393d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            65deb05352c2777a3d77737985120fc70c6a7d555d4a1a6de26af7e906f161b5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            2051112
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -549,9 +549,9 @@ array set modules {
</span>     }
     qtserialbus {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            6f57211a828195fc7915302e41c53f1d27a77568
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            6104dbb447ec475337ca96a07bf26d4fb3d06a6ff710a00892a16952a76aebf1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            359492
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            0c241d8beb2946a59c791916f4fd4d7d1873f20d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            6bbaed75788b382130660930938054e41d15474bbc9e4fc53dc422aa67cf5537 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            350808
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -564,9 +564,9 @@ array set modules {
</span>     }
     qtserialport {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            b85af133d1ae591b416854661a36f4c7461746c3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            0474d9ffc599491fef8ba28f222ffe5bba7f07be0591deb99ea819e991225914
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            323500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            4e79c9f7d4114e0f86510dbba721acf918a99aa6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            6538fcc175c3d3b5f801d97124d693934f5a4d203e3b068a35d7ce6125bd9e98 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            314744
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -579,9 +579,9 @@ array set modules {
</span>     }
     qtspeech {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            fd6fb842581d6fc78139de43b224e59aa2613870
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            6fd4426e53ef5d20d764c4a7694e030c08496e2873fcc4dc13ac862e681c9456
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            104816
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cd2582aae3bc20df93d6a6555b2294c0f217a975 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            090125ce13c4219c7e2291e7a248c0923fd8534f0667fabd544ca377e9a8b305 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            95868
</span>         }
         ""
         "port:flite"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -594,9 +594,9 @@ array set modules {
</span>     }
     qtsvg {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            6f51637493a7a11eac7ec1d8a3fa6782a812b178
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            32a63a865b1bf13bf1b61ee946b2bd456c45567eea31598038632587a3f1ef9d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            1890112
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ae7d105efa69ad30c283fa39941c0317c052bcf7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            577b63c53bfb1c2a5099cf46540bb5b8ef595de9fcc390193cd239720b33d04b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            1880732
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -609,9 +609,9 @@ array set modules {
</span>     }
     qttools {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            1ecb9595f3c2de3b483d24296622ba4b4455bf01
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            9a4084fee80a2acebb6415efa5a28dd666960129895a0bb7d97468a9f0c66506
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            8900672
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            f6f08e63c6ac3143cf0cce114733e11167c7d358 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            71946704c6bd6c925910288b97dfcc2e357d4a28e22c8651a5813aae4f238028 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8889004
</span>         }
         ""
         "port:clang-${llvm_version}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -624,9 +624,9 @@ array set modules {
</span>     }
     qttranslations {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            b034a16da4eba6cea57ceb48889d4345d8255619
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            a830ba6158ccb36fdae97ebfa33ac7c2c92f4b609786717830d65aa2e0e77612
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            1635924
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            0fb0784e590754ccb6616deed8a684f7d17efbc9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            33e077ea098c86ad5616e5ae11458484ba846db8e2f4524c0a4185c84ed6a806 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            1627008
</span>         }
         "port:qt5-qttools"
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -639,9 +639,9 @@ array set modules {
</span>     }
     qtvirtualkeyboard {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            bb28ef438fe3c50a738a1077023508e5f2040e40
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            376880f79135dfde95b636d251b1b88667f2ba4fedbca8d702b3283ba45b5e22
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            10959460
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            afcc29a259809fc458c2e9dc690181cfb020d988 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            c607b3b276acc30773771371e03febf07daedcc7f4f8bd6c3609358324ba2194 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            10955228
</span>         }
         ""
         "port:hunspell"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -654,9 +654,9 @@ array set modules {
</span>     }
     qtwebchannel {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            4be5ff890a469e511407c35d5ab599b7292c370f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            72d1998983b1e442673e5d1a2b51c4a0fd8ccd2c14501aac5927da02bbd180e5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            211996
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            223535c768888bfea14bab62f979dda33b70f422 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            40d015b5fbbc11f75726f34614d89ac418455cf2fd5a177253fa7606642f8cf8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            203060
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -680,9 +680,9 @@ array set modules {
</span>     }
     qtwebglplugin {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            2e0b1838b7ac70b1c59575928377176e52bf5b76
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            0cde7de221c1b017169c7ae63a665db3d475d517705859c60044b3f074742cd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            77120
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            f724abfa2132bf397b031b0d3ea4624229b6db84 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            e699d71fc382bb13455c7c7bdb9ffdf15a4962f3ec8f873406b991aafacd9d8a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            68172
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -725,9 +725,9 @@ array set modules {
</span>     }
     qtwebsockets {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            13fb1c51121fe19c3d54b38caa13c3bc0ea76802
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            49ea6431986575ce184ff77753802bcee8b24a9e6ab37c7bc053819fdb20b567
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            261924
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            f406e3ff7714c3bc69d051fa61abe90830acc364 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            addeb8da8d831a175268367576f0ea02550681a3f11670de170352a7948fba4a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            253040
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -740,9 +740,9 @@ array set modules {
</span>     }
     qtwebview {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            c11934a1c50db29008462a10dd96c36a64a06672
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            f86e13d32fc2ea7032501bd55bfef64cddae9bd0dcebe2541260cc006297a7d8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            136852
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5e04149687a0a98dd779c6a876c447d64fb2a240 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            8e65b165df6f0608d97d8d0a9a5df691aa736ae0e76e2b93887e6fe2a247ae03 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            128192
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -755,9 +755,9 @@ array set modules {
</span>     }
     qtxmlpatterns {
         {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            8de6038308004c22ea0665be0f23b5c3762dda30
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            758e5b69d579932b645858fac8e6df657598bfdac566e35d372e9b3acca7f908
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            5192924
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            6bbd5e281d0bba8d16cf6a39fab2a1055cfb8758 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            b8390b815b248901f86ebd5f65cee363d4977581baeba37b3b2495fab848d33d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            5189120
</span>         }
         ""
         ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1061,7 +1061,6 @@ foreach {module module_info} [array get modules] {
</span>         }
 
         long_description  "Tools and Module(s) for Qt Tool Kit ${qt_major}: ${modules_provided_join}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         if { ${module} eq "qtbase" } {
             # this subport uses configure script (NOT qmake)
             PortGroup           qt5 1.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1084,16 +1083,6 @@ foreach {module module_info} [array get modules] {
</span>             # see https://trac.macports.org/ticket/59315
             minimum_developerversions 16 9
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            patchfiles-append {*}{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-32762-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-32763-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-33285-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-37369-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-38197-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2023-51714-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                CVE-2024-25580-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>             # see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270715
             patchfiles-append qtbase-5.15.9-work-around-pyside2-brokenness.patch
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1914,11 +1903,6 @@ foreach {module module_info} [array get modules] {
</span>                 }
             }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            # special case
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if { ${module} eq "qtsvg" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                patchfiles-append CVE-2023-32573-qtsvg-5.15.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>             # special case
             if { ${module} eq "qtspeech" } {
                 # see https://trac.macports.org/ticket/67593
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2046,11 +2030,6 @@ foreach {sql_names sql_info} [array get sql_plugins] {
</span>         patchfiles-append patch-sql_plugins.diff
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # see https://bugreports.qt.io/browse/QTBUG-109832
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${driver} eq "mysql"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append mysql-plugin-qtbug-109832.patch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         # if there is more than one version of the database system, create variants for each version
         if { [llength ${sql_info}] > 1 } {
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-32573-qtsvg-5.15.diff b/aqua/qt5/files/CVE-2023-32573-qtsvg-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 6de2a8a1fc8..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-32573-qtsvg-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,34 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/svg/qsvgfont_p.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/svg/qsvgfont_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -74,6 +74,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- class Q_SVG_PRIVATE_EXPORT QSvgFont : public QSvgRefCounted
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    static constexpr qreal DEFAULT_UNITS_PER_EM = 1000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QSvgFont(qreal horizAdvX);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void setFamilyName(const QString &name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -86,9 +87,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void draw(QPainter *p, const QPointF &point, const QString &str, qreal pixelSize, Qt::Alignment alignment) const;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QString m_familyName;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    qreal m_unitsPerEm;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    qreal m_ascent;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    qreal m_descent;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    qreal m_unitsPerEm = DEFAULT_UNITS_PER_EM;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     qreal m_horizAdvX;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QHash<QChar, QSvgGlyph> m_glyphs;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/svg/qsvghandler.cpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/svg/qsvghandler.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2668,7 +2668,7 @@ static bool parseFontFaceNode(QSvgStyleProperty *parent,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     qreal unitsPerEm = toDouble(unitsPerEmStr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!unitsPerEm)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        unitsPerEm = 1000;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        unitsPerEm = QSvgFont::DEFAULT_UNITS_PER_EM;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!name.isEmpty())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         font->setFamilyName(name);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-32762-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-32762-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 2d707fdb5c1..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-32762-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,13 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/network/access/qhsts.cpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/network/access/qhsts.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -364,8 +364,8 @@ quoted-pair    = "\" CHAR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool QHstsHeaderParser::parse(const QList<QPair<QByteArray, QByteArray>> &headers)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     for (const auto &h : headers) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        // We use '==' since header name was already 'trimmed' for us:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if (h.first == "Strict-Transport-Security") {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // We compare directly because header name was already 'trimmed' for us:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (h.first.compare("Strict-Transport-Security", Qt::CaseInsensitive) == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             header = h.second;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // RFC6797, 8.1:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             //
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-32763-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-32763-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index e6f0d6f8f1f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-32763-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,47 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/gui/painting/qfixed_p.h.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/gui/painting/qfixed_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -54,6 +54,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QtGui/private/qtguiglobal_p.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "QtCore/qdebug.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "QtCore/qpoint.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <QtCore/private/qnumeric_p.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "QtCore/qsize.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QT_BEGIN_NAMESPACE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -182,6 +183,14 @@ Q_DECL_CONSTEXPR inline bool operator<(int i, const QFixed &f) { return i * 64 <
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECL_CONSTEXPR inline bool operator>(const QFixed &f, int i) { return f.value() > i * 64; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECL_CONSTEXPR inline bool operator>(int i, const QFixed &f) { return i * 64 > f.value(); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+inline bool qAddOverflow(QFixed v1, QFixed v2, QFixed *r)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int val;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    bool result = add_overflow(v1.value(), v2.value(), &val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    r->setValue(val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return result;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifndef QT_NO_DEBUG_STREAM
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- inline QDebug &operator<<(QDebug &dbg, const QFixed &f)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { return dbg << f.toReal(); }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/gui/text/qtextlayout.cpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/gui/text/qtextlayout.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2163,11 +2163,14 @@ found:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         eng->maxWidth = qMax(eng->maxWidth, line.textWidth);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         eng->minWidth = qMax(eng->minWidth, lbh.minw);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        eng->maxWidth += line.textWidth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (qAddOverflow(eng->maxWidth, line.textWidth, &eng->maxWidth))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            eng->maxWidth = QFIXED_MAX;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (line.textWidth > 0 && item < eng->layoutData->items.size())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        eng->maxWidth += lbh.spaceData.textWidth;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (line.textWidth > 0 && item < eng->layoutData->items.size()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (qAddOverflow(eng->maxWidth, lbh.spaceData.textWidth, &eng->maxWidth))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            eng->maxWidth = QFIXED_MAX;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     line.textWidth += trailingSpace;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (lbh.spaceData.length) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-33285-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-33285-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 2ff50916667..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-33285-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,70 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://codereview.qt-project.org/c/qt/qtbase/+/477644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/network/kernel/qdnslookup_unix.cpp.orig    2023-04-24 08:43:14
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/network/kernel/qdnslookup_unix.cpp 2023-06-07 08:58:04
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -227,7 +227,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // responseLength in case of error, we still can extract the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // exact error code from the response.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     HEADER *header = (HEADER*)response;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    const int answerCount = ntohs(header->ancount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     switch (header->rcode) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     case NOERROR:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -260,18 +259,31 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    // Skip the query host, type (2 bytes) and class (2 bytes).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     char host[PACKETSZ], answer[PACKETSZ];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     unsigned char *p = response + sizeof(HEADER);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    int status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (status < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    int status;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (ntohs(header->qdcount) == 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // Skip the query host, type (2 bytes) and class (2 bytes).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (status < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            reply->error = QDnsLookup::InvalidReplyError;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            reply->errorString = tr("Could not expand domain name");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if ((p - response) + status + 4 >= responseLength)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            header->qdcount = 0xffff;   // invalid reply below
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            p += status + 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (ntohs(header->qdcount) > 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         reply->error = QDnsLookup::InvalidReplyError;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        reply->errorString = tr("Could not expand domain name");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        reply->errorString = tr("Invalid reply received");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    p += status + 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // Extract results.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const int answerCount = ntohs(header->ancount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int answerIndex = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     while ((p < response + responseLength) && (answerIndex < answerCount)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -283,6 +296,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         const QString name = QUrl::fromAce(host);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         p += status;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if ((p - response) + 10 > responseLength) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            // probably just a truncated reply, return what we have
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         const quint16 type = (p[0] << 8) | p[1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         p += 2; // RR type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         p += 2; // RR class
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -290,6 +308,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         p += 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         const quint16 size = (p[0] << 8) | p[1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         p += 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if ((p - response) + size > responseLength)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return;             // truncated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (type == QDnsLookup::A) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (size != 4) {
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-37369-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-37369-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 69f4d958564..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-37369-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,203 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7cd457ba3a..11d162cb79 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1302,15 +1302,18 @@ inline int QXmlStreamReaderPrivate::fastScanContentCharList()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Fast scan an XML attribute name (e.g. "xml:lang").
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+inline QXmlStreamReaderPrivate::FastScanNameResult
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+QXmlStreamReaderPrivate::fastScanName(Value *val)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int n = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     uint c;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     while ((c = getChar()) != StreamEOF) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         if (n >= 4096) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // This is too long to be a sensible name, and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            // can exhaust memory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            // can exhaust memory, or the range of decltype(*prefix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            raiseNamePrefixTooLongError();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return {};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         switch (c) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case '\n':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1339,23 +1342,23 @@ inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case '+':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case '*':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             putChar(c);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (prefix && *prefix == n+1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                *prefix = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (val && val->prefix == n + 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                val->prefix = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 putChar(':');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 --n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            return n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return FastScanNameResult(n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case ':':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            if (prefix) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                if (*prefix == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    *prefix = n+2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (val) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                if (val->prefix == 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    val->prefix = n + 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 } else { // only one colon allowed according to the namespace spec.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     putChar(c);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                    return n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    return FastScanNameResult(n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 putChar(c);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                return n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return FastScanNameResult(n);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             Q_FALLTHROUGH();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1364,12 +1367,12 @@ inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (prefix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        *prefix = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (val)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        val->prefix = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int pos = textBuffer.size() - n;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     putString(textBuffer, pos);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     textBuffer.resize(pos);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return FastScanNameResult(0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum NameChar { NameBeginning, NameNotBeginning, NotName };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1878,6 +1881,14 @@ void QXmlStreamReaderPrivate::raiseWellFormedError(const QString &message)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     raiseError(QXmlStreamReader::NotWellFormedError, message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void QXmlStreamReaderPrivate::raiseNamePrefixTooLongError()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // TODO: add a ImplementationLimitsExceededError and use it instead
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    raiseError(QXmlStreamReader::NotWellFormedError,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+               QXmlStream::tr("Length of XML attribute name exceeds implemnetation limits (4KiB "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              "characters)."));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void QXmlStreamReaderPrivate::parseError()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/corelib/serialization/qxmlstream.g b/src/corelib/serialization/qxmlstream.g
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4321fed68a..8c6a1a5887 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/corelib/serialization/qxmlstream.g
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/corelib/serialization/qxmlstream.g
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -516,7 +516,16 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanLiteralContent();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanSpace();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanContentCharList();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    int fastScanName(int *prefix = nullptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    struct FastScanNameResult {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        FastScanNameResult() : ok(false) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        explicit FastScanNameResult(int len) : addToLen(len), ok(true) { }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        operator bool() { return ok; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int operator*() { Q_ASSERT(ok); return addToLen; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int addToLen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        bool ok;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    FastScanNameResult fastScanName(Value *val = nullptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     inline int fastScanNMTOKEN();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -525,6 +534,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void raiseError(QXmlStreamReader::Error error, const QString& message = QString());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void raiseWellFormedError(const QString &message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void raiseNamePrefixTooLongError();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QXmlStreamEntityResolver *entityResolver;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1811,7 +1821,12 @@ space_opt ::= space;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- qname ::= LETTER;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case $rule_number: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            sym(1).len += fastScanName(&sym(1).prefix);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            Value &val = sym(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (auto res = fastScanName(&val))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                val.len += *res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (atEnd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 resume($rule_number);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1822,7 +1837,11 @@ qname ::= LETTER;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- name ::= LETTER;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case $rule_number:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            sym(1).len += fastScanName();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (auto res = fastScanName())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                sym(1).len += *res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (atEnd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 resume($rule_number);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e5bde7b98e..b01484cac3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1005,7 +1005,16 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanLiteralContent();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanSpace();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     int fastScanContentCharList();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    int fastScanName(int *prefix = nullptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    struct FastScanNameResult {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        FastScanNameResult() : ok(false) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        explicit FastScanNameResult(int len) : addToLen(len), ok(true) { }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        operator bool() { return ok; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int operator*() { Q_ASSERT(ok); return addToLen; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        int addToLen;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        bool ok;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    FastScanNameResult fastScanName(Value *val = nullptr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     inline int fastScanNMTOKEN();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1014,6 +1023,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void raiseError(QXmlStreamReader::Error error, const QString& message = QString());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     void raiseWellFormedError(const QString &message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void raiseNamePrefixTooLongError();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QXmlStreamEntityResolver *entityResolver;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1939,7 +1949,12 @@ bool QXmlStreamReaderPrivate::parse()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case 262: {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            sym(1).len += fastScanName(&sym(1).prefix);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            Value &val = sym(1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (auto res = fastScanName(&val))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                val.len += *res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (atEnd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 resume(262);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1947,7 +1962,11 @@ bool QXmlStreamReaderPrivate::parse()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         } break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         case 263:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            sym(1).len += fastScanName();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            if (auto res = fastScanName())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                sym(1).len += *res;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             if (atEnd) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 resume(263);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 return false;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-38197-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-38197-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 93166cef162..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-38197-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,219 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index bf8a2a9..6ab5d49 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/corelib/serialization/qxmlstream.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -160,7 +160,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     addData() or by waiting for it to arrive on the device().
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     \value UnexpectedElementError The parser encountered an element
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    that was different to those it expected.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    or token that was different to those it expected.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -295,13 +295,34 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   QXmlStreamReader is a well-formed XML 1.0 parser that does \e not
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   include external parsed entities. As long as no error occurs, the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  application code can thus be assured that the data provided by the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  stream reader satisfies the W3C's criteria for well-formed XML. For
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  example, you can be certain that all tags are indeed nested and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  closed properly, that references to internal entities have been
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  replaced with the correct replacement text, and that attributes have
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  been normalized or added according to the internal subset of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  DTD.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  application code can thus be assured, that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li the data provided by the stream reader satisfies the W3C's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      criteria for well-formed XML,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li tokens are provided in a valid order.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \endlist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  Unless QXmlStreamReader raises an error, it guarantees the following:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li All tags are nested and closed properly.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li References to internal entities have been replaced with the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      correct replacement text.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li Attributes have been normalized or added according to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      internal subset of the \l DTD.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li Tokens of type \l StartDocument happen before all others,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      aside from comments and processing instructions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li At most one DOCTYPE element (a token of type \l DTD) is present.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \li If present, the DOCTYPE appears before all other elements,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      aside from StartDocument, comments and processing instructions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \endlist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  In particular, once any token of type \l StartElement, \l EndElement,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \l Characters, \l EntityReference or \l EndDocument is seen, no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  tokens of type StartDocument or DTD will be seen. If one is present in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  the input stream, out of order, an error is raised.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  \note The token types \l Comment and \l ProcessingInstruction may appear
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  anywhere in the stream.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   If an error occurs while parsing, atEnd() and hasError() return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   true, and error() returns the error that occurred. The functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -620,6 +641,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         d->token = -1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return readNext();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    d->checkToken();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return d->type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -740,6 +762,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const char QXmlStreamReader_XmlContextString[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "Prolog\0"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "Body\0";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const short QXmlStreamReader_XmlContextString_indices[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    0, 7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     \property  QXmlStreamReader::namespaceProcessing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     The namespace-processing flag of the stream reader
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -775,6 +805,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          QXmlStreamReader_tokenTypeString_indices[d->type]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \internal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \return \param ctxt (Prolog/Body) as a string.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+QString contextString(QXmlStreamReaderPrivate::XmlContext ctxt)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return QLatin1String(QXmlStreamReader_XmlContextString +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                         QXmlStreamReader_XmlContextString_indices[static_cast<int>(ctxt)]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif // QT_NO_XMLSTREAMREADER
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -866,6 +906,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     type = QXmlStreamReader::NoToken;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     error = QXmlStreamReader::NoError;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    currentContext = XmlContext::Prolog;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    foundDTD = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4061,6 +4103,92 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static bool isTokenAllowedInContext(QXmlStreamReader::TokenType type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                               QXmlStreamReaderPrivate::XmlContext loc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    switch (type) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::StartDocument:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::DTD:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return loc == QXmlStreamReaderPrivate::XmlContext::Prolog;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::StartElement:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::EndElement:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::Characters:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::EntityReference:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::EndDocument:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return loc == QXmlStreamReaderPrivate::XmlContext::Body;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::Comment:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::ProcessingInstruction:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::NoToken:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case QXmlStreamReader::Invalid:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \internal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \brief QXmlStreamReader::isValidToken
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \return \c true if \param type is a valid token type.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \return \c false if \param type is an unexpected token,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   which indicates a non-well-formed or invalid XML stream.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool QXmlStreamReaderPrivate::isValidToken(QXmlStreamReader::TokenType type)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Don't change currentContext, if Invalid or NoToken occur in the prolog
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (type == QXmlStreamReader::Invalid || type == QXmlStreamReader::NoToken)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // If a token type gets rejected in the body, there is no recovery
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const bool result = isTokenAllowedInContext(type, currentContext);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (result || currentContext == XmlContext::Body)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return result;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // First non-Prolog token observed => switch context to body and check again.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    currentContext = XmlContext::Body;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return isTokenAllowedInContext(type, currentContext);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   \internal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   Checks token type and raises an error, if it is invalid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   in the current context (prolog/body).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void QXmlStreamReaderPrivate::checkToken()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Q_Q(QXmlStreamReader);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // The token type must be consumed, to keep track if the body has been reached.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const XmlContext context = currentContext;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const bool ok = isValidToken(type);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Do nothing if an error has been raised already (going along with an unexpected token)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (error != QXmlStreamReader::Error::NoError)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (!ok) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        raiseError(QXmlStreamReader::UnexpectedElementError,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                   QLatin1String("Unexpected token type %1 in %2.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                   .arg(q->tokenString(), contextString(context)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (type != QXmlStreamReader::DTD)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Raise error on multiple DTD tokens
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (foundDTD) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        raiseError(QXmlStreamReader::UnexpectedElementError,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                   QLatin1String("Found second DTD token in %1.").arg(contextString(context)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        foundDTD = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  \fn bool QXmlStreamAttributes::hasAttribute(const QString &qualifiedName) const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  \since 4.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8f7c9e0..708059b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/corelib/serialization/qxmlstream_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -804,6 +804,17 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool atEnd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    enum class XmlContext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Prolog,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        Body,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    XmlContext currentContext = XmlContext::Prolog;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    bool foundDTD = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    bool isValidToken(QXmlStreamReader::TokenType type);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    void checkToken();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     /*!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       \sa setType()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2023-51714-qtbase-5.15.diff b/aqua/qt5/files/CVE-2023-51714-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 376a01bc856..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2023-51714-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,99 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From ea63c28efc1d2ecb467b83a34923d12462efa96f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Marc Mutz <marc.mutz@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 12 Dec 2023 20:51:56 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] HPack: fix a Yoda Condition
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Putting the variable on the LHS of a relational operation makes the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-expression easier to read. In this case, we find that the whole
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-expression is nonsensical as an overflow protection, because if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name.size() + value.size() overflows, the result will exactly _not_
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-be > max() - 32, because UB will have happened.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-To be fixed in a follow-up commit.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-As a drive-by, add parentheses around the RHS.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Change-Id: I35ce598884c37c51b74756b3bd2734b9aad63c09
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 658607a34ead214fbacbc2cca44915655c318ea9)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 4f7efd41740107f90960116700e3134f5e433867)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 13c16b756900fe524f6d9534e8a07aa003c05e0c)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 1d4788a39668fb2dc5912a8d9c4272dc40e99f92)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 87de75b5cc946d196decaa6aef4792a6cac0b6db)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/network/access/http2/hpacktable.cpp b/src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 834214f..ab166a6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -63,7 +63,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // 32 octets of overhead."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     const unsigned sum = unsigned(name.size() + value.size());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (std::numeric_limits<unsigned>::max() - 32 < sum)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (sum > (std::numeric_limits<unsigned>::max() - 32))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return HeaderSize();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return HeaderSize(true, quint32(sum + 32));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 23c3fc483e8b6e21012a61f0bea884446f727776 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Marc Mutz <marc.mutz@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 12 Dec 2023 22:08:07 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] HPack: fix incorrect integer overflow check
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This code never worked:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-For the comparison with max() - 32 to trigger, on 32-bit platforms (or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Qt 5) signed interger overflow would have had to happen in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-addition of the two sizes. The compiler can therefore remove the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-overflow check as dead code.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-On Qt 6 and 64-bit platforms, the signed integer addition would be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-very unlikely to overflow, but the following truncation to uint32
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-would yield the correct result only in a narrow 32-value window just
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-below UINT_MAX, if even that.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fix by using the proper tool, qAddOverflow.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Manual conflict resolutions:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- - qAddOverflow doesn't exist in Qt 5, use private add_overflow
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   predecessor API instead
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Change-Id: I7599f2e75ff7f488077b0c60b81022591005661c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit ee5da1f2eaf8932aeca02ffea6e4c618585e29e3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit debeb8878da2dc706ead04b6072ecbe7e5313860)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Marc Mutz <marc.mutz@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 811b9eef6d08d929af8708adbf2a5effb0eb62d7)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit f931facd077ce945f1e42eaa3bead208822d3e00)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 9ef4ca5ecfed771dab890856130e93ef5ceabef5)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/network/access/http2/hpacktable.cpp b/src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ab166a6..de91fc0 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/network/access/http2/hpacktable.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -40,6 +40,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "hpacktable_p.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <QtCore/qdebug.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <QtCore/private/qnumeric_p.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <algorithm>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <cstddef>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -62,7 +63,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // for counting the number of references to the name and value would have
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     // 32 octets of overhead."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    const unsigned sum = unsigned(name.size() + value.size());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    size_t sum;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (add_overflow(size_t(name.size()), size_t(value.size()), &sum))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return HeaderSize();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (sum > (std::numeric_limits<unsigned>::max() - 32))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return HeaderSize();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return HeaderSize(true, quint32(sum + 32));
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/CVE-2024-25580-qtbase-5.15.diff b/aqua/qt5/files/CVE-2024-25580-qtbase-5.15.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index d310a824c78..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/CVE-2024-25580-qtbase-5.15.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,197 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/gui/util/qktxhandler.cpp b/src/gui/util/qktxhandler.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0d98e97453..6a79e55109 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/gui/util/qktxhandler.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/gui/util/qktxhandler.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -73,7 +73,7 @@ struct KTXHeader {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     quint32 bytesOfKeyValueData;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static const quint32 headerSize = sizeof(KTXHeader);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static constexpr quint32 qktxh_headerSize = sizeof(KTXHeader);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Currently unused, declared for future reference
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- struct KTXKeyValuePairItem {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -103,11 +103,36 @@ struct KTXMipmapLevel {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--bool QKtxHandler::canRead(const QByteArray &suffix, const QByteArray &block)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static bool qAddOverflow(quint32 v1, quint32 v2, quint32 *r) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // unsigned additions are well-defined
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *r = v1 + v2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return v1 > quint32(v1 + v2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Returns the nearest multiple of 4 greater than or equal to 'value'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static bool nearestMultipleOf4(quint32 value, quint32 *result)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    constexpr quint32 rounding = 4;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *result = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (qAddOverflow(value, rounding - 1, result))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *result &= ~(rounding - 1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// Returns a slice with prechecked bounds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static QByteArray safeSlice(const QByteArray& array, quint32 start, quint32 length)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    Q_UNUSED(suffix)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    quint32 end = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (qAddOverflow(start, length, &end) || end > quint32(array.length()))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return {};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return QByteArray(array.data() + start, length);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    return (qstrncmp(block.constData(), ktxIdentifier, KTX_IDENTIFIER_LENGTH) == 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+bool QKtxHandler::canRead(const QByteArray &suffix, const QByteArray &block)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    Q_UNUSED(suffix);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return block.startsWith(QByteArray::fromRawData(ktxIdentifier, KTX_IDENTIFIER_LENGTH));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QTextureFileData QKtxHandler::read()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -115,42 +140,97 @@ QTextureFileData QKtxHandler::read()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!device())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    QByteArray buf = device()->readAll();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    const quint32 dataSize = quint32(buf.size());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (dataSize < headerSize || !canRead(QByteArray(), buf)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        qCDebug(lcQtGuiTextureIO, "Invalid KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const QByteArray buf = device()->readAll();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (size_t(buf.size()) > std::numeric_limits<quint32>::max()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Too big KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (!canRead(QByteArray(), buf)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Invalid KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (buf.size() < qsizetype(qktxh_headerSize)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Invalid KTX header size in %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    const KTXHeader *header = reinterpret_cast<const KTXHeader *>(buf.constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    if (!checkHeader(*header)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        qCDebug(lcQtGuiTextureIO, "Unsupported KTX file format in %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    KTXHeader header;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    memcpy(&header, buf.data(), qktxh_headerSize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (!checkHeader(header)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Unsupported KTX file format in %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     QTextureFileData texData;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     texData.setData(buf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    texData.setSize(QSize(decode(header->pixelWidth), decode(header->pixelHeight)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    texData.setGLFormat(decode(header->glFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    texData.setGLInternalFormat(decode(header->glInternalFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    texData.setGLBaseInternalFormat(decode(header->glBaseInternalFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    texData.setNumLevels(decode(header->numberOfMipmapLevels));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    quint32 offset = headerSize + decode(header->bytesOfKeyValueData);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    const int maxLevels = qMin(texData.numLevels(), 32);               // Cap iterations in case of corrupt file.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    for (int i = 0; i < maxLevels; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        if (offset + sizeof(KTXMipmapLevel) > dataSize)                // Corrupt file; avoid oob read
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        const KTXMipmapLevel *level = reinterpret_cast<const KTXMipmapLevel *>(buf.constData() + offset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        quint32 levelLen = decode(level->imageSize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        texData.setDataOffset(offset + sizeof(KTXMipmapLevel::imageSize), i);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        texData.setDataLength(levelLen, i);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        offset += sizeof(KTXMipmapLevel::imageSize) + levelLen + (3 - ((levelLen + 3) % 4));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    texData.setSize(QSize(decode(header.pixelWidth), decode(header.pixelHeight)));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    texData.setGLFormat(decode(header.glFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    texData.setGLInternalFormat(decode(header.glInternalFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    texData.setGLBaseInternalFormat(decode(header.glBaseInternalFormat));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    texData.setNumLevels(decode(header.numberOfMipmapLevels));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const quint32 bytesOfKeyValueData = decode(header.bytesOfKeyValueData);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    quint32 headerKeyValueSize;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (qAddOverflow(qktxh_headerSize, bytesOfKeyValueData, &headerKeyValueSize)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Overflow in size of key value data in header of KTX file %s",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                 logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (headerKeyValueSize >= quint32(buf.size())) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // Technically, any number of levels is allowed but if the value is bigger than
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // what is possible in KTX V2 (and what makes sense) we return an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    // maxLevels = log2(max(width, height, depth))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    const int maxLevels = (sizeof(quint32) * 8)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            - qCountLeadingZeroBits(std::max(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                    { header.pixelWidth, header.pixelHeight, header.pixelDepth }));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if (texData.numLevels() > maxLevels) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Too many levels in KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    quint32 offset = headerKeyValueSize;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    for (int level = 0; level < texData.numLevels(); level++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        const auto imageSizeSlice = safeSlice(buf, offset, sizeof(quint32));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (imageSizeSlice.isEmpty()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        const quint32 imageSize = decode(qFromUnaligned<quint32>(imageSizeSlice.data()));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        offset += sizeof(quint32); // overflow checked indirectly above
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        texData.setDataOffset(offset, level);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        texData.setDataLength(imageSize, level);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        // Add image data and padding to offset
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        quint32 padded = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (nearestMultipleOf4(imageSize, &padded)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            qWarning(lcQtGuiTextureIO, "Overflow in KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        quint32 offsetNext;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if (qAddOverflow(offset, padded, &offsetNext)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        offset = offsetNext;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (!texData.isValid()) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        qCDebug(lcQtGuiTextureIO, "Invalid values in header of KTX file %s", logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        qWarning(lcQtGuiTextureIO, "Invalid values in header of KTX file %s",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                 logName().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         return QTextureFileData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -191,7 +271,7 @@ bool QKtxHandler::checkHeader(const KTXHeader &header)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             (decode(header.numberOfFaces) == 1));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--quint32 QKtxHandler::decode(quint32 val)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+quint32 QKtxHandler::decode(quint32 val) const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return inverseEndian ? qbswap<quint32>(val) : val;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/gui/util/qktxhandler_p.h b/src/gui/util/qktxhandler_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f831e59d95..cdf1b2eaf8 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/gui/util/qktxhandler_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/gui/util/qktxhandler_p.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,7 +68,7 @@ public:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- private:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool checkHeader(const KTXHeader &header);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    quint32 decode(quint32 val);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    quint32 decode(quint32 val) const;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     bool inverseEndian = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt5/files/mysql-plugin-qtbug-109832.patch b/aqua/qt5/files/mysql-plugin-qtbug-109832.patch
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 154678f8a3d..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt5/files/mysql-plugin-qtbug-109832.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,36 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5bc61ec5d028d57640b9c4cd515ed7dfebac945c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Christian Ehrlicher <ch.ehrlicher@gmx.de>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Sun, 12 Feb 2023 17:09:20 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] ODBC/MySQL: fix compilation with MySQL < 5.7.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-MYSQL_TYPE_JSON was introduced in MySQL 5.7.9 but our documentation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-states that we still support 5.6 so we have to define this value by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-ourself for the older versions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Pick-to: 5.15 6.2 6.4 6.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: QTBUG-109832
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Change-Id: I935edb14495d162ed58109610946b2805d37bbc4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 5 +++++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 24cab8a04ec..63fddf2d63f 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- qsql_mysql.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ qsql_mysql.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -29,6 +29,11 @@ Q_DECLARE_METATYPE(MYSQL_RES*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_METATYPE(MYSQL*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_DECLARE_METATYPE(MYSQL_STMT*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// MYSQL_TYPE_JSON was introduced with MySQL 5.7.9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID < 50709
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define MYSQL_TYPE_JSON  245
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // MySQL above version 8 removed my_bool typedef while MariaDB kept it,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // by redefining it we can regain source compatibility.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- using my_bool = decltype(mysql_stmt_bind_result(nullptr, nullptr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-GitLab
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span></pre><pre style='margin:0'>

</pre>