From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00040.outbound.protection.outlook.com [40.107.0.40]) by sourceware.org (Postfix) with ESMTPS id 3AC803840C2C for ; Thu, 23 Jul 2020 17:37:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3AC803840C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Matthew.Malcomson@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=IQwne+6hrpcshT23N51dqQ2uI3FgVZut8h4vgIL+kr0=; b=Mv4qdYGFqhIVmZmBP1t5gqEFAoy2Jyzt4m8paacgriCos4L7qj4oKo7I4ZKT2WNZtYZgjH+AeJ9OPVRYCRjOq9MCvVQnnXQqEl1yU8Qc2HaG2UXpGrKiVJc7lanXinAftRJkxfHD9H9DQW2MkK5Kizq9QhFcku+FWkfCkv/9Gv0= Received: from AM6P193CA0048.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::25) by AM0PR08MB4180.eurprd08.prod.outlook.com (2603:10a6:208:12d::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.22; Thu, 23 Jul 2020 17:37:02 +0000 Received: from AM5EUR03FT048.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8e:cafe::4d) by AM6P193CA0048.outlook.office365.com (2603:10a6:209:8e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.21 via Frontend Transport; Thu, 23 Jul 2020 17:37:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; sourceware.org; dmarc=bestguesspass 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 AM5EUR03FT048.mail.protection.outlook.com (10.152.17.177) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.10 via Frontend Transport; Thu, 23 Jul 2020 17:37:02 +0000 Received: ("Tessian outbound 1c27ecaec3d6:v62"); Thu, 23 Jul 2020 17:37:01 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2fc66e603bc966c8 X-CR-MTA-TID: 64aa7808 Received: from e8f796fb7d18.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F5D6821B-D4BA-450F-BFD4-B97D77E8C6D2.1; Thu, 23 Jul 2020 17:36:55 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e8f796fb7d18.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 23 Jul 2020 17:36:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YqoIXndh6h6C9S3pMpnGfGFlkeOA8uZyKt5tCCNMIipyA3Y4KrdvbdHFDCTkl95YR8p3/plg3FoF8Mo603r2NYE7FdjNEzssJqirAaodKFJtKh8Uvb8gslQnj/RZbau6tmO1iMoSfdS5KZJ/5iqd75OAGNv55eHtKAu7RWeE/NxG+PhPobR8Fy9wvlOGitRC9ypnJP/D9LnYa4ibn0P9Aw/D8qsFy5p5/bsBw30+5wKS32StpRWBvSwFC/tkGu86qtrhYJpcame03mt/q9TlPir/UUUyGNMKhRHNt19BT2oUAgD+bmFeeNNmZDgHa2EiboLzEq1rXGENwpMCwv3ylg== 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-SenderADCheck; bh=IQwne+6hrpcshT23N51dqQ2uI3FgVZut8h4vgIL+kr0=; b=SsRZpirREa4xiiuKKG8HU27uETqbvbNBo48+EqRziwJYyb7L0I0luN+VOV8YjMQ/d3bbA4XPRbZ+jtkdsWsA5rSTRRc0+Vs3Iwh5pce6WWOBIOiHOP5PEgrmFqx8ltyt81Q52E+p6K4X8DPjg2oUvmbjNRsnjLdP3gk/frVoiC4G689Lk2iABBZq7PyDV5gXz9ASOjJ6g0ix7SXmcxektaA/akdafXBCtY8Hprhi/JzGfeTkBXl7mPiGnRf/I6ZFFU4DRJz8Mb2RqRKglOFXN6VLnneMSdZQiUEn3WDsBrwSHo8h8Qiq7WhIfUpX5Ey9962rFqwHIDffqBZOK4ZuIA== 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=IQwne+6hrpcshT23N51dqQ2uI3FgVZut8h4vgIL+kr0=; b=Mv4qdYGFqhIVmZmBP1t5gqEFAoy2Jyzt4m8paacgriCos4L7qj4oKo7I4ZKT2WNZtYZgjH+AeJ9OPVRYCRjOq9MCvVQnnXQqEl1yU8Qc2HaG2UXpGrKiVJc7lanXinAftRJkxfHD9H9DQW2MkK5Kizq9QhFcku+FWkfCkv/9Gv0= Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Received: from AM6PR08MB3157.eurprd08.prod.outlook.com (2603:10a6:209:48::24) by AM6PR08MB3384.eurprd08.prod.outlook.com (2603:10a6:20b:4a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.21; Thu, 23 Jul 2020 17:36:54 +0000 Received: from AM6PR08MB3157.eurprd08.prod.outlook.com ([fe80::5f9:be56:311a:c1dd]) by AM6PR08MB3157.eurprd08.prod.outlook.com ([fe80::5f9:be56:311a:c1dd%3]) with mapi id 15.20.3216.024; Thu, 23 Jul 2020 17:36:54 +0000 Content-Type: multipart/mixed; boundary="===============3805409109784750471==" From: Matthew Malcomson Date: Thu, 23 Jul 2020 17:48:56 +0100 To: Alan Hayward Cc: gdb-patches , nd , Luis Machado References: <9226b8ae-aaea-65c3-3e86-f607b11fd375@linaro.org> <9EACDC38-BB8D-4804-AD19-057E3309819A@arm.com> In-Reply-To: Subject: Re: [Patch] GDB: aarch64: Add ability to step over a BR/BLR instruction X-ClientProxiedBy: LO2P265CA0207.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::27) To AM6PR08MB3157.eurprd08.prod.outlook.com (2603:10a6:209:48::24) Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from e120487-lin.cambridge.arm.com (217.140.106.52) by LO2P265CA0207.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23 via Frontend Transport; Thu, 23 Jul 2020 17:36:53 +0000 X-Originating-IP: [217.140.106.52] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 945d515f-3fea-4997-0962-08d82f2f0243 X-MS-TrafficTypeDiagnostic: AM6PR08MB3384:|AM0PR08MB4180: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jBBWFFOcatS7jd6Puc7u8mMLOAGB8f7DoSutQ9fLLoXeakFgtTs0jfnjFTbnCLQx9f7emH+lghcow4D8yqQ+/55oGzg1QtA+0K7Yj8JCmvNpoXJqzmAH7Qxjt2UeotndWeM7rnr9PiG3NtVrEPoW5JZF7Skwt87p9vz9nW7wOiicmbp25vCupkw/xRP7Gzlev/YSW3daFTZAFJZVnhazj8ZXdfkj8ca9qKgJKhUy/T/uOP8DaObYPov2qbUNNWF3xB4DpRAmmkae9m2/RsClmpPSsglqvrkBtdkgaCvfjc4HlqF/DeAiFVdCI83txS3G04UlYhEPrdN3ihPc4MwHFqyobHPuR1oV60VVFytPVvFw7HOIsDtNHhcGz7gKkz+iN1DHu2U+QsqEKdsy7NEcoOTDArfQ2AdeidXMGRHHr5dYsbr+DJcAId6LTZAXv9S4587r8XS4f7gAoXek/jBIxA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3157.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(44832011)(52536014)(6636002)(8676002)(498600001)(186003)(16526019)(6486002)(2906002)(83380400001)(5660300002)(8936002)(26005)(33964004)(956004)(66946007)(52116002)(6512007)(9686003)(66616009)(235185007)(6862004)(54906003)(4326008)(86362001)(66476007)(66556008)(33656002)(2004002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: daH48x0jBv6i7IqI/Qk4PXfc4f5gtgpZ1Zvakz0eTe8yC0ot/lATWIiy9phR5RXYz+5rEkIqbldv4lp3VTSNkqSXPtpa4wwJJXk0Ec+KO7XOnNCnx329OzmaYW6gh4dWSSQNLWnlZ7P8F1Dlv1xwdkIkTixyJyXhPItYSWOtwAhV1t46OS3T1FWD30eO9h9CCXTzGYLGFjv6JIneSuOqKtiCm2RpBWUwrpeW+BXBDS/5YIFdm6MLMjJXOQqO6zFvrj1RGKuH51/Qwm5jbj7v0Mv78xBoCcduUEOVm4ftvG8q9+3g4Z2VpUeDwDM0cd+dftBjK+vrlxcVL5WceTS+ab0LKAzCfjf0k0mqI32ovIfm7oMK0CVvL38WgaKnmNS3bc2uQljpe/N9t+8585rN2Qj9bOnV62yiVT3PWHYyPgK6fgomzBkK/MnM3R4pfbMW+uzcQ5lBuPIMhmz+cChW98ElaWEX2LhzptboP4yWFvo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3384 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a7c0ab7c-3161-4c29-5270-08d82f2efd5e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ETddiL1XTWaQggCEsDSRiy1NjZWyYbmxjGeg4XqS4n7VUWeTQy3fMRpTOvCtmYIIOLMEFWyKAN9roYfsHYP0KpJOBvKm89XTRCF/C7Q8jyhzz39pITCdFQC5aK9+vhEKspSFt8zvqtB+K5OUQqi+k3OzKX8fAjQae7nhUo6LuX8f7IUqjsiAW4mdQU6ZlJKjL3U2u+0WT3q9zRMyhUeoSd0E4V9qcDxKKKdamMLl/+91Ai/l2Fy19NcycmlmI6eEkP2IbbHKti5e2v2i2Y3ZNLxcPD/t0VSLCHNhdBNIl2DkpyFAK1f0+Ls3SgeES528lVrPKpm285Qxoe13kjEBk+INh6FIM0WS73r1lVNU2I5mI9+gTU5/zuF6hhzoPnDxaZTTxlngq7xpjXvKv5X16QqbiQ3a/7dDBA9bnGxIvYNVRRM5eDbtC+2wx77rgO7U64IXIydQpR2HUrjgvweTCAupvjIwKLirWDpvwGZO7aBY5ooa06bIruwvCq7rSU7q 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; SFTY:; SFS:(4636009)(346002)(376002)(136003)(396003)(39860400002)(46966005)(70206006)(66616009)(70586007)(8676002)(107886003)(6486002)(2906002)(186003)(8936002)(33964004)(54906003)(86362001)(26005)(16526019)(36906005)(316002)(6512007)(83380400001)(478600001)(9686003)(356005)(33656002)(6862004)(6636002)(52536014)(4326008)(81166007)(5660300002)(82740400003)(44832011)(47076004)(956004)(336012)(82310400002)(235185007)(2004002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2020 17:37:02.0001 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 945d515f-3fea-4997-0962-08d82f2f0243 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: AM5EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4180 X-Spam-Status: No, score=-16.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Jul 2020 17:37:07 -0000 --===============3805409109784750471== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit > > Two minor, but important, nits to fix: > > Missing 2x Changelogs. > ... > > Missing copyright file header. > > Apologies, the ChangeLog is below, and I've added the copyright header that has gone in aarch64-disp-stepping.s inline so you can check it easily. The patch (created from `git format-patch`) is attached. I don't have commit rights to GDB, so if this is OK could you apply the patch? Thanks, Matthew ChangeLogs to apply: ------ gdb/ChangeLog: 2020-07-23 Matthew Malcomson * aarch64-tdep.c (aarch64_displaced_step_others): Account for BLR and BR instructions. * arch/aarch64-insn.h (enum aarch64_opcodes): Add BR opcode. (enum aarch64_masks): New. gdb/testsuite/ChangeLog: 2020-07-23 Matthew Malcomson * gdb.arch/aarch64-disp-stepping.exp: New test runner. * gdb.arch/aarch64-disp-stepping.s: New test. ------- Additional Copyright header added to aarch64-disp-stepping.s: diff --git a/gdb/testsuite/gdb.arch/aarch64-disp-stepping.s b/gdb/testsuite/gdb.arch/aarch64-disp-stepping.s new file mode 100644 index 0000000000000000000000000000000000000000..c7a67a12f250abee4250a1edfca411f25bc3a113 --- /dev/null +++ b/gdb/testsuite/gdb.arch/aarch64-disp-stepping.s @@ -0,0 +1,111 @@ +/* Copyright 2020 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + This file is part of the gdb testsuite. + + Test displaced stepping over AArch64 instructions. */ + --===============3805409109784750471== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Patch-GDB-aarch64-Add-ability-to-displaced-step-over.patch" RnJvbSA4NzJjZWM5ZjUzNDgyNDI5ZmJkNTQ3ZTEzYWM1NTJkNDcyYmQwMDJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1hbGNvbXNvbiA8bWF0dGhldy5tYWxjb21zb25A YXJtLmNvbT4KRGF0ZTogU3VuLCAyOCBKdW4gMjAyMCAxMzowNjozNiArMDEwMApTdWJqZWN0OiBb UEFUQ0hdIFtQYXRjaF0gR0RCOiBhYXJjaDY0OiBBZGQgYWJpbGl0eSB0byBkaXNwbGFjZWQgc3Rl cCBvdmVyIGEKIEJSL0JMUiBpbnN0cnVjdGlvbgoKRW5hYmxlIGRpc3BsYWNlZCBzdGVwcGluZyBv dmVyIGEgQlIvQkxSIGluc3RydWN0aW9uCgpEaXNwbGFjZWQgc3RlcHBpbmcgb3ZlciBhbiBpbnN0 cnVjdGlvbiBleGVjdXRlcyBhIGluc3RydWN0aW9uIGluIGEKc2NyYXRjaCBhcmVhIGFuZCB0aGVu IG1hbnVhbGx5IGZpeGVzIHVwIHRoZSBQQyBhZGRyZXNzIHRvIGxlYXZlCmV4ZWN1dGlvbiB3aGVy ZSBpdCB3b3VsZCBoYXZlIGJlZW4gaWYgdGhlIGluc3RydWN0aW9uIHdlcmUgaW4gaXRzCm9yaWdp bmFsIGxvY2F0aW9uLgoKVGhlIEJSIGluc3RydWN0aW9uIGRvZXMgbm90IG5lZWQgbW9kaWZpY2F0 aW9uIGluIG9yZGVyIHRvIHJ1biBjb3JyZWN0bHkKYXQgYSBkaWZmZXJlbnQgYWRkcmVzcywgYnV0 IHRoZSBkaXNwbGFjZWQgc3RlcCBmaXh1cCBtZXRob2Qgc2hvdWxkIG5vdAptYW51YWxseSBhZGp1 c3QgdGhlIFBDIHNpbmNlIHRoZSBCUiBpbnN0cnVjdGlvbiBzZXRzIHRoYXQgdmFsdWUgYWxyZWFk eS4KClRoZSBCTFIgaW5zdHJ1Y3Rpb24gc2hvdWxkIGFsc28gYXZvaWQgc3VjaCBhIGZpeHVwLCBi dXQgbXVzdCBhbHNvIGhhdmUKdGhlIGxpbmsgcmVnaXN0ZXIgbW9kaWZpZWQgdG8gcG9pbnQgdG8g anVzdCBhZnRlciB0aGUgb3JpZ2luYWwgY29kZQpsb2NhdGlvbiByYXRoZXIgdGhhbiBiYWNrIHRv IHRoZSBzY3JhdGNoIGxvY2F0aW9uLgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBhYm92ZSBmdW5jdGlv bmFsaXR5LgpXZSBhZGQgdGhpcyBmdW5jdGlvbmFsaXR5IGJ5IG1vZGlmeWluZyBhYXJjaDY0X2Rp c3BsYWNlZF9zdGVwX290aGVycwpyYXRoZXIgdGhhbiBieSBhZGRpbmcgYSBuZXcgdmlzaXRvciBt ZXRob2QgdG8gYWFyY2g2NF9pbnNuX3Zpc2l0b3IuCldlIGNob29zZSB0aGlzIHNpbmNlIGl0IHNl ZW1zIHRoYXQgdmlzaXRvciBhcHByb2FjaCBpcyBkZXNpZ25lZApzcGVjaWZpY2FsbHkgZm9yIFBD IHJlbGF0aXZlIGluc3RydWN0aW9ucyAod2hpY2ggbXVzdCBhbHdheXMgYmUgbW9kaWZpZWQKd2hl biBleGVjdXRlZCBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbikuCgpJdCBzZWVtcyB0aGF0IHRoZSBC UiBhbmQgQkxSIGluc3RydWN0aW9ucyBhcmUgbW9yZSBsaWtlIHRoZSBSRVQKaW5zdHJ1Y3Rpb24g d2hpY2ggaXMgYWxyZWFkeSBoYW5kbGVkIHNwZWNpYWxseSBpbgphYXJjaDY0X2Rpc3BsYWNlZF9z dGVwX290aGVycy4KClRoaXMgYWxzbyBtZWFucyB0aGUgZ2Ric2VydmVyIGNvZGUgdG8gcmVsb2Nh dGUgYW4gaW5zdHJ1Y3Rpb24gd2hlbgpjcmVhdGluZyBhIGZhc3QgdHJhY2Vwb2ludCBkb2VzIG5v dCBuZWVkIHRvIGJlIG1vZGlmaWVkLCBzaW5jZSBub3RoaW5nCnNwZWNpYWwgaXMgbmVlZGVkIGZv ciB0aGUgQlIgYW5kIEJMUiBpbnN0cnVjdGlvbnMgdGhlcmUuCgpNYW51YWxseSB0ZXN0ZWQgb24g QUFyY2g2NCBhbmQgZW5zdXJlZCBuZXcgdGVzdGNhc2UgcGFzc2VzLgpSZWdyZXNzaW9uIHRlc3Rz IHNob3dlZCBub3RoaW5nIHVudG93YXJkLgoKLS0tLS0tIyMjIyMKT2JzZXJ2ZWQgKG1pcyliZWhh dmlvdXIgYmVmb3JlIHdhcyB0aGF0IGRpc3BsYWNlZCBzdGVwcGluZyBvdmVyIGEgQlIgb3IKQkxS IGluc3RydWN0aW9uIHdvdWxkIG5vdCBleGVjdXRlIHRoZSBmdW5jdGlvbiB0aGV5IGNhbGxlZC4g IE1vc3QgZWFzaWx5CnNlZW4gYnkgcHV0dGluZyBhIGJyZWFrcG9pbnQgd2l0aCBhIGNvbmRpdGlv biBvbiBzdWNoIGFuIGluc3RydWN0aW9uIGFuZAphIHByaW50IHN0YXRlbWVudCBpbiB0aGUgZnVu Y3Rpb25zIHRoZXkgY2FsbGVkLgpXaGVuIHJ1biB3aXRoIHRoZSBicmVha3BvaW50IGVuYWJsZWQg dGhlIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgYW5kCiJudW1hcmdzIGNhbGxlZCIgaXMgbm90IHBy aW50ZWQuCldoZW4gcnVuIHdpdGggdGhlIGJyZWFrcG9pbnQgZGlzYWJsZWQgdGhlIGZ1bmN0aW9u IGlzIGNhbGxlZCBhbmQgdGhlCm1lc3NhZ2UgaXMgcHJpbnRlZC4KCi0tLSBHREIgU2Vzc2lvbgpo dy1hMjAtMTA6Z2NjLXNvdXJjZSBbMTU6NTc6MTRdICUgZ2RiIC4uL3VzaW5nLWJscgpSZWFkaW5n IHN5bWJvbHMgZnJvbSAuLi91c2luZy1ibHIuLi5kb25lLgooZ2RiKSBkaXNhc3NlbWJsZSBibHJf Y2FsbF92YWx1ZQpEdW1wIG9mIGFzc2VtYmxlciBjb2RlIGZvciBmdW5jdGlvbiBibHJfY2FsbF92 YWx1ZToKLi4uCiAgIDB4MDAwMDAwMDAwMDQwMDU2MCA8KzI4PjogICAgYmxyICAgICB4MgouLi4K ICAgMHgwMDAwMDAwMDAwNDAwNWI4IDwrMTE2PjogICByZXQKRW5kIG9mIGFzc2VtYmxlciBkdW1w LgooZ2RiKSBicmVhayAqMHgwMDAwMDAwMDAwNDAwNTYwCkJyZWFrcG9pbnQgMSBhdCAweDQwMDU2 MDogZmlsZSAuLi91c2luZy1ibHIuYywgbGluZSAyMi4KKGdkYikgY29uZGl0aW9uIDEgMTAgPT0g MAooZ2RiKSBydW4KU3RhcnRpbmcgcHJvZ3JhbTogL2hvbWUvbWF0bWFsMDEvdXNpbmctYmxyCltJ bmZlcmlvciAxIChwcm9jZXNzIDMzMjc5KSBleGl0ZWQgd2l0aCBjb2RlIDAxMl0KKGdkYikgZGlz YWJsZSAxCihnZGIpIHJ1bgpTdGFydGluZyBwcm9ncmFtOiAvaG9tZS9tYXRtYWwwMS91c2luZy1i bHIKbnVtYXJncyBjYWxsZWQKW0luZmVyaW9yIDEgKHByb2Nlc3MgMzMyODkpIGV4aXRlZCB3aXRo IGNvZGUgMDEyXQooZ2RiKQoKVGVzdCBwcm9ncmFtOgotLS0tIHVzaW5nLWJsciAtLS0tClwjaW5j bHVkZSA8c3RkaW8uaD4KdHlwZWRlZiBpbnQgKGZvbykgKGludCwgaW50KTsKdHlwZWRlZiB2b2lk IChiYXIpIChpbnQsIGludCk7CnN0cnVjdCBzbHNfdGVzdGNsYXNzIHsKICAgIGZvbyAqeDsKICAg IGJhciAqeTsKICAgIGludCBsZWZ0OwogICAgaW50IHJpZ2h0Owp9OwoKX19hdHRyaWJ1dGVfXyAo KG5vaW5saW5lKSkKaW50IGJscl9jYWxsX3ZhbHVlIChzdHJ1Y3Qgc2xzX3Rlc3RjbGFzcyB4KQp7 CiAgaW50IHJldHZhbCA9IHgueCh4LmxlZnQsIHgucmlnaHQpOwogIGlmIChyZXR2YWwgJSAxMCkK ICAgIHJldHVybiAxMDA7CiAgcmV0dXJuIDk7Cn0KCl9fYXR0cmlidXRlX18gKChub2lubGluZSkp CmludCBibHJfY2FsbCAoc3RydWN0IHNsc190ZXN0Y2xhc3MgeCkKewogIHgueSh4LmxlZnQsIHgu cmlnaHQpOwogIGlmICh4LmxlZnQgJSAxMCkKICAgIHJldHVybiAxMDA7CiAgcmV0dXJuIDk7Cn0K CmludApudW1hcmdzIChfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkgaW50IGxlZnQsIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSBpbnQgcmlnaHQpCnsKICAgICAgICBwcmludGYoIm51bWFyZ3MgY2Fs bGVkXG4iKTsKICAgICAgICByZXR1cm4gMTA7Cn0KCnZvaWQKYWx0ZnVuYyAoX19hdHRyaWJ1dGVf XyAoKHVudXNlZCkpIGludCBsZWZ0LCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkgaW50IHJpZ2h0 KQp7CiAgICAgICAgcHJpbnRmKCJhbHRmdW5jIGNhbGxlZFxuIik7Cn0KCmludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKewogIHN0cnVjdCBzbHNfdGVzdGNsYXNzIHggPSB7IC54ID0gbnVt YXJncywgLnkgPSBhbHRmdW5jLCAubGVmdCA9IDEsIC5yaWdodCA9IDIgfTsKICBpZiAoYXJnYyA+ IDIpCiAgewogICAgICAgIGJscl9jYWxsICh4KTsKICB9CiAgZWxzZQogICAgICAgIGJscl9jYWxs X3ZhbHVlICh4KTsKICByZXR1cm4gMTA7Cn0KCi0tLS0tLQoKZ2RiL0NoYW5nZUxvZzoKMjAyMC0w Ny0yMyAgTWF0dGhldyBNYWxjb21zb24gIDxtYXR0aGV3Lm1hbGNvbXNvbkBhcm0uY29tPgoKCSog YWFyY2g2NC10ZGVwLmMgKGFhcmNoNjRfZGlzcGxhY2VkX3N0ZXBfb3RoZXJzKTogQWNjb3VudCBm b3IKCUJMUiBhbmQgQlIgaW5zdHJ1Y3Rpb25zLgoJKiBhcmNoL2FhcmNoNjQtaW5zbi5oIChlbnVt IGFhcmNoNjRfb3Bjb2Rlcyk6IEFkZCBCUiBvcGNvZGUuCgkoZW51bSBhYXJjaDY0X21hc2tzKTog TmV3LgoKZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CjIwMjAtMDctMjMgIE1hdHRoZXcgTWFsY29t c29uICA8bWF0dGhldy5tYWxjb21zb25AYXJtLmNvbT4KCgkqIGdkYi5hcmNoL2FhcmNoNjQtZGlz cC1zdGVwcGluZy5leHA6IE5ldyB0ZXN0IHJ1bm5lci4KCSogZ2RiLmFyY2gvYWFyY2g2NC1kaXNw LXN0ZXBwaW5nLnM6IE5ldyB0ZXN0LgotLS0KIGdkYi9hYXJjaDY0LXRkZXAuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0tCiBnZGIvYXJjaC9hYXJjaDY0LWluc24uaCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv YWFyY2g2NC1kaXNwLXN0ZXBwaW5nLmV4cCB8ICA2NSArKysrKysrKysrKysrCiBnZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2FhcmNoNjQtZGlzcC1zdGVwcGluZy5zICAgfCAxMTEgKysrKysrKysrKysr KysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hYXJjaDY0 LWRpc3Atc3RlcHBpbmcuZXhwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC9hYXJjaDY0LWRpc3Atc3RlcHBpbmcucwoKZGlmZiAtLWdpdCBhL2dkYi9hYXJjaDY0LXRk ZXAuYyBiL2dkYi9hYXJjaDY0LXRkZXAuYwppbmRleCA1ZTdkMGQwLi5kMjQ3MTA4IDEwMDY0NAot LS0gYS9nZGIvYWFyY2g2NC10ZGVwLmMKKysrIGIvZ2RiL2FhcmNoNjQtdGRlcC5jCkBAIC0yOTc0 LDE1ICsyOTc0LDIyIEBAIGFhcmNoNjRfZGlzcGxhY2VkX3N0ZXBfb3RoZXJzIChjb25zdCB1aW50 MzJfdCBpbnNuLAogICBzdHJ1Y3QgYWFyY2g2NF9kaXNwbGFjZWRfc3RlcF9kYXRhICpkc2QKICAg ICA9IChzdHJ1Y3QgYWFyY2g2NF9kaXNwbGFjZWRfc3RlcF9kYXRhICopIGRhdGE7CiAKLSAgYWFy Y2g2NF9lbWl0X2luc24gKGRzZC0+aW5zbl9idWYsIGluc24pOwotICBkc2QtPmluc25fY291bnQg PSAxOwotCi0gIGlmICgoaW5zbiAmIDB4ZmZmZmZjMWYpID09IDB4ZDY1ZjAwMDApCisgIHVpbnQz Ml90IG1hc2tlZF9pbnNuID0gKGluc24gJiBDTEVBUl9Sbl9NQVNLKTsKKyAgaWYgKG1hc2tlZF9p bnNuID09IEJMUikKICAgICB7Ci0gICAgICAvKiBSRVQgKi8KLSAgICAgIGRzZC0+ZHNjLT5wY19h ZGp1c3QgPSAwOworICAgICAgLyogRW1pdCBhIEJSIHRvIHRoZSBzYW1lIHJlZ2lzdGVyIGFuZCB0 aGVuIHVwZGF0ZSBMUiB0byB0aGUgb3JpZ2luYWwKKwkgYWRkcmVzcyAoc2ltaWxhciB0byBhYXJj aDY0X2Rpc3BsYWNlZF9zdGVwX2IpLiAgKi8KKyAgICAgIGFhcmNoNjRfZW1pdF9pbnNuIChkc2Qt Pmluc25fYnVmLCBpbnNuICYgMHhmZmRmZmZmZik7CisgICAgICByZWdjYWNoZV9jb29rZWRfd3Jp dGVfdW5zaWduZWQgKGRzZC0+cmVncywgQUFSQ0g2NF9MUl9SRUdOVU0sCisJCQkJICAgICAgZGF0 YS0+aW5zbl9hZGRyICsgNCk7CiAgICAgfQogICBlbHNlCisgICAgYWFyY2g2NF9lbWl0X2luc24g KGRzZC0+aW5zbl9idWYsIGluc24pOworICBkc2QtPmluc25fY291bnQgPSAxOworCisgIGlmICht YXNrZWRfaW5zbiA9PSBSRVQgfHwgbWFza2VkX2luc24gPT0gQlIgfHwgbWFza2VkX2luc24gPT0g QkxSKQorICAgIGRzZC0+ZHNjLT5wY19hZGp1c3QgPSAwOworICBlbHNlCiAgICAgZHNkLT5kc2Mt PnBjX2FkanVzdCA9IDQ7CiB9CiAKZGlmZiAtLWdpdCBhL2dkYi9hcmNoL2FhcmNoNjQtaW5zbi5o IGIvZ2RiL2FyY2gvYWFyY2g2NC1pbnNuLmgKaW5kZXggNmE2M2NlOS4uZjI2MTM2MyAxMDA2NDQK LS0tIGEvZ2RiL2FyY2gvYWFyY2g2NC1pbnNuLmgKKysrIGIvZ2RiL2FyY2gvYWFyY2g2NC1pbnNu LmgKQEAgLTQwLDcgKzQwLDkgQEAgZW51bSBhYXJjaDY0X29wY29kZXMKICAgQ0JOWiAgICAgICAg ICAgID0gMHgyMTAwMDAwMCB8IEIsCiAgIFRCWiAgICAgICAgICAgICA9IDB4MzYwMDAwMDAgfCBC LAogICBUQk5aICAgICAgICAgICAgPSAweDM3MDAwMDAwIHwgQiwKKyAgLyogQlIgICAgICAgICAg ICAgMTEwMSAwMTEwIDAwMDEgMTExMSAwMDAwIDAwcnIgcnJyMCAwMDAwICovCiAgIC8qIEJMUiAg ICAgICAgICAgIDExMDEgMDExMCAwMDExIDExMTEgMDAwMCAwMHJyIHJycjAgMDAwMCAqLworICBC UiAgICAgICAgICAgICAgPSAweGQ2MWYwMDAwLAogICBCTFIgICAgICAgICAgICAgPSAweGQ2M2Yw MDAwLAogICAvKiBSRVQgICAgICAgICAgICAxMTAxIDAxMTAgMDEwMSAxMTExIDAwMDAgMDByciBy cnIwIDAwMDAgKi8KICAgUkVUICAgICAgICAgICAgID0gMHhkNjVmMDAwMCwKQEAgLTEwNyw2ICsx MDksMTQgQEAgZW51bSBhYXJjaDY0X29wY29kZXMKICAgTk9QICAgICAgICAgICAgID0gKDAgPDwg NSkgfCBISU5ULAogfTsKIAorLyogTGlzdCBvZiB1c2VmdWwgbWFza3MuICAqLworZW51bSBhYXJj aDY0X21hc2tzCit7CisgIC8qIFVzZWQgZm9yIG1hc2tpbmcgb3V0IGFuIFJuIGFyZ3VtZW50IGZy b20gYW4gb3Bjb2RlLiAgKi8KKyAgQ0xFQVJfUm5fTUFTSyA9IDB4ZmZmZmZjMWYsCit9OworCisK IC8qIFJlcHJlc2VudGF0aW9uIG9mIGEgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVyIG9mIHRoZSBm b3JtIHhOIG9yIHdOLgogCiAgICBUaGlzIHR5cGUgaXMgdXNlZCBieSBlbWl0dGluZyBmdW5jdGlv bnMgdGhhdCB0YWtlIHJlZ2lzdGVycyBhcyBvcGVyYW5kcy4gICovCmRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2FhcmNoNjQtZGlzcC1zdGVwcGluZy5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2FhcmNoNjQtZGlzcC1zdGVwcGluZy5leHAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTRlYWU2MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvYWFyY2g2NC1kaXNwLXN0ZXBwaW5nLmV4cApAQCAtMCwwICsxLDY1IEBACisj IENvcHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUu CisKKyMgVGVzdCBkaXNwbGFjZWQgc3RlcHBpbmcgb3ZlciBCUiBhbmQgQkxSIGluc3RydWN0aW9u cy4KKworaWYgeyFbaXNfYWFyY2g2NF90YXJnZXRdfSB7CisgICAgdmVyYm9zZSAiU2tpcHBpbmcg JHtnZGJfdGVzdF9maWxlX25hbWV9LiIKKyAgICByZXR1cm4KK30KKworc3RhbmRhcmRfdGVzdGZp bGUgIi5zIgoraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7 dGVzdGZpbGV9ICR7c3JjZmlsZX1dIH0geworICAgIHJldHVybiAtMQorfQorCitnZGJfYnJlYWtw b2ludCAiKmJscl90ZXN0c3RhcnQiCitnZGJfYnJlYWtwb2ludCAiKmJscl90ZXN0Y2hlY2siCitn ZGJfYnJlYWtwb2ludCAiKmJyX3Rlc3RzdGFydCIKK2dkYl9icmVha3BvaW50ICIqYnJfdGVzdGNo ZWNrIgorCisKKyMgVGVzdCBmb3IgZGlzcGxhY2VkIHN0ZXBwaW5nIG92ZXIgdGhlIEJMUiBpbnN0 cnVjdGlvbi4KK2dkYl90ZXN0ICJydW4iIFwKKyAgIlN0YXJ0aW5nIHByb2dyYW0uKkJyZWFrcG9p bnQgJGRlY2ltYWwuKiIgXAorICAiUnVuIHVudGlsIEJMUiB0ZXN0IHN0YXJ0IgorCitzZXQgZXhw ZWN0ZWRfbHIgW2dldF9oZXhhZGVjaW1hbF92YWx1ZW9mICJcJHBjICsgNCIgMF0KK2dkYl90ZXN0 ICJwcmludC94IFwkeDAiIFwKKyAgIi4uID0gMHgwIiBcCisgICJFbnN1cmUgeDAgaXMgMCBiZWZv cmUgQkxSIHRlc3QuIgorCitnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQkxSIHRlc3QgY2hl Y2siCisKK2dkYl90ZXN0ICJwcmludC94IFwkbHIgPT0gJGV4cGVjdGVkX2xyIiBcCisgICIuLiA9 IDB4MSIgXAorICAiRW5zdXJlIExSIGlzIHNldCB0byBqdXN0IGFmdGVyIEJMUi4iCitnZGJfdGVz dCAicHJpbnQveCBcJHgwIiBcCisgICIuLiA9IDB4MSIgXAorICAiRW5zdXJlIHgwIGlzIDEgYWZ0 ZXIgQkxSIHRlc3QuIgorCisKKyMgVGVzdCBmb3IgZGlzcGxhY2VkIHN0ZXBwaW5nIG92ZXIgdGhl IEJSIGluc3RydWN0aW9uLgorZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJSIHRlc3Qgc3Rh cnQiCisKK2dkYl90ZXN0ICJwcmludC94IFwkeDAiIFwKKyAgIi4uID0gMHgwIiBcCisgICJFbnN1 cmUgeDAgaXMgMCBiZWZvcmUgQlIgdGVzdC4iCitnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi QlIgdGVzdCBjaGVjayIKK2dkYl90ZXN0ICJwcmludC94IFwkeDAiIFwKKyAgIi4uID0gMHgxIiBc CisgICJFbnN1cmUgeDAgaXMgMSBhZnRlciBCUiB0ZXN0LiIKZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvYWFyY2g2NC1kaXNwLXN0ZXBwaW5nLnMgYi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL2FhcmNoNjQtZGlzcC1zdGVwcGluZy5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmM3YTY3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL2FhcmNoNjQtZGlzcC1zdGVwcGluZy5zCkBAIC0wLDAgKzEsMTExIEBACisvKiBDb3B5cmln aHQgMjAyMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0ZS4K KworICAgVGVzdCBkaXNwbGFjZWQgc3RlcHBpbmcgb3ZlciBBQXJjaDY0IGluc3RydWN0aW9ucy4g ICovCisKKy8vIEluc3RydWN0aW9ucyBub3QgeWV0IHRlc3RlZC4KKy8vIC0gIEIKKy8vIC0gIEJM CisvLyAtICBCLkNPTkQKKy8vIC0gIENCWgorLy8gLSAgQ0JOWgorLy8gLSAgVEJaCisvLyAtICBU Qk5aCisvLyAtICBBRFIKKy8vIC0gIEFEUlAKKy8vIC0gIExEUiAobGl0ZXJhbCkKKy8vIC0gIFJF VAorCisvLyBGdW5jdGlvbiB0ZXN0aW5nIHN0ZXBwaW5nIG92ZXIgQkxSIGluc3RydWN0aW9uLgor CS50ZXh0CisJLmFsaWduCTIKKwkuZ2xvYmFsCXRlc3RfYmxyX3N0ZXBwaW5nCisJLnR5cGUJdGVz dF9ibHJfc3RlcHBpbmcsICVmdW5jdGlvbgordGVzdF9ibHJfc3RlcHBpbmc6CisJLmNmaV9zdGFy dHByb2MKKwkvLyB4MiBTdG9yZXMgdGhlIG9sZCBMUi4KKwltb3YJeDIseDMwCisJLy8geDAgaXMg dGhlIGluZGljYXRvciB2YWx1ZSB0byBzaG93IHdoZXRoZXIgdGhlIGp1bXAgaGFwcGVuZWQuCisJ bW92CXgwLCAjMAorCS8vIExvYWQgdGhlIGp1bXAgcG9zaXRpb24gaW50byByZWdpc3RlciB4MQor CW1vdnoJeDEsIDphYnNfZzM6LkxKVU1QUE9TCisJbW92awl4MSwgOmFic19nMl9uYzouTEpVTVBQ T1MKKwltb3ZrCXgxLCA6YWJzX2cxX25jOi5MSlVNUFBPUworCW1vdmsJeDEsIDphYnNfZzBfbmM6 LkxKVU1QUE9TCitibHJfdGVzdHN0YXJ0OgorCWJscgl4MQorCWIJYmxyX3Rlc3RjaGVjaworLkxK VU1QUE9TOgorCW1vdgl4MCwgIzEKK2Jscl90ZXN0Y2hlY2s6CisJLy8gUHV0IHRoZSBvbGQgTFIg dmFsdWUgYmFjayBpbnRvIHRoZSBMUiByZWdpc3Rlci4KKwkvLyBEbyB0aGlzIGZvciBib3RoIHN1 Y2Nlc3NmdWwganVtcCBhbmQgdW5zdWNjZXNzZnVsIGp1bXAgc2luY2UgdGhlIExSCisJLy8gd2ls bCBoYXZlIGNoYW5nZWQgYm90aCB0aW1lcyBhbmQgd2Ugd2FudCB0aGUgcHJvZ3JhbSB0byBjb250 aW51ZQorCS8vIHByb3Blcmx5IGJvdGggdGltZXMuCisJbW92CXgzMCwgeDIKKwlyZXQKKwkuY2Zp X2VuZHByb2MKKwkuc2l6ZQl0ZXN0X2Jscl9zdGVwcGluZywgLi10ZXN0X2Jscl9zdGVwcGluZwor CisKKy8vIEZ1bmN0aW9uIHRlc3Rpbmcgc3RlcHBpbmcgb3ZlciBCUiBpbnN0cnVjdGlvbi4KKwku dGV4dAorCS5hbGlnbgkyCisJLmdsb2JhbAl0ZXN0X2JyX3N0ZXBwaW5nCisJLnR5cGUJdGVzdF9i cl9zdGVwcGluZywgJWZ1bmN0aW9uCit0ZXN0X2JyX3N0ZXBwaW5nOgorCS5jZmlfc3RhcnRwcm9j CisJLy8geDAgaXMgdGhlIGluZGljYXRvciB2YWx1ZSB0byBzaG93IHdoZXRoZXIgdGhlIGp1bXAg aGFwcGVuZWQuCisJbW92CXgwLCAjMAorCS8vIExvYWQgdGhlIGp1bXAgcG9zaXRpb24gaW50byBy ZWdpc3RlciB4MQorCW1vdnoJeDEsIDphYnNfZzM6LkxKVU1QUE9TMgorCW1vdmsJeDEsIDphYnNf ZzJfbmM6LkxKVU1QUE9TMgorCW1vdmsJeDEsIDphYnNfZzFfbmM6LkxKVU1QUE9TMgorCW1vdmsJ eDEsIDphYnNfZzBfbmM6LkxKVU1QUE9TMgorYnJfdGVzdHN0YXJ0OgorCWJyCXgxCisJYglicl90 ZXN0Y2hlY2sKKy5MSlVNUFBPUzI6CisJbW92CXgwLCAjMQorYnJfdGVzdGNoZWNrOgorCXJldAor CS5jZmlfZW5kcHJvYworCS5zaXplCXRlc3RfYnJfc3RlcHBpbmcsIC4tdGVzdF9icl9zdGVwcGlu ZworCisKKworLy8gTWFpbiBmdW5jdGlvbiBjYWxsaW5nIGFsbCB0ZXN0IGZ1bmN0aW9ucyBhYm92 ZS4KKwkudGV4dAorCS5hbGlnbgkyCisJLmdsb2JhbAltYWluCisJLnR5cGUJbWFpbiwgJWZ1bmN0 aW9uCittYWluOgorCS5jZmlfc3RhcnRwcm9jCisJc3RwCXgyOSwgeDMwLCBbc3AsIC0xNl0hCisJ LmNmaV9kZWZfY2ZhX29mZnNldCAxNgorCS5jZmlfb2Zmc2V0IDI5LCAtMTYKKwkuY2ZpX29mZnNl dCAzMCwgLTgKKwlibAl0ZXN0X2Jscl9zdGVwcGluZworCWJsCXRlc3RfYnJfc3RlcHBpbmcKKwls ZHAJeDI5LCB4MzAsIFtzcF0sIDE2CisJLmNmaV9yZXN0b3JlIDMwCisJLmNmaV9yZXN0b3JlIDI5 CisJLmNmaV9kZWZfY2ZhX29mZnNldCAwCisJcmV0CisJLmNmaV9lbmRwcm9jCisJLnNpemUJbWFp biwgLi1tYWluCisJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotLSAKMi43 LjQKCg== --===============3805409109784750471==--