Commit graph

81725 commits

Author SHA1 Message Date
winesync
de80f2a3c1
[WINESYNC] msi: Check for a NULL return from deformat_string() when checking for failure.
An empty string is valid, and can occur if e.g. a nonexistent property is
expanded.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51091
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 814f18ab756cd69158ce893c4f7898e14d3e46dc by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:39 +01:00
winesync
8975937c00
[WINESYNC] msi/tests: Make check_reg_* helpers more verbose.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id a0f54eee2a5dc985d7e16c382516c8b66e61e54f by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:39 +01:00
winesync
c595505376
[WINESYNC] msi/tests: Always explicitly test REG_MULTI_SZ strings.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 80426fdc76597768b787a38644f1c53110b26f05 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:38 +01:00
winesync
9d3876e40f
[WINESYNC] msi: Write "Clients" value as REG_MULTI_SZ in PublishProduct.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 1951853d06144e67b8a3d9d63c835e06a7232588 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:38 +01:00
winesync
8c80eb17f5
[WINESYNC] msi/tests: Pass an empty string to check_reg_str() instead of special-casing NULL.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 2052d03fdf82ea9112c6ce3719936e245834eeb7 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:38 +01:00
winesync
7cface09ce
[WINESYNC] winecrt0: Add a default implementation DllRegisterServer()/DllUnregisterServer().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 5d82baf9747b7b133cad3be77c0cc9e24cc09582 by Alexandre Julliard <julliard@winehq.org>
2022-03-20 19:28:38 +01:00
winesync
4bf22783a8
[WINESYNC] msi: Use nameless unions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cc2cc1463a493651f765fe18852a16c01184ad92 by Jacek Caban <jacek@codeweavers.com>
2022-03-20 19:28:38 +01:00
winesync
a3e22d8922
[WINESYNC] msi: Fix building the fusion filename.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50809
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 46424c6196a7b544ff6173d544fc120cc9f804d9 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:37 +01:00
winesync
1c1431b92f
[WINESYNC] msi: Remove read-only bit when copying the package file.
CopyFileW also copies the file attributes, and the copy will be opened with
write access later on.

Signed-off-by: Jérôme Gardou <jerome.gardou@reactos.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e830975806df9ef283c89f7153b06b145dfb2cec by Jérôme Gardou <jerome.gardou@gmail.com>
2022-03-20 19:28:37 +01:00
winesync
34b3377879
[WINESYNC] msi: Return an error if trying to run a 64-bit custom action in a 32-bit prefix.
This matches native behaviour (manually tested).

