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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 558581061B3B for ; Tue, 31 Mar 2026 11:59:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9CF9710E8C3; Tue, 31 Mar 2026 11:59:57 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="3SNez+uq"; dkim-atps=neutral Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011068.outbound.protection.outlook.com [52.101.52.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id 87E5A10E2B6; Tue, 31 Mar 2026 11:59:56 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TXYJYH9lXfI3/aq68AzxlFw0lbFZSw3skCIt6/VTdlBH0G78ohJOXshrLjiJscO9XnLYVlRWOFK3w0nODpothZlftW5Rfw5sQEM0gZbxnFAvO1jQC2dklz3NXlcb/QUcabSpg5X7PfX9108jcc94lbL6HtjOa3hyLU3zWEYAKgzpRfMlLyvkvZhpFtnwIH70IcNfknmW4SjmwfXRIwX1Y9P14AtOx/XC7m/rS6n3U0jwVeUOo1WQYgip22oV5oTFQrcN3TSnFC0OtE0hGMQkrWJsN4JX5KAFMxLCNLvYLuJ3wxrpsZ5j96FGXyBnnUJzSJ3bYDXfR0niiELiXAY9wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Ty9DiPFfgSJtVd2yrgzqGQAYCBYVtK44IHYHyCDCsMI=; b=n3QMR/QQeq8M9ktTs3aB9xcmWfC34zusKckdHgUoeKP4rYn0J72PhpBVEx2sXJoxUoOSs2YgBcuyL2VjLbbZu0fBEgF/vBGqozaeIbaGOptgcpWiySKKOdw4wYSxYOsGSs3DgtjSnkLUOvoZx7hupp4Lhj/vT47RGGJDFVoPCimWxQdY9MqLhsl3+zonIfFGRVbujah0JkQ7muxyGsWTYj6ZwFuqz+BaXT3OdTMclmXQSdRFecMwWMYD/dQ7ScInHomc6rWCnLeo8QnYwWp8Tq7cmARn9W9vnGcxCVmSChQ7V3cxbhLppjKoht8PWTgp5bA1LjsF9vx0fxJdw5xYXA== 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=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ty9DiPFfgSJtVd2yrgzqGQAYCBYVtK44IHYHyCDCsMI=; b=3SNez+uqoISmUB/gClaPdVWZcRmYgnb5iJLKhxBMWbedjNw5qA/k+/9dSN9ndnTaSRZzP9Zye7cWQwEojeWtzebTuGBoUuqCQYXVk8ca2mTcS56g+Hqt1rmQCHatBhFHrOmsYwHn8fpYSLPrYSydTjSKjHEtT3p1xaqctZc1M6s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by DM4PR12MB5914.namprd12.prod.outlook.com (2603:10b6:8:67::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 11:59:52 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.20.9769.014; Tue, 31 Mar 2026 11:59:51 +0000 Message-ID: <41747ef2-54d6-45e6-8d19-d682817c23a3@amd.com> Date: Tue, 31 Mar 2026 13:59:40 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/5] drm/exec, drm/xe: Avoid abusing the drm_exec retry pointer To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , intel-xe@lists.freedesktop.org Cc: Felix Kuehling , Alex Deucher , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Danilo Krummrich , Matthew Brost , Alice Ryhl , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org References: <20260331092023.81616-1-thomas.hellstrom@linux.intel.com> <20260331092023.81616-5-thomas.hellstrom@linux.intel.com> <916ac7fc-d699-453f-af60-5cb3b15c1156@amd.com> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: FR4P281CA0224.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e4::14) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|DM4PR12MB5914:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c0aaf9a-2a9b-4e05-63c5-08de8f1d03d1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: E6OcKGU9tf47SG6cNd6vc3hlwmXSieEWKhOYJxzX0jXknyp4zNX+FMWLCvh7tCXacaFlOYwri6PoB+lPrAq4zbchKNSYcjCWP4P5NZAtLRN3RBptidpW6z1LMY+ulzRJth2HkSmVPyszJnYYc97bVMgdgkqVb1/aVmHF5DIfyqFpUHomEDiUrj95swZrdcvyvpLCPgRX6SzM8cIF2GipyZXom08gEVEaQwxLfI0jg6JczPILMBD3mFa3yWUyYN5MjzdwV07E/mIYBSZXfFVwp7Iej3FcBHrza3VPtaPmTmAr9FepoBEeF94pQJaUwFwcHNqwNyDZXOHAxTb6F1Tn5uZrSTiAB2OgQ00eRHc6j6gTOhSwvHJiHDLZbn9HJVIj+ZtWs95E74StGzBZ7AVlKCOS60xHntm2aocUCYmDTuxdsPri/HOizEdXKAl99wE6+a92kO/MID7l8cVXZnjraZtqpJQBy1LZ2VLcZl/PC+JxUcTkub5RYuYdi6rEl4SO308cI0sKspHTmJiXucz1Ytwi4kUUDeLsSDdi5E1YxYaUeQbWcqRubVktDDgWwVhp9Ej+TFqfG04UakFFxlrExHdoJyHbn95V9ftiimOMYWPHgdskpLGjPGbUeMdcA8zXaZ6O475UG/1ivt14KkcSBsIJWxImBZRy1e4PeWuyHhVeKKQiU+ZikdRVVCnbr5Xb0bIpjoq/vWNK/qsZC0HKD95dXXi55jC/a4XLKH4SsYo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB5685.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?djdsSnFnenY1WFVLcGpFcW41ZG1FZ3M4K0FSREFzMS9ETzNocW5DWEV5N3hG?= =?utf-8?B?bXVkRGk5c0NuajU4YURLeERzLzNrYVIvWTIvQmNHZHFXVHlqNmNldnVjb2tC?= =?utf-8?B?RjBoMEpXczJiejArd0FWUDkwQ2tHQUI1bjZheEM3SDVrZHZPUzZVT1p3U0VJ?= =?utf-8?B?T2lON0dLRkhMY0l3MGRwY1VDcDg4TWhyelF2ZEdLc0pXQWFRelBRN3NNNEZm?= =?utf-8?B?NGo0NlZ0YmdSVU9CWkhuQ3F1TDcycEZYYzNyZkNpOHhYeE5JckIwMHQrRDM2?= =?utf-8?B?ZHdaRFFCdVhPTEJTTVMzK3FtYkpLRThJVko3TUhDV3JJNFBKY3JwMnF2aG1Y?= =?utf-8?B?OEhlcVNjMWIwUXcvVzIxZWt0UGhmU0g3dCtNcGxKQUxaMWlJck9rMzNtU0ZC?= =?utf-8?B?MllyYnhMT0xqR1FaVmdGbjg4dzRsZEgwU2xIREZvaTZId1VUcVoyWE1OVk9q?= =?utf-8?B?WThkVGtVY2J2N2VEWGhJd0pOSlhZS09IN0VMMEN4ekhPcjdjZ25rRmRVTkdF?= =?utf-8?B?QzZiVVByaVJQcnlZOG4zamxjb2tqQjJJd0U0RG9YeVE4eWJrNExPS2tQd3Vp?= =?utf-8?B?dGI0bHlvcHRKanlYU2RuRVAyWi82Zm5PK3NrdHFZMEVYaUsrTVlZc0Mraytv?= =?utf-8?B?S21mSDNCbmxmTkRpeEpFL3VvUkF3YkVkS1J6MUhSOUg1V3o4amljWGVNcHY4?= =?utf-8?B?RDZpRE9Wc1BXZmI3QVhHRUM2NlNjTmNoRUIvTFg1VGdxemIxblI4emMySVk4?= =?utf-8?B?VHFzaVhWcTdneDh4R1NtOWxVUGxoY0ZtME5PT3RsazZEbWJRRmNGb1R5OUYw?= =?utf-8?B?dzR0N2pNVTNYM2diUG8zT3VNMmYvR1lIY2VnanNES2I2MGtSMVdJdFE1OE9j?= =?utf-8?B?bmEyVi9uVUdSTGxWVHZ6VDdtanZpeXh1TTU2bDYvbmhpY0ZxZnBzbW5vZVRz?= =?utf-8?B?YnFiQ1pZNDY4WWRxQ3cwM1hqMUowU3NkMUpGekpWZEZqMEsyU2FQTURzQ1cr?= =?utf-8?B?TFpkYkxielRvamx0SERjZWlsWVV1RjZ4Y0FEUk84b0ZPZlFELzAvbHIrVkE4?= =?utf-8?B?NE9XNnBnYmZEUWo4S0pYSWkrMkp4cXpBWU1oNVAxcUhrUEZuSU1NNnNGM3BO?= =?utf-8?B?WWVBNXlmVFhSKzJFalliTldValR1elgycHdCdTBnWlR0ZUFHSDg3UzlEcDJo?= =?utf-8?B?alhCSW1OSW1meGsvc0Zsdm5PMU1DRzFiNFRYcnJhdmFYVWVyQ2lDd1JiZ1lv?= =?utf-8?B?d0NDRWIrWVphMDZ5YkZ3NDRDYXZ6VTJSSUV0QTREYWZyaUJRN21IT3poc3Bo?= =?utf-8?B?VWsrM0tUOW5sVlZKWmJORWhoRU1xcXc3NS9YT3ZaeVlMUmlkVUY1ZXRTU0lj?= =?utf-8?B?SmI2OWQvYUYzcGVxaVAvR1RSQ21QcnBDSWVwMDcxb3FZelJGMlZqMjNTWG5X?= =?utf-8?B?eG1LL3g4RklrMG1kaUM1RHZuS21wMVZyVU0wQVNoRlhGUkRaVmxqLzlsYml1?= =?utf-8?B?VVd3L0ZXUDUwS1JGMDA0dGxQOTRxWHN6Q3B2L25TMUpsN2xYN21mc0tTL1JN?= =?utf-8?B?WVhhR0Nwd0k3MGo3OXFMZllzM3VTakpBNU1CREZmS2tWZksvWElQRUpJL093?= =?utf-8?B?VHEyNWxzalZzVW1OOUdoNStwUzNEaVZtTlYwNS9sNjJFSVB6TWNBaUxNQkVD?= =?utf-8?B?U0lxK1V4Wjdobjd5Um9vL2EweVF5TE9WckFTYjRkQkVESE01ZktrWnl1akpO?= =?utf-8?B?MmUyZUZTNkZ0U0dCTnNtY0tLTExqOVhSYzFHQ1FpNXFxZVhKQS93ZW9zbHdB?= =?utf-8?B?ZnVEeDRMUGxOcDRORnIrZEQ2WkZsMEYzWU40R3FKMnd2cFZ0YkVXenNhR2Ux?= =?utf-8?B?WDZpWHQ3MDhnSEZvMENPWVAvR1FNTG1XalVmVk9pUXVUZEZxbENXaGlSc0VY?= =?utf-8?B?Z0JiVElsUS9rSDRBL0RjTks5azRSZG1HUlA4aTJOdWtsMU54SkdaSDJncGRk?= =?utf-8?B?VE96RDVEUHBzVU0rbURtL250Tm1zNXNwc3lZU0hjMWlYWnNtOXdBaURjWVFW?= =?utf-8?B?RmpBL25VeWlaUi9OM0owN1htYWhkejJ5OUkzY01Ha3lSSkZjaEZpMFd4MjI1?= =?utf-8?B?aUJEZHlPUnRlQm5peG9BNE9pRG1TN3luZFZjeVI0TzFHOVdlYU5NZDJhQTU5?= =?utf-8?B?UnQ4c2RjUG5aSlozWW1TMW0zRG9qb1FoMzh4ZTFBVjg0YXhtdkRML1Jlalhi?= =?utf-8?B?MDkyYmVOUytsYktCWWZOakJaMlQ3SlhOZS95WHRSN0RZS00wajRneHQwQUV6?= =?utf-8?Q?ckpMMePkLmP9AahLNv?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c0aaf9a-2a9b-4e05-63c5-08de8f1d03d1 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 11:59:51.5406 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RblIdvcc06PPq01HnTE/trkk6U9W1OpgqhUgr7rXfX2ZEnR3BrwuPZTG1uTckQmJ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5914 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gMy8zMS8yNiAxMjoxMywgVGhvbWFzIEhlbGxzdHLDtm0gd3JvdGU6Cj4gT24gVHVlLCAyMDI2 LTAzLTMxIGF0IDExOjQ0ICswMjAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBPbiAzLzMx LzI2IDExOjIwLCBUaG9tYXMgSGVsbHN0csO2bSB3cm90ZToKPj4+IFRoZSB4ZSBkcml2ZXIgd2Fz IHVzaW5nIHRoZSBkcm1fZXhlYyByZXRyeSBwb2ludGVyIGRpcmVjdGx5IHRvCj4+PiByZXN0YXJ0 IHRoZSBsb2NraW5nIGxvb3AgYWZ0ZXIgb3V0LW9mLW1lbW9yeSBlcnJvcnMuIFRoaXMgaXMKPj4+ IHJlbHlpbmcgb24gZG9jdW1lbnRlZCBiZWhhdmlvdXIuCj4+Pgo+Pj4gSW5zdGVhZCBhZGQgYSBk cm1fZXhlY19yZXRyeSgpIG1hY3JvIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhpcwo+Pj4gc2l0dWF0 aW9uLCBhbmQgdGhhdCBhbHNvIGFzc2VydHMgdGhhdCB0aGUgc3RydWN0IGRybV9leGVjIGlzCj4+ PiBpbiBhIHN0YXRlIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHJldHJ5aW5nOgo+Pj4gRWl0aGVy IG5ld2x5IGluaXRpYWxpemVkIG9yIGluIGEgY29udGVuZGVkIHN0YXRlIHdpdGggYWxsIGxvY2tz Cj4+PiBkcm9wcGVkLgo+Pj4KPj4+IFVzZSB0aGF0IG1hY3JvIGluIHhlLgo+Pj4KPj4+IFNpZ25l ZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVs LmNvbT4KPj4+IC0tLQo+Pj4gwqBkcml2ZXJzL2dwdS9kcm0veGUveGVfdmFsaWRhdGlvbi5oIHzC oCAyICstCj4+PiDCoGluY2x1ZGUvZHJtL2RybV9leGVjLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCAxMyArKysrKysrKysrKysrCj4+PiDCoDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUveGVfdmFsaWRhdGlvbi5oCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92YWxpZGF0aW9u LmgKPj4+IGluZGV4IGEzMGU3MzJjNGQ1MS4uNGNkOTU1Y2U2Y2QyIDEwMDY0NAo+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZhbGlkYXRpb24uaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3hlL3hlX3ZhbGlkYXRpb24uaAo+Pj4gQEAgLTE0Niw3ICsxNDYsNyBAQCBib29sIHhlX3Zh bGlkYXRpb25fc2hvdWxkX3JldHJ5KHN0cnVjdAo+Pj4geGVfdmFsaWRhdGlvbl9jdHggKmN0eCwg aW50ICpyZXQpOwo+Pj4gwqAjZGVmaW5lIHhlX3ZhbGlkYXRpb25fcmV0cnlfb25fb29tKF9jdHgs Cj4+PiBfcmV0KQkJCQlcCj4+PiDCoAlkbwo+Pj4gewkJCQkJCQkJXAo+Pj4gwqAJCWlmICh4ZV92 YWxpZGF0aW9uX3Nob3VsZF9yZXRyeShfY3R4LAo+Pj4gX3JldCkpCQlcCj4+PiAtCQkJZ290bwo+ Pj4gKl9fZHJtX2V4ZWNfcmV0cnlfcHRyOwkJCVwKPj4+ICsJCQlkcm1fZXhlY19yZXRyeSgoX2N0 eCktCj4+Pj4gZXhlYyk7CQkJXAo+Pgo+PiBPaCwgdGhhdCBnb3RvIGlzIGV4dHJlbWVseSBxdWVz dGlvbmFibGUgdG8gYmVnaW4gd2l0aC4KPj4KPj4+IMKgCX0gd2hpbGUgKDApCj4+PiDCoAo+Pj4g wqAvKioKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZXhlYy5oIGIvaW5jbHVkZS9k cm0vZHJtX2V4ZWMuaAo+Pj4gaW5kZXggZmM5NWE5NzllMjUzLi41ZWQ1YmUxZjgyNDQgMTAwNjQ0 Cj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZXhlYy5oCj4+PiArKysgYi9pbmNsdWRlL2RybS9k cm1fZXhlYy5oCj4+PiBAQCAtMTM4LDYgKzEzOCwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wKPj4+ IGRybV9leGVjX2lzX2NvbnRlbmRlZChzdHJ1Y3QgZHJtX2V4ZWMgKmV4ZWMpCj4+PiDCoAlyZXR1 cm4gISFleGVjLT5jb250ZW5kZWQ7Cj4+PiDCoH0KPj4+IMKgCj4+PiArLyoqCj4+PiArICogZHJt X2V4ZWNfcmV0cnkoKSAtIFVuY29uZGl0aW9uYWxseSByZXN0YXJ0IHRoZSBsb29wIHRvIGdyYWIg YWxsCj4+PiBsb2Nrcy4KPj4+ICsgKiBAZXhlYzogZHJtX2V4ZWMgb2JqZWN0Cj4+PiArICoKPj4+ ICsgKiBVbmNvbmRpdGlvbmFsbHkgcmV0cnkgdGhlIGxvb3AgdG8gbG9jayBhbGwgb2JqZWN0cy4g Rm9yCj4+PiBjb25zaXN0ZW5jeSwKPj4+ICsgKiB0aGUgZXhlYyBvYmplY3QgbmVlZHMgdG8gYmUg bmV3bHkgaW5pdGlhbGl6ZWQgb3IgY29udGVuZGVkLgo+Pj4gKyAqLwo+Pj4gKyNkZWZpbmUgZHJt X2V4ZWNfcmV0cnkoX2V4ZWMpCQkJCVwKPj4+ICsJZG8gewkJCQkJCVwKPj4+ICsJCVdBUk5fT04o IWRybV9leGVjX2lzX2NvbnRlbmRlZChfZXhlYykpOyBcCj4+Cj4+IFRoaXMgd2FybmluZyB3b3Vs ZCB0cmlnZ2VyIQo+Pgo+PiBTZWUgdGhlIGNvZGUgaW4geGVfYm9fbm90aWZpZXJfcHJlcGFyZV9w aW5uZWQoKSBmb3IgZXhhbXBsZToKPj4KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBkcm1fZXhlY19yZXRyeV9vbl9jb250ZW50aW9uKCZleGVjKTsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBQVFJf RVJSKGJhY2t1cCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgeGVfdmFsaWRhdGlvbl9yZXRyeV9vbl9vb20oJmN0eCwgJnJldCk7Cj4+Cj4+IFdpdGhv dXQgY29udGVudGlvbiB3ZSB3b3VsZCBqdXN0IHNraXAgdGhlIGxvb3AgYW5kIG5ldmVyIGxvY2sK Pj4gYW55dGhpbmcuCj4+Cj4+IFdoYXQgWEUgZG9lcyBoZXJlIGp1c3QgZG9lc24ndCB3b3JrIGFz IGZhciBhcyBJIGNhbiBzZWUuCj4gCj4gU28gaWYgdGhlIHhlX3ZhbGlkYXRpb25fcmV0cnlfb25f b29tKCkgaXMgYWN0dWFsbHkgcmV0cnlpbmcgaXQKPiBpbnRlcm5hbGx5IGNhbGwgZHJtX2V4ZWNf ZmluaSgpIGFuZCBkcm1fZXhlY19pbml0KCkgZmlyc3QsIHdoaWNoIG1lYW5zCj4gdGhhdCB0aGUg d2FybmluZyBkb2Vzbid0IHRyaWdnZXIsIGR1ZSB0byB0aGUgZHVtbXkgdmFsdWUgb2YgY29udGVu ZGVkLgoKQWghIFllYWggdGhhdCBpbmZvcm1hdGlvbiB3YXMgbWlzc2luZy4KCkknbSByZWFsbHkg d29uZGVyaW5nIGlmIHRoZSBjYWxscyB0byBkcm1fZXhlY19maW5pKCkvZHJtX2V4ZWNfaW5pdCgp IHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBkcm1fZXhlY19yZXRyeSgpIGhhbmRsaW5nLgoKT3RoZXJ3 aXNlIHRoYXQgaXMga2luZCBvZiBlYXN5IHRvIG1lc3MgdXAuCgpSZWdhcmRzLApDaHJpc3RpYW4u Cgo+IAo+IFNvIHRoZSB3YXJuaW5nIGRvZXMgaXRzIGpvYiwgYW5kIHhlIGlzIHNhZmUuCj4gCj4g VGhhbmtzLAo+IFRob21hcwo+IAo+IAo+IAo+Pgo+PiBSZWdhcmRzLAo+PiBDaHJpc3RpYW4uCj4+ Cj4+PiArCQlnb3RvICpfX2RybV9leGVjX3JldHJ5X3B0cjsJCVwKPj4+ICsJfSB3aGlsZSAoMCkK Pj4+ICsKPj4+IMKgdm9pZCBkcm1fZXhlY19pbml0KHN0cnVjdCBkcm1fZXhlYyAqZXhlYywgdTMy IGZsYWdzLCB1bnNpZ25lZCBucik7Cj4+PiDCoHZvaWQgZHJtX2V4ZWNfZmluaShzdHJ1Y3QgZHJt X2V4ZWMgKmV4ZWMpOwo+Pj4gwqBib29sIGRybV9leGVjX2NsZWFudXAoc3RydWN0IGRybV9leGVj ICpleGVjKTsKCg==