Your message dated Sun, 02 Aug 2026 20:26:28 +0000
with message-id <[email protected]>
and subject line Bug#1143354: fixed in openlp 3.1.7+ds-2
has caused the Debian Bug report #1143354,
regarding openlp: FTBFS: E AssertionError: The return should match frame
array1
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1143354: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1143354
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:openlp
Version: 3.1.7+ds-1
Severity: serious
Tags: ftbfs forky sid
Dear maintainer:
During a rebuild of all packages in unstable, this package failed to build.
Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:
https://people.debian.org/~sanvila/build-logs/202608/
About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.
If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:openlp, so that this is still
visible in the BTS web page for this package.
Thanks.
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --with python3 --buildsystem=pybuild
dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:385: python3.14 setup.py clean
/usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller:
setuptools.installer and fetch_build_eggs are deprecated.
!!
********************************************************************************
Requirements should be satisfied by a PEP 517 installer.
If you are using pip, you can try `pip install --use-pep517`.
********************************************************************************
!!
dist.fetch_build_eggs(dist.setup_requires)
/usr/lib/python3/dist-packages/setuptools/dist.py:759:
SetuptoolsDeprecationWarning: License classifiers are deprecated.
[... snipped ...]
tests/openlp_core/ui/test_mainwindow.py ................................ [ 51%]
.............. [ 51%]
tests/openlp_core/ui/test_serviceitemeditform.py ............... [ 52%]
tests/openlp_core/ui/test_servicemanager.py ............................ [ 53%]
................................................................ [ 56%]
tests/openlp_core/ui/test_servicenotedialog.py . [ 56%]
tests/openlp_core/ui/test_servicetab.py . [ 56%]
tests/openlp_core/ui/test_settings_form.py .... [ 56%]
tests/openlp_core/ui/test_settingsform.py ....... [ 56%]
tests/openlp_core/ui/test_shortcutlistdialog.py .. [ 56%]
tests/openlp_core/ui/test_shortcutlistform.py .......... [ 57%]
tests/openlp_core/ui/test_slidecontroller.py ........................... [ 58%]
.................................................... [ 60%]
tests/openlp_core/ui/test_splashscreen.py . [ 60%]
tests/openlp_core/ui/test_starttimedialog.py .. [ 60%]
tests/openlp_core/ui/test_style.py ..................... [ 61%]
tests/openlp_core/ui/test_themeform.py ........................sssss. [ 62%]
tests/openlp_core/ui/test_thememanager.py ...................... [ 63%]
tests/openlp_core/ui/test_themeprogressform.py ...... [ 63%]
tests/openlp_core/ui/test_themetab.py .. [ 63%]
tests/openlp_core/widgets/test_buttons.py ....... [ 63%]
tests/openlp_core/widgets/test_dialogs.py ............. [ 64%]
tests/openlp_core/widgets/test_edits.py ....................... [ 65%]
tests/openlp_core/widgets/test_toolbar.py ............ [ 65%]
tests/openlp_core/widgets/test_views.py .......................... [ 66%]
tests/openlp_core/widgets/test_widgets.py ........................... [ 67%]
tests/openlp_plugins/alerts/forms/test_alertform.py . [ 67%]
tests/openlp_plugins/alerts/test_manager.py ... [ 68%]
tests/openlp_plugins/alerts/test_plugin.py ..... [ 68%]
tests/openlp_plugins/bibles/forms/test_bibleimportform.py sss [ 68%]
tests/openlp_plugins/bibles/forms/test_editbibleform.py . [ 68%]
tests/openlp_plugins/bibles/test_bibleimport.py ........................ [ 69%]
...... [ 69%]
tests/openlp_plugins/bibles/test_bibleserver.py sss [ 69%]
tests/openlp_plugins/bibles/test_biblestab.py .. [ 69%]
tests/openlp_plugins/bibles/test_csvimport.py ................. [ 70%]
tests/openlp_plugins/bibles/test_lib.py ........ [ 70%]
tests/openlp_plugins/bibles/test_lib_manager.py .... [ 70%]
tests/openlp_plugins/bibles/test_lib_parse_reference.py ............ [ 71%]
tests/openlp_plugins/bibles/test_manager.py . [ 71%]
tests/openlp_plugins/bibles/test_mediaitem.py .......................... [ 72%]
.............................................................. [ 74%]
tests/openlp_plugins/bibles/test_opensongimport.py .................... [ 75%]
tests/openlp_plugins/bibles/test_osisimport.py ..................... [ 76%]
tests/openlp_plugins/bibles/test_plugin.py . [ 76%]
tests/openlp_plugins/bibles/test_swordimport.py .. [ 76%]
tests/openlp_plugins/bibles/test_upgrade.py .xxxx [ 76%]
tests/openlp_plugins/bibles/test_versereferencelist.py ..... [ 77%]
tests/openlp_plugins/bibles/test_wordprojectimport.py ............ [ 77%]
tests/openlp_plugins/bibles/test_zefaniaimport.py ... [ 77%]
tests/openlp_plugins/custom/forms/test_customform.py ....... [ 77%]
tests/openlp_plugins/custom/forms/test_customslideform.py .. [ 78%]
tests/openlp_plugins/custom/test_customxml.py ... [ 78%]
tests/openlp_plugins/custom/test_mediaitem.py ... [ 78%]
tests/openlp_plugins/custom/test_plugin.py . [ 78%]
tests/openlp_plugins/images/forms/test_choosegroupform.py .... [ 78%]
tests/openlp_plugins/images/test_imagetab.py ... [ 78%]
tests/openlp_plugins/images/test_mediaitem.py .............. [ 79%]
tests/openlp_plugins/images/test_plugin.py . [ 79%]
tests/openlp_plugins/images/test_upgrade.py . [ 79%]
tests/openlp_plugins/media/forms/test_mediaclipselectorform.py .... [ 79%]
tests/openlp_plugins/media/forms/test_streamselectorform.py ........ [ 79%]
tests/openlp_plugins/media/test_mediaitem.py ....... [ 80%]
tests/openlp_plugins/media/test_mediaplugin.py .. [ 80%]
tests/openlp_plugins/media/test_plugin.py . [ 80%]
tests/openlp_plugins/planningcenter/forms/test_selectplanform.py ....... [ 80%]
.....s [ 80%]
tests/openlp_plugins/planningcenter/lib/test_planningcenter_api.py ..... [ 80%]
. [ 80%]
tests/openlp_plugins/planningcenter/lib/test_planningcentertab.py .... [ 81%]
tests/openlp_plugins/planningcenter/lib/test_songimport.py ...... [ 81%]
tests/openlp_plugins/planningcenter/test_planningcenterplugin.py ....... [ 81%]
[ 81%]
tests/openlp_plugins/presentations/lib/test_serializers.py sss [ 81%]
tests/openlp_plugins/presentations/test_impresscontroller.py .......... [ 82%]
tests/openlp_plugins/presentations/test_libreofficeserver.py sssssssssss [ 82%]
sssssssssssssssssssssssssssss [ 83%]
tests/openlp_plugins/presentations/test_maclocontroller.py sssssssssssss [ 84%]
sssssssssssss [ 84%]
tests/openlp_plugins/presentations/test_mediaitem.py ......... [ 85%]
tests/openlp_plugins/presentations/test_messagelistener.py .... [ 85%]
tests/openlp_plugins/presentations/test_pdfcontroller.py .s [ 85%]
tests/openlp_plugins/presentations/test_plugin.py ... [ 85%]
tests/openlp_plugins/presentations/test_powerpointcontroller.py ........ [ 85%]
... [ 85%]
tests/openlp_plugins/presentations/test_presentationcontroller.py ...... [ 86%]
...... [ 86%]
tests/openlp_plugins/presentations/test_presentationtab.py .. [ 86%]
tests/openlp_plugins/songs/forms/test_authorsform.py ................. [ 87%]
tests/openlp_plugins/songs/forms/test_editsongform.py ....... [ 87%]
tests/openlp_plugins/songs/forms/test_editverseform.py ................. [ 88%]
........... [ 88%]
tests/openlp_plugins/songs/forms/test_songmaintenanceform.py ........... [ 88%]
......... [ 89%]
tests/openlp_plugins/songs/forms/test_topicsform.py ... [ 89%]
tests/openlp_plugins/songs/test_ccliimport.py . [ 89%]
tests/openlp_plugins/songs/test_chordproimport.py . [ 89%]
tests/openlp_plugins/songs/test_datasoulimport.py . [ 89%]
tests/openlp_plugins/songs/test_db.py ........... [ 89%]
tests/openlp_plugins/songs/test_easyslidesimport.py . [ 90%]
tests/openlp_plugins/songs/test_editsongform.py ....... [ 90%]
tests/openlp_plugins/songs/test_ewimport.py ................ [ 90%]
tests/openlp_plugins/songs/test_foilpresenterimport.py ........ [ 91%]
tests/openlp_plugins/songs/test_lib.py ................................. [ 92%]
.. [ 92%]
tests/openlp_plugins/songs/test_liveworshipimport.py .. [ 92%]
tests/openlp_plugins/songs/test_lyriximport.py . [ 92%]
tests/openlp_plugins/songs/test_mediaitem.py .................... [ 93%]
tests/openlp_plugins/songs/test_mediashout.py ....... [ 93%]
tests/openlp_plugins/songs/test_openlpimporter.py .... [ 94%]
tests/openlp_plugins/songs/test_openlyricsexport.py ... [ 94%]
tests/openlp_plugins/songs/test_openlyricsimport.py ...... [ 94%]
tests/openlp_plugins/songs/test_openlyricsxml.py ....... [ 94%]
tests/openlp_plugins/songs/test_openoffice.py .. [ 94%]
tests/openlp_plugins/songs/test_opensongimport.py .... [ 94%]
tests/openlp_plugins/songs/test_opsproimport.py ..... [ 95%]
tests/openlp_plugins/songs/test_plugin.py . [ 95%]
tests/openlp_plugins/songs/test_powerpraiseimport.py . [ 95%]
tests/openlp_plugins/songs/test_presentationmanagerimport.py . [ 95%]
tests/openlp_plugins/songs/test_propresenterimport.py ... [ 95%]
tests/openlp_plugins/songs/test_reporting.py ... [ 95%]
tests/openlp_plugins/songs/test_singingthefaithimport.py . [ 95%]
tests/openlp_plugins/songs/test_songbeamerimport.py .............. [ 96%]
tests/openlp_plugins/songs/test_songformat.py ..... [ 96%]
tests/openlp_plugins/songs/test_songimport.py .... [ 96%]
tests/openlp_plugins/songs/test_songproimport.py . [ 96%]
tests/openlp_plugins/songs/test_songselect.py .......................... [ 97%]
....... [ 97%]
tests/openlp_plugins/songs/test_songshowplusimport.py ...............s [ 98%]
tests/openlp_plugins/songs/test_songstab.py ................ [ 99%]
tests/openlp_plugins/songs/test_sundayplusimport.py . [ 99%]
tests/openlp_plugins/songs/test_videopsalm.py . [ 99%]
tests/openlp_plugins/songs/test_wordsofworshipimport.py ..... [ 99%]
tests/openlp_plugins/songs/test_worshipassistantimport.py . [ 99%]
tests/openlp_plugins/songs/test_worshipcenterproimport.py ....... [ 99%]
tests/openlp_plugins/songs/test_zionworximport.py ... [ 99%]
tests/openlp_plugins/songusage/forms/test_songusagedeleteform.py . [ 99%]
tests/openlp_plugins/songusage/forms/test_songusagedetailform.py . [ 99%]
tests/openlp_plugins/songusage/test_songusage.py .... [100%]
=================================== FAILURES ===================================
________________ test_old_service_item_load_image_from_service _________________
state_media = None
settings = <openlp.core.common.settings.Settings object at 0x7fb3fe9e48c0>
def test_old_service_item_load_image_from_service(state_media, settings):
"""
Test the Service Item - adding an image from a saved service
tests a old service file serviceitem (openlp-servicefile-version < 3)
"""
# GIVEN: A new service item and a mocked add icon function
image_name = 'image_1.jpg'
fake_hash = 'abcd'
extracted_file = Path(TEST_PATH) / '{base}{ext}'.format(base=fake_hash,
ext=os.path.splitext(image_name)[1])
frame_array = {'path': extracted_file, 'title': image_name,
'file_hash': fake_hash}
service_item = ServiceItem(None)
service_item.add_icon = MagicMock()
# WHEN: adding an image from a saved Service and mocked exists
line = convert_file_service_item(TEST_PATH, 'serviceitem_image_1.osj')
with patch('openlp.core.ui.servicemanager.os.path.exists') as
mocked_exists, \
patch('openlp.core.lib.serviceitem.AppLocation.get_section_data_path') as
mocked_get_section_data_path, \
patch('openlp.core.lib.serviceitem.sha256_file_hash') as
mocked_sha256_file_hash, \
patch('openlp.core.lib.serviceitem.move'):
mocked_sha256_file_hash.return_value = fake_hash
mocked_exists.return_value = True
mocked_get_section_data_path.return_value = Path('/path/')
service_item.set_from_service(line, TEST_PATH)
# THEN: We should get back a valid service item
assert service_item.is_valid is True, 'The new service item should be
valid'
assert extracted_file == service_item.get_rendered_frame(0), 'The first
frame should match the path to the image'
> assert frame_array == service_item.get_frames()[0], 'The return should
> match frame array1'
E AssertionError: The return should match frame array1
E assert {'path': Posi...hash': 'abcd'} == {'title': 'im...ls/abcd.jpg')}
E
E Omitting 3 identical items, use -vv to show
E Right contains 1 more item:
E {'thumbnail': PosixPath('/path/thumbnails/abcd.jpg')}
E Use -v to get more diff
tests/openlp_core/lib/test_serviceitem.py:223: AssertionError
_______________ test_service_item_load_image_from_local_service ________________
mocked_get_section_data_path = <MagicMock name='get_section_data_path'
id='140411055520608'>
mocked_exists = <MagicMock name='exists' id='140411055512208'>
settings = <openlp.core.common.settings.Settings object at 0x7fb3febc69f0>
state_media = None
@patch('openlp.core.lib.serviceitem.os.path.exists')
@patch('openlp.core.lib.serviceitem.AppLocation.get_section_data_path')
def
test_service_item_load_image_from_local_service(mocked_get_section_data_path,
mocked_exists, settings, state_media):
"""
Test the Service Item - adding an image from a saved local service
"""
# GIVEN: A new service item and a mocked add icon function
mocked_get_section_data_path.return_value = Path('/path')
mocked_exists.return_value = True
image_name1 = 'image_1.jpg'
image_name2 = 'image_2.jpg'
test_file1 = Path('/home/openlp') / image_name1
test_file2 = Path('/home/openlp') / image_name2
frame_array1 = {'path': test_file1, 'title': image_name1, 'file_hash':
'abcd'}
frame_array2 = {'path': test_file2, 'title': image_name2, 'file_hash':
'abcd'}
service_item = ServiceItem(None)
service_item.add_icon = MagicMock()
service_item2 = ServiceItem(None)
service_item2.add_icon = MagicMock()
# WHEN: adding an image from a saved Service and mocked exists
line = convert_file_service_item(TEST_PATH, 'serviceitem_image_2.osj')
line2 = convert_file_service_item(TEST_PATH, 'serviceitem_image_2.osj',
1)
with patch('openlp.core.lib.serviceitem.sha256_file_hash') as
mocked_sha256_file_hash:
mocked_sha256_file_hash.return_value = 'abcd'
service_item2.set_from_service(line2)
service_item.set_from_service(line)
# THEN: We should get back a valid service item
assert service_item.is_valid is True, 'The first service item should be
valid'
assert service_item2.is_valid is True, 'The second service item should
be valid'
# These test will fail on windows due to the difference in folder
seperators
if os.name != 'nt':
assert test_file1 == service_item.get_rendered_frame(0), \
'The first frame should match the path to the image'
assert test_file2 == service_item2.get_rendered_frame(0), \
'The Second frame should match the path to the image'
> assert frame_array1 == service_item.get_frames()[0], 'The return
> should match the frame array1'
E AssertionError: The return should match the frame array1
E assert {'path': Posi...hash': 'abcd'} == {'title':
'im...ls/abcd.jpg')}
E
E Omitting 3 identical items, use -vv to show
E Right contains 1 more item:
E {'thumbnail': PosixPath('/path/thumbnails/abcd.jpg')}
E Use -v to get more diff
tests/openlp_core/lib/test_serviceitem.py:276: AssertionError
=============================== warnings summary ===============================
openlp/core/common/__init__.py:469
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/common/__init__.py:469:
SyntaxWarning: 'return' in a 'finally' block
return detector.close()['encoding']
openlp/core/api/websockets.py:36
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/api/websockets.py:36:
DeprecationWarning: websockets.server.serve is deprecated
from websockets.server import serve
../../../../../../usr/lib/python3/dist-packages/websockets/legacy/__init__.py:6
/usr/lib/python3/dist-packages/websockets/legacy/__init__.py:6:
DeprecationWarning: websockets.legacy is deprecated; see
https://websockets.readthedocs.io/en/stable/howto/upgrade.html for upgrade
instructions
warnings.warn( # deprecated in 14.0 - 2024-11-09
openlp/core/ui/thememanager.py:706
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/ui/thememanager.py:706:
SyntaxWarning: 'return' in a 'finally' block
return theme_name
openlp/core/ui/thememanager.py:708
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/core/ui/thememanager.py:708:
SyntaxWarning: 'return' in a 'finally' block
return None
tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_ccliimport.py::test_ccli
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
tests/openlp_plugins/songs/test_songselect.py::test_songselect_file_import
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build/openlp/plugins/songs/lib/importers/cclifile.py:69:
DeprecationWarning: codecs.open() is deprecated. Use open() instead.
in_file = codecs.open(file_path, 'r', details['encoding'])
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED
tests/openlp_core/lib/test_serviceitem.py::test_old_service_item_load_image_from_service
FAILED
tests/openlp_core/lib/test_serviceitem.py::test_service_item_load_image_from_local_service
= 2 failed, 2414 passed, 89 skipped, 3 deselected, 4 xfailed, 11 warnings in
27.29s =
E: pybuild pybuild:485: test: plugin distutils failed with: exit code=1: cd
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_openlp/build; python3.14 -m pytest -k
'not test_load_settings_position_invalid and not
test_get_directory_for_language_dir_from_source and not
test_get_ip_address_default'
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.14
--parallel=2 returned exit code 13
make[1]: *** [debian/rules:25: override_dh_auto_test] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit
status 2
--------------------------------------------------------------------------------
--- End Message ---
--- Begin Message ---
Source: openlp
Source-Version: 3.1.7+ds-2
Done: Bastian Germann <[email protected]>
We believe that the bug you reported is fixed in the latest version of
openlp, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Bastian Germann <[email protected]> (supplier of updated openlp package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Sun, 02 Aug 2026 22:05:57 +0200
Source: openlp
Architecture: source
Version: 3.1.7+ds-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Bastian Germann <[email protected]>
Closes: 1143354
Changes:
openlp (3.1.7+ds-2) unstable; urgency=medium
.
* Fix frame thumbnail checks with Python 3.14 (Closes: #1143354)
Checksums-Sha1:
74f93c0747bb8822d7573501e01b8df96545b2a5 2491 openlp_3.1.7+ds-2.dsc
145622d5f489611e0f97d8b69b7bd4c723eafc15 7208 openlp_3.1.7+ds-2.debian.tar.xz
63e1dbe301885d597bb09fcc133341158f66e412 16640
openlp_3.1.7+ds-2_source.buildinfo
Checksums-Sha256:
d4b93c01cd1c849863248aa861bb31b99636a101196f01fb76a4919ba0417e2c 2491
openlp_3.1.7+ds-2.dsc
2bb75d6986a4ab3c940528c987f14f6cf0ba2790220369debce2c9ca428df5b2 7208
openlp_3.1.7+ds-2.debian.tar.xz
6014ee08871d38e75acadc347a64b749119e0e01c456284157918f132a212d43 16640
openlp_3.1.7+ds-2_source.buildinfo
Files:
99d8adcd2318a97c7547c7eb7db36b28 2491 x11 optional openlp_3.1.7+ds-2.dsc
492a9895a38bf0b45f509ababc16c588 7208 x11 optional
openlp_3.1.7+ds-2.debian.tar.xz
dfc480ee81cc8d1f4fcfa4528587dceb 16640 x11 optional
openlp_3.1.7+ds-2_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQHEBAEBCgAuFiEEQGIgyLhVKAI3jM5BH1x6i0VWQxQFAmpvo20QHGJhZ2VAZGVi
aWFuLm9yZwAKCRAfXHqLRVZDFIESDADJC38WzFoVdxbdP/SKsDpk1mf1zHrbkq1f
y4ftaiZq6QxJOrOK2lb/U/oedFUDKRQskbGtuW0D2YEEoM6iXt2EM+s0DfNPLh2C
J2CGJW6+HX9HTdOq8cxuuTjVgwcoOUFt4jxBVKUGlcFYkZam9XtuTP09IPIOCinB
jL+tkg9AnvFJo2VW4SWSaPo4y0Q/Ys8J+4Ey8nb1WWIZVBDy7WgVq4JEVU3MDOqP
+7+IqCend6rzW1uEF7XNBLaYPCVk46SNR+VxpSKwRYfkZ1Lh3xs7MFjOYzir+r7g
S+7BgpOXx0YyBcu6O6vJBiSBbwyjHWyrxkb62zvuNCvMDDwedCJRuMt6V7Q/Bwa7
zu0hWTw4Rb2TENJFwSE8RIyxfYT6ysltMuf8C5oMtX/736XL/dFYjxMiLWqXsZkn
oKZKL3QGvLb0fTRBKi/PQs0P85gvFdNlfLhO3IAsCXXuJCNUyvLlsvv1upjgsg5f
ITMNWzTEJA1t0SIyx2VtuXEnmBJSNCc=
=mWyE
-----END PGP SIGNATURE-----
pgp51Nowa0sRt.pgp
Description: PGP signature
--- End Message ---