This allows the Research in Motion (Blackberry) USB and Modem driver to fail
cleanly instead of hanging, if run in a 32-bit prefix.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 408662379281aa24f41b680f1aba9abf2b40c603 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:37 +01:00
winesync
fc7157139f
[WINESYNC] msi: Check for failure from do_msidbCustomActionTypeDll().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 5f21acdc9e9840b50a6991b8e8dc52758adb192d by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:37 +01:00
winesync
8585445613
[WINESYNC] msi: Also set "MsiRunningElevated" installer property.
This property is supposed to be set starting from Windows Installer
4.0 targeting Windows Vista. This patch fixes the installer that
checks this property in addition to VersionNT and ALLUSERS.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id dac655abce0397b3c1accec64039b8cd75beb561 by Dmitry Timoshkov <dmitry@baikal.ru>
2022-03-20 19:28:36 +01:00
winesync
0fdd4d83b3
[WINESYNC] msi/tests: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id f211bd0a4e0b8e8911b6a64ff4f09bb9d4ec2f84 by Michael Stefaniuc <mstefani@winehq.org>
2022-03-20 19:28:36 +01:00
winesync
7d95ee4fe9
[WINESYNC] msi: Use a string literal for empty strings.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 17c745a9d253b888366831ce4b9e695297f0dac2 by Michael Stefaniuc <mstefani@winehq.org>
2022-03-20 19:28:36 +01:00
winesync
9ad17dd7b2
[WINESYNC] msi: Correct Query for loading an image.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 358d4f5a914e574c026380666964fcefb0495517 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2022-03-20 19:28:36 +01:00
winesync
b6228b299c
[WINESYNC] msi/tests: Test the "VersionNT" property.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 990fc66274d68b915df62005ab93792129612fc1 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:36 +01:00
winesync
9fb472fc26
[WINESYNC] msi: Use the global is_wow64 variable in custom_start_server().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 12ae1f8528b18d0df018680747429be29fca7ea4 by Zebediah Figura <z.figura12@gmail.com>
2022-03-20 19:28:35 +01:00
winesync
f31e4044c2
[WINESYNC] msi/tests: Use wide character string literals.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 058ca3d04a4a712d86a111a1975045be02e03133 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:35 +01:00
winesync
74f53b4bcb
[WINESYNC] msi: Use wide character string literals in the remaining files.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c4fc91f4bf0ffdc4a7dc2e582e5bd3fddca85222 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:35 +01:00
winesync
d012037f17
[WINESYNC] msi: Use wide character string literals in classes.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e7dd9b3f3694b276d50ccfb5515e7e0f70b1c555 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:35 +01:00
winesync
0f67ae4bda
[WINESYNC] msi: Use wide character string literals in registry.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 2672646eaeb1877e0d746e8554529396ec8d9eb1 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:35 +01:00
winesync
0272139cbc
[WINESYNC] msi: Use wide character string literals in package.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 731bb72c3d00b089ee23297efdfe0496733e96a4 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:34 +01:00
winesync
a808407b15
[WINESYNC] msi: Use wide character string literals in msi.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 8255da2249816b77b709d1e6c888760c5e59a8f8 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:34 +01:00
winesync
9066c718b0
[WINESYNC] msi: Use wide character string literals in dialog.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id d9fbe788af65c2b2696c446d765a34ae40e3226b by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:34 +01:00
winesync
7ceaee6d19
[WINESYNC] msi: Use wide character string literals in action.c.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 8e13b0b99c823bc22c7eef8b8dac04de283ca462 by Hans Leidekker <hans@codeweavers.com>
2022-03-20 19:28:34 +01:00
winesync
ce6af3b1bc
[WINESYNC] msi: Use 0 terminated WCHAR strings in the SQL tokenizer.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6705b959d0cf7635bf2ab16ab89fefb409a0a9c8 by Michael Stefaniuc <mstefani@winehq.org>
2022-03-20 19:28:33 +01:00
winesync
cdb9abd625
[WINESYNC] msiexec: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 64709fe7e9c629f476fb0dd7b62480e868b0174c by Michael Stefaniuc <mstefani@winehq.org>
2022-03-20 19:28:33 +01:00
winesync
dac7d6f23c
[WINESYNC] msi: Fix a leak (Coverity).
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 462edf6e2a79208d6c88ac6aeb760733d571b7c5 by Sven Baars <sbaars@codeweavers.com>
2022-03-20 19:28:33 +01:00
winesync
1cdb30ec0d
[WINESYNC] msi: Install feature when new component is added.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49350
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 877540b522c46134aa1b843519fa5694adb187ce by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:33 +01:00
winesync
aa0312d7cb
[WINESYNC] msi: Add disabled feature to show that it's not getting installed by patch.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 99e7c801e4d5032110190acbb04d85eb069df867 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:32 +01:00
winesync
8bb4f0597d
[WINESYNC] msi: Test adding new feature in patch.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cc8bc83e9ecd2aba8e322a974af268e715fbd372 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:32 +01:00
winesync
1c5160dca5
[WINESYNC] msi: Add support for appending data to _TransformView table.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 3459c90cd6a49e817213b6e6764bdfafa7d4bcc7 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:32 +01:00
winesync
ed0e61b53a
[WINESYNC] msi: Remove no longer needed parameter from TABLE_remove_column.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id d579b17eb425ac5e28f9263ebf302ea2282996ec by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:32 +01:00
winesync
c6c4bdb242
[WINESYNC] msi: Fix use after free error in TransformView_set_row.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6a0a0d2a0b15bffa9d4a5b41e75be6765e731d69 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:32 +01:00
winesync
61167e123f
[WINESYNC] msi: Remove MSICOLUMNINFO.temporary field.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b61455cb81714ff4f4108b70584816adbffbc68a by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
791734c2e9
[WINESYNC] msi: Remove column_info.temporary field.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 76a2077c83048d8eead8ea0cbfafa70406c0cd88 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
9cf1ecf2f3
[WINESYNC] msi: Fix adding temporary columns.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 15b47513a1926a103492e0774396119f57d2e8d5 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
41e6537b69
[WINESYNC] msi: Add table existance tests for tables with temporary columns.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cb9cb83cda01fa873667e11038d9bdd01428f059 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
8b9aafd97b
[WINESYNC] msi: Test freeing _TransformView table.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id eb5a803bdbb8f602ae1212674a121cadd24642a5 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:31 +01:00
winesync
eb6788c943
[WINESYNC] msi: Remove ref_count from MSICOLUMNINFO.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 7200257d0428b1e9b4da72e8c4e39f9cf27455e6 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:30 +01:00
winesync
caa225a496
[WINESYNC] msi: Fix table ref count on create.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 405486fbe6853c78744099fa1ebe07995e07a438 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:30 +01:00
winesync
5c718f5f5c
[WINESYNC] msi: Support removing temporary columns in TABLE_remove_column.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 5d568279dc0b842206918ba87a955298e72973ae by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:30 +01:00
winesync
f78dfeafac
[WINESYNC] msi: Add MsiDatabaseApplyTransformA MSITRANSFORM_ERROR_VIEWTRANSFORM test.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 301dde9838563d33b610c2c09dc69cb07c4c8c9d by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:30 +01:00
winesync
4048c060fc
[WINESYNC] msi: Support DELETE when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b1f9f4ccee6f7d42dbeaf457e81db462a1b526af by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:30 +01:00
winesync
9d793f296e
[WINESYNC] msi: Support DROP when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6b6e1bd2c73ac23b03db0e656f895896936df5ba by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:29 +01:00
winesync
e6af2a5a61
[WINESYNC] msi: Support INSERT INTO when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 9130379710297cb487dbd8891b82f505e754c39d by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:29 +01:00
winesync
28c50c1ac7
[WINESYNC] msi: Support ALTER TABLE when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id ae6fd7b14792b932832da6f5d5088d500723c386 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:29 +01:00
winesync
27a430bda6
[WINESYNC] msi: Support CREATE when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 7e4077fb6d77810e40e842e7557c03ab3abe0593 by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:29 +01:00
winesync
317c1f6c05
[WINESYNC] msi: Support UPDATE when MSITRANSFORM_ERROR_VIEWTRANSFORM flag is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6e7303a7006538d3df1a09e13f5a5f469098b35f by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:29 +01:00
winesync
1bbb87bb26
[WINESYNC] msi: Add stub support for MSITRANSFORM_ERROR_VIEWTRANSFORM flag in MsiApplyTransform.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 8bc835b4517728fac8ff8a9cfa5e59b843e9a8df by Piotr Caban <piotr@codeweavers.com>
2022-03-20 19:28:28 +01:00