From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2080.outbound.protection.outlook.com [40.107.21.80]) by sourceware.org (Postfix) with ESMTPS id 018843858403 for ; Thu, 25 Nov 2021 09:43:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 018843858403 Received: from AM5PR0301CA0025.eurprd03.prod.outlook.com (2603:10a6:206:14::38) by DBAPR08MB5861.eurprd08.prod.outlook.com (2603:10a6:10:1a3::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20; Thu, 25 Nov 2021 09:43:08 +0000 Received: from VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:14:cafe::b0) by AM5PR0301CA0025.outlook.office365.com (2603:10a6:206:14::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend Transport; Thu, 25 Nov 2021 09:43:08 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT006.mail.protection.outlook.com (10.152.18.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend Transport; Thu, 25 Nov 2021 09:43:07 +0000 Received: ("Tessian outbound dbb52aec1fa6:v110"); Thu, 25 Nov 2021 09:43:07 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: ca41f827040500bf X-CR-MTA-TID: 64aa7808 Received: from c04503666934.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 25633B83-2279-4E36-B65F-1582090131AA.1; Thu, 25 Nov 2021 09:42:57 +0000 Received: from EUR03-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c04503666934.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 25 Nov 2021 09:42:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IybFoPvIVAYX/7mk0S+bfpG/CAuRiyx6U+G/VBjhnrLP02Vu+CTex/UB62Nc2jFSukSPEkp3v0M42Sou6XjyDpIyQjsQOIIVdVLCayN87RRZmqnvFKFF97vb+1ADw6zvtUJe1n4sFrHXA47bbSMuyWUuKcS4xQiFPbdRz0oaYd9QTWW+NUzFncbhaI7Osvo7IEXi2WBJDZSdqhb6RIcfU2U7YVnHOop3cAG2k1kcMpab6cMTv/f7TEIjH8miKlmdItLh3hzCc5VN753BF5FUC3YcYowUPgZE+Fy67O8v6F10hVf1FO8a64lJjyE41vDlE7ChLDNteHI+Lk+DYpp9Hw== 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=TjEeqZlBJC8ObRGN5IL7cVrZKANfo4MU84UA8Ds/zy0=; b=dKq4Yikx+f6c7WkIAwzlFCoGffk/WCycZcfvHXrjdSbeTeoZhwqrQt0K0YNoodRMTgNLXrzEWnIlKtS6zkwAEzAaFSQGjboaIToBVKkMX1aS5AvKK55p27muypXji7OXNCH3rSweA1dtAVQT8REgqBl+AsDGsjjoc8n3iXRDWfSnXWf6buH0bbHRpUn0qfuICY7aMwfg/qR/gFcHVKQvkwasGivHfiTdls54CmBV2uNrsTRONHbvGrwNqhTclaxIZy7GKTOs4MqIxhhjM9p1JeWn3v0dRR+JVLgv8iG5PrF7IuntXRwiW7s5eF5AGt2jM1AlYyUwVT/Ws0eYFoA9xQ== 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 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AM6PR08MB5175.eurprd08.prod.outlook.com (2603:10a6:20b:ef::11) by AS8PR08MB6792.eurprd08.prod.outlook.com (2603:10a6:20b:39b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.22; Thu, 25 Nov 2021 09:42:53 +0000 Received: from AM6PR08MB5175.eurprd08.prod.outlook.com ([fe80::8d8f:5a4a:c1f8:c305]) by AM6PR08MB5175.eurprd08.prod.outlook.com ([fe80::8d8f:5a4a:c1f8:c305%6]) with mapi id 15.20.4734.022; Thu, 25 Nov 2021 09:42:53 +0000 From: Murray Steele Subject: Re: [PATCH 2/2][GCC] arm: Declare MVE types internally via pragma To: Richard Earnshaw Cc: gcc-patches@gcc.gnu.org References: <55ba6a8c-4dda-c023-0e93-a052e4830d06@arm.com> <342ef4e3-6013-2d67-adc8-6310febe2f52@foss.arm.com> <2a59e081-0a5f-5b9b-c398-d89c6c217822@arm.com> <9ccc226a-fdf7-d465-6074-b6a78d16b316@arm.com> Message-ID: <060230b8-22b0-36eb-2594-c469efaabf35@arm.com> Date: Thu, 25 Nov 2021 09:42:52 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <9ccc226a-fdf7-d465-6074-b6a78d16b316@arm.com> Content-Type: multipart/mixed; boundary="------------06EBA43ECB4E8A44E02D136F" Content-Language: en-US X-ClientProxiedBy: LO4P123CA0042.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:152::11) To AM6PR08MB5175.eurprd08.prod.outlook.com (2603:10a6:20b:ef::11) MIME-Version: 1.0 Received: from [10.32.99.44] (217.140.106.32) by LO4P123CA0042.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:152::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.20 via Frontend Transport; Thu, 25 Nov 2021 09:42:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e776701c-ebc2-4920-75d6-08d9aff7fc80 X-MS-TrafficTypeDiagnostic: AS8PR08MB6792:|DBAPR08MB5861: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:8273;OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jDacd6v31s74lPBlOouORBDQ/JoDlCSYvfI39RC26NWbca4cB0ppyKXHUuIT4EviyTONBCNaQTSfAuYQsuIiKaEaiph+z5BPXXEUEZq03/wMWQaOAQhpBiKARnLaQD+K57LueiB/ySt26yQqbDq2rc4voWHwX8mE73KqUgAZ1co963IlEr4ySC/CumUUW58OKH1Zr4sikOKgJxwuXm2NdyJ9T2FurYjZzDCC7OeVIdsEXwTAUpd4jnNhKD67Dzt3wA8Qs0IqZUzPn3Fvl67OnOB66cFisqIOxSRWcaL7pzIZBahTGxvQVOjhfF/4VM3eN8R4OpAFmuDZChiEzgyZnUsXcUsiw0zaclQMvu4Vw0who+UGb1sjds7UR8oji/bKf1vm8B7i2ipCfc2EGAjlIPiIadAH+12tW/C+r3GHJDvnHd7lCYlNS46/ElXpe2MVLTkq9CHvqTQkUPJJOJNNYNq/nujXP5UabCHRrzd3fJQ1Q4Qydf4bRn4nb5cWr13B0MsQklJbwaHYjdkY/WaOA+kg4GOVPFZND73gVqibOBjKQW3u/RVvNDEwUutG80a4Bc1Yefh/5hL+QKZYWu4LK5sNOz7YMRUZE1Gz6dPVBQ6EA3npIQrYzSK/qyBIjyRi8oS+Dng+iXLjg0L0o/TBLdOAaISEqpEV0B9cB0+hOu4HGEbfHfdjzcK2gwss4EdxVjUVLe3Qb95d46NEkBImWb1riFZGmWKd6ceSRqFG1v2F3knUaQEbja0x4Y/76maC4qvyqC7njTQlwHQmx70N68LeT+Ho638v3Ysl9XFl+wKrfJHUO/Pkpm+hXu+3MuS8oqWit7MZSyhDzduE5JkHi/KcPMQOuCD985sYYIHVvR4= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB5175.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(2906002)(38100700002)(16576012)(8936002)(5660300002)(33964004)(4326008)(2616005)(21480400003)(186003)(235185007)(31696002)(86362001)(66476007)(316002)(508600001)(66556008)(66946007)(8676002)(84970400001)(31686004)(956004)(6486002)(36756003)(26005)(6862004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6792 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: VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 17bab864-7810-4e6f-a647-08d9aff7f3da X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bWkTcKT8zB1R0B3S+Ty/T3mO9UJIs1w2Jn/r+J4So0Faie+5lgja4NsVmDi/VRtyg8VZBkr1dtJH1+86eB+wxx+647ezFYphArACv8sYscqIecQfJA/GVhT9XJEqRI8SSHLTocHySSGI8T/9ZFBBrkq7onc4HRw4JRHKBqexpgtJQY0u6Nt8B0Q+Y/Ed760RO8/rkMRqwUwg7xODop6xMcL9DliwTcCiDWB+9T768xSlwoWVc4Pk3iVGcnzk1OPD/gCTp00SuxBHjoL49dvkCXCcAjO0TyzuH/ZJUpddbly1ziEwN2QKRkqhxHliHHPgfYML7RUlu1QnKhhuDCFv+xdKHpvZ0dp9gGuFaBzdq5W3pRLDNOoN7uOJH/hng+AABy35UdnuPMDJDfi3z3Vv+nAWh2jzPlixZfqH709CyT+e9mDRRBvvr+c+6ZLWcHEb8WgkWBt56fsYxLSuQ5IR1UTwbKcaYZs25kEZra/2R++0b7qzM9pIe+37DMKQFWisWpQvSn7LvULyHPlC1qkZoxygmkuWYyWd+ed6qL6X/pkEt4QSp+uUV/0kqHuELt6hJYQ7kO1FWPlP9pcsDrx2Af0BTSUfAJaR+sfEuntLwSOHAjRCxCG4sDDLtrXVxxeHrON6yrul80QHPmg8k40Oaw3kF6LMFegZKg03UPs3hnatqdVlVaU1ftzovPxRqBxOaZgKJDOhBb5cxp+/KVz45VC+7rdVB4RnasHVFqHxAodEuDbFIJJUHiTxudGQWwiKrLOqFhb0rnX+4FpzlNPI5so4z5uCeVJyWOMcuPut0Y084n+57WH9zts+ul0n7f/tdZsyKqYNhlNy3d8oGixrYMCLTWMXBLV3Jfsmigroy0o= 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:(4636009)(36840700001)(46966006)(8936002)(31696002)(33964004)(36860700001)(2906002)(186003)(21480400003)(956004)(6862004)(86362001)(5660300002)(316002)(16576012)(6486002)(84970400001)(336012)(81166007)(235185007)(47076005)(508600001)(82310400004)(70206006)(31686004)(26005)(70586007)(356005)(8676002)(4326008)(36756003)(2616005)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2021 09:43:07.6266 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e776701c-ebc2-4920-75d6-08d9aff7fc80 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: VE1EUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5861 X-Spam-Status: No, score=-15.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Nov 2021 09:43:16 -0000 --------------06EBA43ECB4E8A44E02D136F Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Changes from original patch: 1. Merged test_redef_* test files into one 2. Encapsulated contents of arm-mve-builtins.h in namespace arm_mve (missed in initial patch). 3. Added extern declarations for scalar_types and acle_vector types to arm-mve-builtins.h (missed in initial patch). 4. Added arm-mve-builtins.(cc|h) to gt_targets for arm-*-*-* (missed in initial patch). 5. Added include for gt-arm-mve-builtins.h to arm-mve-builtins.cc (missed in initial patch). 6. Removed explicit initialisation of handle_arm_mve_types_p as it is unneeded. --- This patch moves the implementation of MVE ACLE types from arm_mve_types.h to inside GCC via a new pragma, which replaces the prior type definitions. This allows for the types to be used internally for intrinsic function definitions. Bootstrapped and regression tested on arm-none-linux-gnuabihf, and regression tested on arm-eabi -- no issues. Thanks, Murray gcc/ChangeLog: * config.gcc: Add arm-mve-builtins.o to extra_objs for arm-*-*-* targets. * config/arm/arm-c.c (arm_pragma_arm): Handle new pragma. (arm_register_target_pragmas): Register new pragma. * config/arm/arm-protos.h: Add arm_mve namespace and declare arm_handle_mve_types_h. * config/arm/arm_mve_types.h: Replace MVE type definitions with new pragma. * config/arm/t-arm: Add arm-mve-builtins.o target. * config/arm/arm-mve-builtins.cc: New file. * config/arm/arm-mve-builtins.def: New file. * config/arm/arm-mve-builtins.h: New file. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/mve.exp: Add new subdirectories. * gcc.target/arm/mve/general-c/type_redef_1.c: New test. * gcc.target/arm/mve/general/double_pragmas_1.c: New test. * gcc.target/arm/mve/general/nomve_1.c: New test. --------------06EBA43ECB4E8A44E02D136F Content-Type: text/plain; charset=UTF-8; name="patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch.txt" ZGlmZiAtLWdpdCBhL2djYy9jb25maWcuZ2NjIGIvZ2NjL2NvbmZpZy5nY2MKaW5kZXggZWRkMTI2 NTVjNGExZTZmZWIwOWFhYmJlZTc3ZWFjZDlmNjZiNDE3MS4uMGFhMzg2NDAzMTEyZWZmODBjYjUw NzFmYTZmZjJmZGJlNjEwYzlmYyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy5nY2MKKysrIGIvZ2Nj L2NvbmZpZy5nY2MKQEAgLTM1MiwxNCArMzUyLDE0IEBAIGFyYyotKi0qKQogCTs7CiBhcm0qLSot KikKIAljcHVfdHlwZT1hcm0KLQlleHRyYV9vYmpzPSJhcm0tYnVpbHRpbnMubyBhYXJjaC1jb21t b24ubyIKKwlleHRyYV9vYmpzPSJhcm0tYnVpbHRpbnMubyBhcm0tbXZlLWJ1aWx0aW5zLm8gYWFy Y2gtY29tbW9uLm8iCiAJZXh0cmFfaGVhZGVycz0ibW1pbnRyaW4uaCBhcm1fbmVvbi5oIGFybV9h Y2xlLmggYXJtX2ZwMTYuaCBhcm1fY21zZS5oIGFybV9iZjE2LmggYXJtX212ZV90eXBlcy5oIGFy bV9tdmUuaCBhcm1fY2RlLmgiCiAJdGFyZ2V0X3R5cGVfZm9ybWF0X2NoYXI9JyUnCiAJY190YXJn ZXRfb2Jqcz0iYXJtLWMubyIKIAljeHhfdGFyZ2V0X29ianM9ImFybS1jLm8iCiAJZF90YXJnZXRf b2Jqcz0iYXJtLWQubyIKIAlleHRyYV9vcHRpb25zPSIke2V4dHJhX29wdGlvbnN9IGFybS9hcm0t dGFibGVzLm9wdCIKLQl0YXJnZXRfZ3RmaWxlcz0iXCQoc3JjZGlyKS9jb25maWcvYXJtL2FybS1i dWlsdGlucy5jIgorCXRhcmdldF9ndGZpbGVzPSJcJChzcmNkaXIpL2NvbmZpZy9hcm0vYXJtLWJ1 aWx0aW5zLmMgXCQoc3JjZGlyKS9jb25maWcvYXJtL2FybS1tdmUtYnVpbHRpbnMuaCBcJChzcmNk aXIpL2NvbmZpZy9hcm0vYXJtLW12ZS1idWlsdGlucy5jYyIKIAk7OwogYXZyLSotKikKIAljcHVf dHlwZT1hdnIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1jLmMgYi9nY2MvY29uZmln L2FybS9hcm0tYy5jCmluZGV4IGNjNzkwMWJjYThkYzljNWMyN2VkNmFmYzViYzI2YWZkNDI2ODll NmQuLmQxNDE0ZjZlMGUxYzJiZDBhNzM2NGI4MzdjMTZhZGY0OTMyMjEzNzYgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvYXJtL2FybS1jLmMKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLWMuYwpAQCAt MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImMtZmFtaWx5L2MtcHJhZ21hLmgiCiAjaW5jbHVkZSAi c3RyaW5ncG9vbC5oIgogI2luY2x1ZGUgImFybS1idWlsdGlucy5oIgorI2luY2x1ZGUgImFybS1w cm90b3MuaCIKIAogdHJlZQogYXJtX3Jlc29sdmVfY2RlX2J1aWx0aW4gKGxvY2F0aW9uX3QgbG9j LCB0cmVlIGZuZGVjbCwgdm9pZCAqYXJnbGlzdCkKQEAgLTEyOSw2ICsxMzAsMjQgQEAgYXJtX3Jl c29sdmVfY2RlX2J1aWx0aW4gKGxvY2F0aW9uX3QgbG9jLCB0cmVlIGZuZGVjbCwgdm9pZCAqYXJn bGlzdCkKICAgcmV0dXJuIGNhbGxfZXhwcjsKIH0KIAorLyogSW1wbGVtZW50ICIjcHJhZ21hIEdD QyBhcm0iLiAgKi8KK3N0YXRpYyB2b2lkCithcm1fcHJhZ21hX2FybSAoY3BwX3JlYWRlciAqKQor eworICB0cmVlIHg7CisgIGlmIChwcmFnbWFfbGV4ICgmeCkgIT0gQ1BQX1NUUklORykKKyAgICB7 CisgICAgICBlcnJvciAoIiU8I3ByYWdtYSBHQ0MgYXJtJT4gcmVxdWlyZXMgYSBzdHJpbmcgcGFy YW1ldGVyIik7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGNvbnN0IGNoYXIgKm5hbWUgPSBU UkVFX1NUUklOR19QT0lOVEVSICh4KTsKKyAgaWYgKHN0cmNtcCAobmFtZSwgImFybV9tdmVfdHlw ZXMuaCIpID09IDApCisgICAgYXJtX212ZTo6aGFuZGxlX2FybV9tdmVfdHlwZXNfaCAoKTsKKyAg ZWxzZQorICAgIGVycm9yICgidW5rbm93biAlPCNwcmFnbWEgR0NDIGFybSU+IG9wdGlvbiAlcXMi LCBuYW1lKTsKK30KKwogLyogSW1wbGVtZW50IFRBUkdFVF9SRVNPTFZFX09WRVJMT0FERURfQlVJ TFRJTi4gIFRoaXMgaXMgY3VycmVudGx5IG9ubHkKICAgIHVzZWQgZm9yIHRoZSBNVkUgcmVsYXRl ZCBidWlsdGlucyBmb3IgdGhlIENERSBleHRlbnNpb24uCiAgICBIZXJlIHdlIGVuc3VyZSB0aGUg dHlwZSBvZiBhcmd1bWVudHMgaXMgc3VjaCB0aGF0IHRoZSBzaXplIGlzIGNvcnJlY3QsIGFuZApA QCAtNDc2LDYgKzQ5NSw4IEBAIGFybV9yZWdpc3Rlcl90YXJnZXRfcHJhZ21hcyAodm9pZCkKICAg dGFyZ2V0bS50YXJnZXRfb3B0aW9uLnByYWdtYV9wYXJzZSA9IGFybV9wcmFnbWFfdGFyZ2V0X3Bh cnNlOwogICB0YXJnZXRtLnJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluID0gYXJtX3Jlc29sdmVf b3ZlcmxvYWRlZF9idWlsdGluOwogCisgIGNfcmVnaXN0ZXJfcHJhZ21hICgiR0NDIiwgImFybSIs IGFybV9wcmFnbWFfYXJtKTsKKwogI2lmZGVmIFJFR0lTVEVSX1NVQlRBUkdFVF9QUkFHTUFTCiAg IFJFR0lTVEVSX1NVQlRBUkdFVF9QUkFHTUFTICgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2FybS9hcm0tbXZlLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLW12ZS1i dWlsdGlucy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWRkYzhkNDlhYWQzOWUwNTdjMWMwZDM0OWM2YzAyYzI3 ODU1M2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLW12ZS1idWlsdGlu cy5jYwpAQCAtMCwwICsxLDE5NiBAQAorLyogQUNMRSBzdXBwb3J0IGZvciBBcm0gTVZFCisgICBD b3B5cmlnaHQgKEMpIDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KKworICAgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAgIHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBv cHRpb24pCisgICBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgR0NDIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICAgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KyAgIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAgIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2Vl CisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjZGVmaW5lIElOX1RB UkdFVF9DT0RFIDEKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInN5c3RlbS5oIgor I2luY2x1ZGUgImNvcmV0eXBlcy5oIgorI2luY2x1ZGUgInRtLmgiCisjaW5jbHVkZSAidHJlZS5o IgorI2luY2x1ZGUgImZvbGQtY29uc3QuaCIKKyNpbmNsdWRlICJsYW5naG9va3MuaCIKKyNpbmNs dWRlICJzdHJpbmdwb29sLmgiCisjaW5jbHVkZSAiYXR0cmlicy5oIgorI2luY2x1ZGUgImRpYWdu b3N0aWMuaCIKKyNpbmNsdWRlICJhcm0tcHJvdG9zLmgiCisjaW5jbHVkZSAiYXJtLWJ1aWx0aW5z LmgiCisjaW5jbHVkZSAiYXJtLW12ZS1idWlsdGlucy5oIgorCituYW1lc3BhY2UgYXJtX212ZSB7 CisKKy8qIFN0YXRpYyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHNpbmdsZS1wcmVkaWNhdGUgb3Ig c2luZ2xlLXZlY3RvcgorICAgQUNMRSB0eXBlLiAgKi8KK3N0cnVjdCB2ZWN0b3JfdHlwZV9pbmZv Cit7CisgIC8qIFRoZSBuYW1lIG9mIHRoZSB0eXBlIGFzIGRlY2xhcmVkIGJ5IGFybV9tdmUuaC4g ICovCisgIGNvbnN0IGNoYXIgKmFjbGVfbmFtZTsKKworICAvKiBXaGV0aGVyIHRoZSB0eXBlIHJl cXVpcmVzIGEgZmxvYXRpbmcgcG9pbnQgYWJpLiAgKi8KKyAgY29uc3QgYm9vbCByZXF1aXJlc19m bG9hdDsKK307CisKKy8qIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBhcm0gTVZFIHR5cGVz IGhhdmUgYmVlbiBoYW5kbGVkLiAgKi8KK3N0YXRpYyBib29sIGhhbmRsZV9hcm1fbXZlX3R5cGVz X3A7CisKKy8qIEluZm9ybWF0aW9uIGFib3V0IGVhY2ggc2luZ2xlLXByZWRpY2F0ZSBvciBzaW5n bGUtdmVjdG9yIHR5cGUuICAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCB2ZWN0b3JfdHlwZV9p bmZvIHZlY3Rvcl90eXBlc1tdID0geworI2RlZmluZSBERUZfTVZFX1RZUEUoQUNMRV9OQU1FLCBT Q0FMQVJfVFlQRSkgXAorICB7ICNBQ0xFX05BTUUsIFJFUVVJUkVTX0ZMT0FUIH0sCisjaW5jbHVk ZSAiYXJtLW12ZS1idWlsdGlucy5kZWYiCisjdW5kZWYgREVGX01WRV9UWVBFCit9OworCisvKiBU aGUgc2NhbGFyIHR5cGUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggdmVjdG9yIHR5cGUuICAqLworR1RZ KCgpKSB0cmVlIHNjYWxhcl90eXBlc1tOVU1fVkVDVE9SX1RZUEVTXTsKKworLyogVGhlIHNpbmds ZS1wcmVkaWNhdGUgYW5kIHNpbmdsZS12ZWN0b3IgdHlwZXMsIHdpdGggdGhlaXIgYnVpbHQtaW4K KyAgICJfX3NpbWQxMjhfLi4uX3QiIG5hbWUuICBBbGxvdyBhbiBpbmRleCBvZiBOVU1fVkVDVE9S X1RZUEVTLCB3aGljaCBhbHdheXMKKyAgIHlpZWxkcyBhIG51bGwgdHJlZS4gICovCitzdGF0aWMg R1RZKCgpKSB0cmVlIGFiaV92ZWN0b3JfdHlwZXNbTlVNX1ZFQ1RPUl9UWVBFUyArIDFdOworCisv KiBTYW1lLCBidXQgd2l0aCB0aGUgYXJtX212ZS5oIG5hbWVzLiAgKi8KK0dUWSgoKSkgdHJlZSBh Y2xlX3ZlY3Rvcl90eXBlc1szXVtOVU1fVkVDVE9SX1RZUEVTICsgMV07CisKKy8qIFJldHVybiB0 aGUgTVZFIGFiaSB0eXBlIHdpdGggZWxlbWVudCBvZiB0eXBlIFRZUEUuICAqLworc3RhdGljIHRy ZWUKK2FybV9tdmVfdHlwZV9mb3Jfc2NhbGFyX3R5cGUgKHRyZWUgZWx0eXBlKQoreworICBmb3Ig KHVuc2lnbmVkIGludCBpID0gMDsgaSA8IF9fVFlQRV9GSU5BTDsgKytpKQorICAgICAgaWYgKGFy bV9zaW1kX3R5cGVzW2ldLmVsdHlwZSA9PSBlbHR5cGUKKwkgICYmIEdFVF9NT0RFX1NJWkUgKGFy bV9zaW1kX3R5cGVzW2ldLm1vZGUpID09IDE2KQorCXJldHVybiBhcm1fc2ltZF90eXBlc1tpXS5p dHlwZTsKKworICBnY2NfdW5yZWFjaGFibGUgKCk7Cit9CisKKy8qIFJlZ2lzdGVyIHRoZSBidWls dC1pbiBNVkUgQUJJIHZlY3RvciB0eXBlcywgc3VjaCBhcyB1aW50MzJ4NF90LiAgKi8KK3N0YXRp YyB2b2lkCityZWdpc3Rlcl9idWlsdGluX3R5cGVzICgpCit7CisjZGVmaW5lIERFRl9NVkVfVFlQ RShBQ0xFX05BTUUsIFNDQUxBUl9UWVBFKSBcCisgIHNjYWxhcl90eXBlc1tWRUNUT1JfVFlQRV8g IyMgQUNMRV9OQU1FXSA9IFNDQUxBUl9UWVBFOworI2luY2x1ZGUgImFybS1tdmUtYnVpbHRpbnMu ZGVmIgorI3VuZGVmIERFRl9NVkVfVFlQRQorICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8 IE5VTV9WRUNUT1JfVFlQRVM7ICsraSkKKyAgICB7CisgICAgICBpZiAodmVjdG9yX3R5cGVzW2ld LnJlcXVpcmVzX2Zsb2F0ICYmICFUQVJHRVRfSEFWRV9NVkVfRkxPQVQpCisJY29udGludWU7Cisg ICAgICB0cmVlIGVsdHlwZSA9IHNjYWxhcl90eXBlc1tpXTsKKyAgICAgIHRyZWUgdmVjdHlwZTsK KyAgICAgIGlmIChlbHR5cGUgPT0gYm9vbGVhbl90eXBlX25vZGUpCisJeworCSAgdmVjdHlwZSA9 IGdldF90eXBlbm9kZV9mcm9tX25hbWUgKFVJTlQxNl9UWVBFKTsKKwkgIGdjY19hc3NlcnQgKEdF VF9NT0RFX1NJWkUgKFRZUEVfTU9ERSAodmVjdHlwZSkpID09IDIpOworCX0KKyAgICAgIGVsc2UK Kwl7CisJICB2ZWN0eXBlID0gYXJtX212ZV90eXBlX2Zvcl9zY2FsYXJfdHlwZSAoZWx0eXBlKTsK KwkgIGdjY19hc3NlcnQgKFZFQ1RPUl9NT0RFX1AgKFRZUEVfTU9ERSAodmVjdHlwZSkpCisJCSAg ICAgICYmIEdFVF9NT0RFX1NJWkUgKFRZUEVfTU9ERSAodmVjdHlwZSkpID09IDE2KTsKKwl9Cisg ICAgICBhYmlfdmVjdG9yX3R5cGVzW2ldID0gdmVjdHlwZTsKKyAgICB9Cit9CisKKy8qIFJlZ2lz dGVyIHZlY3RvciB0eXBlIFRZUEUgdW5kZXIgaXRzIGFybV9tdmUuaCBuYW1lLiAgKi8KK3N0YXRp YyB2b2lkCityZWdpc3Rlcl92ZWN0b3JfdHlwZSAodmVjdG9yX3R5cGVfaW5kZXggdHlwZSkKK3sK KyAgaWYgKHZlY3Rvcl90eXBlc1t0eXBlXS5yZXF1aXJlc19mbG9hdCAmJiAhVEFSR0VUX0hBVkVf TVZFX0ZMT0FUKQorICAgIHJldHVybjsKKyAgdHJlZSB2ZWN0eXBlID0gYWJpX3ZlY3Rvcl90eXBl c1t0eXBlXTsKKyAgdHJlZSBpZCA9IGdldF9pZGVudGlmaWVyICh2ZWN0b3JfdHlwZXNbdHlwZV0u YWNsZV9uYW1lKTsKKyAgdHJlZSBkZWNsID0gYnVpbGRfZGVjbCAoaW5wdXRfbG9jYXRpb24sIFRZ UEVfREVDTCwgaWQsIHZlY3R5cGUpOworICBkZWNsID0gbGFuZ19ob29rcy5kZWNscy5wdXNoZGVj bCAoZGVjbCk7CisKKyAgLyogUmVjb3JkIHRoZSBuZXcgQUNMRSB0eXBlIGlmIHB1c2hkZWNsIHN1 Y2NlZWRlZCB3aXRob3V0IGVycm9yLiAgVXNlCisgICAgIHRoZSBBQkkgdHlwZSBvdGhlcndpc2Us IHNvIHRoYXQgdGhlIHR5cGUgd2UgcmVjb3JkIGF0IGxlYXN0IGhhcyB0aGUKKyAgICAgcmlnaHQg Zm9ybSwgZXZlbiBpZiBpdCBkb2Vzbid0IGhhdmUgdGhlIHJpZ2h0IG5hbWUuICBUaGlzIHNob3Vs ZCBnaXZlCisgICAgIGJldHRlciBlcnJvciByZWNvdmVyeSBiZWhhdmlvciB0aGFuIGluc3RhbGxp bmcgZXJyb3JfbWFya19ub2RlIG9yCisgICAgIGluc3RhbGxpbmcgYW4gaW5jb3JyZWN0IHR5cGUu ICAqLworICBpZiAoZGVjbAorICAgICAgJiYgVFJFRV9DT0RFIChkZWNsKSA9PSBUWVBFX0RFQ0wK KyAgICAgICYmIFRSRUVfVFlQRSAoZGVjbCkgIT0gZXJyb3JfbWFya19ub2RlCisgICAgICAmJiBU WVBFX01BSU5fVkFSSUFOVCAoVFJFRV9UWVBFIChkZWNsKSkgPT0gdmVjdHlwZSkKKyAgICB2ZWN0 eXBlID0gVFJFRV9UWVBFIChkZWNsKTsKKyAgYWNsZV92ZWN0b3JfdHlwZXNbMF1bdHlwZV0gPSB2 ZWN0eXBlOworfQorCisvKiBSZWdpc3RlciB0dXBsZSB0eXBlIFRZUEUgd2l0aCBOVU1fVkVDVE9S UyBhcml0eSB1bmRlciBpdHMKKyAgIGFybV9tdmVfdHlwZXMuaCBuYW1lLiAgKi8KK3N0YXRpYyB2 b2lkCityZWdpc3Rlcl9idWlsdGluX3R1cGxlX3R5cGVzICh2ZWN0b3JfdHlwZV9pbmRleCB0eXBl KQoreworICBjb25zdCB2ZWN0b3JfdHlwZV9pbmZvKiBpbmZvID0gJnZlY3Rvcl90eXBlc1t0eXBl XTsKKyAgaWYgKHNjYWxhcl90eXBlc1t0eXBlXSA9PSBib29sZWFuX3R5cGVfbm9kZQorICAgICAg fHwgKGluZm8tPnJlcXVpcmVzX2Zsb2F0ICYmICFUQVJHRVRfSEFWRV9NVkVfRkxPQVQpKQorICAg IHJldHVybjsKKyAgY29uc3QgY2hhciAqdmVjdG9yX3R5cGVfbmFtZSA9IGluZm8tPmFjbGVfbmFt ZTsKKyAgY2hhciBidWZmZXJbc2l6ZW9mICgiZmxvYXQzMng0eDJfdCIpXTsKKyAgZm9yICh1bnNp Z25lZCBpbnQgbnVtX3ZlY3RvcnMgPSAyOyBudW1fdmVjdG9ycyA8PSA0OyBudW1fdmVjdG9ycyAr PSAyKQorICAgIHsKKyAgICAgIHNucHJpbnRmIChidWZmZXIsIHNpemVvZiAoYnVmZmVyKSwgIiUu KnN4JWRfdCIsCisJCShpbnQpIHN0cmxlbiAodmVjdG9yX3R5cGVfbmFtZSkgLSAyLCB2ZWN0b3Jf dHlwZV9uYW1lLAorCQludW1fdmVjdG9ycyk7CisKKyAgICAgIHRyZWUgdmVjdHlwZSA9IGFjbGVf dmVjdG9yX3R5cGVzWzBdW3R5cGVdOworICAgICAgdHJlZSBhcnJ0eXBlID0gYnVpbGRfYXJyYXlf dHlwZV9uZWx0cyAodmVjdHlwZSwgbnVtX3ZlY3RvcnMpOworICAgICAgZ2NjX2Fzc2VydCAoVFlQ RV9NT0RFX1JBVyAoYXJydHlwZSkgPT0gVFlQRV9NT0RFIChhcnJ0eXBlKSk7CisgICAgICB0cmVl IGZpZWxkID0gYnVpbGRfZGVjbCAoaW5wdXRfbG9jYXRpb24sIEZJRUxEX0RFQ0wsCisJCQkgICAg ICAgZ2V0X2lkZW50aWZpZXIgKCJ2YWwiKSwgYXJydHlwZSk7CisKKyAgICAgIHRyZWUgdCA9IGxh bmdfaG9va3MudHlwZXMuc2ltdWxhdGVfcmVjb3JkX2RlY2wgKGlucHV0X2xvY2F0aW9uLCBidWZm ZXIsCisJCQkJCQkgICAgICBtYWtlX2FycmF5X3NsaWNlICgmZmllbGQsCisJCQkJCQkJCQkxKSk7 CisgICAgICBnY2NfYXNzZXJ0IChUWVBFX01PREVfUkFXICh0KSA9PSBUWVBFX01PREUgKHQpKTsK KyAgICAgIGFjbGVfdmVjdG9yX3R5cGVzW251bV92ZWN0b3JzID4+IDFdW3R5cGVdID0gVFJFRV9U WVBFICh0KTsKKyAgICB9Cit9CisKKy8qIEltcGxlbWVudCAjcHJhZ21hIEdDQyBhcm0gImFybV9t dmVfdHlwZXMuaCIuICAqLwordm9pZAoraGFuZGxlX2FybV9tdmVfdHlwZXNfaCAoKQoreworICBp ZiAoaGFuZGxlX2FybV9tdmVfdHlwZXNfcCkKKyAgICB7CisgICAgICBlcnJvciAoImR1cGxpY2F0 ZSBkZWZpbml0aW9uIG9mICVxcyIsICJhcm1fbXZlX3R5cGVzLmgiKTsKKyAgICAgIHJldHVybjsK KyAgICB9CisgIGhhbmRsZV9hcm1fbXZlX3R5cGVzX3AgPSB0cnVlOworICBpZiAoIVRBUkdFVF9I QVZFX01WRSkKKyAgICB7CisgICAgICBlcnJvciAoInRoaXMgZGVmaW5pdGlvbiByZXF1aXJlcyB0 aGUgTVZFIElTQSBleHRlbnNpb24iKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIHJlZ2lzdGVy X2J1aWx0aW5fdHlwZXMgKCk7CisgIGZvciAodW5zaWduZWQgaW50IHR5cGVfaSA9IDA7IHR5cGVf aSA8IE5VTV9WRUNUT1JfVFlQRVM7ICsrdHlwZV9pKQorICAgIHsKKyAgICAgIHZlY3Rvcl90eXBl X2luZGV4IHR5cGUgPSB2ZWN0b3JfdHlwZV9pbmRleCAodHlwZV9pKTsKKyAgICAgIHJlZ2lzdGVy X3ZlY3Rvcl90eXBlICh0eXBlKTsKKyAgICAgIGlmICh0eXBlX2kgIT0gVkVDVE9SX1RZUEVfbXZl X3ByZWQxNl90KQorCXJlZ2lzdGVyX2J1aWx0aW5fdHVwbGVfdHlwZXMgKHR5cGUpOworICAgIH0K K30KKworfQorCit1c2luZyBuYW1lc3BhY2UgYXJtX212ZTsKKworI2luY2x1ZGUgImd0LWFybS1t dmUtYnVpbHRpbnMuaCIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1tdmUtYnVpbHRp bnMuZGVmIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLW12ZS1idWlsdGlucy5kZWYKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u MDJhNDZiZWMzZTRjYmE2YWRkOWJjZTQwMjFjNzMyZTE1YWE4YjAxMgotLS0gL2Rldi9udWxsCisr KyBiL2djYy9jb25maWcvYXJtL2FybS1tdmUtYnVpbHRpbnMuZGVmCkBAIC0wLDAgKzEsNDEgQEAK Ky8qIEJ1aWx0aW4gbGlzdHMgZm9yIEFybSBNVkUKKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0ND LgorCisgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeSBpdAorICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAgIGFueSBsYXRlciB2 ZXJzaW9uLgorCisgICBHQ0MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCBHQ0M7 IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5kZWYgREVGX01WRV9UWVBFCisjZGVmaW5lIERFRl9N VkVfVFlQRShBLCBCKQorI2VuZGlmCisKKyNkZWZpbmUgUkVRVUlSRVNfRkxPQVQgZmFsc2UKK0RF Rl9NVkVfVFlQRSAobXZlX3ByZWQxNl90LCBib29sZWFuX3R5cGVfbm9kZSkKK0RFRl9NVkVfVFlQ RSAodWludDh4MTZfdCwgdW5zaWduZWRfaW50UUlfdHlwZV9ub2RlKQorREVGX01WRV9UWVBFICh1 aW50MTZ4OF90LCB1bnNpZ25lZF9pbnRISV90eXBlX25vZGUpCitERUZfTVZFX1RZUEUgKHVpbnQz Mng0X3QsIHVuc2lnbmVkX2ludFNJX3R5cGVfbm9kZSkKK0RFRl9NVkVfVFlQRSAodWludDY0eDJf dCwgdW5zaWduZWRfaW50RElfdHlwZV9ub2RlKQorREVGX01WRV9UWVBFIChpbnQ4eDE2X3QsIGlu dFFJX3R5cGVfbm9kZSkKK0RFRl9NVkVfVFlQRSAoaW50MTZ4OF90LCBpbnRISV90eXBlX25vZGUp CitERUZfTVZFX1RZUEUgKGludDMyeDRfdCwgaW50U0lfdHlwZV9ub2RlKQorREVGX01WRV9UWVBF IChpbnQ2NHgyX3QsIGludERJX3R5cGVfbm9kZSkKKyN1bmRlZiBSRVFVSVJFU19GTE9BVAorCisj ZGVmaW5lIFJFUVVJUkVTX0ZMT0FUIHRydWUKK0RFRl9NVkVfVFlQRSAoZmxvYXQxNng4X3QsIGFy bV9mcDE2X3R5cGVfbm9kZSkKK0RFRl9NVkVfVFlQRSAoZmxvYXQzMng0X3QsIGZsb2F0X3R5cGVf bm9kZSkKKyN1bmRlZiBSRVFVSVJFU19GTE9BVAorCisjdW5kZWYgREVGX01WRV9UWVBFCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0tbXZlLWJ1aWx0aW5zLmggYi9nY2MvY29uZmlnL2Fy bS9hcm0tbXZlLWJ1aWx0aW5zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE2NWNlNjk5N2I0NTYwZmM4NzYyNmJl NGJiYWEwZThhZmNiYmZlZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvYXJtL2FybS1t dmUtYnVpbHRpbnMuaApAQCAtMCwwICsxLDQxIEBACisvKiBBQ0xFIHN1cHBvcnQgZm9yIEFybSBN VkUKKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorCisgICBHQ0MgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICAgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChh dCB5b3VyIG9wdGlvbikKKyAgIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBHQ0MgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisgICBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorICAgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElm IG5vdCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5k ZWYgR0NDX0FSTV9NVkVfQlVJTFRJTlNfSAorI2RlZmluZSBHQ0NfQVJNX01WRV9CVUlMVElOU19I CisKK25hbWVzcGFjZSBhcm1fbXZlIHsKKworLyogRW51bWVyYXRlcyB0aGUgTVZFIHByZWRpY2F0 ZSBhbmQgKGRhdGEpIHZlY3RvciB0eXBlcywgdG9nZXRoZXIgY2FsbGVkCisgICAidmVjdG9yIHR5 cGVzIiBmb3IgYnJldml0eS4gICovCitlbnVtIHZlY3Rvcl90eXBlX2luZGV4Cit7CisjZGVmaW5l IERFRl9NVkVfVFlQRShBQ0xFX05BTUUsIFNDQUxBUl9UWVBFKSBcCisgIFZFQ1RPUl9UWVBFXyAj IyBBQ0xFX05BTUUsCisjaW5jbHVkZSAiYXJtLW12ZS1idWlsdGlucy5kZWYiCisgIE5VTV9WRUNU T1JfVFlQRVMKK307CisjdW5kZWYgREVGX01WRV9UWVBFCisKK2V4dGVybiB0cmVlIHNjYWxhcl90 eXBlc1tOVU1fVkVDVE9SX1RZUEVTXTsKK2V4dGVybiB0cmVlIGFjbGVfdmVjdG9yX3R5cGVzWzNd W05VTV9WRUNUT1JfVFlQRVMgKyAxXTsKKworfQorCisjZW5kaWYgLyogR0NDX0FSTV9NVkVfQlVJ TFRJTlNfSCAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIGIvZ2Nj L2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCmluZGV4IDliMWY2MTM5NGFkN2Q3NzhhNmMwYjg0YmM2 YzgwNWYxNDcwOWY1OTguLmM5MWNiNWFkNjliOWQ5MTFjMzFlNjAxOGEyY2E2YmYyYWM2MjM5ZDMg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaAorKysgYi9nY2MvY29uZmln L2FybS9hcm0tcHJvdG9zLmgKQEAgLTIwNCw2ICsyMDQsMTEgQEAgZXh0ZXJuIGludCBhcm1fYXBw bHlfcmVzdWx0X3NpemUgKHZvaWQpOwogCiAjZW5kaWYgLyogUlRYX0NPREUgKi8KIAorLyogTVZF IGZ1bmN0aW9ucy4gICovCituYW1lc3BhY2UgYXJtX212ZSB7CisgIHZvaWQgaGFuZGxlX2FybV9t dmVfdHlwZXNfaCAoKTsKK30KKwogLyogVGh1bWIgZnVuY3Rpb25zLiAgKi8KIGV4dGVybiB2b2lk IGFybV9pbml0X2V4cGFuZGVycyAodm9pZCk7CiBleHRlcm4gY29uc3QgY2hhciAqdGh1bWIxX3Vu ZXhwYW5kZWRfZXBpbG9ndWUgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJt X212ZV90eXBlcy5oIGIvZ2NjL2NvbmZpZy9hcm0vYXJtX212ZV90eXBlcy5oCmluZGV4IDg5NThm NGVmZGI5OTUyNjAyODg3YmZjYjE4NmRiNmU4MzY0ZDYzNTEuLjdmYmM4OWI1OTgyZWE3M2RlOTcz ZGZjMjU3NzRhOGY2N2NhOGJmNDggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL2FybV9tdmVf dHlwZXMuaAorKysgYi9nY2MvY29uZmlnL2FybS9hcm1fbXZlX3R5cGVzLmgKQEAgLTI1LDM3ICsy NSw5IEBACiAjaWYgKF9fQVJNX0ZFQVRVUkVfTVZFICYgMikgLyogTVZFIEZsb2F0aW5nIHBvaW50 LiAgKi8KIHR5cGVkZWYgX19mcDE2IGZsb2F0MTZfdDsKIHR5cGVkZWYgZmxvYXQgZmxvYXQzMl90 OwotdHlwZWRlZiBfX3NpbWQxMjhfZmxvYXQxNl90IGZsb2F0MTZ4OF90OwotdHlwZWRlZiBfX3Np bWQxMjhfZmxvYXQzMl90IGZsb2F0MzJ4NF90OwotCi10eXBlZGVmIHN0cnVjdCB7IGZsb2F0MTZ4 OF90IHZhbFsyXTsgfSBmbG9hdDE2eDh4Ml90OwotdHlwZWRlZiBzdHJ1Y3QgeyBmbG9hdDE2eDhf dCB2YWxbNF07IH0gZmxvYXQxNng4eDRfdDsKLXR5cGVkZWYgc3RydWN0IHsgZmxvYXQzMng0X3Qg dmFsWzJdOyB9IGZsb2F0MzJ4NHgyX3Q7Ci10eXBlZGVmIHN0cnVjdCB7IGZsb2F0MzJ4NF90IHZh bFs0XTsgfSBmbG9hdDMyeDR4NF90OwogI2VuZGlmCiAKLXR5cGVkZWYgdWludDE2X3QgbXZlX3By ZWQxNl90OwotdHlwZWRlZiBfX3NpbWQxMjhfdWludDhfdCB1aW50OHgxNl90OwotdHlwZWRlZiBf X3NpbWQxMjhfdWludDE2X3QgdWludDE2eDhfdDsKLXR5cGVkZWYgX19zaW1kMTI4X3VpbnQzMl90 IHVpbnQzMng0X3Q7Ci10eXBlZGVmIF9fc2ltZDEyOF91aW50NjRfdCB1aW50NjR4Ml90OwotdHlw ZWRlZiBfX3NpbWQxMjhfaW50OF90IGludDh4MTZfdDsKLXR5cGVkZWYgX19zaW1kMTI4X2ludDE2 X3QgaW50MTZ4OF90OwotdHlwZWRlZiBfX3NpbWQxMjhfaW50MzJfdCBpbnQzMng0X3Q7Ci10eXBl ZGVmIF9fc2ltZDEyOF9pbnQ2NF90IGludDY0eDJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQx Nng4X3QgdmFsWzJdOyB9IGludDE2eDh4Ml90OwotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQxNng4X3Qg dmFsWzRdOyB9IGludDE2eDh4NF90OwotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQzMng0X3QgdmFsWzJd OyB9IGludDMyeDR4Ml90OwotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQzMng0X3QgdmFsWzRdOyB9IGlu dDMyeDR4NF90OwotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQ4eDE2X3QgdmFsWzJdOyB9IGludDh4MTZ4 Ml90OwotdHlwZWRlZiBzdHJ1Y3QgeyBpbnQ4eDE2X3QgdmFsWzRdOyB9IGludDh4MTZ4NF90Owot dHlwZWRlZiBzdHJ1Y3QgeyB1aW50MTZ4OF90IHZhbFsyXTsgfSB1aW50MTZ4OHgyX3Q7Ci10eXBl ZGVmIHN0cnVjdCB7IHVpbnQxNng4X3QgdmFsWzRdOyB9IHVpbnQxNng4eDRfdDsKLXR5cGVkZWYg c3RydWN0IHsgdWludDMyeDRfdCB2YWxbMl07IH0gdWludDMyeDR4Ml90OwotdHlwZWRlZiBzdHJ1 Y3QgeyB1aW50MzJ4NF90IHZhbFs0XTsgfSB1aW50MzJ4NHg0X3Q7Ci10eXBlZGVmIHN0cnVjdCB7 IHVpbnQ4eDE2X3QgdmFsWzJdOyB9IHVpbnQ4eDE2eDJfdDsKLXR5cGVkZWYgc3RydWN0IHsgdWlu dDh4MTZfdCB2YWxbNF07IH0gdWludDh4MTZ4NF90OworI3ByYWdtYSBHQ0MgYXJtICJhcm1fbXZl X3R5cGVzLmgiCiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdAogX19h dHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vdC1hcm0gYi9nY2MvY29uZmlnL2Fy bS90LWFybQppbmRleCA1ZjY5ZWU2NDUxZWZiODcwOWZlOWI0NTVhNDVjMmU2MzRlMDA5MTcwLi5m NjU1ZjM2OTcyNGNhNzExZjBhMzg5YWJhZjBlNzBhZGIzYWI0YjdjIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL2FybS90LWFybQorKysgYi9nY2MvY29uZmlnL2FybS90LWFybQpAQCAtMTUzLDYgKzE1 MywxNiBAQCBhcm0tYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5z LmMgJChDT05GSUdfSCkgXAogCSQoQ09NUElMRVIpIC1jICQoQUxMX0NPTVBJTEVSRkxBR1MpICQo QUxMX0NQUEZMQUdTKSAkKElOQ0xVREVTKSBcCiAJCSQoc3JjZGlyKS9jb25maWcvYXJtL2FybS1i dWlsdGlucy5jCiAKK2FybS1tdmUtYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZpZy9hcm0vYXJt LW12ZS1idWlsdGlucy5jYyAkKENPTkZJR19IKSBcCisgICQoU1lTVEVNX0gpIGNvcmV0eXBlcy5o ICQoVE1fSCkgJChUUkVFX0gpIFwKKyAgZm9sZC1jb25zdC5oIGxhbmdob29rcy5oIHN0cmluZ3Bv b2wuaCBhdHRyaWJzLmggZGlhZ25vc3RpYy5oIFwKKyAgJChzcmNkaXIpL2NvbmZpZy9hcm0vYXJt LXByb3Rvcy5oIFwKKyAgJChzcmNkaXIpL2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5zLmggXAorICAk KHNyY2RpcikvY29uZmlnL2FybS9hcm0tbXZlLWJ1aWx0aW5zLmggXAorICAkKHNyY2RpcikvY29u ZmlnL2FybS9hcm0tbXZlLWJ1aWx0aW5zLmRlZgorCSQoQ09NUElMRVIpIC1jICQoQUxMX0NPTVBJ TEVSRkxBR1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xVREVTKSBcCisJCSQoc3JjZGlyKS9jb25m aWcvYXJtL2FybS1tdmUtYnVpbHRpbnMuY2MKKwogYXJtLWMubzogJChzcmNkaXIpL2NvbmZpZy9h cm0vYXJtLWMuYyAkKENPTkZJR19IKSAkKFNZU1RFTV9IKSBcCiAgICAgY29yZXR5cGVzLmggJChU TV9IKSAkKFRSRUVfSCkgb3V0cHV0LmggJChDX0NPTU1PTl9IKQogCSQoQ09NUElMRVIpIC1jICQo QUxMX0NPTVBJTEVSRkxBR1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xVREVTKSBcCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9nZW5lcmFsLWMvdHlwZV9yZWRl Zl8xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9nZW5lcmFsLWMvdHlwZV9y ZWRlZl8xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QyMzBmMTRiMmJiMTM2YzRiNGFiN2IzMzUzOTRiYzMxZWIw NGY3MQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L2dlbmVyYWwtYy90eXBlX3JlZGVmXzEuYwpAQCAtMCwwICsxLDY3IEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212 ZV9mcF9vayB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmVfZnAgfSAqLwor CitpbnQgbXZlX3ByZWQxNl90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xh cmF0aW9uIG9mICdtdmVfcHJlZDE2X3QnIiB9ICovCitpbnQgaW50OHgxNl90OyAvKiB7IGRnLW1l c3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdpbnQ4eDE2X3QnIiB9ICovCitp bnQgaW50MTZ4OF90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9u IG9mICdpbnQxNng4X3QnIiB9ICovCitpbnQgaW50MzJ4NF90OyAvKiB7IGRnLW1lc3NhZ2UgIm5v dGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdpbnQzMng0X3QnIiB9ICovCitpbnQgaW50NjR4 Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdpbnQ2 NHgyX3QnIiB9ICovCitpbnQgdWludDh4MTZfdDsgLyogeyBkZy1tZXNzYWdlICJub3RlOiBwcmV2 aW91cyBkZWNsYXJhdGlvbiBvZiAndWludDh4MTZfdCciIH0gKi8KK2ludCB1aW50MTZ4OF90OyAv KiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICd1aW50MTZ4OF90 JyIgfSAqLworaW50IHVpbnQzMng0X3Q7IC8qIHsgZGctbWVzc2FnZSAibm90ZTogcHJldmlvdXMg ZGVjbGFyYXRpb24gb2YgJ3VpbnQzMng0X3QnIiB9ICovCitpbnQgdWludDY0eDJfdDsgLyogeyBk Zy1tZXNzYWdlICJub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAndWludDY0eDJfdCciIH0g Ki8KK2ludCBmbG9hdDE2eDhfdDsgLyogeyBkZy1tZXNzYWdlICJub3RlOiBwcmV2aW91cyBkZWNs YXJhdGlvbiBvZiAnZmxvYXQxNng4X3QnIiB9ICovCitpbnQgZmxvYXQzMng0X3Q7IC8qIHsgZGct bWVzc2FnZSAibm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2Zsb2F0MzJ4NF90JyIgfSAq LworaW50IGludDh4MTZ4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xh cmF0aW9uIG9mICdpbnQ4eDE2eDJfdCciIH0gKi8KK2ludCBpbnQ4eDE2eDRfdDsgLyogeyBkZy1t ZXNzYWdlICJub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnaW50OHgxNng0X3QnIiB9ICov CitpbnQgaW50MTZ4OHgyX3Q7IC8qIHsgZGctbWVzc2FnZSAibm90ZTogcHJldmlvdXMgZGVjbGFy YXRpb24gb2YgJ2ludDE2eDh4Ml90JyIgfSAqLworaW50IGludDE2eDh4NF90OyAvKiB7IGRnLW1l c3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdpbnQxNng4eDRfdCciIH0gKi8K K2ludCBpbnQzMng0eDJfdDsgLyogeyBkZy1tZXNzYWdlICJub3RlOiBwcmV2aW91cyBkZWNsYXJh dGlvbiBvZiAnaW50MzJ4NHgyX3QnIiB9ICovCitpbnQgaW50MzJ4NHg0X3Q7IC8qIHsgZGctbWVz c2FnZSAibm90ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2ludDMyeDR4NF90JyIgfSAqLwor aW50IGludDY0eDJ4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0 aW9uIG9mICdpbnQ2NHgyeDJfdCciIH0gKi8KK2ludCBpbnQ2NHgyeDRfdDsgLyogeyBkZy1tZXNz YWdlICJub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnaW50NjR4Mng0X3QnIiB9ICovCitp bnQgdWludDh4MTZ4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0 aW9uIG9mICd1aW50OHgxNngyX3QnIiB9ICovCitpbnQgdWludDh4MTZ4NF90OyAvKiB7IGRnLW1l c3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICd1aW50OHgxNng0X3QnIiB9ICov CitpbnQgdWludDE2eDh4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xh cmF0aW9uIG9mICd1aW50MTZ4OHgyX3QnIiB9ICovCitpbnQgdWludDE2eDh4NF90OyAvKiB7IGRn LW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICd1aW50MTZ4OHg0X3QnIiB9 ICovCitpbnQgdWludDMyeDR4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRl Y2xhcmF0aW9uIG9mICd1aW50MzJ4NHgyX3QnIiB9ICovCitpbnQgdWludDMyeDR4NF90OyAvKiB7 IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICd1aW50MzJ4NHg0X3Qn IiB9ICovCitpbnQgdWludDY0eDJ4Ml90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3Vz IGRlY2xhcmF0aW9uIG9mICd1aW50NjR4MngyX3QnIiB9ICovCitpbnQgdWludDY0eDJ4NF90OyAv KiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICd1aW50NjR4Mng0 X3QnIiB9ICovCitpbnQgZmxvYXQxNng4eDJfdDsgLyogeyBkZy1tZXNzYWdlICJub3RlOiBwcmV2 aW91cyBkZWNsYXJhdGlvbiBvZiAnZmxvYXQxNng4eDJfdCciIH0gKi8KK2ludCBmbG9hdDE2eDh4 NF90OyAvKiB7IGRnLW1lc3NhZ2UgIm5vdGU6IHByZXZpb3VzIGRlY2xhcmF0aW9uIG9mICdmbG9h dDE2eDh4NF90JyIgfSAqLworaW50IGZsb2F0MzJ4NHgyX3Q7IC8qIHsgZGctbWVzc2FnZSAibm90 ZTogcHJldmlvdXMgZGVjbGFyYXRpb24gb2YgJ2Zsb2F0MzJ4NHgyX3QnIiB9ICovCitpbnQgZmxv YXQzMng0eDRfdDsgLyogeyBkZy1tZXNzYWdlICJub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBv ZiAnZmxvYXQzMng0eDRfdCciIH0gKi8KKworI3ByYWdtYSBHQ0MgYXJtICJhcm1fbXZlX3R5cGVz LmgiICAvKiB7IGRnLWVycm9yIHsnbXZlX3ByZWQxNl90JyByZWRlY2xhcmVkfSB9ICovCisgIC8q IHsgZGctZXJyb3IgeydpbnQ4eDE2X3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4t MSB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQxNng4X3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJn ZXQgKi0qLSp9IC4tMiB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQzMng0X3QnIHJlZGVjbGFy ZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tMyB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQ2NHgy X3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tNCB9ICovCisgIC8qIHsgZGctZXJy b3Igeyd1aW50OHgxNl90JyByZWRlY2xhcmVkfSAiIiB7dGFyZ2V0ICotKi0qfSAuLTUgfSAqLwor ICAvKiB7IGRnLWVycm9yIHsndWludDE2eDhfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSot Kn0gLi02IH0gKi8KKyAgLyogeyBkZy1lcnJvciB7J3VpbnQzMng0X3QnIHJlZGVjbGFyZWR9ICIi IHt0YXJnZXQgKi0qLSp9IC4tNyB9ICovCisgIC8qIHsgZGctZXJyb3Igeyd1aW50NjR4Ml90JyBy ZWRlY2xhcmVkfSAiIiB7dGFyZ2V0ICotKi0qfSAuLTggfSAqLworICAvKiB7IGRnLWVycm9yIHsn ZmxvYXQxNng4X3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tOSB9ICovCisgIC8q IHsgZGctZXJyb3IgeydmbG9hdDMyeDRfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0g Li0xMCB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQ4eDE2eDJfdCcgcmVkZWNsYXJlZH0gIiIg e3RhcmdldCAqLSotKn0gLi0xMSB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQ4eDE2eDRfdCcg cmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0xMiB9ICovCisgIC8qIHsgZGctZXJyb3Ig eydpbnQxNng4eDJfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0xMyB9ICovCisg IC8qIHsgZGctZXJyb3IgeydpbnQxNng4eDRfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSot Kn0gLi0xNCB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQzMng0eDJfdCcgcmVkZWNsYXJlZH0g IiIge3RhcmdldCAqLSotKn0gLi0xNSB9ICovCisgIC8qIHsgZGctZXJyb3IgeydpbnQzMng0eDRf dCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0xNiB9ICovCisgIC8qIHsgZGctZXJy b3IgeydpbnQ2NHgyeDJfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0xNyB9ICov CisgIC8qIHsgZGctZXJyb3IgeydpbnQ2NHgyeDRfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAq LSotKn0gLi0xOCB9ICovCisgIC8qIHsgZGctZXJyb3Igeyd1aW50OHgxNngyX3QnIHJlZGVjbGFy ZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tMTkgfSAqLworICAvKiB7IGRnLWVycm9yIHsndWludDh4 MTZ4NF90JyByZWRlY2xhcmVkfSAiIiB7dGFyZ2V0ICotKi0qfSAuLTIwIH0gKi8KKyAgLyogeyBk Zy1lcnJvciB7J3VpbnQxNng4eDJfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0y MSB9ICovCisgIC8qIHsgZGctZXJyb3Igeyd1aW50MTZ4OHg0X3QnIHJlZGVjbGFyZWR9ICIiIHt0 YXJnZXQgKi0qLSp9IC4tMjIgfSAqLworICAvKiB7IGRnLWVycm9yIHsndWludDMyeDR4Ml90JyBy ZWRlY2xhcmVkfSAiIiB7dGFyZ2V0ICotKi0qfSAuLTIzIH0gKi8KKyAgLyogeyBkZy1lcnJvciB7 J3VpbnQzMng0eDRfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0yNCB9ICovCisg IC8qIHsgZGctZXJyb3Igeyd1aW50NjR4MngyX3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0q LSp9IC4tMjUgfSAqLworICAvKiB7IGRnLWVycm9yIHsndWludDY0eDJ4NF90JyByZWRlY2xhcmVk fSAiIiB7dGFyZ2V0ICotKi0qfSAuLTI2IH0gKi8KKyAgLyogeyBkZy1lcnJvciB7J2Zsb2F0MTZ4 OHgyX3QnIHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tMjcgfSAqLworICAvKiB7IGRn LWVycm9yIHsnZmxvYXQxNng4eDRfdCcgcmVkZWNsYXJlZH0gIiIge3RhcmdldCAqLSotKn0gLi0y OCB9ICovCisgIC8qIHsgZGctZXJyb3IgeydmbG9hdDMyeDR4Ml90JyByZWRlY2xhcmVkfSAiIiB7 dGFyZ2V0ICotKi0qfSAuLTI5IH0gKi8KKyAgLyogeyBkZy1lcnJvciB7J2Zsb2F0MzJ4NHg0X3Qn IHJlZGVjbGFyZWR9ICIiIHt0YXJnZXQgKi0qLSp9IC4tMzAgfSAqLwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvZ2VuZXJhbC9kb3VibGVfcHJhZ21hc18xLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9nZW5lcmFsL2RvdWJsZV9wcmFnbWFz XzEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi41ODQ2NmRiNjk0MGQzZjI3MmNhNmY5MGVhNjk3YTRiMzU0NDBiYmU2 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvZ2Vu ZXJhbC9kb3VibGVfcHJhZ21hc18xLmMKQEAgLTAsMCArMSw4IEBACisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9v ayB9ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLworCisvKiBJdCBk b2Vzbid0IHJlYWxseSBtYXR0ZXIgaWYgdGhpcyBwcm9kdWNlcyBlcnJvcnMgYWJvdXQgcmVkZWZp bml0aW9ucywKKyAgIGJ1dCBpdCBtdXN0bid0IHRyaWdnZXIgYW4gSUNFLiAgKi8KKyNwcmFnbWEg R0NDIGFybSAiYXJtX212ZV90eXBlcy5oIgorI3ByYWdtYSBHQ0MgYXJtICJhcm1fbXZlX3R5cGVz LmgiIC8qIHsgZGctZXJyb3IgImR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mICdhcm1fbXZlX3R5cGVz LmgnIiB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9n ZW5lcmFsL25vbXZlXzEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2dlbmVy YWwvbm9tdmVfMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkZmI5NzRiN2EyM2M3MGIyYmViOTEzOGE3NWVhODhj YzM5ZWNhNWQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L212ZS9nZW5lcmFsL25vbXZlXzEuYwpAQCAtMCwwICsxLDMgQEAKKy8qIHsgZGctb3B0aW9ucyAi LW1mbG9hdC1hYmk9c29mdCIgfSAqLworCisjcHJhZ21hIEdDQyBhcm0gImFybV9tdmVfdHlwZXMu aCIgIC8qIHsgZGctZXJyb3Ige3RoaXMgZGVmaW5pdGlvbiByZXF1aXJlcyB0aGUgTVZFIElTQSBl eHRlbnNpb259IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v bXZlL212ZS5leHAgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9tdmUuZXhwCmlu ZGV4IGE4NThlNTJkOTIwOGI2ZTJiYmQzYzIxNzVlZDQ1NzI0ODcxNTk4ZTIuLjdjZWEwM2Q2YmVm YzlhNzA4MGFjYjU4YjAyNDVhZjU3NmExOWU2MWMgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vbXZlL212ZS5leHAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FybS9tdmUvbXZlLmV4cApAQCAtNDQsNiArNDQsMTIgQEAgZGctaW5pdAogZGctcnVudGVzdCBb bHNvcnQgW2dsb2IgLW5vY29tcGxhaW4gJHNyY2Rpci8kc3ViZGlyL2ludHJpbnNpY3MvKi5cW2ND U1xdXV0gXAogCSIiICRERUZBVUxUX0NGTEFHUwogCitkZy1ydW50ZXN0IFtsc29ydCBbZ2xvYiAt bm9jb21wbGFpbiAkc3JjZGlyLyRzdWJkaXIvZ2VuZXJhbC8qLlxbY0NTXF1dXSBcCisJIiIgJERF RkFVTFRfQ0ZMQUdTCisKK2RnLXJ1bnRlc3QgW2xzb3J0IFtnbG9iIC1ub2NvbXBsYWluICRzcmNk aXIvJHN1YmRpci9nZW5lcmFsLWMvKi5cW2NDU1xdXV0gXAorICAgICAgICAiIiAkREVGQVVMVF9D RkxBR1MKKwogZGctcnVudGVzdCBbbHNvcnQgW2dsb2IgLW5vY29tcGxhaW4gJHNyY2Rpci8kc3Vi ZGlyLyouXFtjQ1NcXV1dIFwKIAkiIiAkREVGQVVMVF9DRkxBR1MKIAo= --------------06EBA43ECB4E8A44E02D136F--