From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 010FAC433E0 for ; Fri, 8 Jan 2021 15:37:40 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B07B723888 for ; Fri, 8 Jan 2021 15:37:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B07B723888 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 39B776E831; Fri, 8 Jan 2021 15:37:39 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2052.outbound.protection.outlook.com [40.107.244.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 95CB86E831 for ; Fri, 8 Jan 2021 15:37:38 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lh76A70vBKASab+TbL2iYr9EVzgrkb8RCXnnm70ncFPW2SvVQemp+0Meunqvr+AbVtfvESORwggSY+gzVcBdGwcX08bzKuc57VkvCV5D1w1Z4x0UZl9QNxF3LiRipFDR3dNZrjpNWwC03NUkZjPlWxrV2CkXpsvVh9E4dsvLbNf2ENPGRJr/kBeVNXzeh15V5jhF85OqZCv8HNDEKZhnFa4ry3HH2AwAEDY5jbFvjozpB3tHAgGTm0UcmX70EAKaQqonu/18QD4XPVZKBFXi3cAsTwT2+t4W/st/Uo2uWsG5G5drisc5vXFXo9Ei2NYIeu0EbnJ9o8kkWc53j0NKxQ== 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=oQDVnKscem79hUPtAbiUtyuySO/uTydDknr5uXJnGl4=; b=j9Sb9GFkKZTPJBcVKJewLFA8hxpJx6ImussXaxQ/NUPHy3bk186lMLZITGywEQQDQQpUVpPel76lnNCbreHW62ovmJtxIrHJJxiaS1OQniRfOcP5kpHTps2OJtJWg1LudgQFfX//oAPYUcgdLTOW+78mqOIm6nZxsYZx8aRVmtIqZq4n/gICrX5RxlUnMZhaQm0ex5J0QZBAd/flBaaOrw0oPQpkG1XlYlfw0MJ2Hl2+9RCX7k+/Xia+I3eYtdzl41LzsWWjoQDRrVYIv9gPmzhmzVje8ym7q1eGcBgUT+wRp9yVzclo0FmteSYsLLUedwecVhNARdgZVkQ4GPPczQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oQDVnKscem79hUPtAbiUtyuySO/uTydDknr5uXJnGl4=; b=yqBPB1E6vAP8rS2uy+RTRxkldGLNYii2xXoEyfGKZtW9W8F/gqt8/Q1/MCL7tkRU3KUXatap6T04MSAVVjhGOnHXNdIbdK4b1aiEo3RuWi+2J1+UDaS1nyvuJsS7u6gc940vXp12hawrboCSJBKQWHA5w1/iVna6Mzd3jbGGMw8= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from DM6PR12MB3916.namprd12.prod.outlook.com (2603:10b6:5:1ca::21) by DM5PR1201MB0185.namprd12.prod.outlook.com (2603:10b6:4:55::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 15:37:35 +0000 Received: from DM6PR12MB3916.namprd12.prod.outlook.com ([fe80::f872:3677:28c3:660b]) by DM6PR12MB3916.namprd12.prod.outlook.com ([fe80::f872:3677:28c3:660b%5]) with mapi id 15.20.3721.024; Fri, 8 Jan 2021 15:37:35 +0000 Subject: Re: [PATCH v2 1/1] drm/amdgpu: cleanup vce,vcn,uvd ring selftests To: =?UTF-8?Q?Christian_K=c3=b6nig?= , Nirmoy Das , amd-gfx@lists.freedesktop.org References: <6ef74186-56a2-6f38-b73b-b618fd1b5db0@amd.com> <20201218144024.4994-1-nirmoy.das@amd.com> <261fd056-4d89-b4aa-1e60-c659054f53db@amd.com> <3aff4e36-6ddc-c752-0797-dbb8489658e4@amd.com> <73fda446-033b-8e59-0c94-e96d52e17d18@amd.com> From: Nirmoy Message-ID: <7c8cba66-9846-145f-1e83-8499b8762b72@amd.com> Date: Fri, 8 Jan 2021 16:37:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 In-Reply-To: <73fda446-033b-8e59-0c94-e96d52e17d18@amd.com> Content-Language: en-US X-Originating-IP: [93.229.47.23] X-ClientProxiedBy: AM3PR07CA0110.eurprd07.prod.outlook.com (2603:10a6:207:7::20) To DM6PR12MB3916.namprd12.prod.outlook.com (2603:10b6:5:1ca::21) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (93.229.47.23) by AM3PR07CA0110.eurprd07.prod.outlook.com (2603:10a6:207:7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.5 via Frontend Transport; Fri, 8 Jan 2021 15:37:34 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d8cba329-7371-410d-b08a-08d8b3eb52a0 X-MS-TrafficTypeDiagnostic: DM5PR1201MB0185: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rSkTUjihUBmSpxjWxoYtDaUmB7B6a1HdlzmJrzSJ+fUmHOcEXzsycqPCB+J6182oO+KqDJdo2st++O1PopcY0eYYaFMQH71Q8gpOxwsybLSpvUkdlW50ikgv6aWYM8AoJMU3L2jIdYO6dR0Pv70LTgLHuoltbytBP9WVBEa+WRxixqzGOyufQMdaZcE0nv4GPgZQc99rRZJalq3wonKz3rOGfmqiddzrDI1iCh0Sk+Tx12nDkw3PO5D0L0nq73p7USeLUBKMWteTSsB/3r+k1tW3TpZkbiVJkp+sFkKFArVv5rAECsJM8/rdfAIenVp2Rbi5tiStJJEWbQ+khwz9ooV6aBEc8q8iH/5aIP7FV+kzMDV9dE25Njvo9NHW57+G6nN7ilftdRd0AfSMaG/JuaAv1J6TzhCVMAyIY9qYmt9lNT0w0e+DkhGtbGmy2u48o/cvcI6DHUXEmWzHE6vApW6wHlLsE/gky1dib9N9Ueo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3916.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(136003)(346002)(396003)(366004)(376002)(6506007)(53546011)(2616005)(316002)(66946007)(6512007)(83380400001)(6666004)(52116002)(26005)(956004)(110136005)(16526019)(186003)(31686004)(6486002)(5660300002)(31696002)(66574015)(8676002)(66556008)(36756003)(66476007)(8936002)(30864003)(2906002)(478600001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Z2pOY3JRa3UvSEloaWlPOVgzRnJuUEFSYllhOUVWV0RXSVhUdEUzTlJ1TmUy?= =?utf-8?B?QU03WlFIdFdZVkZ1Rzltdyt0dTN1S1pMTDllSG1oWnhxbjJ0enVISjVGVTlm?= =?utf-8?B?aklyczBJWmdWY0RiV3lmRFFUZ3E5OFlBZUdXMjhoT0NNVjdsanJMSWZKUUJU?= =?utf-8?B?TDJRNmZuZVl6WGpUNGVpOVlJdmRmeVpub2VRVHJsQjNDUDV5L0kvOHJQTSsv?= =?utf-8?B?RXpMNHluVmV2dlZnVTMyUm1vV0ovYUhpNXcwK1NBUVZncUNxWmJMcC95MmxL?= =?utf-8?B?K1AwS3IzN1VpYUI5Y1hVcVNrbEtMd3k5ZXdaK3YxRGhmU0FsQktaVnZFU3pm?= =?utf-8?B?clZMS0lXZ1dWTjcyczhFZkEzbjJ6YUVJa3ZxQVQ0Ly9UdTVVNC9Kak5PejdM?= =?utf-8?B?TXVYeEdFYkdIbjROQWJSVmViYzBaZ1dLQkkrSWdPdGdILzJEZWE4SXprTUxP?= =?utf-8?B?d3JlK0JxK2w3aEMxVWwrQWpSbzRZOE9kL0I0UWRERURyTi9CM3UzelI1Snp3?= =?utf-8?B?NlQ0YmwwMTByRHFBb0VhNFQ3Ykd4TThSVER4U2oyZmFNK0ZnWWsvb3Y5NUNu?= =?utf-8?B?TUtkVW1UTDllN3lWUmFpMWwvb3VlWTBpbkhoZUgrbXlXcE1lOS9XS2kydTRn?= =?utf-8?B?R0szNlZJeEh2TEw2L2dPQ2hWZmt0WVRDUUdiTlYvT3FHdlVQRGdZRVRGODBp?= =?utf-8?B?YkpCSHNMK3lrSVo1RUUweHkwd2M3Nm0wS1k2dVAxVTVtVFhIOHZBdFQvbFdE?= =?utf-8?B?RlJPSFlMa2dUOHE1djZnK2k4cVoxMFNWeFFNdStSMzBxOFB5eFI2M2hVOG9i?= =?utf-8?B?dnI3TllDUVF6OVBTek9yODNaQ0gxRTM5S3ovOGFaeS9JeHBNL2dmMEErcUhT?= =?utf-8?B?cE4xY3ArZ3FZaDFUZkdmcXJtV1g5bW9VNlhGT0t1Y3JkajVMYU9DQUkwYmhn?= =?utf-8?B?SnJVMTRyT2o0Y2hMS21CMGZYdzQ5U1psM2ZwZWJLZ05xYWl2cXpEK3R1aGJE?= =?utf-8?B?ZGFObi9SblZCeVRLVTMwTlFtTDRjYjRiM3lRYStjVitPOGdnQUN3VXRsbldG?= =?utf-8?B?eG94MS9rL0ZOVDN4dFpESEVLcy9uNHdiVzB3VDd0a2d5NTFjaFh6MCtseVlv?= =?utf-8?B?SmpSYU9QVjliRXhvZkdHUS82U3g1ODNHeGNIUXBSYW80VW1LYmV4bDlndEFF?= =?utf-8?B?eGlIeW5OZG1pemVuVWJWSk1uUm1HOUgraFJKeUZ4bStlU2MveUVJZTZ5K3I1?= =?utf-8?B?NVBxQUdXdmJYaEkvamRmRTJsYUI2ZjljcXk2eFRwWCtTNGkwTFRoRHB1Q21Y?= =?utf-8?Q?fSvmzpnA9W398=3D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3916.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2021 15:37:35.6914 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-Network-Message-Id: d8cba329-7371-410d-b08a-08d8b3eb52a0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JArbyXQlb4OXZKvEpHqS6jgJ2V5fdoAS61a/zFZkC/f4qG7FDwuHP8aH96Fx4i/ZjKzXqziw1enfj7xbQk3whQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0185 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Ck9uIDEvOC8yMSA0OjExIFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+IE1obSwgbG9va3Mg bGlrZSB0aGF0IGRvZXNuJ3Qgd29yayBvbiBTSS4KCgpUaGFua3MsIHNvcnJ5IEkgY291bGRuJ3Qg dmVyaWZ5IHRoYXQgOi8KCgpOaXJtb3kKCgo+Cj4gTW9zdCBsaWtlbHkgYW4gYWxpZ25tZW50IGlz c3VlLiBHb2luZyB0byBpbnZlc3RpZ2F0ZS4KPgo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+Cj4g QW0gMDguMDEuMjEgdW0gMTQ6Mzggc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+PiBBaCwgcmln aHQgSSB3YW50ZWQgdG8gdGVzdCB0aGlzIG9uIFNJIGJhc2VkIGhhcmR3YXJlLgo+Pgo+PiBDYW4g dGFrZSBjYXJlIG9mIHRoYXQsIGp1c3QgZ2l2ZSBtZSBhIGZldyBob3Vycy4KPj4KPj4gVGhhbmtz LAo+PiBDaHJpc3RpYW4uCj4+Cj4+IEFtIDA4LjAxLjIxIHVtIDEzOjIwIHNjaHJpZWIgTmlybW95 Ogo+Pj4gUGluZyEKPj4+Cj4+PiBPbiAxMi8xOC8yMCAzOjQwIFBNLCBOaXJtb3kgRGFzIHdyb3Rl Ogo+Pj4+IFVzZSBhbWRncHVfc2FfYm8gaW5zdGVhZCBvZiBhbWRncHVfYm8uCj4+Pj4KPj4+PiB2 MjoKPj4+PiAqIGRvIG5vdCBpbml0aWFsaXplIGJvIHRvIGdldCBoaW50IGZyb20gY29tcGlsZXIg Zm9yIC1XdW5pbml0aWFsaXplZAo+Pj4+ICogcGFzcyBOVUxMIGZlbmNlIHRvIGFtZGdwdV9zYV9i b19mcmVlIGlmIGZlbmNlIGlzIHVuZGVmaW5lZC4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IE5p cm1veSBEYXMgPG5pcm1veS5kYXNAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiDCoCBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgfCA1NiAKPj4+PiArKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tCj4+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5j IHwgMTcgKysrKy0tLS0KPj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmNuLmMgfCA0NyArKysrKysrKysrLS0tLS0tLS0tLS0KPj4+PiDCoCAzIGZpbGVzIGNoYW5nZWQs IDQ1IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAKPj4+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwo+Pj4+IGluZGV4IDhiOTg5NjcwZWQ2Ni4u MTM0NTBhM2RmMDQ0IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV91dmQuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV91dmQuYwo+Pj4+IEBAIC0xMDU3LDcgKzEwNTcsNyBAQCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3Bh cnNlX2NzKHN0cnVjdCAKPj4+PiBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIsIHVpbnQzMl90IGli X2lkeCkKPj4+PiDCoMKgwqDCoMKgIHJldHVybiAwOwo+Pj4+IMKgIH0KPj4+Pgo+Pj4+IC1zdGF0 aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1 Y3QgCj4+Pj4gYW1kZ3B1X2JvICpibywKPj4+PiArc3RhdGljIGludCBhbWRncHVfdXZkX3NlbmRf bXNnKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IAo+Pj4+IGFtZGdwdV9zYV9ibyAq Ym8sCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGRp cmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKQo+Pj4+IMKgIHsKPj4+PiDCoMKgwqDCoMKg IHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+PiBAQCAtMTA3MSwx OSArMTA3MSw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgCj4+Pj4g YW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+Pj4+IMKgwqDCoMKgwqAg dW5zaWduZWQgb2Zmc2V0X2lkeCA9IDA7Cj4+Pj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBvZmZzZXRb M10gPSB7IFVWRF9CQVNFX1NJLCAwLCAwIH07Cj4+Pj4KPj4+PiAtwqDCoMKgIGFtZGdwdV9ib19r dW5tYXAoYm8pOwo+Pj4+IC3CoMKgwqAgYW1kZ3B1X2JvX3VucGluKGJvKTsKPj4+PiAtCj4+Pj4g LcKgwqDCoCBpZiAoIXJpbmctPmFkZXYtPnV2ZC5hZGRyZXNzXzY0X2JpdCkgewo+Pj4+IC3CoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyB0cnVlLCBmYWxzZSB9 Owo+Pj4+IC0KPj4+PiAtwqDCoMKgwqDCoMKgwqAgYW1kZ3B1X2JvX3BsYWNlbWVudF9mcm9tX2Rv bWFpbihibywgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGFt ZGdwdV91dmRfZm9yY2VfaW50b191dmRfc2VnbWVudChibyk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKg IHIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCAmY3R4KTsKPj4+ PiAtwqDCoMKgwqDCoMKgwqAgaWYgKHIpCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290 byBlcnI7Cj4+Pj4gLcKgwqDCoCB9Cj4+Pj4gLQo+Pj4+IMKgwqDCoMKgwqAgciA9IGFtZGdwdV9q b2JfYWxsb2Nfd2l0aF9pYihhZGV2LCA2NCwgZGlyZWN0ID8gCj4+Pj4gQU1ER1BVX0lCX1BPT0xf RElSRUNUIDoKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBBTURHUFVfSUJfUE9PTF9ERUxBWUVELCAmam9iKTsKPj4+PiDCoMKgwqDCoMKgIGlmIChyKQo+ Pj4+IEBAIC0xMTAxLDcgKzEwODgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV91dmRfc2VuZF9tc2co c3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+ PiDCoMKgwqDCoMKgIGRhdGFbM10gPSBQQUNLRVQwKG9mZnNldFtvZmZzZXRfaWR4XSArIFVWRF9O T19PUCwgMCk7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIGliID0gJmpvYi0+aWJzWzBdOwo+Pj4+IC3C oMKgwqAgYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KGJvKTsKPj4+PiArwqDCoMKgIGFkZHIg PSBhbWRncHVfc2FfYm9fZ3B1X2FkZHIoYm8pOwo+Pj4+IMKgwqDCoMKgwqAgaWItPnB0clswXSA9 IGRhdGFbMF07Cj4+Pj4gwqDCoMKgwqDCoCBpYi0+cHRyWzFdID0gYWRkcjsKPj4+PiDCoMKgwqDC oMKgIGliLT5wdHJbMl0gPSBkYXRhWzFdOwo+Pj4+IEBAIC0xMTE1LDMzICsxMTAyLDE3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgCj4+Pj4gYW1kZ3B1X3JpbmcgKnJp bmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+Pj4+IMKgwqDCoMKgwqAgaWItPmxlbmd0aF9kdyA9 IDE2Owo+Pj4+Cj4+Pj4gwqDCoMKgwqDCoCBpZiAoZGlyZWN0KSB7Cj4+Pj4gLcKgwqDCoMKgwqDC oMKgIHIgPSBkbWFfcmVzdl93YWl0X3RpbWVvdXRfcmN1KGJvLT50Ym8uYmFzZS5yZXN2LAo+Pj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dHJ1ZSwgZmFsc2UsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBtc2Vjc190b19qaWZmaWVzKDEwKSk7Cj4+Pj4gLcKgwqDCoMKgwqDC oMKgIGlmIChyID09IDApCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgciA9IC1FVElNRURP VVQ7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGlmIChyIDwgMCkKPj4+PiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBnb3RvIGVycl9mcmVlOwo+Pj4+IC0KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgciA9 IGFtZGdwdV9qb2Jfc3VibWl0X2RpcmVjdChqb2IsIHJpbmcsICZmKTsKPj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKHIpCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJf ZnJlZTsKPj4+PiDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIHIgPSBh bWRncHVfc3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIGJvLT50Ym8uYmFzZS5yZXN2LAo+Pj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNREdQVV9TWU5DX0FM V0FZUywKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURH UFVfRkVOQ0VfT1dORVJfVU5ERUZJTkVEKTsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKHIpCj4+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJfZnJlZTsKPj4+PiAtCj4+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfam9iX3N1Ym1pdChqb2IsICZhZGV2LT51dmQuZW50 aXR5LAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg QU1ER1BVX0ZFTkNFX09XTkVSX1VOREVGSU5FRCwgJmYpOwo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oCBpZiAocikKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9mcmVlOwo+ Pj4+IMKgwqDCoMKgwqAgfQo+Pj4+Cj4+Pj4gLcKgwqDCoCBhbWRncHVfYm9fZmVuY2UoYm8sIGYs IGZhbHNlKTsKPj4+PiAtwqDCoMKgIGFtZGdwdV9ib191bnJlc2VydmUoYm8pOwo+Pj4+IC3CoMKg wqAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4+Pj4gK8KgwqDCoCBhbWRncHVfc2FfYm9fZnJlZShh ZGV2LCAmYm8sIGYpOwo+Pj4+Cj4+Pj4gwqDCoMKgwqDCoCBpZiAoZmVuY2UpCj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgICpmZW5jZSA9IGRtYV9mZW5jZV9nZXQoZik7Cj4+Pj4gQEAgLTExNTMsOCAr MTEyNCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3V2ZF9zZW5kX21zZyhzdHJ1Y3QgCj4+Pj4gYW1k Z3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+Pj4+IMKgwqDCoMKgwqAgYW1k Z3B1X2pvYl9mcmVlKGpvYik7Cj4+Pj4KPj4+PiDCoCBlcnI6Cj4+Pj4gLcKgwqDCoCBhbWRncHVf Ym9fdW5yZXNlcnZlKGJvKTsKPj4+PiAtwqDCoMKgIGFtZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+ ICvCoMKgwqAgYW1kZ3B1X3NhX2JvX2ZyZWUoYWRldiwgJmJvLCBOVUxMKTsKPj4+PiDCoMKgwqDC oMKgIHJldHVybiByOwo+Pj4+IMKgIH0KPj4+Pgo+Pj4+IEBAIC0xMTY1LDE2ICsxMTM1LDE3IEBA IGludCBhbWRncHVfdXZkX2dldF9jcmVhdGVfbXNnKHN0cnVjdCAKPj4+PiBhbWRncHVfcmluZyAq cmluZywgdWludDMyX3QgaGFuZGxlLAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKPj4+PiDCoCB7Cj4+Pj4gwqDCoMKg wqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4+Pj4gLcKgwqDC oCBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IE5VTEw7Cj4+Pj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1 X3NhX2JvICpibzsKPj4+PiDCoMKgwqDCoMKgIHVpbnQzMl90ICptc2c7Cj4+Pj4gwqDCoMKgwqDC oCBpbnQgciwgaTsKPj4+Pgo+Pj4+IC3CoMKgwqAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2 ZWQoYWRldiwgMTAyNCwgUEFHRV9TSVpFLAo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKPj4+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZibywgTlVMTCwgKHZvaWQgKiopJm1z Zyk7Cj4+Pj4gK8KgwqDCoCByID0gYW1kZ3B1X3NhX2JvX25ldygmYWRldi0+aWJfcG9vbHNbQU1E R1BVX0lCX1BPT0xfRElSRUNUXSwKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgJmJvLCAxMDI0LCBQQUdFX1NJWkUpOwo+Pj4+ICsKPj4+PiDCoMKgwqDCoMKgIGlmIChyKQo+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4+Pgo+Pj4+ICvCoMKgwqAgbXNnID0g YW1kZ3B1X3NhX2JvX2NwdV9hZGRyKGJvKTsKPj4+PiDCoMKgwqDCoMKgIC8qIHN0aXRjaCB0b2dl dGhlciBhbiBVVkQgY3JlYXRlIG1zZyAqLwo+Pj4+IMKgwqDCoMKgwqAgbXNnWzBdID0gY3B1X3Rv X2xlMzIoMHgwMDAwMGRlNCk7Cj4+Pj4gwqDCoMKgwqDCoCBtc2dbMV0gPSBjcHVfdG9fbGUzMigw eDAwMDAwMDAwKTsKPj4+PiBAQCAtMTE5NywxNiArMTE2OCwxNyBAQCBpbnQgYW1kZ3B1X3V2ZF9n ZXRfZGVzdHJveV9tc2coc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBo YW5kbGUsCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29s IGRpcmVjdCwgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKQo+Pj4+IMKgIHsKPj4+PiDCoMKgwqDC oMKgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKPj4+PiAtwqDCoMKg IHN0cnVjdCBhbWRncHVfYm8gKmJvID0gTlVMTDsKPj4+PiArwqDCoMKgIHN0cnVjdCBhbWRncHVf c2FfYm8gKmJvOwo+Pj4+IMKgwqDCoMKgwqAgdWludDMyX3QgKm1zZzsKPj4+PiDCoMKgwqDCoMKg IGludCByLCBpOwo+Pj4+Cj4+Pj4gLcKgwqDCoCByID0gYW1kZ3B1X2JvX2NyZWF0ZV9yZXNlcnZl ZChhZGV2LCAxMDI0LCBQQUdFX1NJWkUsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmJvLCBOVUxMLCAodm9pZCAqKikmbXNn KTsKPj4+PiArwqDCoMKgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURH UFVfSUJfUE9PTF9ESVJFQ1RdLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAmYm8sIDEwMjQsIFBBR0VfU0laRSk7Cj4+Pj4gKwo+Pj4+IMKgwqDCoMKgwqAgaWYgKHIpCj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByOwo+Pj4+Cj4+Pj4gK8KgwqDCoCBtc2cgPSBh bWRncHVfc2FfYm9fY3B1X2FkZHIoYm8pOwo+Pj4+IMKgwqDCoMKgwqAgLyogc3RpdGNoIHRvZ2V0 aGVyIGFuIFVWRCBkZXN0cm95IG1zZyAqLwo+Pj4+IMKgwqDCoMKgwqAgbXNnWzBdID0gY3B1X3Rv X2xlMzIoMHgwMDAwMGRlNCk7Cj4+Pj4gwqDCoMKgwqDCoCBtc2dbMV0gPSBjcHVfdG9fbGUzMigw eDAwMDAwMDAyKTsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZjZS5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zj ZS5jCj4+Pj4gaW5kZXggMGQ1Mjg0YjkzNmU0Li5iY2UyOWQ2OTc1ZDMgMTAwNjQ0Cj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4+Pj4gQEAgLTgxLDcgKzgxLDcg QEAgTU9EVUxFX0ZJUk1XQVJFKEZJUk1XQVJFX1ZFR0EyMCk7Cj4+Pj4KPj4+PiDCoCBzdGF0aWMg dm9pZCBhbWRncHVfdmNlX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y ayk7Cj4+Pj4gwqAgc3RhdGljIGludCBhbWRncHVfdmNlX2dldF9jcmVhdGVfbXNnKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywgCj4+Pj4gdWludDMyX3QgaGFuZGxlLAo+Pj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfYm8gKmJvLAo+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVf c2FfYm8gKmJvLAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7Cj4+Pj4gwqAgc3RhdGljIGludCBhbWRncHVf dmNlX2dldF9kZXN0cm95X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIAo+Pj4+IHVpbnQz Ml90IGhhbmRsZSwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGJvb2wgZGlyZWN0LCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOwo+Pj4+IEBAIC00 MzcsNyArNDM3LDcgQEAgdm9pZCBhbWRncHVfdmNlX2ZyZWVfaGFuZGxlcyhzdHJ1Y3QgCj4+Pj4g YW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+Pj4+IMKgwqAgKiBP cGVuIHVwIGEgc3RyZWFtIGZvciBIVyB0ZXN0Cj4+Pj4gwqDCoCAqLwo+Pj4+IMKgIHN0YXRpYyBp bnQgYW1kZ3B1X3ZjZV9nZXRfY3JlYXRlX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIAo+ Pj4+IHVpbnQzMl90IGhhbmRsZSwKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibywKPj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNl ICoqZmVuY2UpCj4+Pj4gwqAgewo+Pj4+IMKgwqDCoMKgwqAgY29uc3QgdW5zaWduZWQgaWJfc2l6 ZV9kdyA9IDEwMjQ7Cj4+Pj4gQEAgLTQ1NCw3ICs0NTQsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92 Y2VfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJf dCBoYW5kbGUsCj4+Pj4KPj4+PiDCoMKgwqDCoMKgIGliID0gJmpvYi0+aWJzWzBdOwo+Pj4+Cj4+ Pj4gLcKgwqDCoCBhZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoYm8pOwo+Pj4+ICvCoMKgwqAg YWRkciA9IGFtZGdwdV9zYV9ib19ncHVfYWRkcihibyk7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIC8q IHN0aXRjaCB0b2dldGhlciBhbiBWQ0UgY3JlYXRlIG1zZyAqLwo+Pj4+IMKgwqDCoMKgwqAgaWIt Pmxlbmd0aF9kdyA9IDA7Cj4+Pj4gQEAgLTExMzAsMTYgKzExMzAsMTYgQEAgaW50IGFtZGdwdV92 Y2VfcmluZ190ZXN0X3Jpbmcoc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nKQo+Pj4+IMKg IGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIGxv bmcgdGltZW91dCkKPj4+PiDCoCB7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSA9IE5VTEw7Cj4+Pj4gLcKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IE5VTEw7Cj4+ Pj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibyA9IE5VTEw7Cj4+Pj4gK8KgwqDCoCBz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4+Pj4gwqDCoMKgwqDCoCBs b25nIHI7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIC8qIHNraXAgdmNlIHJpbmcxLzIgaWIgdGVzdCBm b3Igbm93LCBzaW5jZSBpdCdzIG5vdCByZWxpYWJsZSAqLwo+Pj4+IMKgwqDCoMKgwqAgaWYgKHJp bmcgIT0gJnJpbmctPmFkZXYtPnZjZS5yaW5nWzBdKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gMDsKPj4+Pgo+Pj4+IC3CoMKgwqAgciA9IGFtZGdwdV9ib19jcmVhdGVfcmVzZXJ2ZWQo cmluZy0+YWRldiwgNTEyLCBQQUdFX1NJWkUsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmJvLCBOVUxMLCBOVUxMKTsKPj4+ PiArwqDCoMKgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURHUFVfSUJf UE9PTF9ESVJFQ1RdLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmYm8s IDUxMiwgUEFHRV9TSVpFKTsKPj4+PiDCoMKgwqDCoMKgIGlmIChyKQo+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm4gcjsKPj4+Pgo+Pj4+IEBAIC0xMTU4LDggKzExNTgsNyBAQCBpbnQgYW1k Z3B1X3ZjZV9yaW5nX3Rlc3RfaWIoc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLCBsb25n IHRpbWVvdXQpCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHIgPSAwOwo+Pj4+Cj4+Pj4gwqAgZXJy b3I6Cj4+Pj4gK8KgwqDCoCBhbWRncHVfc2FfYm9fZnJlZShhZGV2LCAmYm8sIGZlbmNlKTsKPj4+ PiDCoMKgwqDCoMKgIGRtYV9mZW5jZV9wdXQoZmVuY2UpOwo+Pj4+IC3CoMKgwqAgYW1kZ3B1X2Jv X3VucmVzZXJ2ZShibyk7Cj4+Pj4gLcKgwqDCoCBhbWRncHVfYm9fdW5yZWYoJmJvKTsKPj4+PiDC oMKgwqDCoMKgIHJldHVybiByOwo+Pj4+IMKgIH0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4+Pj4gaW5kZXggNGE3N2M3NDI0ZGZjLi4xZTQ2YjJmODk1 YmEgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zj bi5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jCj4+ Pj4gQEAgLTQ4OCw3ICs0ODgsNyBAQCBpbnQgYW1kZ3B1X3Zjbl9kZWNfc3dfcmluZ190ZXN0X3Jp bmcoc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nKQo+Pj4+IMKgIH0KPj4+Pgo+Pj4+IMKg IHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc2VuZF9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLAo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFt ZGdwdV9ibyAqYm8sCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgYW1kZ3B1X3NhX2JvICpibywKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSkKPj4+PiDCoCB7Cj4+Pj4gwqDC oMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4+Pj4gQEAg LTUwNCw3ICs1MDQsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX3NlbmRfbXNnKHN0cnVj dCAKPj4+PiBhbWRncHVfcmluZyAqcmluZywKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBl cnI7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIGliID0gJmpvYi0+aWJzWzBdOwo+Pj4+IC3CoMKgwqAg YWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KGJvKTsKPj4+PiArwqDCoMKgIGFkZHIgPSBhbWRn cHVfc2FfYm9fZ3B1X2FkZHIoYm8pOwo+Pj4+ICsKPj4+PiDCoMKgwqDCoMKgIGliLT5wdHJbMF0g PSBQQUNLRVQwKGFkZXYtPnZjbi5pbnRlcm5hbC5kYXRhMCwgMCk7Cj4+Pj4gwqDCoMKgwqDCoCBp Yi0+cHRyWzFdID0gYWRkcjsKPj4+PiDCoMKgwqDCoMKgIGliLT5wdHJbMl0gPSBQQUNLRVQwKGFk ZXYtPnZjbi5pbnRlcm5hbC5kYXRhMSwgMCk7Cj4+Pj4gQEAgLTUyMSw5ICs1MjIsNyBAQCBzdGF0 aWMgaW50IGFtZGdwdV92Y25fZGVjX3NlbmRfbXNnKHN0cnVjdCAKPj4+PiBhbWRncHVfcmluZyAq cmluZywKPj4+PiDCoMKgwqDCoMKgIGlmIChyKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv IGVycl9mcmVlOwo+Pj4+Cj4+Pj4gLcKgwqDCoCBhbWRncHVfYm9fZmVuY2UoYm8sIGYsIGZhbHNl KTsKPj4+PiAtwqDCoMKgIGFtZGdwdV9ib191bnJlc2VydmUoYm8pOwo+Pj4+IC3CoMKgwqAgYW1k Z3B1X2JvX3VucmVmKCZibyk7Cj4+Pj4gK8KgwqDCoCBhbWRncHVfc2FfYm9fZnJlZShhZGV2LCAm Ym8sIGYpOwo+Pj4+Cj4+Pj4gwqDCoMKgwqDCoCBpZiAoZmVuY2UpCj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgICpmZW5jZSA9IGRtYV9mZW5jZV9nZXQoZik7Cj4+Pj4gQEAgLTUzNSwyNSArNTM0LDI3 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfc2VuZF9tc2coc3RydWN0IAo+Pj4+IGFtZGdw dV9yaW5nICpyaW5nLAo+Pj4+IMKgwqDCoMKgwqAgYW1kZ3B1X2pvYl9mcmVlKGpvYik7Cj4+Pj4K Pj4+PiDCoCBlcnI6Cj4+Pj4gLcKgwqDCoCBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPj4+PiAt wqDCoMKgIGFtZGdwdV9ib191bnJlZigmYm8pOwo+Pj4+ICvCoMKgwqAgYW1kZ3B1X3NhX2JvX2Zy ZWUoYWRldiwgJmJvLCBOVUxMKTsKPj4+PiDCoMKgwqDCoMKgIHJldHVybiByOwo+Pj4+IMKgIH0K Pj4+Pgo+Pj4+IMKgIHN0YXRpYyBpbnQgYW1kZ3B1X3Zjbl9kZWNfZ2V0X2NyZWF0ZV9tc2coc3Ry dWN0IGFtZGdwdV9yaW5nIAo+Pj4+ICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCj4+Pj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9ibyAqKmJv KQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBh bWRncHVfc2FfYm8gKipibykKPj4+PiDCoCB7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4+Pj4gwqDCoMKgwqDCoCB1aW50MzJfdCAqbXNn Owo+Pj4+IMKgwqDCoMKgwqAgaW50IHIsIGk7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgICpibyA9IE5V TEw7Cj4+Pj4gLcKgwqDCoCByID0gYW1kZ3B1X2JvX2NyZWF0ZV9yZXNlcnZlZChhZGV2LCAxMDI0 LCBQQUdFX1NJWkUsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgYm8sIE5VTEwsICh2b2lkICoqKSZtc2cpOwo+Pj4+ICsKPj4+ PiArwqDCoMKgIHIgPSBhbWRncHVfc2FfYm9fbmV3KCZhZGV2LT5pYl9wb29sc1tBTURHUFVfSUJf UE9PTF9ESVJFQ1RdLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBibywg MTAyNCwgUEFHRV9TSVpFKTsKPj4+PiArCj4+Pj4gwqDCoMKgwqDCoCBpZiAocikKPj4+PiDCoMKg wqDCoMKgwqDCoMKgwqAgcmV0dXJuIHI7Cj4+Pj4KPj4+PiArwqDCoMKgIG1zZyA9IGFtZGdwdV9z YV9ib19jcHVfYWRkcigqYm8pOwo+Pj4+ICsKPj4+PiDCoMKgwqDCoMKgIG1zZ1swXSA9IGNwdV90 b19sZTMyKDB4MDAwMDAwMjgpOwo+Pj4+IMKgwqDCoMKgwqAgbXNnWzFdID0gY3B1X3RvX2xlMzIo MHgwMDAwMDAzOCk7Cj4+Pj4gwqDCoMKgwqDCoCBtc2dbMl0gPSBjcHVfdG9fbGUzMigweDAwMDAw MDAxKTsKPj4+PiBAQCAtNTc1LDE4ICs1NzYsMTkgQEAgc3RhdGljIGludCAKPj4+PiBhbWRncHVf dmNuX2RlY19nZXRfY3JlYXRlX21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90 IGhhbmQKPj4+PiDCoCB9Cj4+Pj4KPj4+PiDCoCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX2dl dF9kZXN0cm95X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgCj4+Pj4gKnJpbmcsIHVpbnQzMl90IGhh bmRsZSwKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0 cnVjdCBhbWRncHVfYm8gKipibykKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfc2FfYm8gKipibykKPj4+PiDCoCB7Cj4+Pj4gwqDC oMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7Cj4+Pj4gwqDC oMKgwqDCoCB1aW50MzJfdCAqbXNnOwo+Pj4+IMKgwqDCoMKgwqAgaW50IHIsIGk7Cj4+Pj4KPj4+ PiDCoMKgwqDCoMKgICpibyA9IE5VTEw7Cj4+Pj4gLcKgwqDCoCByID0gYW1kZ3B1X2JvX2NyZWF0 ZV9yZXNlcnZlZChhZGV2LCAxMDI0LCBQQUdFX1NJWkUsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAo+Pj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYm8sIE5VTEwsICh2b2lk ICoqKSZtc2cpOwo+Pj4+ICvCoMKgwqAgciA9IGFtZGdwdV9zYV9ib19uZXcoJmFkZXYtPmliX3Bv b2xzW0FNREdQVV9JQl9QT09MX0RJUkVDVF0sCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGJvLCAxMDI0LCBQQUdFX1NJWkUpOwo+Pj4+ICsKPj4+PiDCoMKgwqDCoMKgIGlm IChyKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4+PiArwqDCoMKgIG1zZyA9 IGFtZGdwdV9zYV9ib19jcHVfYWRkcigqYm8pOwo+Pj4+Cj4+Pj4gwqDCoMKgwqDCoCBtc2dbMF0g PSBjcHVfdG9fbGUzMigweDAwMDAwMDI4KTsKPj4+PiDCoMKgwqDCoMKgIG1zZ1sxXSA9IGNwdV90 b19sZTMyKDB4MDAwMDAwMTgpOwo+Pj4+IEBAIC02MDMsNyArNjA1LDcgQEAgc3RhdGljIGludCAK Pj4+PiBhbWRncHVfdmNuX2RlY19nZXRfZGVzdHJveV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLCB1aW50MzJfdCBoYW4KPj4+PiDCoCBpbnQgYW1kZ3B1X3Zjbl9kZWNfcmluZ190ZXN0X2li KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgbG9uZyAKPj4+PiB0aW1lb3V0KQo+Pj4+IMKgIHsK Pj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gTlVMTDsKPj4+PiAtwqDC oMKgIHN0cnVjdCBhbWRncHVfYm8gKmJvOwo+Pj4+ICvCoMKgwqAgc3RydWN0IGFtZGdwdV9zYV9i byAqYm87Cj4+Pj4gwqDCoMKgwqDCoCBsb25nIHI7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIHIgPSBh bWRncHVfdmNuX2RlY19nZXRfY3JlYXRlX21zZyhyaW5nLCAxLCAmYm8pOwo+Pj4+IEBAIC02MzMs NyArNjM1LDcgQEAgaW50IGFtZGdwdV92Y25fZGVjX3JpbmdfdGVzdF9pYihzdHJ1Y3QgCj4+Pj4g YW1kZ3B1X3JpbmcgKnJpbmcsIGxvbmcgdGltZW91dCkKPj4+PiDCoCB9Cj4+Pj4KPj4+PiDCoCBz dGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX3N3X3NlbmRfbXNnKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZywKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBh bWRncHVfYm8gKmJvLAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGFtZGdwdV9zYV9ibyAqYm8sCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpCj4+Pj4gwqAgewo+Pj4+IMKg wqDCoMKgwqAgc3RydWN0IGFtZGdwdV92Y25fZGVjb2RlX2J1ZmZlciAqZGVjb2RlX2J1ZmZlciA9 IE5VTEw7Cj4+Pj4gQEAgLTY1MSw3ICs2NTMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVj X3N3X3NlbmRfbXNnKHN0cnVjdCAKPj4+PiBhbWRncHVfcmluZyAqcmluZywKPj4+PiDCoMKgwqDC oMKgwqDCoMKgwqAgZ290byBlcnI7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIGliID0gJmpvYi0+aWJz WzBdOwo+Pj4+IC3CoMKgwqAgYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KGJvKTsKPj4+PiAr wqDCoMKgIGFkZHIgPSBhbWRncHVfc2FfYm9fZ3B1X2FkZHIoYm8pOwo+Pj4+IMKgwqDCoMKgwqAg aWItPmxlbmd0aF9kdyA9IDA7Cj4+Pj4KPj4+PiDCoMKgwqDCoMKgIGliLT5wdHJbaWItPmxlbmd0 aF9kdysrXSA9IHNpemVvZihzdHJ1Y3QgCj4+Pj4gYW1kZ3B1X3Zjbl9kZWNvZGVfYnVmZmVyKSAr IDg7Cj4+Pj4gQEAgLTY3MSw5ICs2NzMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92Y25fZGVjX3N3 X3NlbmRfbXNnKHN0cnVjdCAKPj4+PiBhbWRncHVfcmluZyAqcmluZywKPj4+PiDCoMKgwqDCoMKg IGlmIChyKQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9mcmVlOwo+Pj4+Cj4+Pj4g LcKgwqDCoCBhbWRncHVfYm9fZmVuY2UoYm8sIGYsIGZhbHNlKTsKPj4+PiAtwqDCoMKgIGFtZGdw dV9ib191bnJlc2VydmUoYm8pOwo+Pj4+IC3CoMKgwqAgYW1kZ3B1X2JvX3VucmVmKCZibyk7Cj4+ Pj4gK8KgwqDCoCBhbWRncHVfc2FfYm9fZnJlZShhZGV2LCAmYm8sIGYpOwo+Pj4+Cj4+Pj4gwqDC oMKgwqDCoCBpZiAoZmVuY2UpCj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgICpmZW5jZSA9IGRtYV9m ZW5jZV9nZXQoZik7Cj4+Pj4gQEAgLTY4NSwxNSArNjg1LDE0IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X3Zjbl9kZWNfc3dfc2VuZF9tc2coc3RydWN0IAo+Pj4+IGFtZGdwdV9yaW5nICpyaW5nLAo+Pj4+ IMKgwqDCoMKgwqAgYW1kZ3B1X2pvYl9mcmVlKGpvYik7Cj4+Pj4KPj4+PiDCoCBlcnI6Cj4+Pj4g LcKgwqDCoCBhbWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPj4+PiAtwqDCoMKgIGFtZGdwdV9ib191 bnJlZigmYm8pOwo+Pj4+ICvCoMKgwqAgYW1kZ3B1X3NhX2JvX2ZyZWUoYWRldiwgJmJvLCBOVUxM KTsKPj4+PiDCoMKgwqDCoMKgIHJldHVybiByOwo+Pj4+IMKgIH0KPj4+Pgo+Pj4+IMKgIGludCBh bWRncHVfdmNuX2RlY19zd19yaW5nX3Rlc3RfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBs b25nIAo+Pj4+IHRpbWVvdXQpCj4+Pj4gwqAgewo+Pj4+IMKgwqDCoMKgwqAgc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2UgPSBOVUxMOwo+Pj4+IC3CoMKgwqAgc3RydWN0IGFtZGdwdV9ibyAqYm87Cj4+ Pj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X3NhX2JvICpibzsKPj4+PiDCoMKgwqDCoMKgIGxvbmcg cjsKPj4+Pgo+Pj4+IMKgwqDCoMKgwqAgciA9IGFtZGdwdV92Y25fZGVjX2dldF9jcmVhdGVfbXNn KHJpbmcsIDEsICZibyk7Cj4+Pj4gLS0gCj4+Pj4gMi4yOS4yCj4+Pj4KPj4KPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlz dAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK