From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 11 Jun 2024 18:44:51 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1sH4c7-004LAs-1t for lore@lore.pengutronix.de; Tue, 11 Jun 2024 18:44:51 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1sH4c7-0006lR-4r; Tue, 11 Jun 2024 18:44:51 +0200 Received: from mail-am6eur05on2103.outbound.protection.outlook.com ([40.107.22.103] helo=EUR05-AM6-obe.outbound.protection.outlook.com) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sH4by-0006lI-VA for ptxdist@pengutronix.de; Tue, 11 Jun 2024 18:44:43 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eo0X+5V2utliTb/5kS1amHhaS2HmQsIBZhnm2gW8wu2+etdOibAUEXY9UnscJBIBdGzKHv7b3g48y1zLuBVNC87BoFm7Gnsb12H8MEv3B6KF8h+nVYnoZgqMXGydeGXqHf7B9qFHeFRubcRGFhD78rIhxdkqkr9Kd+MgLRRe4P/oAVgCj6ihcZg3xFTWnc4fgSFkkBTuywGAG1QY0EhDEbdiANw7/ZOApL5fDdJOEXYZu76h4aYNP14n75/y2ShVsO6QANVh84FXKRV6owB2+GcmjxwpCDlxvemZctPw4WkIMcHcG56TEUhpRslyXKVK0wjwce/URuiQiLQesWRHKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0+AAYkU/037JddJVGymQHAA1G5xMqqzyDBbdTQd5quw=; b=hMcyq9Efn65OZc5mwlDkAtROL49NEVbwvHr/fa94hBQA/CdWZTS4l4gSDJzEr/XciBpZUZ2MrhoXx68gylMX8U7B/AM1eG/xE1JjIgFZ8CuadGKiDyChAdzyDuT6zm6IMlcZD9s7dSXdk7+jygcDhInvzG9jRgb2HKGvK80L+2CaOHF6ihlxQJlfo8MVOCO6D8ObkqLERCqvQ80YhLPhYxDxrT3YksZpAHdbboL+ac431Xa6XNQ01EIuXcUNzZVCFLPNjQ/9Twk3HwX9uU1ue2HhdwmN5BMpGxT8LoUIhJ3/J2UiTqE0KLuxxhzt8Bs9iVOA6nSk7F/IoyNLWiYAkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=t2data.com; dmarc=pass action=none header.from=t2data.com; dkim=pass header.d=t2data.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=t2datacom.onmicrosoft.com; s=selector1-t2datacom-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0+AAYkU/037JddJVGymQHAA1G5xMqqzyDBbdTQd5quw=; b=FGOMDn10OaPPV2Kuaciyb6u5rNkdhqKj9d5PCs5QSKcZklWwv/1+9ZAHf3oxv70f9uhs3MAwdjIUSAMvvyTVoH0jBMD4fHe6toGDHSnD6hciaBXvjHEA7Lrh7svlCAdrJEezZLJFgrhC44t4j4Op90ds3DcwbgNTaJuZdx5Zjzg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=t2data.com; Received: from AS4P251MB0635.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:4be::7) by AS1P251MB0680.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:48c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.37; Tue, 11 Jun 2024 16:44:36 +0000 Received: from AS4P251MB0635.EURP251.PROD.OUTLOOK.COM ([fe80::2e05:71d7:78c8:b69a]) by AS4P251MB0635.EURP251.PROD.OUTLOOK.COM ([fe80::2e05:71d7:78c8:b69a%4]) with mapi id 15.20.7633.037; Tue, 11 Jun 2024 16:44:36 +0000 From: Christian Melki To: ptxdist@pengutronix.de Date: Tue, 11 Jun 2024 18:44:34 +0200 Message-Id: <20240611164434.435702-1-christian.melki@t2data.com> X-Mailer: git-send-email 2.34.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: GV3P280CA0022.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:b::12) To AS4P251MB0635.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:4be::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS4P251MB0635:EE_|AS1P251MB0680:EE_ X-MS-Office365-Filtering-Correlation-Id: 01907388-b22a-4416-a543-08dc8a35c73a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230032|52116006|376006|366008|1800799016|38350700006; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+xUpuDF68HiHuDZllj4DEZmLmMq8vNaOln7EKJW+s6yizUIpp/C8BpJVhPil?= =?us-ascii?Q?mXT/7AhOhZBBFYlfBMObagjpHNtZF0t9LxroUhJc9wvbxIramlzu7vSGqeN7?= =?us-ascii?Q?6lV6W2owU3fjhLfJ56/n+IuszoY3rp9rUGukfFTTj9Ngku6G+YF172fRkQaT?= =?us-ascii?Q?GFNIc2RI0FYVqrDCZD+YHeayAhTOP1U7gQGZe2Lcp1yT6ts1RBDXCvgCZI3s?= =?us-ascii?Q?bLXMIpPO6sK+mgbYOvR9O1t20qDdOakdGnO6/1Gfvpazy7opXcf0EjidUQJV?= =?us-ascii?Q?SWZycF7y3KRG1fUClvAOnVhxSdOkOqePAKJCBK/HkN+EEHP5dsSF/95xzzLC?= =?us-ascii?Q?j0+go86zPVV4dt7NTijR+/2EZPz83nTbel0CpohIPf2M+oLe8FnQxQBIx1EB?= =?us-ascii?Q?c7zCQdGXhh4FUqgP/oB1mUBWrIUO9srXrrym+GbFPMhGSrUkjtMUy3rzd8us?= =?us-ascii?Q?MQhwUNMEstUdlt8opKuWznVDFZtkY8sCWPKye4stxMSEztX1xdZWtWK2fc1a?= =?us-ascii?Q?xyiUcO5Uw62937dZFYcEcIv7uKe6//6WhQ4NSO/CUszh4U0TorOAyEWvKb1D?= =?us-ascii?Q?6bqIj41dE1WULunfnYa9Dpld4/P2hjdsbaNVpFhZOq5jgEs+OudVXHxUMggV?= =?us-ascii?Q?xJiW0EbKApO7YViHswiJ8jql3nW0h8i6ZMMttBWvVgYWhaQ2JD6oSnotXVqy?= =?us-ascii?Q?Ia6Gi20EskW4BWKdmW43JP5JmsNhd/kh1/dsvi/YbNev3JAbs8uQ573BsdBF?= =?us-ascii?Q?Luer0W3Z5OOLxN9u9GDv8UQOn8NmTMDUMiqhltduO1cddF9areywe2mgfcgP?= =?us-ascii?Q?T6gyYLkX356gCtOpGO7D0DAVt/zgkcJw3gmj+Gd70NxFyEevMvtQufratfCq?= =?us-ascii?Q?NAjcAIVC94yejrOuLr5SV1FTqI0KSN6dmvYRiY4fVZOtA+raSR4Joe6iyRKX?= =?us-ascii?Q?0HXFp1n3WpbwIQhGYHhYuyCCol/4l7MO/uhPfICTdcZMIBX6Ld01DorPuEoG?= =?us-ascii?Q?Elb+efA3azCCN3EFBOT02e/2dqviYEAiES9tL6d5DEW5zlQ00jW9JA7C00XZ?= =?us-ascii?Q?hb4shvwxPWF0WRdSOgao5C07cV4QKbPaKJEu5TbQ4ZCVj77iDGAXJdPDDugF?= =?us-ascii?Q?UElg+bg9C0nTGmfnpird6Q7WytEiw049EAhytDzY4Sxo8gMjHI2Yv8rWbLUG?= =?us-ascii?Q?9OjvdWveH0qdnuANiZqgkAVyv0x8458uThbH7f2+8pep5tIYlS/F+laz3gHT?= =?us-ascii?Q?pxCGJFASmq7PH0uuQYhnrkE1zR16+/6hi5l0BuJYBNHb2Ar7NGnPHLmIqWMZ?= =?us-ascii?Q?9MXfVOYNP9NXQoNmDbcSeDda?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS4P251MB0635.EURP251.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230032)(52116006)(376006)(366008)(1800799016)(38350700006); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JUxsQP6vUSbQ1tWpgo6FvtIHa3MwdM75WodspGZo3+QAFH2LkiYLTGNdJxpS?= =?us-ascii?Q?MqfLm48y+xZBlZ8ADAmWls54nzmZ8gOPUQqGwR7ACBIEe4h4kJUp2hC7fEaa?= =?us-ascii?Q?JumUyRsbCXnUnNomzEcDCmhMcOBLs3AJjtO7xnGCjPmoV0RCl7YasqnYV1Mf?= =?us-ascii?Q?adi7GH2rrDi1PsA9xd4PFCZOXf6+B6ocnYp1frJxXqObfDlGDzhdIcQE4Tjo?= =?us-ascii?Q?+D5VbwwO3CBdfqh5VI1wvpEqe4RAwN2eGJ6ZzV3171w8bvQa6tw6iqpI3xXo?= =?us-ascii?Q?mUsHAObKVfQuApDKCqLDSY5RRD+M9tjnFHlhAAZdBw5sZ9D6yJA4x3st4/lr?= =?us-ascii?Q?Hy+G8wkfh0x9wXyRxJZfxsQoo9N7Vg3e63NHFIx77rGJmNV4kaUWT9QF6z0p?= =?us-ascii?Q?t3292JK6cHOWbiJIEKbyK6jTuIbI1hbsF42vcBv1+wt2Q4b5hQelALjJTXOw?= =?us-ascii?Q?p+u6H+VPZhTiDzrlJIxtpqcA5GLnz5w2gnFNOJIwzGqmpD/e76kWBAntjUQQ?= =?us-ascii?Q?7FIVSdycsBlXiFkLo3mQvA5IB4/W0rUfyH0+bxXNO6fdMVCWli1VLxcq3sXj?= =?us-ascii?Q?8jWBOfpaoO7On8sMLZ4tTC7+SXROTYi4YRDqEkdeMLo9u5nd3sEwEwfuW3pb?= =?us-ascii?Q?k5yIkfA6TWaKRAqc6FQf6PIWBmPpoP2HCEC14INRuV4AKNjxyelHhsisf5cZ?= =?us-ascii?Q?btClOO9kZHGgUcob/0barnS+bcNuyD+teS2CJcPNF3ysPjYVUiQB59ojKOhm?= =?us-ascii?Q?mcZzNmxqDA0OQcMV81Ft5N+VGstZcPNVSvSpuTSnw0xa+Qb3tqk5CNFFUEAY?= =?us-ascii?Q?fv7LhPgqH2Xq/cXv5CSeW1wAMo4hv2H5CH6G0jduY420s4C9F3rIy2haLIM/?= =?us-ascii?Q?0Kw86H82ElzzNCQahJmlFwdkUedlbUIGGD/dsKOOUyRdDL6ZFmJsrk8PgxyJ?= =?us-ascii?Q?kP83nX40v87iLlZ3EjOWxyCgKbRxoUEbtJ6tUwywSL2NkzOW0h5ByyFhgozs?= =?us-ascii?Q?pZyoDVBkBtz8gmStFZqoFVYyWcqilGr8+qk8kLEaefA67HU9k/uGx4aDOeVA?= =?us-ascii?Q?0BnALjSfoSVZypEnaBZnDQl9ex2YS3gs1O6zeIIf/v3pLQJPz48NgC6uCgRj?= =?us-ascii?Q?EVGG66mD2/O3H2pD5aTBqQ+sXgwI+6jVbkRsXARUP24oEhmCX85qQqBlILlh?= =?us-ascii?Q?1hUMcn7JMumq74u5RP0TxDOyUVUQYhYvEe0nY4+X4Pi+n0gSB9dAionkPg30?= =?us-ascii?Q?JcCSnFSF4r6johLIKRYO6TBWPrFjTYazuGO2Nej6lw+l/rVTtIQ6a9ogEPsw?= =?us-ascii?Q?m8ApM6bMMOxoZS8mBINKo52n8uMNWtH+DBw1T0sRArbqGtW+NlvRxpcPvqbd?= =?us-ascii?Q?RsXF4Usqfbkf3iqh85Lsy39ZfDuXbP3DVau/GZRA+m997O6OdOyppgTS8+D2?= =?us-ascii?Q?vtuVlL+aw3znHXytPX6qQYfUFgG0yqGUGWNMXssfhrmIKYdJJejpbLKoZ6vp?= =?us-ascii?Q?rrpqHwnWiJel7Wb7/FIOllPgasCaEc3N2tSw86/ZU9lUUgv3okbxwwoLQ/5m?= =?us-ascii?Q?gCKt/kMFxqwP2F9Om+TfvNL0k8B3OmdVaKPPkLgw8nvLuXF4u9lotr7KT4Of?= =?us-ascii?Q?xg=3D=3D?= X-OriginatorOrg: t2data.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01907388-b22a-4416-a543-08dc8a35c73a X-MS-Exchange-CrossTenant-AuthSource: AS4P251MB0635.EURP251.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2024 16:44:36.1119 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 27928da5-aacd-4ba1-9566-c748a6863e6c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VZocTOd6SGHiHrJfQ5/qs916yrPCk8zT2tql6993+1hteqKG+BnK2cemvwJNPhHBn8XzqA5NSyzoSOVqoP78V03Bv3vnRrTrivkwYIsAQbk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1P251MB0680 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-2.5 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH] xkeyboard-config: Version bump. 2.41 -> 2.42 X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false Minor changes. https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commits/xkeyboard-config-2.42 * Add patch to remove changes in python script that would require python 3.11 which isn't default in even Ubuntu 22.04. Ie, revert: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/809b7ad3003863476eb76a16e27ff7d00519f199 Signed-off-by: Christian Melki --- ...nor-improvement-to-generation-script.patch | 127 ++++++++++++++++++ patches/xkeyboard-config-2.42/series | 4 + rules/xkeyboard-config.make | 4 +- 3 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 patches/xkeyboard-config-2.42/0001-revert-rules-minor-improvement-to-generation-script.patch create mode 100644 patches/xkeyboard-config-2.42/series diff --git a/patches/xkeyboard-config-2.42/0001-revert-rules-minor-improvement-to-generation-script.patch b/patches/xkeyboard-config-2.42/0001-revert-rules-minor-improvement-to-generation-script.patch new file mode 100644 index 000000000..9d14240da --- /dev/null +++ b/patches/xkeyboard-config-2.42/0001-revert-rules-minor-improvement-to-generation-script.patch @@ -0,0 +1,127 @@ +From: Christian Melki +Date: Tue, 11 Jun 2024 18:23:54 +0200 +Subject: [PATCH] revert rules: minor improvement to generation script + +Revert 809b7ad3003863476eb76a16e27ff7d00519f199 + +This delta needs python 3.11 but adds nothing in term +of functionality. + +Signed-off-by: Christian Melki +--- + rules/generate-options-symbols.py | 30 ++++++++++++++---------------- + 1 file changed, 14 insertions(+), 16 deletions(-) + +diff --git a/rules/generate-options-symbols.py b/rules/generate-options-symbols.py +index b29b9253fe1f..1ac3be2cff29 100755 +--- a/rules/generate-options-symbols.py ++++ b/rules/generate-options-symbols.py +@@ -7,7 +7,7 @@ + + from __future__ import annotations + import argparse +-from enum import StrEnum, unique ++from enum import Enum, unique + import sys + import xml.etree.ElementTree as ET + +@@ -23,7 +23,7 @@ def error(msg): + + + @unique +-class Section(StrEnum): ++class Section(Enum): + """ + XKB sections. + Name correspond to the header (`xkb_XXX`), value to the subdir/rules header. +@@ -37,9 +37,6 @@ class Section(StrEnum): + + @classmethod + def parse(cls, raw: str) -> Section: +- # Note: in order to display a nice message, argparse requires the error +- # to be one of: ArgumentTypeError, TypeError, or ValueError +- # See: https://docs.python.org/3/library/argparse.html#type + try: + return cls[raw] + except KeyError: +@@ -62,7 +59,7 @@ class Directive: + + @dataclass + class DirectiveSet: +- option: Option ++ option: "Option" + keycodes: Directive | None + compatibility: Directive | None + geometry: Directive | None +@@ -108,7 +105,7 @@ def resolve_option(xkb_root: Path, option: Option) -> DirectiveSet: + directive = option.directive + filename, section_name = directive.filename, directive.section + for section in Section: +- subdir = xkb_root / section ++ subdir = xkb_root / section.value + if not (subdir / filename).exists(): + # Some of our foo:bar entries map to a baz_vndr/foo file + for vndr in subdir.glob("*_vndr"): +@@ -128,8 +125,8 @@ def resolve_option(xkb_root: Path, option: Option) -> DirectiveSet: + # Now check if the target file actually has that section + f = subdir / resolved_filename + with f.open("rt", encoding="utf-8") as fd: +- section_header = f'xkb_{section.name} "{section_name}"' +- if any(section_header in line for line in fd): ++ found = any(f'xkb_{section.name} "{section_name}"' in line for line in fd) ++ if found: + directives[section] = Directive(option, resolved_filename, section_name) + + return DirectiveSet( +@@ -142,7 +139,7 @@ def resolve_option(xkb_root: Path, option: Option) -> DirectiveSet: + ) + + +-def options(rules_xml: Path) -> Iterable[Option]: ++def options(rules_xml) -> Iterable[Option]: + """ + Yields all Options from the given XML file + """ +@@ -229,10 +226,9 @@ def main(): + default=Section.symbols, + ) + parser.add_argument( +- "files", nargs="+", help="The base.xml and base.extras.xml files", type=Path ++ "files", nargs="+", help="The base.xml and base.extras.xml files" + ) + ns = parser.parse_args() +- rules_section: Section = ns.rules_section + + all_options = (opt for f in ns.files for opt in options(f)) + +@@ -244,24 +240,26 @@ def main(): + if o.name not in skip and not o.name.startswith("custom:") + ) + +- def check_and_map(directive: DirectiveSet) -> Directive: ++ def check_and_map(directive: DirectiveSet): + assert ( + not directive.is_empty + ), f"Option {directive.option} does not resolve to any section" + +- return getattr(directive, rules_section.name) ++ return getattr(directive, ns.rules_section.name) + + filtered = filter( + lambda y: y is not None, + map(check_and_map, directives), + ) + +- print(f"! option = {rules_section}") ++ header = ns.rules_section.value ++ ++ print(f"! option = {header}") + for d in filtered: + assert d is not None + print(f" {d.name:30s} = +{d}") + +- if rules_section is Section.types: ++ if ns.rules_section is Section.types: + print(f" {'custom:types':30s} = +custom") + + diff --git a/patches/xkeyboard-config-2.42/series b/patches/xkeyboard-config-2.42/series new file mode 100644 index 000000000..e909ad068 --- /dev/null +++ b/patches/xkeyboard-config-2.42/series @@ -0,0 +1,4 @@ +# generated by git-ptx-patches +#tag:base --start-number 1 +0001-revert-rules-minor-improvement-to-generation-script.patch +# 2bf998cd0fca5a75f9109f7b885eb737 - git-ptx-patches magic diff --git a/rules/xkeyboard-config.make b/rules/xkeyboard-config.make index 50899f715..19e732e24 100644 --- a/rules/xkeyboard-config.make +++ b/rules/xkeyboard-config.make @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_XKEYBOARD_CONFIG) += xkeyboard-config # # Paths and names # -XKEYBOARD_CONFIG_VERSION := 2.41 -XKEYBOARD_CONFIG_MD5 := 2f0b843b5283b82cae0402cbc4f374b4 +XKEYBOARD_CONFIG_VERSION := 2.42 +XKEYBOARD_CONFIG_MD5 := 2d3b7e43e597f4c607ad6261e2b3d77f XKEYBOARD_CONFIG := xkeyboard-config-$(XKEYBOARD_CONFIG_VERSION) XKEYBOARD_CONFIG_SUFFIX := tar.xz XKEYBOARD_CONFIG_URL := $(call ptx/mirror, XORG, individual/data/xkeyboard-config/$(XKEYBOARD_CONFIG).$(XKEYBOARD_CONFIG_SUFFIX)) -- 2.34.1