From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2084.outbound.protection.outlook.com [40.107.247.84]) by sourceware.org (Postfix) with ESMTPS id CC25D3858431 for ; Fri, 11 Nov 2022 10:25:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CC25D3858431 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Ah8kOWrpxXVMLM3BngKVhURyd5yzLTdznWa6bzuNTqsP/S4bJjHf6O7gLKmROx5COhONjP3K5ktP0/vTRtv2cL5EFA88QkBwPjd7nnUTdz8BQQl5Fp7BBH4fi+bvuMLaYTJ6mOrpSSHnd/oxSSlEPO+D/Wvz+DBhLaCCBfMRB8IYdZarNMHpR9xdbIDNlm5sbGsLPWGFluL6F5IXeUzU+gvhyUlA2M7YpvB7LBt22TLRexXz/WgnplfwJLbKIKK+s3lQcAC45iCo76GUTTpck0hqzmauvFnpYmaAF9twfQckAbTgYBoCjJZ7Hf0y1+XpSgO4nOq+3EHESJmh8qOETQ== ARC-Message-Signature: i=2; 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=rxEF76d7GK72Msa69sQQztJcTM3jl9yXbl2WOUQwIBY=; b=Ieoy5PBUjIITqIepSWv3pjY1B6oqOTZerwbWLNIxRKf7+cR40aypvm6J64x4W8CLgCOXetP9OiOL6VIgonkTLKcvuWRWrdNedtxtNxu/Kcj4yG9BlsvMwJ9kOmETUyQ/9VCqMp3f1XxFvNRhj42QcPzvDkVIc7iqVbmH/oV5CQEAwkt6LYKRd5Hw4M/NIM8o3Z1Yg8Dw5eklApDlcNfNK0SvTy00RJfn1vVUA7XCm38zdHLzYFFpwLY0RJjGvW/j1Z+DzsXhyjAyhlgi2H8FFvG0jse0q4gydY00uxAale33VyuJod0Ur7HGD04lVC6wSxz6evvTQWFiF/0O4PfAXA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rxEF76d7GK72Msa69sQQztJcTM3jl9yXbl2WOUQwIBY=; b=NgzGRAs/iP8ICoB49ozKxxnoNXd97yaV9iA/3z93CJORK/1RGn2JyLCFOA8aI7/Q30WKDzdvMI0pqJrzxh0szmfDhWZhmnwTWy/kuPngC2S/tLQuKoLJ9PBhMdRHE9RyCbrYj79R68wFRKQIhycLlGLoQK115KU5c8Fag97RQDQ= Received: from FR0P281CA0093.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::7) by PAXPR08MB6720.eurprd08.prod.outlook.com (2603:10a6:102:130::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 10:25:35 +0000 Received: from VI1EUR03FT052.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:a9:cafe::67) by FR0P281CA0093.outlook.office365.com (2603:10a6:d10:a9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13 via Frontend Transport; Fri, 11 Nov 2022 10:25:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VI1EUR03FT052.mail.protection.outlook.com (100.127.144.233) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Fri, 11 Nov 2022 10:25:35 +0000 Received: ("Tessian outbound 0800d254cb3b:v130"); Fri, 11 Nov 2022 10:25:35 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4c80a277c88632dd X-CR-MTA-TID: 64aa7808 Received: from f6d971324a17.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BDE821D8-BAF8-4AAD-99B0-CD89304253B5.1; Fri, 11 Nov 2022 10:25:27 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f6d971324a17.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 11 Nov 2022 10:25:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i1ihzY8NxexHCH0kaCazy4lZNZ7QlrQKbuM5anQNTVXX1XDO1kYqDkctBLoRtRWE133DNmyueZwCWyd13P5iGacX7IErRvwB5f0lP73HHGbkcjPlqcvu5oVFCS0CzJrgFEy0GyLVhZIFKptOU603NvKkCMK1pcnUQxOnLrh+hsAz7aDBy5/oEEaz7GDC65pFK77N+jn4WZ0XJLud0ti5l3qHNlhAc6k+9M/D4+n8Fbv6FiHVjNN1+G5bMVYuC0YzHDkZ46Go8ff5RE8sgySggF0ZKoONvRNZ+ikate7OHzwMpkZjVqsd96XA9culemHGW4hQGCkgpzEohVYp7L91Mw== 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=rxEF76d7GK72Msa69sQQztJcTM3jl9yXbl2WOUQwIBY=; b=EIkf4A2u13s1M6QS670yqB86ShM9MRstgpBxhN1SS1fL84HIGacJeDjA52vIo0UQ+bbCzCS4ykM73zNazJNLezG1PIfpDT0E4a18MdQK7aBXROqS1z5DygQKk4jDUO0Cn93LgLx9HQbhomq8fVA7gwBU3ZAdhtoVOD2xkG/f4RMI42yTUFZpWQTea/gkB4uGDHKC+Nxon4IihcHdUkdE/d43ToAGQYjew3Sf7ZYIzxSlxXijtCRLTT3h58szuqr28Ndo6oFQmpuvysxjyoWxPhaoCLDnml2/hoWJr8Ov3qIBwfA1Vkm8xvLM73kQlsYJeMtwLIjHvB3K31us6VFjDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rxEF76d7GK72Msa69sQQztJcTM3jl9yXbl2WOUQwIBY=; b=NgzGRAs/iP8ICoB49ozKxxnoNXd97yaV9iA/3z93CJORK/1RGn2JyLCFOA8aI7/Q30WKDzdvMI0pqJrzxh0szmfDhWZhmnwTWy/kuPngC2S/tLQuKoLJ9PBhMdRHE9RyCbrYj79R68wFRKQIhycLlGLoQK115KU5c8Fag97RQDQ= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by DB9PR08MB9753.eurprd08.prod.outlook.com (2603:10a6:10:462::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.22; Fri, 11 Nov 2022 10:25:25 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::eae6:18d0:2b57:347f]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::eae6:18d0:2b57:347f%9]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 10:25:25 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH] aarch64: Add support for +cssc Thread-Topic: [PATCH] aarch64: Add support for +cssc Thread-Index: Adj1t85rBW5rFH03Rim8DTJ8PFA8Vw== Date: Fri, 11 Nov 2022 10:25:25 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|DB9PR08MB9753:EE_|VI1EUR03FT052:EE_|PAXPR08MB6720:EE_ X-MS-Office365-Filtering-Correlation-Id: edb8b9df-93cf-4144-3f73-08dac3cf121e x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: RQiQTcl2XA9oEwCj608rPWh9AJhyd/hcPRn3VaJgW9KrwzWYarSDAXr/ilNbGlEToZ3NrwS2z/XKblTy1to47cSDPuoMN+A5Cm6UGTNs+jC2KNYYvGX76+dv1bn6W0LzUAzI9PpBLsV3eFf96bZraIDsWxfB3eTs33MUSMblEfmVlNg/dCmn0rg41aQuLN39dfO0DdIaiC+Jnm27jAQ1S1FaY1BEX3FUz/YG0La31IYEEE81mfFZAdTlj5h7OcxY0S4qm7E2AMtJH0BLk4EbwD6kHBpbK0mhj3/3mE+eGO1QhZWaM0WKbXxCCODSEf492q23ofVZXNIJM9Sp7ICDeyrhtJVVusEwWT1SGBq6pq/1bFmZmU0ssZW2fbO5fwwlZ5WODWBhvwSnPvtfyAE1WEdkEv0oiQ0wRap7UNpRtK2NGaUHCoR1icY+RR0jFyRs9hgz9FWeLMDTgeqCp5YmJ6N+RCmD7Ar/uudNV2sBDUYKoh3W1QVPJ1rpjrc3NUCbVNZJcssIonP2rT1+wBt3sH02wJ9SW1bKPPbZuc2LgMim8jE/nWUwam9VsykNPpzThvzcTgstuOe53mx39CRWwhMUTjj0iWiLqsHsfdEuW9DwrtoDAAMokIgMRti/+bOBaYY1aIRELuhHjQIFDHILCtrMe96FDe2iaEoCLaci5NZl6XgycHbXrdIkvmMI0HGZo0G5RpqXrl06YWArVOzbjJlpmeMR1Oznt3xoes4Usw93F6e21t6dAJjTr1Mi2WTH0Ud9QE/847J4u/FZ8uXRuA+7Jl5aPOlo6PIfOFMWvBn3I1l5wOTVc2CXaM3GtE42bg/XMAVt5Oedo1Csm4S5yA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(376002)(346002)(39860400002)(136003)(451199015)(122000001)(5660300002)(84970400001)(71200400001)(55016003)(8936002)(66476007)(7696005)(38100700002)(76116006)(38070700005)(33656002)(99936003)(86362001)(66446008)(316002)(26005)(6916009)(9686003)(6506007)(478600001)(186003)(41300700001)(66556008)(8676002)(52536014)(2906002)(66946007)(64756008);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_PAXPR08MB69260AEE049F853F4C89043B93009PAXPR08MB6926eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9753 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 946c642a-b713-49c1-0b6e-08dac3cf0c15 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6E38Z0NBcBfiyfsghThFW6SLKin+pK4B6XY+hr6ma6uy/909f9SmiTwHXWLn0DNXEd6k6Mb60L1ZKJvyb1JNz6QxEgOrsEFp05bBtCXUfzvqK5zH1VOr6HfUBWo8ahsoIRl89/c4XxGetI9u2ly8r5D3CkTigOcvWoNeFldnCO0fDpvWIkG9ZUeycC4eZuLGa4vRl87rYEXzKyVfRLSz47sBJ4qwVCHiUd5bKWcofyj0WTG84sOi9H1/dNtA2KkpruMncrVS/y4N1AqKndd3cB9Wh28XDmQNNp8BuBPBLmqlMBQfC+MVu063A+Ht/b3Ccz1FjE50vR4V7fUvVuH0snIXE94L4XMLxgMPW29imuuZMYcUKsWNM1rJwbUoWf/eu13+JIi7JuYVJ/7iMOtf4vs/wKLKWBxcpppWJ9eYxfFUqX6hUs9BMiW1vYy4JPvJ6FRbX7X4n1Y3uYyUccSbMvxGOP8N3fCKvVN1V6PsDL7zdvMU8RoAZry0HK2Dd7PK6BeZlJDu0YlUFXs3kJHW5H3yVGM2jim0MJfWBDRx8UGIzyjyQ1yeFj9XBoVQ8PRI7mCE8sBezWPOEIFrqKHpPElTyQejGBX5xJLaNJIoq/hNQ0YXxKJlq4gt4TBI8TPA8yg8Y6uWg0D94okZa9Hu8oPOsIdJrFT9I3ruiBFiI5YJEDBwpZ2PTl0JsXPQlm79JJacAm39jVCfoESCLgwF/kG69vxbvmt5dPSR0KJwy5Trns83CzXi3BybnRHHfqWj4pdd8Cs1ZNl/H1w9zq3uzVkKDqAv+4R3teYTuBspEqke/5hMC4ba9agusemtUTmI8sNtBOJLTEBASxxBT7VJ4pA2EQ1A2p0aHiYAM8gmeLg= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(346002)(136003)(376002)(396003)(451199015)(40470700004)(36840700001)(46966006)(40480700001)(8936002)(81166007)(82310400005)(33656002)(52536014)(5660300002)(6506007)(235185007)(186003)(82740400003)(2906002)(47076005)(356005)(26005)(9686003)(40460700003)(41300700001)(7696005)(478600001)(70206006)(70586007)(86362001)(8676002)(336012)(316002)(99936003)(6916009)(36860700001)(55016003)(84970400001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 10:25:35.4559 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: edb8b9df-93cf-4144-3f73-08dac3cf121e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VI1EUR03FT052.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6720 X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_PAXPR08MB69260AEE049F853F4C89043B93009PAXPR08MB6926eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, This patch adds codegen for FEAT_CSSC from the 2022 Architecture extensions= . It fits various existing optabs in GCC quite well. There are instructions for scalar signed/unsigned min/max, abs, ctz, popcou= nt. We have expanders for these already, so they are wired up to emit single-in= sn patterns for the new TARGET_CSSC. These instructions are enabled by the +cssc command-line extension. Bootstrapped and tested on aarch64-none-linux-gnu. I'll push it once the Binutils patch from Andre for this gets committed Thanks, Kyrill gcc/ChangeLog: * config/aarch64/aarch64-option-extensions.def (cssc): Define. * config/aarch64/aarch64.h (AARCH64_ISA_CSSC): Define. (TARGET_CSSC): Likewise. * config/aarch64/aarch64.md (aarch64_abs2_insn): New define_insn. (abs2): Adjust for the above. (aarch64_umax3_insn): New define_insn. (umax3): Adjust for the above. (aarch64_popcount2_insn): New define_insn. (popcount2): Adjust for the above. (3): New define_insn. * config/aarch64/constraints.md (Usm): Define. (Uum): Likewise. * doc/gcc/gcc-command-options/machine-dependent-options/aarch64-options.rs= t: Document +cssc. * config/aarch64/iterators.md (MAXMIN_NOUMAX): New code iterator. * config/aarch64/predicates.md (aarch64_sminmax_immediate): Define. (aarch64_sminmax_operand): Likewise. (aarch64_uminmax_immediate): Likewise. (aarch64_uminmax_operand): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/cssc_1.c: New test. * gcc.target/aarch64/cssc_2.c: New test. * gcc.target/aarch64/cssc_3.c: New test. * gcc.target/aarch64/cssc_4.c: New test. * gcc.target/aarch64/cssc_5.c: New test. --_002_PAXPR08MB69260AEE049F853F4C89043B93009PAXPR08MB6926eurp_ Content-Type: application/octet-stream; name="cssc.patch" Content-Description: cssc.patch Content-Disposition: attachment; filename="cssc.patch"; size=16881; creation-date="Fri, 11 Nov 2022 10:24:19 GMT"; modification-date="Fri, 11 Nov 2022 10:25:25 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW9wdGlvbi1leHRlbnNpb25z LmRlZiBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW9wdGlvbi1leHRlbnNpb25zLmRlZgpp bmRleCBiZGY0YmFmMzA5YzAyYTA4Zjc0ZWVjN2I5Y2I3N2JjMWYzMjQ3ZGUzLi44ZDFhNzAzZmI4 YzkzNzljNWVjYTgyZDY5YjgwNThkNDM2OTMyZmFjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1vcHRpb24tZXh0ZW5zaW9ucy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQtb3B0aW9uLWV4dGVuc2lvbnMuZGVmCkBAIC0xNDksNCArMTQ5LDYgQEAgQUFS Q0g2NF9PUFRfRVhURU5TSU9OKCJsczY0IiwgTFM2NCwgKCksICgpLCAoKSwgIiIpCiAKIEFBUkNI NjRfT1BUX0VYVEVOU0lPTigibW9wcyIsIE1PUFMsICgpLCAoKSwgKCksICIiKQogCitBQVJDSDY0 X09QVF9FWFRFTlNJT04oImNzc2MiLCBDU1NDLCAoKSwgKCksICgpLCAiIikKKwogI3VuZGVmIEFB UkNINjRfT1BUX0VYVEVOU0lPTgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNo NjQuaCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmgKaW5kZXggZTYwZjliY2UwMjNiMmNk NWU3MjMzZWU5YjhjNjFmYzkzYzE0OTRjMi4uYmJiYjdlNDIxM2RlNDBhMTdlMWUzNzFiMmZlZmRj MjA4M2EzOGYxNyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuaAorKysg Yi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5oCkBAIC0yMjEsNiArMjIxLDcgQEAgZW51bSBj bGFzcyBhYXJjaDY0X2ZlYXR1cmUgOiB1bnNpZ25lZCBjaGFyIHsKICNkZWZpbmUgQUFSQ0g2NF9J U0FfVjlfM0EgICAgICAgICAgKGFhcmNoNjRfaXNhX2ZsYWdzICYgQUFSQ0g2NF9GTF9WOV8zQSkK ICNkZWZpbmUgQUFSQ0g2NF9JU0FfTU9QUwkgICAoYWFyY2g2NF9pc2FfZmxhZ3MgJiBBQVJDSDY0 X0ZMX01PUFMpCiAjZGVmaW5lIEFBUkNINjRfSVNBX0xTNjQJICAgKGFhcmNoNjRfaXNhX2ZsYWdz ICYgQUFSQ0g2NF9GTF9MUzY0KQorI2RlZmluZSBBQVJDSDY0X0lTQV9DU1NDCSAgIChhYXJjaDY0 X2lzYV9mbGFncyAmIEFBUkNINjRfRkxfQ1NTQykKIAogLyogQ3J5cHRvIGlzIGFuIG9wdGlvbmFs IGV4dGVuc2lvbiB0byBBZHZTSU1ELiAgKi8KICNkZWZpbmUgVEFSR0VUX0NSWVBUTyAoQUFSQ0g2 NF9JU0FfQ1JZUFRPKQpAQCAtMzE2LDYgKzMxNyw5IEBAIGVudW0gY2xhc3MgYWFyY2g2NF9mZWF0 dXJlIDogdW5zaWduZWQgY2hhciB7CiAvKiBMUzY0IGluc3RydWN0aW9ucyBhcmUgZW5hYmxlZCB0 aHJvdWdoICtsczY0LiAgKi8KICNkZWZpbmUgVEFSR0VUX0xTNjQgKEFBUkNINjRfSVNBX0xTNjQp CiAKKy8qIENTU0MgaW5zdHJ1Y3Rpb25zIGFyZSBlbmFibGVkIHRocm91Z2ggK2Nzc2MuICAqLwor I2RlZmluZSBUQVJHRVRfQ1NTQyAoQUFSQ0g2NF9JU0FfQ1NTQykKKwogLyogTWFrZSBzdXJlIHRo aXMgaXMgYWx3YXlzIGRlZmluZWQgc28gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBmb3IgaWZkZWZz CiAgICBidXQgcmF0aGVyIHVzZSBub3JtYWwgaWZzLiAgKi8KICNpZm5kZWYgVEFSR0VUX0ZJWF9F UlJfQTUzXzgzNTc2OV9ERUZBVUxUCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC5tZCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kCmluZGV4IDhhNTg0M2NhY2Jk ZDkzYWViNzQ4MDljOTZhNDU4YTBmNTM0OTZlYTYuLmRkZjIzNTYxNzM2ZWE0YWIzNzhhNmIyZWJl N2NiNDA0OWQ1ZTIxYWIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1k CisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kCkBAIC0zNTgwLDExICszNTgwLDI0 IEBAIChkZWZpbmVfaW5zbiAiKnN1Yl91eHRzaV9zaGlmdDJfdXh0dyIKICAgWyhzZXRfYXR0ciAi dHlwZSIgImFsdV9leHQiKV0KICkKIAorKGRlZmluZV9pbnNuICJhYXJjaDY0X2Ficzxtb2RlPjJf aW5zbiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 ciIpCisJKGFiczpHUEkgKG1hdGNoX29wZXJhbmQ6R1BJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJy IikpKV0KKyAgIlRBUkdFVF9DU1NDIgorICAiYWJzXFx0JTx3PjAsICU8dz4xIgorICBbKHNldF9h dHRyICJ0eXBlIiAiYWx1X3NyZWciKV0KKykKKwogKGRlZmluZV9leHBhbmQgImFiczxtb2RlPjIi CiAgIFsobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCiAgICAobWF0Y2hf b3BlcmFuZDpHUEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQogICAiIgogICB7CisgICAgaWYgKFRB UkdFVF9DU1NDKQorICAgICAgeworCWVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfYWJzPG1vZGU+Ml9p bnNuIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pKTsKKwlET05FOworICAgICAgfQogICAgIHJ0 eCBjY3JlZyA9IGFhcmNoNjRfZ2VuX2NvbXBhcmVfcmVnIChMVCwgb3BlcmFuZHNbMV0sIGNvbnN0 MF9ydHgpOwogICAgIHJ0eCB4ID0gZ2VuX3J0eF9MVCAoVk9JRG1vZGUsIGNjcmVnLCBjb25zdDBf cnR4KTsKICAgICBlbWl0X2luc24gKGdlbl9jc25lZzM8bW9kZT5faW5zbiAob3BlcmFuZHNbMF0s IHgsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1sxXSkpOwpAQCAtNDM4Miw2ICs0Mzk1LDE3IEBAIChk ZWZpbmVfaW5zbiAiKmNzaW52M191eHR3X2luc24zIgogICBbKHNldF9hdHRyICJ0eXBlIiAiY3Nl bCIpXQogKQogCisoZGVmaW5lX2luc24gImFhcmNoNjRfdW1heDxtb2RlPjNfaW5zbiIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKKyAgICAg ICAgKHVtYXg6R1BJIChtYXRjaF9vcGVyYW5kOkdQSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixy IikKKwkJKG1hdGNoX29wZXJhbmQ6R1BJIDIgImFhcmNoNjRfdW1pbm1heF9vcGVyYW5kIiAicixV dW0iKSkpXQorICAiVEFSR0VUX0NTU0MiCisgICJACisgICB1bWF4XFx0JTx3PjAsICU8dz4xLCAl PHc+MgorICAgdW1heFxcdCU8dz4wLCAlPHc+MSwgJTIiCisgIFsoc2V0X2F0dHIgInR5cGUiICJh bHVfc3JlZyxhbHVfaW1tIildCispCisKIDs7IElmIFggY2FuIGJlIGxvYWRlZCBieSBhIHNpbmds ZSBDTlRbQkhXRF0gaW5zdHJ1Y3Rpb24sCiA7OwogOzsgICAgQSA9IFVNQVggKEIsIFgpCkBAIC00 NDEyLDExICs0NDM2LDIzIEBAIChkZWZpbmVfZXhwYW5kICJ1bWF4PG1vZGU+MyIKICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQogCSh1bWF4OkdQSSAobWF0 Y2hfb3BlcmFuZDpHUEkgMSAiIikKIAkJICAobWF0Y2hfb3BlcmFuZDpHUEkgMiAiIikpKV0KLSAg IlRBUkdFVF9TVkUiCisgICJUQVJHRVRfU1ZFIHx8IFRBUkdFVF9DU1NDIgogICB7CiAgICAgaWYg KGFhcmNoNjRfc3ZlX2NudF9pbW1lZGlhdGUgKG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkKICAg ICAgIHN0ZDo6c3dhcCAob3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKTsKLSAgICBlbHNlIGlmICgh YWFyY2g2NF9zdmVfY250X2ltbWVkaWF0ZSAob3BlcmFuZHNbMl0sIDxNT0RFPm1vZGUpKQorICAg IGVsc2UgaWYgKCFhYXJjaDY0X3N2ZV9jbnRfaW1tZWRpYXRlIChvcGVyYW5kc1syXSwgPE1PREU+ bW9kZSkKKwkgICAgICYmIFRBUkdFVF9DU1NDKQorICAgICAgeworCWlmIChhYXJjaDY0X3VtaW5t YXhfaW1tZWRpYXRlIChvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSkpCisJICBzdGQ6OnN3YXAgKG9w ZXJhbmRzWzFdLCBvcGVyYW5kc1syXSk7CisJb3BlcmFuZHNbMV0gPSBmb3JjZV9yZWcgKDxNT0RF Pm1vZGUsIG9wZXJhbmRzWzFdKTsKKwlpZiAoIWFhcmNoNjRfdW1pbm1heF9vcGVyYW5kIChvcGVy YW5kc1syXSwgPE1PREU+bW9kZSkpCisJICBvcGVyYW5kc1syXSA9IGZvcmNlX3JlZyAoPE1PREU+ bW9kZSwgb3BlcmFuZHNbMl0pOworCWVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfdW1heDxtb2RlPjNf aW5zbiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorCQkJCQkJIG9wZXJhbmRzWzJdKSk7CisJ RE9ORTsKKyAgICAgIH0KKyAgICBlbHNlCiAgICAgICBGQUlMOwogICAgIHJ0eCB0ZW1wID0gZ2Vu X3JlZ19ydHggKDxNT0RFPm1vZGUpOwogICAgIG9wZXJhbmRzWzFdID0gZm9yY2VfcmVnICg8TU9E RT5tb2RlLCBvcGVyYW5kc1sxXSk7CkBAIC00OTY2LDggKzUwMDIsMTYgQEAgKGRlZmluZV9leHBh bmQgImZmczxtb2RlPjIiCiAgIH0KICkKIAotOzsgUG9wIGNvdW50IGJlIGRvbmUgdmlhIHRoZSAi Q05UIiBpbnN0cnVjdGlvbiBpbiBBZHZTSU1ELgotOzsKKyhkZWZpbmVfaW5zbiAiYWFyY2g2NF9w b3Bjb3VudDxtb2RlPjJfaW5zbiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCisgICAgICAgIChwb3Bjb3VudDpHUEkgKG1hdGNoX29wZXJhbmQ6 R1BJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0KKyAgIlRBUkdFVF9DU1NDIgorICAiY250 XFx0JTx3PjAsICU8dz4xIgorICBbKHNldF9hdHRyICJ0eXBlIiAiY2x6IildCispCis7OyBUaGUg Q1NTQyBpbnN0cnVjdGlvbnMgY2FuIGRvIHBvcGNvdW50IGluIHRoZSBHUCByZWdpc3RlcnMgZGly ZWN0bHkgdGhyb3VnaAorOzsgQ05ULiAgSWYgaXQgaXMgbm90IGF2YWlsYWJsZSB0aGVuIHdlIGNh biB1c2UgQ05UIG9uIHRoZSBBZHZhbmNlZCBTSU1EIHNpZGUKKzs7IHRocm91Z2g6CiA7OyBNT1YJ di4xZCwgeDAKIDs7IENOVAl2MS44Yiwgdi44YgogOzsgQUREViBiMiwgdjEuOGIKQEAgLTQ5NzYs OCArNTAyMCwxNCBAQCAoZGVmaW5lX2V4cGFuZCAiZmZzPG1vZGU+MiIKIChkZWZpbmVfZXhwYW5k ICJwb3Bjb3VudDxtb2RlPjIiCiAgIFsobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIpCiAgICAobWF0Y2hfb3BlcmFuZDpHUEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQotICAi VEFSR0VUX1NJTUQiCisgICJUQVJHRVRfQ1NTQyB8fCBUQVJHRVRfU0lNRCIKIHsKKyAgaWYgKFRB UkdFVF9DU1NDKQorICAgIHsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FhcmNoNjRfcG9wY291bnQ8 bW9kZT4yX2luc24gKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkpOworICAgICAgRE9ORTsKKyAg ICB9CisKICAgcnR4IHYgPSBnZW5fcmVnX3J0eCAoVjhRSW1vZGUpOwogICBydHggdjEgPSBnZW5f cmVnX3J0eCAoVjhRSW1vZGUpOwogICBydHggaW4gPSBvcGVyYW5kc1sxXTsKQEAgLTUwMTYsMTQg KzUwNjYsMTQgQEAgKGRlZmluZV9pbnNuICJAYWFyY2g2NF9yYml0PG1vZGU+IgogOzsgU3BsaXQg YWZ0ZXIgcmVsb2FkIGludG8gUkJJVCArIENMWi4gIFNpbmNlIFJCSVQgaXMgcmVwcmVzZW50ZWQg YXMgYW4gVU5TUEVDCiA7OyBpdCBpcyB1bmxpa2VseSB0byBmb2xkIHdpdGggYW55IG90aGVyIG9w ZXJhdGlvbiwgc28ga2VlcCB0aGlzIGFzIGEgQ1RaCiA7OyBleHByZXNzaW9uIGFuZCBzcGxpdCBh ZnRlciByZWxvYWQgdG8gZW5hYmxlIHNjaGVkdWxpbmcgdGhlbSBhcGFydCBpZgotOzsgbmVlZGVk LgorOzsgbmVlZGVkLiAgRm9yIFRBUkdFVF9DU1NDIHdlIGhhdmUgYSBzaW5nbGUgQ1RaIGluc3Ry dWN0aW9uIHRoYXQgY2FuIGRvIHRoaXMuCiAKIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImN0ejxt b2RlPjIiCiAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJICAgICAgICAgICAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQogICAgICAgIChjdHo6R1BJIChtYXRjaF9vcGVyYW5kOkdQSSAgMSAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKSkpXQogICAiIgotICAiIyIKLSAgInJlbG9hZF9jb21wbGV0ZWQi CisgIHsgcmV0dXJuIFRBUkdFVF9DU1NDID8gImN0elxcdCU8dz4wLCAlPHc+MSIgOiAiIyI7IH0K KyAgInJlbG9hZF9jb21wbGV0ZWQgJiYgIVRBUkdFVF9DU1NDIgogICBbKGNvbnN0X2ludCAwKV0K ICAgIgogICBlbWl0X2luc24gKGdlbl9hYXJjaDY0X3JiaXQgKDxNT0RFPm1vZGUsIG9wZXJhbmRz WzBdLCBvcGVyYW5kc1sxXSkpOwpAQCAtNjY2Miw2ICs2NzEyLDE3IEBAIChkZWZpbmVfaW5zbiAi YWJzPG1vZGU+MiIKICAgWyhzZXRfYXR0ciAidHlwZSIgImZmYXJpdGg8c3R5cGU+IildCiApCiAK KyhkZWZpbmVfaW5zbiAiPG9wdGFiPjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQ SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCisgICAgICAgIChNQVhNSU5fTk9VTUFYOkdQ SSAobWF0Y2hfb3BlcmFuZDpHUEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIsciIpCisJCShtYXRj aF9vcGVyYW5kOkdQSSAyICJhYXJjaDY0XzxzdT5taW5tYXhfb3BlcmFuZCIgInIsVTxzdT5tIikp KV0KKyAgIlRBUkdFVF9DU1NDIgorICAiQAorICAgPG9wdGFiPlxcdCU8dz4wLCAlPHc+MSwgJTx3 PjIKKyAgIDxvcHRhYj5cXHQlPHc+MCwgJTx3PjEsICUyIgorICBbKHNldF9hdHRyICJ0eXBlIiAi YWx1X3NyZWcsYWx1X2ltbSIpXQorKQorCiA7OyBHaXZlbiB0aGF0IHNtYXgvc21pbiBkbyBub3Qg c3BlY2lmeSB0aGUgcmVzdWx0IHdoZW4gZWl0aGVyIGlucHV0IGlzIE5hTiwKIDs7IHdlIGNvdWxk IHVzZSBlaXRoZXIgRk1BWE5NIG9yIEZNQVggZm9yIHNtYXgsIGFuZCBlaXRoZXIgRk1JTk5NIG9y IEZNSU4KIDs7IGZvciBzbWluLgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2NvbnN0 cmFpbnRzLm1kIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2NvbnN0cmFpbnRzLm1kCmluZGV4IGVlNzU4 N2NjYTE2NzMyMDhlMmJmZDZiNTAzYTIxZDBjOGI2OWJmNzUuLjI5ZWZiNmMwY2ZmNzU3NGM5YjIz OWVmMzU4YWNhY2E5NmRkNzVkMDMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9jb25z dHJhaW50cy5tZAorKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvY29uc3RyYWludHMubWQKQEAgLTE1 Miw2ICsxNTIsMTEgQEAgKGRlZmluZV9jb25zdHJhaW50ICJVc2EiCiAgICAgICAgKG1hdGNoX3Rl c3QgImFhcmNoNjRfc3ltYm9saWNfYWRkcmVzc19wIChvcCkiKQogICAgICAgIChtYXRjaF90ZXN0 ICJhYXJjaDY0X21vdl9vcGVyYW5kX3AgKG9wLCBHRVRfTU9ERSAob3ApKSIpKSkKIAorKGRlZmlu ZV9jb25zdHJhaW50ICJVc20iCisgIkEgY29uc3RhbnQgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRo ZSBTW01JTi9NQVhdIENTU0MgaW5zdHJ1Y3Rpb25zLiIKKyAoYW5kIChtYXRjaF9jb2RlICJjb25z dF9pbnQiKQorICAgICAgKG1hdGNoX3Rlc3QgImFhcmNoNjRfc21pbm1heF9pbW1lZGlhdGUgKG9w LCBWT0lEbW9kZSkiKSkpCisKIDs7IGNvbnN0IGlzIG5lZWRlZCBoZXJlIHRvIHN1cHBvcnQgVU5T UEVDX1NBTFRfQUREUi4KIChkZWZpbmVfY29uc3RyYWludCAiVXN3IgogICAiQGludGVybmFsCkBA IC0zODksNiArMzk0LDExIEBAIChkZWZpbmVfY29uc3RyYWludCAiVWZjIgogICAoYW5kIChtYXRj aF9jb2RlICJjb25zdF9kb3VibGUsY29uc3RfdmVjdG9yIikKICAgICAgICAobWF0Y2hfdGVzdCAi YWFyY2g2NF9mbG9hdF9jb25zdF9yZXByZXNlbnRhYmxlX3AgKG9wKSIpKSkKIAorKGRlZmluZV9j b25zdHJhaW50ICJVdW0iCisgIkEgY29uc3RhbnQgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBV W01JTi9NQVhdIENTU0MgaW5zdHJ1Y3Rpb25zLiIKKyAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9p bnQiKQorICAgICAgKG1hdGNoX3Rlc3QgImFhcmNoNjRfdW1pbm1heF9pbW1lZGlhdGUgKG9wLCBW T0lEbW9kZSkiKSkpCisKIChkZWZpbmVfY29uc3RyYWludCAiVXZpIgogICAiQSBmbG9hdGluZyBw b2ludCBjb25zdGFudCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIGFcCiAgICBNT1ZJIGltbWVkaWF0 ZSBvcGVyYXRpb24uIgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5t ZCBiL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMubWQKaW5kZXggNWU2ZmY1OTVjMGUyYTA4 NGVjZjg4YWM5YjYwMTU4ZDk5ODMwMzlmOC4uMGQ0ZWU0NDc0NzI2YjY2ZWFiNjJlODYzN2VmZGRj MGE1YzI2NmJhOCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZAor KysgYi9nY2MvY29uZmlnL2FhcmNoNjQvaXRlcmF0b3JzLm1kCkBAIC0yMTg2LDYgKzIxODYsOSBA QCAoZGVmaW5lX2NvZGVfaXRlcmF0b3IgRkxPQVRVT1JTIFtmbG9hdCB1bnNpZ25lZF9mbG9hdF0p CiA7OyBDb2RlIGl0ZXJhdG9yIGZvciB2YXJpYW50cyBvZiB2ZWN0b3IgbWF4IGFuZCBtaW4uCiAo ZGVmaW5lX2NvZGVfaXRlcmF0b3IgTUFYTUlOIFtzbWF4IHNtaW4gdW1heCB1bWluXSkKIAorOzsg Q29kZSBpdGVyYXRvciBmb3IgbWluL21heCBvcHMgYnV0IHdpdGhvdXQgVU1BWC4KKyhkZWZpbmVf Y29kZV9pdGVyYXRvciBNQVhNSU5fTk9VTUFYIFtzbWF4IHNtaW4gdW1pbl0pCisKIChkZWZpbmVf Y29kZV9pdGVyYXRvciBGTUFYTUlOIFtzbWF4IHNtaW5dKQogCiA7OyBTaWduZWQgYW5kIHVuc2ln bmVkIG1heCBvcGVyYXRpb25zLgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L3ByZWRp Y2F0ZXMubWQgYi9nY2MvY29uZmlnL2FhcmNoNjQvcHJlZGljYXRlcy5tZAppbmRleCBjMzA4MDE1 YWMyYzEzZDI0Y2Q2YmNlYzcxMjQ3ZWM0NWRmOGNmNWU2Li42MTc1ODc1ZmJjNmJlNmIwYmZmNzc4 NzNmNTVlNWU2ZDQ0Mzc4ZDBjIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvcHJlZGlj YXRlcy5tZAorKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvcHJlZGljYXRlcy5tZApAQCAtMTQ4LDYg KzE0OCwyMiBAQCAoZGVmaW5lX3ByZWRpY2F0ZSAiYWFyY2g2NF9wbHVzbG9uZ19pbW1lZGlhdGUi CiAgIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2ludCIpCiAgICAgICAgKG1hdGNoX3Rlc3QgIihJ TlRWQUwgKG9wKSA8IDB4ZmZmZmZmICYmIElOVFZBTCAob3ApID4gLTB4ZmZmZmZmKSIpKSkKIAor KGRlZmluZV9wcmVkaWNhdGUgImFhcmNoNjRfc21pbm1heF9pbW1lZGlhdGUiCisgIChhbmQgKG1h dGNoX2NvZGUgImNvbnN0X2ludCIpCisgICAgICAgKG1hdGNoX3Rlc3QgIklOX1JBTkdFIChJTlRW QUwgKG9wKSwgLTEyOCwgMTI3KSIpKSkKKworKGRlZmluZV9wcmVkaWNhdGUgImFhcmNoNjRfc21p bm1heF9vcGVyYW5kIgorICAoaW9yIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQi KQorICAgICAgIChtYXRjaF9vcGVyYW5kIDAgImFhcmNoNjRfc21pbm1heF9pbW1lZGlhdGUiKSkp CisKKyhkZWZpbmVfcHJlZGljYXRlICJhYXJjaDY0X3VtaW5tYXhfaW1tZWRpYXRlIgorICAoYW5k IChtYXRjaF9jb2RlICJjb25zdF9pbnQiKQorICAgICAgIChtYXRjaF90ZXN0ICJJTl9SQU5HRSAo SU5UVkFMIChvcCksIDAsIDI1NSkiKSkpCisKKyhkZWZpbmVfcHJlZGljYXRlICJhYXJjaDY0X3Vt aW5tYXhfb3BlcmFuZCIKKyAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5k IikKKyAgICAgICAobWF0Y2hfb3BlcmFuZCAwICJhYXJjaDY0X3VtaW5tYXhfaW1tZWRpYXRlIikp KQorCiAoZGVmaW5lX3ByZWRpY2F0ZSAiYWFyY2g2NF9wbHVzbG9uZ19zdHJpY3RfaW1tZWRhdGUi CiAgIChhbmQgKG1hdGNoX29wZXJhbmQgMCAiYWFyY2g2NF9wbHVzbG9uZ19pbW1lZGlhdGUiKQog ICAgICAgIChub3QgKG1hdGNoX29wZXJhbmQgMCAiYWFyY2g2NF9wbHVzX2ltbWVkaWF0ZSIpKSkp CmRpZmYgLS1naXQgYS9nY2MvZG9jL2djYy9nY2MtY29tbWFuZC1vcHRpb25zL21hY2hpbmUtZGVw ZW5kZW50LW9wdGlvbnMvYWFyY2g2NC1vcHRpb25zLnJzdCBiL2djYy9kb2MvZ2NjL2djYy1jb21t YW5kLW9wdGlvbnMvbWFjaGluZS1kZXBlbmRlbnQtb3B0aW9ucy9hYXJjaDY0LW9wdGlvbnMucnN0 CmluZGV4IGMyYjIzYTZlZTk3ZWYyYjdjNzQxMTlmMjJjMWQzZTNkODUzODVmNGQuLmM5MWZmNjg5 ODRkN2IzODY1MGFmYTU3Y2Q0ZWRmNTExZTQxNTk0YzggMTAwNjQ0Ci0tLSBhL2djYy9kb2MvZ2Nj L2djYy1jb21tYW5kLW9wdGlvbnMvbWFjaGluZS1kZXBlbmRlbnQtb3B0aW9ucy9hYXJjaDY0LW9w dGlvbnMucnN0CisrKyBiL2djYy9kb2MvZ2NjL2djYy1jb21tYW5kLW9wdGlvbnMvbWFjaGluZS1k ZXBlbmRlbnQtb3B0aW9ucy9hYXJjaDY0LW9wdGlvbnMucnN0CkBAIC01NDQsNiArNTQ0LDkgQEAg dGhlIGZvbGxvd2luZyBhbmQgdGhlaXIgaW52ZXJzZXMgbm8gOnNhbXA6YHtmZWF0dXJlfWAgOgog OnNhbXA6YHBhdXRoYAogICBFbmFibGUgdGhlIFBvaW50ZXIgQXV0aGVudGljYXRpb24gRXh0ZW5z aW9uLgogCis6c2FtcDpgY3NzY2AKKyAgRW5hYmxlIHRoZSBDb21tb24gU2hvcnQgU2VxdWVuY2Ug Q29tcHJlc3Npb24gZmVhdHVyZS4KKwogRmVhdHVyZSBgYGNyeXB0b2BgIGltcGxpZXMgYGBhZXNg YCwgYGBzaGEyYGAsIGFuZCBgYHNpbWRgYCwKIHdoaWNoIGltcGxpZXMgYGBmcGBgLgogQ29udmVy c2VseSwgYGBub2ZwYGAgaW1wbGllcyBgYG5vc2ltZGBgLCB3aGljaCBpbXBsaWVzCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jc3NjXzEuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2Nzc2NfMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlY2QwMGIyNTM2 NmRmYmM3NjBkNmFmOGZmYWYwYTgzMWZhMDdiNTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jc3NjXzEuYwpAQCAtMCwwICsxLDMyIEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi0tc2F2ZS10 ZW1wcyAtTzEiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiAiIiB9IH0gKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjcHJhZ21hIEdDQyB0YXJn ZXQgIitjc3NjIgorCisvKgorKiogYWJzdzoKKyoqICAgICAgYWJzCXcwLCB3MAorKiogICAgICBy ZXQKKyovCisKK2ludDMyX3QKK2Fic3cgKGludDMyX3QgYSkKK3sKKyAgcmV0dXJuIF9fYnVpbHRp bl9hYnMgKGEpOworfQorCisvKgorKiogYWJzeDoKKyoqICAgICAgYWJzCXgwLCB4MAorKiogICAg ICByZXQKKyovCisKK2ludDY0X3QKK2Fic3ggKGludDY0X3QgYSkKK3sKKyAgcmV0dXJuIF9fYnVp bHRpbl9sYWJzIChhKTsKK30KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvY3NzY18yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jc3Nj XzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi4xNjM3ZDI5YzZkYzIwYzBlYjU1YzVmM2QwNTE1N2I1YjZjNTgxZmRj Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvY3Nz Y18yLmMKQEAgLTAsMCArMSwzMiBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGct YWRkaXRpb25hbC1vcHRpb25zICItLXNhdmUtdGVtcHMgLU8xIiB9ICovCisvKiB7IGRnLWZpbmFs IHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisKKyNpbmNsdWRlIDxz dGRpbnQuaD4KKworI3ByYWdtYSBHQ0MgdGFyZ2V0ICIrY3NzYyIKKworLyoKKyoqIGNudHc6Cisq KiAgICAgIGNudAl3MCwgdzAKKyoqICAgICAgcmV0CisqLworCitpbnQzMl90CitjbnR3IChpbnQz Ml90IGEpCit7CisgIHJldHVybiBfX2J1aWx0aW5fcG9wY291bnQgKGEpOworfQorCisvKgorKiog Y250eDoKKyoqICAgICAgY250CXgwLCB4MAorKiogICAgICByZXQKKyovCisKK2ludDY0X3QKK2Nu dHggKGludDY0X3QgYSkKK3sKKyAgcmV0dXJuIF9fYnVpbHRpbl9wb3Bjb3VudGxsIChhKTsKK30K KwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvY3NzY18zLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9jc3NjXzMuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44 OTY1MjU2YzA4ZTFlOWE4M2MwNmEwOTRlN2VjNTMzYmFhZTYxNjE5Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvY3NzY18zLmMKQEAgLTAsMCArMSwz MiBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItLXNhdmUtdGVtcHMgLU8xIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI3ByYWdt YSBHQ0MgdGFyZ2V0ICIrY3NzYyIKKworLyoKKyoqIGN0enc6CisqKiAgICAgIGN0egl3MCwgdzAK KyoqICAgICAgcmV0CisqLworCitpbnQzMl90CitjdHp3IChpbnQzMl90IGEpCit7CisgIHJldHVy biBfX2J1aWx0aW5fY3R6IChhKTsKK30KKworLyoKKyoqIGN0eng6CisqKiAgICAgIGN0egl4MCwg eDAKKyoqICAgICAgcmV0CisqLworCitpbnQ2NF90CitjdHp4IChpbnQ2NF90IGEpCit7CisgIHJl dHVybiBfX2J1aWx0aW5fY3R6bGwgKGEpOworfQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9jc3NjXzQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L2Nzc2NfNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0Y2NkMGU3YzNiMDNhMjE0ZmEzNmEzZDA3OTU1 ZDc4N2FmYjNjY2QKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9jc3NjXzQuYwpAQCAtMCwwICsxLDEwNyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXNhdmUtdGVtcHMgLU8xIiB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisK KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI3ByYWdtYSBHQ0MgdGFyZ2V0ICIrY3NzYyIKKworI2Rl ZmluZSBNSU4oWCwgWSkgKChYKSA+IChZKSA/IChZKSA6IChYKSkKKyNkZWZpbmUgTUFYKFgsIFkp ICgoWCkgPiAoWSkgPyAoWCkgOiAoWSkpCisKKy8qCisqKiB1bWludzoKKyoqICAgICAgdW1pbgl3 MCwgd1swMV0sIHdbMDFdCisqKiAgICAgIHJldAorKi8KKwordWludDMyX3QKK3VtaW53ICh1aW50 MzJfdCBhLCB1aW50MzJfdCBiKQoreworICByZXR1cm4gTUlOIChhLCBiKTsKK30KKworLyoKKyoq IHVtaW54OgorKiogICAgICB1bWluCXgwLCB4WzAxXSwgeFswMV0KKyoqICAgICAgcmV0CisqLwor Cit1aW50NjRfdAordW1pbnggKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpCit7CisgIHJldHVybiBN SU4gKGEsIGIpOworfQorCisvKgorKiogc21pbnc6CisqKiAgICAgIHNtaW4JdzAsIHdbMDFdLCB3 WzAxXQorKiogICAgICByZXQKKyovCisKK2ludDMyX3QKK3NtaW53IChpbnQzMl90IGEsIGludDMy X3QgYikKK3sKKyAgcmV0dXJuIE1JTiAoYSwgYik7Cit9CisKKy8qCisqKiBzbWlueDoKKyoqICAg ICAgc21pbgl4MCwgeFswMV0sIHhbMDFdCisqKiAgICAgIHJldAorKi8KKworaW50NjRfdAorc21p bnggKGludDY0X3QgYSwgaW50NjRfdCBiKQoreworICByZXR1cm4gTUlOIChhLCBiKTsKK30KKwor LyoKKyoqIHVtYXh3OgorKiogICAgICB1bWF4CXcwLCB3WzAxXSwgd1swMV0KKyoqICAgICAgcmV0 CisqLworCit1aW50MzJfdAordW1heHcgKHVpbnQzMl90IGEsIHVpbnQzMl90IGIpCit7CisgIHJl dHVybiBNQVggKGEsIGIpOworfQorCisvKgorKiogdW1heHg6CisqKiAgICAgIHVtYXgJeDAsIHhb MDFdLCB4WzAxXQorKiogICAgICByZXQKKyovCisKK3VpbnQ2NF90Cit1bWF4eCAodWludDY0X3Qg YSwgdWludDY0X3QgYikKK3sKKyAgcmV0dXJuIE1BWCAoYSwgYik7Cit9CisKKy8qCisqKiBzbWF4 dzoKKyoqICAgICAgc21heAl3MCwgd1swMV0sIHdbMDFdCisqKiAgICAgIHJldAorKi8KKworaW50 MzJfdAorc21heHcgKGludDMyX3QgYSwgaW50MzJfdCBiKQoreworICByZXR1cm4gTUFYIChhLCBi KTsKK30KKworLyoKKyoqIHNtYXh4OgorKiogICAgICBzbWF4CXgwLCB4WzAxXSwgeFswMV0KKyoq ICAgICAgcmV0CisqLworCitpbnQ2NF90CitzbWF4eCAoaW50NjRfdCBhLCBpbnQ2NF90IGIpCit7 CisgIHJldHVybiBNQVggKGEsIGIpOworfQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9jc3NjXzUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L2Nzc2NfNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxNDk1MTk1ZWFlYTc0NWI2MmRmMDBlNDdmNTkwZmFh YWJhMzQ4YWUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9jc3NjXzUuYwpAQCAtMCwwICsxLDE1NCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXNhdmUtdGVtcHMgLU8xIiB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisKKyNp bmNsdWRlIDxzdGRpbnQuaD4KKworI3ByYWdtYSBHQ0MgdGFyZ2V0ICIrY3NzYyIKKworI2RlZmlu ZSBNSU4oWCwgWSkgKChYKSA+IChZKSA/IChZKSA6IChYKSkKKyNkZWZpbmUgTUFYKFgsIFkpICgo WCkgPiAoWSkgPyAoWCkgOiAoWSkpCisKKyNkZWZpbmUgRlVOQyhULCBPUCwgSU1NKSAgICAgICAg ICAgICAgICBcCitUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorVCMj XyMjT1AjI18jI0lNTSAoVCBhKSAgICAgICAgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgIHJldHVybiBPUCAoYSwgSU1NKTsgICAgICAgICAg ICAgICAgICAgXAorfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwor I2RlZmluZSBGVU5DTkVHKFQsIE9QLCBJTU0pICAgICAgICAgICAgIFwKK1QgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCitUIyNfIyNPUCMjX20jI0lNTSAoVCBhKSAgICAg ICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgcmV0dXJuIE9QIChhLCAtIChJTU0pKTsgICAgICAgICAgICAgICBcCit9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCisvKgorKiogdWludDMyX3RfTUlOXzI1NToK KyoqICAgICAgdW1pbgl3MCwgdzAsIDI1NQorKiogICAgICByZXQKKyovCisKK0ZVTkMgKHVpbnQz Ml90LCBNSU4sIDI1NSkKKworLyoKKyoqIHVpbnQ2NF90X01JTl8yNTU6CisqKiAgICAgIHVtaW4J eDAsIHgwLCAyNTUKKyoqICAgICAgcmV0CisqLworCitGVU5DICh1aW50NjRfdCwgTUlOLCAyNTUp CisKKy8qCisqKiB1aW50MzJfdF9NQVhfMjU1OgorKiogICAgICB1bWF4CXcwLCB3MCwgMjU1Cisq KiAgICAgIHJldAorKi8KKworRlVOQyAodWludDMyX3QsIE1BWCwgMjU1KQorCisKKy8qCisqKiB1 aW50NjRfdF9NQVhfMjU1OgorKiogICAgICB1bWF4CXgwLCB4MCwgMjU1CisqKiAgICAgIHJldAor Ki8KKworRlVOQyAodWludDY0X3QsIE1BWCwgMjU1KQorCisvKgorKiogaW50MzJfdF9NSU5fbTEy ODoKKyoqICAgICAgc21pbgl3MCwgdzAsIC0xMjgKKyoqICAgICAgcmV0CisqLworCitGVU5DTkVH IChpbnQzMl90LCBNSU4sIDEyOCkKKworLyoKKyoqIGludDMyX3RfTUlOXzEyNzoKKyoqICAgICAg c21pbgl3MCwgdzAsIDEyNworKiogICAgICByZXQKKyovCisKK0ZVTkMgKGludDMyX3QsIE1JTiwg MTI3KQorCisvKgorKiogaW50NjRfdF9NSU5fbTEyODoKKyoqICAgICAgc21pbgl4MCwgeDAsIC0x MjgKKyoqICAgICAgcmV0CisqLworCitGVU5DTkVHIChpbnQ2NF90LCBNSU4sIDEyOCkKKworLyoK KyoqIGludDY0X3RfTUlOXzEyNzoKKyoqICAgICAgc21pbgl4MCwgeDAsIDEyNworKiogICAgICBy ZXQKKyovCisKK0ZVTkMgKGludDY0X3QsIE1JTiwgMTI3KQorCisvKgorKiogaW50MzJfdF9NQVhf bTEyODoKKyoqICAgICAgc21heAl3MCwgdzAsIC0xMjgKKyoqICAgICAgcmV0CisqLworCitGVU5D TkVHIChpbnQzMl90LCBNQVgsIDEyOCkKKworLyoKKyoqIGludDMyX3RfTUFYXzEyNzoKKyoqICAg ICAgc21heAl3MCwgdzAsIDEyNworKiogICAgICByZXQKKyovCisKK0ZVTkMgKGludDMyX3QsIE1B WCwgMTI3KQorCisvKgorKiogaW50NjRfdF9NQVhfbTEyODoKKyoqICAgICAgc21heAl4MCwgeDAs IC0xMjgKKyoqICAgICAgcmV0CisqLworCitGVU5DTkVHIChpbnQ2NF90LCBNQVgsIDEyOCkKKwor LyoKKyoqIGludDY0X3RfTUFYXzEyNzoKKyoqICAgICAgc21heAl4MCwgeDAsIDEyNworKiogICAg ICByZXQKKyovCisKK0ZVTkMgKGludDY0X3QsIE1BWCwgMTI3KQorCisvKgorKiogaW50MzJfdF9N SU5fMDoKKyoqICAgICAgc21pbgl3MCwgdzAsIDAKKyoqICAgICAgcmV0CisqLworCitGVU5DIChp bnQzMl90LCBNSU4sIDApCisKKy8qCisqKiBpbnQ2NF90X01JTl8wOgorKiogICAgICBzbWluCXgw LCB4MCwgMAorKiogICAgICByZXQKKyovCisKK0ZVTkMgKGludDY0X3QsIE1JTiwgMCkKKworLyoK KyoqIGludDMyX3RfTUFYXzA6CisqKiAgICAgIHNtYXgJdzAsIHcwLCAwCisqKiAgICAgIHJldAor Ki8KKworRlVOQyAoaW50MzJfdCwgTUFYLCAwKQorCisvKgorKiogaW50NjRfdF9NQVhfMDoKKyoq ICAgICAgc21heAl4MCwgeDAsIDAKKyoqICAgICAgcmV0CisqLworCitGVU5DIChpbnQ2NF90LCBN QVgsIDApCisK --_002_PAXPR08MB69260AEE049F853F4C89043B93009PAXPR08MB6926eurp_--