Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1541384lql; Wed, 13 Mar 2024 00:19:41 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVJ7Z6iumchfVY4CrAWAw0LycjandEY7x3g7bnDypo2buCrbr3ppu56xBf5BmmFPIQ5DexK+xIsXFwkaw62cMROb8eqzPosq2wL+QNSCA== X-Google-Smtp-Source: AGHT+IEYKWXpwVtjh2QnIhtQjfpfA9GV21B9L1bbCaarzT0PM3/+aV68qUtw4P32T8CJ08sqlgzF X-Received: by 2002:a37:c44b:0:b0:788:2631:187b with SMTP id h11-20020a37c44b000000b007882631187bmr13037823qkm.32.1710314381174; Wed, 13 Mar 2024 00:19:41 -0700 (PDT) Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id ee11-20020a05620a800b00b007881ea79b05si9546306qkb.547.2024.03.13.00.19.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 00:19:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-101170-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector2 header.b=ckyPXb1q; arc=fail (signature failed); spf=pass (google.com: domain of linux-kernel+bounces-101170-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101170-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id C62961C219AC for ; Wed, 13 Mar 2024 07:19:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1E58917BDF; Wed, 13 Mar 2024 07:19:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=csgroup.eu header.i=@csgroup.eu header.b="ckyPXb1q" Received: from PA5P264CU001.outbound.protection.outlook.com (mail-francecentralazon11020003.outbound.protection.outlook.com [52.101.167.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D290D171C9 for ; Wed, 13 Mar 2024 07:19:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.167.3 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710314369; cv=fail; b=NHncK9uciLCYXlDQAQGkRA2G1gEMbsMtuxaSXXNl8AIzWUwc37KrUtARS37/lt3U7uf3np5hHj4M8HFthXu9ZA7FDGNRSViV0JQHJxN3kQ5HiIGr+bnHIKtAN35xJK77TjgZq/E4vE8mYQU5Cpcqv9fg0vyuTMsdLOoYrwKbIIA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710314369; c=relaxed/simple; bh=zsX3JtDb4j5Qc0EN0iasdz8Ka2zGjxG7PRWBTrjFsqw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=p1p5X+lVyLY1/b+/8GEzLEYipPyLbrFm8/WG/FNgVwaYbeRG134sODVhZ3xIX/YMo80kMB4yOSGB6DTouzY6rNipFEoBPC0dOFcBJtK7DOpIhW2YJwZxGBwjF6UdrXMqQyKYPD4t38g9elsUHJcI9UlblHurdFt0+CfuTDxZtt4= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=csgroup.eu; spf=pass smtp.mailfrom=csgroup.eu; dkim=pass (2048-bit key) header.d=csgroup.eu header.i=@csgroup.eu header.b=ckyPXb1q; arc=fail smtp.client-ip=52.101.167.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=csgroup.eu Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=csgroup.eu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CF/ufltqn9npuvtU64hH8PY63z6wdo9RpMH4h9QQGB5WikLv0gADKuMDKQ1z3sZjBqYM2cum4I8FYAYaTr76z/lemjtJrgIXWyDM1bU7Dso5iiPbUWUyTr4YSfBm+AP24evVSaeBsB90ApzfY6ESwneaMgIHxBBYZDqcZxTxB1yMTZdkVHPhFYQH6HOF0JR1hreWwweCe+pLcgdyT5TyNPl4/QzHrwIndBp8L5Elulu3kkAluneEP2oya6ZnX5yXT37tB+psg8QPYT6jzayUjgCGwALd/p76XVMxp8IpHgqN3d23AJjXrezSrIBpAq7f6tObjcIXwdY1ECqa+Gd6AA== 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=zsX3JtDb4j5Qc0EN0iasdz8Ka2zGjxG7PRWBTrjFsqw=; b=VVf2u4VIPkqRjzm2/25uEVzp8hIT/WEqDziShC/Rb+QMpHlxWEs8ttJLiMAK8rdBXlBNOWWGcCcPBnQCRcYZoIPdlmhgD9Pi7kcv4vvQ/FsKqako+snE9l8o0Vpm2fx68b/PWopHrEopqyE3prmhiADxSppSotjCTKGaD7aI0JaRhW0nGEn+a1P9az5vgP00GzfKYWzT7v68Fs292sT0zExM0CRilnVw6zrniaXiE6O/nHPvMZf4xhx1FCPFckT2ySR22h4qgQ92ve46QpaUTnPwqRJbhGDhuKaqeCkTlkuIcj10ZoKh1+Xqj65zXB7P+nox2CnlfbAdjzOi/Inmiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zsX3JtDb4j5Qc0EN0iasdz8Ka2zGjxG7PRWBTrjFsqw=; b=ckyPXb1q1/YXzqBbWimQt+nmANSltd7ZLHSuV8iiAEd9IcBem1aC6l2WzTrY8FBCCWZnmSdmxgjN2kpMAYTzqR5Eyl+0+NVUMMs4I1tJhLTViWpFBKNWXZPGayvX1JY1mBH3FNp1kOPWDaml3vV1n8zR/hTUYP3QBEgHoqHpWzxnT4+hijsNBziaAeaYXKlHcOXkgGqSjcRn2sFFJvWtf16nPDdQJKnhbjbLMiGk0Zqb3K6HB4cpNAS/I1IqQ8CAUUjUL+dJ8N2tDrfyWZSrOgiqWy5J8H5OGzoi0IcJzGhXU3Z4Ml+5YlXNAyw3J7l7/sv1zvhCh/N+0psHXUnSzA== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB1787.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:16f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.20; Wed, 13 Mar 2024 07:19:21 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::c192:d40f:1c33:1f4e]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::c192:d40f:1c33:1f4e%6]) with mapi id 15.20.7386.017; Wed, 13 Mar 2024 07:19:21 +0000 From: Christophe Leroy To: Rick Edgecombe , "Liam.Howlett@oracle.com" , "akpm@linux-foundation.org" , "bp@alien8.de" , "broonie@kernel.org" , "dave.hansen@linux.intel.com" , "debug@rivosinc.com" , "hpa@zytor.com" , "keescook@chromium.org" , "kirill.shutemov@linux.intel.com" , "luto@kernel.org" , "mingo@redhat.com" , "peterz@infradead.org" , "tglx@linutronix.de" , "x86@kernel.org" CC: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" Subject: Re: [PATCH v3 01/12] mm: Switch mm->get_unmapped_area() to a flag Thread-Topic: [PATCH v3 01/12] mm: Switch mm->get_unmapped_area() to a flag Thread-Index: AQHadMy0T5WtX19oUE+qwK/qPHezQ7E1Q+4A Date: Wed, 13 Mar 2024 07:19:21 +0000 Message-ID: <21ba6b8e-b9c7-41ae-8815-46525557c687@csgroup.eu> References: <20240312222843.2505560-1-rick.p.edgecombe@intel.com> <20240312222843.2505560-2-rick.p.edgecombe@intel.com> In-Reply-To: <20240312222843.2505560-2-rick.p.edgecombe@intel.com> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PR0P264MB1787:EE_ x-ms-office365-filtering-correlation-id: c011261a-9cdd-42f5-f558-08dc432de761 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: N7TIDIm3uEGNcrpIB2xzdLyfmT/xoFJ5kdhGSpIoDzhNYLUWkvIT12CFdv/KMW1q0k5q9NBt7jC96N9n7aYfguMinY37fwMz4JXyA+UM0Cj3sTIYtRWgFwvsH3xwoZmjGTn5+AjopYtbFJ9Iwp+4Cf0vvnVI5PPmt4rSKaGekzWTUIhvfioA1TyhYN2Y6MW28xKT02Rmhl//hRkobV85h8JY15JRu9tjNG8cXaw0ZXfJybo3GGcklTkR37UTRCGO8MXr8KixcIXwe3DhQsthoIViSRmTnWUyi0rieo1AVnir8Q2YtOSXktU1sABhdPrrko5ylay1gc7xJ6dT2nITGC9wUSLG96ZFTdhGH2XcOXb07T71ziaWIBfIWh6rvScikQD3PNpz/d/e6WEvUbyK6kqoX04b8J/A0Kv761pLKYWz1YCRcmo+/ntB8u1/EyH1GNMspb5YtZo0lwn5by4zP/02QX1dRsRBpJEy8TKqpJW9lH5BPwyXhgl4v1uNxFhgx7MuSUDO4x0NQylBCHgjxrvzZ0Pi8zSSd+01Bs7aHehKhjQtqx9mmOcue5hL4bOp06UuAxJU+JOn41uFwwZGNGQZjJvSR46UJJ0aTTyhmA7oAjh6wdS/h88cv23/e5ml2jJTiMmZM/vBS3UiK7Yrqsb6CW1960Ic44xlgcsQNqRx9nIgywiPWqjO7GLJrZxubPsUkptTZiufZ6HSNwhwINfQeOLb190Xg4M5z58eklA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(7416005)(1800799015)(376005)(921011)(38070700009);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VlRDaEdjMHJpVGo0U3B0djRhazBhOWZOR1B3SXFLU1FNMms0MnVkcm8va1Bm?= =?utf-8?B?VVVqWkNQWnJPU3VhaEZ2MGZJSGFPMy9pS1BUQ0VCNm9Ja1lqVmVyVUQ2Ukdi?= =?utf-8?B?aXVCZGlJajc4T3R0QTdRMzBmZ2ZrK2ZycllSZUFDV1NQQUQ1QVB3YS9yYXc2?= =?utf-8?B?cUVHV3FxT2tNbTQ2SmR1MnVzVGdKRjVlS2JRMGhraE8yeWFwZExqeU5zczhR?= =?utf-8?B?OFUrd0lGVzJvVkFiMFVQUk5MQSs5RjZrdzRKSVVkSTlVQm1OTFduYnZjZGhB?= =?utf-8?B?ejlxMDl3SDNBc2YzZ0Y1UXpFNm1seWc5dnNhMGNWUlJabUZYdUtJR21vdDVa?= =?utf-8?B?ZXNncGsvQjZXNEY1UGduYXJnek12d2JJQU9BRU51OWtxMXpyR2xvQ2xQbWth?= =?utf-8?B?dEo1TUliLzdsVC9idTdhKzFxeGhhNm82cWlmSmt5dGVyMncxYWRMcHFQWkZ5?= =?utf-8?B?ak5nbnpkcXk3bU1GZHlYR2x3b0JvNmtmVmVJZVBBQjVBbGxjV005eGNtS2Ur?= =?utf-8?B?M2oybEpINEtUVXNtWWlWKzZsM3FnSzdrSHM3R241MmhiM3k1bVQ5dDNiNW54?= =?utf-8?B?aGV6L0xjM2pCQ3duZ1Y5Z2dlbHZIVmN4VUI3VmRDZ2ZnUHlMZ3VvWUNhanlB?= =?utf-8?B?N0xRN2oxV05wQ0ZmaElGWnAwdUpvM2kxeld0a0tuVkNISGxiZ0UrZnEvQTZQ?= =?utf-8?B?cEFVbnN0QXpoTnVZeURPbDZLTUVJWGlkc2lONHZGeWM1WHFFdHlFSURkTEVn?= =?utf-8?B?ei82YTZvVllVVGU2SGM0M3dEdENmL3ZjNDZCUzdzWlg5dFJzUGV4TEFKRFkz?= =?utf-8?B?SWZSNFN0aVNUOFo0RWMxMzYxQ002Y2JSaVQwRXdGMlpZRWViZVZlTHE1dndQ?= =?utf-8?B?M2V2Yi8zbjViRGR1VUtlWE5OSGZyUjZ6TlZJZ29JNjRkNm9hbVdNL0xlT0Jr?= =?utf-8?B?UmVURkdiWEpQSUtyUXhIMDBiUW5OcmYxdzNGWjl2R2oxK2lKbHBEay9DU1FK?= =?utf-8?B?YXZJTjEyOEkwVFlrNURudnpodVQ1NFBvVEQzVmk0VnhBeVc0ZEJuMWpvUFpX?= =?utf-8?B?czMrc0E5Q2dlWTc1dm5XcDArU21WVXpEdDhHcWRPYlVraWE3NjNXUXZQeTdC?= =?utf-8?B?aDZQWGdLanpJNHltUzlOcFhhdzNWemxVK2V0RFprZFZwV3JpbGIxUlBBc1FP?= =?utf-8?B?OFprMm1sTnhKeDNGc0dtQWtwdnNqK2NEMTV6VVhET3lndnQveWZBOXN2VUZX?= =?utf-8?B?ekQ5QWNOM1hZZ25Mc3Q5akdKc3ZhazZ2aWFGNVJ6TzFBWHBQajFlRWllaC9Z?= =?utf-8?B?L0U4Z1h5R3IxV2lnSWJlUHZqRmdUelN6Uk1JOEhUTml5bk5uU1dHVTRLR0Ni?= =?utf-8?B?YlpkcWpRVVNVZk9keFBReStJd1NBOE84dmR1bFZvWGU4OVZVWXFLR0Y3SEx3?= =?utf-8?B?TVF5MDNKeE83SWNhSWNreFA3ell2L2R5Mk5acTNoSHRrTGJ3T3V5czZPLzVW?= =?utf-8?B?c2l1M0VSMHp4ckJaWlR6U3hGN2Q3cjZkRjVDMjNCR0NNaklScWxlUTVDZDhW?= =?utf-8?B?c3N6SjNnUU5GTStUVUs4N054Lzcwd3A5Z0MvWG5EWjVJSSs3ZS9hVHRvMy9Q?= =?utf-8?B?dU02K3pWZFF4QmVFUjN5aWZieTI3ekpLNmkzakFFV0k5ZTQyclJrU1FZZmpS?= =?utf-8?B?SkVRTnVNcFd4V0cvblZ1bzJJMU02RkJiTFF0eFBVRlVPQjkzc1FhOEtWbnhQ?= =?utf-8?B?Mm9GbjBEN21iU01aNUFJaW03bnJaU0dIMzR0YnJVZFBpWnZmSmgwZjY4Mzdx?= =?utf-8?B?Y3lWbHFDNTk2QWJxaUtpWGFEMHZVM2pXbzJyT0lmM2ZCRkF1N05SZ3JhTkZS?= =?utf-8?B?VFRDa29sTkRDdFNlTTNkK1UvVGlaVmRPUWE0aDFVOFFFSGtqZVhnK3daMDBO?= =?utf-8?B?MkVIMVBGd2dHb2ovaWZHSVI4bGpIYmU2NUJSWXNuaGdiTXlUb3NxTytmWVZo?= =?utf-8?B?enR4bkt6L1Y2TmhXM3U4T2hmWENEOXppOTVEK0VGQjkzV1FEYnV1Qll2Tk1L?= =?utf-8?B?aHVrd1FyMW5nb3ZIOVBhUU43ZGttcTFLbTRJNC80NXUwWTRoRjFsdzRTQU45?= =?utf-8?Q?2lydlk2Pw+JqhelAa7OypsuRr?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: c011261a-9cdd-42f5-f558-08dc432de761 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2024 07:19:21.4026 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5gYhE8RJddmNKW8GqsiFcs0JJF0FliPKVECfcafeUK/HIm83nAKReMWHUAxUYZolli9Vyq45Hf8EJ9wLVhM3mf8xREhJPbwyNl2KS6dWYuA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB1787 DQoNCkxlIDEyLzAzLzIwMjQgw6AgMjM6MjgsIFJpY2sgRWRnZWNvbWJlIGEgw6ljcml0wqA6DQo+ IFRoZSBtbV9zdHJ1Y3QgY29udGFpbnMgYSBmdW5jdGlvbiBwb2ludGVyICpnZXRfdW5tYXBwZWRf YXJlYSgpLCB3aGljaA0KPiBpcyBzZXQgdG8gZWl0aGVyIGFyY2hfZ2V0X3VubWFwcGVkX2FyZWEo KSBvcg0KPiBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24oKSBkdXJpbmcgdGhlIGluaXRp YWxpemF0aW9uIG9mIHRoZSBtbS4NCj4gDQo+IFNpbmNlIHRoZSBmdW5jdGlvbiBwb2ludGVyIG9u bHkgZXZlciBwb2ludHMgdG8gdHdvIGZ1bmN0aW9ucyB0aGF0IGFyZSBuYW1lZA0KPiB0aGUgc2Ft ZSBhY3Jvc3MgYWxsIGFyY2gncywgYSBmdW5jdGlvbiBwb2ludGVyIGlzIG5vdCByZWFsbHkgcmVx dWlyZWQuIEluDQo+IGFkZGl0aW9uIGZ1dHVyZSBjaGFuZ2VzIHdpbGwgd2FudCB0byBhZGQgdmVy c2lvbnMgb2YgdGhlIGZ1bmN0aW9ucyB0aGF0DQo+IHRha2UgYWRkaXRpb25hbCBhcmd1bWVudHMu IFNvIHRvIHNhdmUgYSBwb2ludGVycyB3b3J0aCBvZiBieXRlcyBpbg0KPiBtbV9zdHJ1Y3QsIGFu ZCBwcmV2ZW50IGFkZGluZyBhZGRpdGlvbmFsIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIG1tX3N0cnVj dCBpbg0KPiBmdXR1cmUgY2hhbmdlcywgcmVtb3ZlIGl0IGFuZCBrZWVwIHRoZSBpbmZvcm1hdGlv biBhYm91dCB3aGljaA0KPiBnZXRfdW5tYXBwZWRfYXJlYSgpIHRvIHVzZSBpbiBhIGZsYWcuDQo+ IA0KPiBBZGQgdGhlIG5ldyBmbGFnIHRvIE1NRl9JTklUX01BU0sgc28gaXQgZG9lc24ndCBnZXQg Y2xvYmJlcmVkIG9uIGZvcmsgYnkNCj4gbW1mX2luaXRfZmxhZ3MoKS4gTW9zdCBNTSBmbGFncyBn ZXQgY2xvYmJlcmVkIG9uIGZvcmsuIEluIHRoZSBwcmUtZXhpc3RpbmcNCj4gYmVoYXZpb3IgbW0t PmdldF91bm1hcHBlZF9hcmVhKCkgd291bGQgZ2V0IGNvcGllZCB0byB0aGUgbmV3IG1tIGluDQo+ IGR1cF9tbSgpLCBzbyBub3QgY2xvYmJlcmluZyB0aGUgZmxhZyBwcmVzZXJ2ZXMgdGhlIGV4aXN0 aW5nIGJlaGF2aW9yDQo+IGFyb3VuZCBpbmhlcml0aW5nIHRoZSB0b3Bkb3duLW5lc3MuDQo+IA0K PiBJbnRyb2R1Y2UgYSBoZWxwZXIsIG1tX2dldF91bm1hcHBlZF9hcmVhKCksIHRvIGVhc2lseSBj b252ZXJ0IGNvZGUgdGhhdA0KPiByZWZlcnMgdG8gdGhlIG9sZCBmdW5jdGlvbiBwb2ludGVyIHRv IGluc3RlYWQgc2VsZWN0IGFuZCBjYWxsIGVpdGhlcg0KPiBhcmNoX2dldF91bm1hcHBlZF9hcmVh KCkgb3IgYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duKCkgYmFzZWQgb24gdGhlDQo+IGZs YWcuIFRoZW4gZHJvcCB0aGUgbW0tPmdldF91bm1hcHBlZF9hcmVhKCkgZnVuY3Rpb24gcG9pbnRl ci4gTGVhdmUgdGhlDQo+IGdldF91bm1hcHBlZF9hcmVhKCkgcG9pbnRlciBpbiBzdHJ1Y3QgZmls ZV9vcGVyYXRpb25zIGFsb25lLiBUaGUgbWFpbg0KPiBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlz IHRvIHJlb3JnYW5pemUgaW4gcHJlcGFyYXRpb24gZm9yIGZ1dHVyZSBjaGFuZ2VzLA0KPiBidXQg aXQgYWxzbyBjb252ZXJ0cyB0aGUgY2FsbHMgb2YgbW0tPmdldF91bm1hcHBlZF9hcmVhKCkgZnJv bSBpbmRpcmVjdA0KPiBicmFuY2hlcyBpbnRvIGEgZGlyZWN0IG9uZXMuDQo+IA0KPiBUaGUgc3Ry ZXNzLW5nIGJpZ2hlYXAgYmVuY2htYXJrIGNhbGxzIHJlYWxsb2MgYSBsb3QsIHdoaWNoIGNhbGxz IHRocm91Z2gNCj4gZ2V0X3VubWFwcGVkX2FyZWEoKSBpbiB0aGUga2VybmVsLiBPbiB4ODYsIHRo ZSBjaGFuZ2UgeWllbGRlZCBhIH4xJQ0KPiBpbXByb3ZlbWVudCB0aGVyZSBvbiBhIHJldHBvbGlu ZSBjb25maWcuDQo+IA0KPiBJbiB0ZXN0aW5nIGEgZmV3IHg4NiBjb25maWdzLCByZW1vdmluZyB0 aGUgcG9pbnRlciB1bmZvcnR1bmF0ZWx5IGRpZG4ndA0KPiByZXN1bHQgaW4gYW55IGFjdHVhbCBz aXplIHJlZHVjdGlvbnMgaW4gdGhlIGNvbXBpbGVkIGxheW91dCBvZiBtbV9zdHJ1Y3QuDQo+IEJ1 dCBkZXBlbmRpbmcgb24gY29tcGlsZXIgb3IgYXJjaCBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzLCB0 aGUgY2hhbmdlIGNvdWxkDQo+IHNocmluayB0aGUgc2l6ZSBvZiBtbV9zdHJ1Y3QuDQoNClRoaXMg cGF0Y2ggaXMgcXVpdGUgYmlnIGFuZCB1bi1lYXN5IHRvIGZvbGxvdy4gV291bGQgYmUgd29ydGgg c3BsaXR0aW5nIA0KaW4gc2V2ZXJhbCBwYXRjaGVzIGlmIHBvc3NpYmxlLiBTb21lIG9mIHRoZSBj aGFuZ2VzIHNlZW0gdG8gZ28gZnVydGhlciANCnRoYW4ganVzdCBzd2l0Y2hpbmcgbW0tPmdldF91 bm1hcHBlZF9hcmVhKCkgdG8gYSBmbGFnLg0KDQpGaXJzdCBwYXRjaCBjb3VsZCBhZGQgdGhlIG5l dyBmbGFnIGFuZCBuZWNlc3NhcnkgaGVscGVycywgdGhlbiBmb2xsb3dpbmcgDQpwYXRjaGVzIGNv dWxkIGNvbnZlcnQgc3ViLXN5c3RlbXMgb25lIGJ5IG9uZSB0aGVuIGxhc3QgcGF0Y2ggd291bGQg DQpyZW1vdmUgbW0tPmdldF91bm1hcHBlZF9hcmVhKCkgb25jZSBhbGwgdXNlcnMgYXJlIGNvbnZl cnRlZC4NCg0KPiANCj4gU2lnbmVkLW9mZi1ieTogUmljayBFZGdlY29tYmUgPHJpY2sucC5lZGdl Y29tYmVAaW50ZWwuY29tPg0KPiBBY2tlZC1ieTogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxp bnV4LmludGVsLmNvbT4NCj4gQWNrZWQtYnk6IExpYW0gUi4gSG93bGV0dCA8TGlhbS5Ib3dsZXR0 QG9yYWNsZS5jb20+DQo+IFJldmlld2VkLWJ5OiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5z aHV0ZW1vdkBsaW51eC5pbnRlbC5jb20+DQo+IC0tLQ0KPiB2MzoNCj4gICAtIEZpeCBjb21tZW50 IHRoYXQgc3RpbGwgcmVmZXJyZWQgdG8gbW0tPmdldF91bm1hcHBlZF9hcmVhKCkNCj4gICAtIFJl c29sdmUgdHJpdmlhbCByZWJhc2UgY29uZmxpY3RzIHdpdGggIm1tOiB0aHBfZ2V0X3VubWFwcGVk X2FyZWEgbXVzdA0KPiAgICAgaG9ub3VyIHRvcGRvd24gcHJlZmVyZW5jZSINCj4gICAtIFNwZWxs aW5nIGZpeCBpbiBsb2cNCj4gDQo+IHYyOg0KPiAgIC0gRml4IGNvbW1lbnQgb24gTU1GX1RPUERP V04gKEtpcmlsbCwgcnBwdCkNCj4gICAtIE1vdmUgTU1GX1RPUERPV04gdG8gYWN0dWFsbHkgdW51 c2VkIGJpdA0KPiAgIC0gQWRkIE1NRl9UT1BET1dOIHRvIE1NRl9JTklUX01BU0sgc28gaXQgZG9l c24ndCBnZXQgY2xvYmJlcmVkIG9uIGZvcmssDQo+ICAgICBhbmQgcmVzdWx0IGluIHRoZSBjaGls ZHJlbiB1c2luZyB0aGUgc2VhcmNoIHVwIHBhdGguDQo+ICAgLSBOZXcgbG93ZXIgcGVyZm9ybWFu Y2UgcmVzdWx0cyBhZnRlciBhYm92ZSBidWcgZml4DQo+ICAgLSBBZGQgUmV2aWV3cyBhbmQgQWNr cw0KPiAtLS0NCj4gICBhcmNoL3MzOTAvbW0vaHVnZXRsYnBhZ2UuYyAgICAgICB8ICAyICstDQo+ ICAgYXJjaC9zMzkwL21tL21tYXAuYyAgICAgICAgICAgICAgfCAgNCArKy0tDQo+ICAgYXJjaC9z cGFyYy9rZXJuZWwvc3lzX3NwYXJjXzY0LmMgfCAxNSArKysrKystLS0tLS0tLS0NCj4gICBhcmNo L3NwYXJjL21tL2h1Z2V0bGJwYWdlLmMgICAgICB8ICAyICstDQo+ICAgYXJjaC94ODYva2VybmVs L2NwdS9zZ3gvZHJpdmVyLmMgfCAgMiArLQ0KPiAgIGFyY2gveDg2L21tL2h1Z2V0bGJwYWdlLmMg ICAgICAgIHwgIDIgKy0NCj4gICBhcmNoL3g4Ni9tbS9tbWFwLmMgICAgICAgICAgICAgICB8ICA0 ICsrLS0NCj4gICBkcml2ZXJzL2NoYXIvbWVtLmMgICAgICAgICAgICAgICB8ICAyICstDQo+ICAg ZHJpdmVycy9kYXgvZGV2aWNlLmMgICAgICAgICAgICAgfCAgNiArKystLS0NCj4gICBmcy9odWdl dGxiZnMvaW5vZGUuYyAgICAgICAgICAgICB8ICA0ICsrLS0NCj4gICBmcy9wcm9jL2lub2RlLmMg ICAgICAgICAgICAgICAgICB8IDE1ICsrKysrKysrLS0tLS0tLQ0KPiAgIGZzL3JhbWZzL2ZpbGUt bW11LmMgICAgICAgICAgICAgIHwgIDIgKy0NCj4gICBpbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgg ICAgICAgICB8ICA2ICstLS0tLQ0KPiAgIGluY2x1ZGUvbGludXgvc2NoZWQvY29yZWR1bXAuaCAg IHwgIDUgKysrKy0NCj4gICBpbmNsdWRlL2xpbnV4L3NjaGVkL21tLmggICAgICAgICB8ICA1ICsr KysrDQo+ICAgaW9fdXJpbmcvaW9fdXJpbmcuYyAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgIG1t L2RlYnVnLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgLS0tLS0tDQo+ICAgbW0vaHVnZV9t ZW1vcnkuYyAgICAgICAgICAgICAgICAgfCAgOSArKysrLS0tLS0NCj4gICBtbS9tbWFwLmMgICAg ICAgICAgICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysrKysrKy0tLQ0KPiAgIG1tL3No bWVtLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKystLS0tLS0NCj4gICBtbS91dGls LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQ0KPiAgIDIxIGZpbGVzIGNoYW5n ZWQsIDcwIGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh L2FyY2gvczM5MC9tbS9odWdldGxicGFnZS5jIGIvYXJjaC9zMzkwL21tL2h1Z2V0bGJwYWdlLmMN Cj4gaW5kZXggMjk3YTZkODk3ZDVhLi5jMmQyODUwZWM4ZDUgMTAwNjQ0DQo+IC0tLSBhL2FyY2gv czM5MC9tbS9odWdldGxicGFnZS5jDQo+ICsrKyBiL2FyY2gvczM5MC9tbS9odWdldGxicGFnZS5j DQo+IEBAIC0zMjgsNyArMzI4LDcgQEAgdW5zaWduZWQgbG9uZyBodWdldGxiX2dldF91bm1hcHBl ZF9hcmVhKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIGFkZHIsDQo+ICAgCQkJZ290 byBjaGVja19hc2NlX2xpbWl0Ow0KPiAgIAl9DQo+ICAgDQo+IC0JaWYgKG1tLT5nZXRfdW5tYXBw ZWRfYXJlYSA9PSBhcmNoX2dldF91bm1hcHBlZF9hcmVhKQ0KPiArCWlmICghdGVzdF9iaXQoTU1G X1RPUERPV04sICZtbS0+ZmxhZ3MpKQ0KPiAgIAkJYWRkciA9IGh1Z2V0bGJfZ2V0X3VubWFwcGVk X2FyZWFfYm90dG9tdXAoZmlsZSwgYWRkciwgbGVuLA0KPiAgIAkJCQlwZ29mZiwgZmxhZ3MpOw0K PiAgIAllbHNlDQo+IGRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vbW1hcC5jIGIvYXJjaC9zMzkw L21tL21tYXAuYw0KPiBpbmRleCBmYzlhN2RjMjZjNWUuLmNkNTJkNzJiNTljZiAxMDA2NDQNCj4g LS0tIGEvYXJjaC9zMzkwL21tL21tYXAuYw0KPiArKysgYi9hcmNoL3MzOTAvbW0vbW1hcC5jDQo+ IEBAIC0xODIsMTAgKzE4MiwxMCBAQCB2b2lkIGFyY2hfcGlja19tbWFwX2xheW91dChzdHJ1Y3Qg bW1fc3RydWN0ICptbSwgc3RydWN0IHJsaW1pdCAqcmxpbV9zdGFjaykNCj4gICAJICovDQo+ICAg CWlmIChtbWFwX2lzX2xlZ2FjeShybGltX3N0YWNrKSkgew0KPiAgIAkJbW0tPm1tYXBfYmFzZSA9 IG1tYXBfYmFzZV9sZWdhY3kocmFuZG9tX2ZhY3Rvcik7DQo+IC0JCW1tLT5nZXRfdW5tYXBwZWRf YXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWE7DQo+ICsJCWNsZWFyX2JpdChNTUZfVE9QRE9X TiwgJm1tLT5mbGFncyk7DQo+ICAgCX0gZWxzZSB7DQo+ICAgCQltbS0+bW1hcF9iYXNlID0gbW1h cF9iYXNlKHJhbmRvbV9mYWN0b3IsIHJsaW1fc3RhY2spOw0KPiAtCQltbS0+Z2V0X3VubWFwcGVk X2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd247DQo+ICsJCXNldF9iaXQoTU1G X1RPUERPV04sICZtbS0+ZmxhZ3MpOw0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0 IGEvYXJjaC9zcGFyYy9rZXJuZWwvc3lzX3NwYXJjXzY0LmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9z eXNfc3BhcmNfNjQuYw0KPiBpbmRleCAxZTlhOWUwMTYyMzcuLjFkYmY3MjExNjY2ZSAxMDA2NDQN Cj4gLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvc3lzX3NwYXJjXzY0LmMNCj4gKysrIGIvYXJjaC9z cGFyYy9rZXJuZWwvc3lzX3NwYXJjXzY0LmMNCj4gQEAgLTIxOCwxNCArMjE4LDEwIEBAIGFyY2hf Z2V0X3VubWFwcGVkX2FyZWFfdG9wZG93bihzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgdW5zaWdu ZWQgbG9uZyBhZGRyMCwNCj4gICB1bnNpZ25lZCBsb25nIGdldF9mYl91bm1hcHBlZF9hcmVhKHN0 cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBsb25nIG9yaWdfYWRkciwgdW5zaWduZWQgbG9uZyBs ZW4sIHVuc2lnbmVkIGxvbmcgcGdvZmYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpDQo+ICAgew0KPiAg IAl1bnNpZ25lZCBsb25nIGFsaWduX2dvYWwsIGFkZHIgPSAtRU5PTUVNOw0KPiAtCXVuc2lnbmVk IGxvbmcgKCpnZXRfYXJlYSkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywNCj4gLQkJCQkg IHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOw0KPiAtDQo+IC0J Z2V0X2FyZWEgPSBjdXJyZW50LT5tbS0+Z2V0X3VubWFwcGVkX2FyZWE7DQo+ICAgDQo+ICAgCWlm IChmbGFncyAmIE1BUF9GSVhFRCkgew0KPiAgIAkJLyogT2ssIGRvbid0IG1lc3Mgd2l0aCBpdC4g Ki8NCj4gLQkJcmV0dXJuIGdldF9hcmVhKE5VTEwsIG9yaWdfYWRkciwgbGVuLCBwZ29mZiwgZmxh Z3MpOw0KPiArCQlyZXR1cm4gbW1fZ2V0X3VubWFwcGVkX2FyZWEoY3VycmVudC0+bW0sIE5VTEws IG9yaWdfYWRkciwgbGVuLCBwZ29mZiwgZmxhZ3MpOw0KPiAgIAl9DQo+ICAgCWZsYWdzICY9IH5N QVBfU0hBUkVEOw0KPiAgIA0KPiBAQCAtMjM4LDcgKzIzNCw4IEBAIHVuc2lnbmVkIGxvbmcgZ2V0 X2ZiX3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgb3JpZ19h ZGRyLCB1DQo+ICAgCQlhbGlnbl9nb2FsID0gKDY0VUwgKiAxMDI0KTsNCj4gICANCj4gICAJZG8g ew0KPiAtCQlhZGRyID0gZ2V0X2FyZWEoTlVMTCwgb3JpZ19hZGRyLCBsZW4gKyAoYWxpZ25fZ29h bCAtIFBBR0VfU0laRSksIHBnb2ZmLCBmbGFncyk7DQo+ICsJCWFkZHIgPSBtbV9nZXRfdW5tYXBw ZWRfYXJlYShjdXJyZW50LT5tbSwgTlVMTCwgb3JpZ19hZGRyLA0KPiArCQkJCQkgICAgbGVuICsg KGFsaWduX2dvYWwgLSBQQUdFX1NJWkUpLCBwZ29mZiwgZmxhZ3MpOw0KPiAgIAkJaWYgKCEoYWRk ciAmIH5QQUdFX01BU0spKSB7DQo+ICAgCQkJYWRkciA9IChhZGRyICsgKGFsaWduX2dvYWwgLSAx VUwpKSAmIH4oYWxpZ25fZ29hbCAtIDFVTCk7DQo+ICAgCQkJYnJlYWs7DQo+IEBAIC0yNTYsNyAr MjUzLDcgQEAgdW5zaWduZWQgbG9uZyBnZXRfZmJfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAq ZmlscCwgdW5zaWduZWQgbG9uZyBvcmlnX2FkZHIsIHUNCj4gICAJICogYmUgb2J0YWluZWQuDQo+ ICAgCSAqLw0KPiAgIAlpZiAoYWRkciAmIH5QQUdFX01BU0spDQo+IC0JCWFkZHIgPSBnZXRfYXJl YShOVUxMLCBvcmlnX2FkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwkJYWRkciA9IG1tX2dl dF91bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBOVUxMLCBvcmlnX2FkZHIsIGxlbiwgcGdvZmYs IGZsYWdzKTsNCj4gICANCj4gICAJcmV0dXJuIGFkZHI7DQo+ICAgfQ0KPiBAQCAtMjkyLDcgKzI4 OSw3IEBAIHZvaWQgYXJjaF9waWNrX21tYXBfbGF5b3V0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBz dHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQ0KPiAgIAkgICAgZ2FwID09IFJMSU1fSU5GSU5JVFkg fHwNCj4gICAJICAgIHN5c2N0bF9sZWdhY3lfdmFfbGF5b3V0KSB7DQo+ICAgCQltbS0+bW1hcF9i YXNlID0gVEFTS19VTk1BUFBFRF9CQVNFICsgcmFuZG9tX2ZhY3RvcjsNCj4gLQkJbW0tPmdldF91 bm1hcHBlZF9hcmVhID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYTsNCj4gKwkJY2xlYXJfYml0KE1N Rl9UT1BET1dOLCAmbW0tPmZsYWdzKTsNCj4gICAJfSBlbHNlIHsNCj4gICAJCS8qIFdlIGtub3cg aXQncyAzMi1iaXQgKi8NCj4gICAJCXVuc2lnbmVkIGxvbmcgdGFza19zaXplID0gU1RBQ0tfVE9Q MzI7DQo+IEBAIC0zMDMsNyArMzAwLDcgQEAgdm9pZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3Ry dWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCBybGltaXQgKnJsaW1fc3RhY2spDQo+ICAgCQkJZ2Fw ID0gKHRhc2tfc2l6ZSAvIDYgKiA1KTsNCj4gICANCj4gICAJCW1tLT5tbWFwX2Jhc2UgPSBQQUdF X0FMSUdOKHRhc2tfc2l6ZSAtIGdhcCAtIHJhbmRvbV9mYWN0b3IpOw0KPiAtCQltbS0+Z2V0X3Vu bWFwcGVkX2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd247DQo+ICsJCXNldF9i aXQoTU1GX1RPUERPV04sICZtbS0+ZmxhZ3MpOw0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiBkaWZm IC0tZ2l0IGEvYXJjaC9zcGFyYy9tbS9odWdldGxicGFnZS5jIGIvYXJjaC9zcGFyYy9tbS9odWdl dGxicGFnZS5jDQo+IGluZGV4IGI0MzI1MDBjMTNhNS4uMzhhMWJlZjQ3ZWZiIDEwMDY0NA0KPiAt LS0gYS9hcmNoL3NwYXJjL21tL2h1Z2V0bGJwYWdlLmMNCj4gKysrIGIvYXJjaC9zcGFyYy9tbS9o dWdldGxicGFnZS5jDQo+IEBAIC0xMjMsNyArMTIzLDcgQEAgaHVnZXRsYl9nZXRfdW5tYXBwZWRf YXJlYShzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBhZGRyLA0KPiAgIAkJICAgICgh dm1hIHx8IGFkZHIgKyBsZW4gPD0gdm1fc3RhcnRfZ2FwKHZtYSkpKQ0KPiAgIAkJCXJldHVybiBh ZGRyOw0KPiAgIAl9DQo+IC0JaWYgKG1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9PSBhcmNoX2dldF91 bm1hcHBlZF9hcmVhKQ0KPiArCWlmICghdGVzdF9iaXQoTU1GX1RPUERPV04sICZtbS0+ZmxhZ3Mp KQ0KPiAgIAkJcmV0dXJuIGh1Z2V0bGJfZ2V0X3VubWFwcGVkX2FyZWFfYm90dG9tdXAoZmlsZSwg YWRkciwgbGVuLA0KPiAgIAkJCQlwZ29mZiwgZmxhZ3MpOw0KPiAgIAllbHNlDQo+IGRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3NneC9kcml2ZXIuYyBiL2FyY2gveDg2L2tlcm5lbC9j cHUvc2d4L2RyaXZlci5jDQo+IGluZGV4IDI2MmY1ZmIxOGQ3NC4uMjJiNjVhNWY1ZWM2IDEwMDY0 NA0KPiAtLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L3NneC9kcml2ZXIuYw0KPiArKysgYi9hcmNo L3g4Ni9rZXJuZWwvY3B1L3NneC9kcml2ZXIuYw0KPiBAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIHNneF9nZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlsZSwN Cj4gICAJaWYgKGZsYWdzICYgTUFQX0ZJWEVEKQ0KPiAgIAkJcmV0dXJuIGFkZHI7DQo+ICAgDQo+ IC0JcmV0dXJuIGN1cnJlbnQtPm1tLT5nZXRfdW5tYXBwZWRfYXJlYShmaWxlLCBhZGRyLCBsZW4s IHBnb2ZmLCBmbGFncyk7DQo+ICsJcmV0dXJuIG1tX2dldF91bm1hcHBlZF9hcmVhKGN1cnJlbnQt Pm1tLCBmaWxlLCBhZGRyLCBsZW4sIHBnb2ZmLCBmbGFncyk7DQo+ICAgfQ0KPiAgIA0KPiAgICNp ZmRlZiBDT05GSUdfQ09NUEFUDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9odWdldGxicGFn ZS5jIGIvYXJjaC94ODYvbW0vaHVnZXRsYnBhZ2UuYw0KPiBpbmRleCA1ODA0YmJhZTRmMDEuLjZk NzdjMDAzOTYxNyAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvbW0vaHVnZXRsYnBhZ2UuYw0KPiAr KysgYi9hcmNoL3g4Ni9tbS9odWdldGxicGFnZS5jDQo+IEBAIC0xNDEsNyArMTQxLDcgQEAgaHVn ZXRsYl9nZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBh ZGRyLA0KPiAgIAl9DQo+ICAgDQo+ICAgZ2V0X3VubWFwcGVkX2FyZWE6DQo+IC0JaWYgKG1tLT5n ZXRfdW5tYXBwZWRfYXJlYSA9PSBhcmNoX2dldF91bm1hcHBlZF9hcmVhKQ0KPiArCWlmICghdGVz dF9iaXQoTU1GX1RPUERPV04sICZtbS0+ZmxhZ3MpKQ0KPiAgIAkJcmV0dXJuIGh1Z2V0bGJfZ2V0 X3VubWFwcGVkX2FyZWFfYm90dG9tdXAoZmlsZSwgYWRkciwgbGVuLA0KPiAgIAkJCQlwZ29mZiwg ZmxhZ3MpOw0KPiAgIAllbHNlDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9tbWFwLmMgYi9h cmNoL3g4Ni9tbS9tbWFwLmMNCj4gaW5kZXggYzkwYzIwOTA0YTYwLi5hMmNhYmIxYzgxZTEgMTAw NjQ0DQo+IC0tLSBhL2FyY2gveDg2L21tL21tYXAuYw0KPiArKysgYi9hcmNoL3g4Ni9tbS9tbWFw LmMNCj4gQEAgLTEyOSw5ICsxMjksOSBAQCBzdGF0aWMgdm9pZCBhcmNoX3BpY2tfbW1hcF9iYXNl KHVuc2lnbmVkIGxvbmcgKmJhc2UsIHVuc2lnbmVkIGxvbmcgKmxlZ2FjeV9iYXNlLA0KPiAgIHZv aWQgYXJjaF9waWNrX21tYXBfbGF5b3V0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgcmxp bWl0ICpybGltX3N0YWNrKQ0KPiAgIHsNCj4gICAJaWYgKG1tYXBfaXNfbGVnYWN5KCkpDQo+IC0J CW1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWE7DQo+ICsJCWNs ZWFyX2JpdChNTUZfVE9QRE9XTiwgJm1tLT5mbGFncyk7DQo+ICAgCWVsc2UNCj4gLQkJbW0tPmdl dF91bm1hcHBlZF9hcmVhID0gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duOw0KPiArCQlz ZXRfYml0KE1NRl9UT1BET1dOLCAmbW0tPmZsYWdzKTsNCj4gICANCj4gICAJYXJjaF9waWNrX21t YXBfYmFzZSgmbW0tPm1tYXBfYmFzZSwgJm1tLT5tbWFwX2xlZ2FjeV9iYXNlLA0KPiAgIAkJCWFy Y2hfcm5kKG1tYXA2NF9ybmRfYml0cyksIHRhc2tfc2l6ZV82NGJpdCgwKSwNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2hhci9tZW0uYyBiL2RyaXZlcnMvY2hhci9tZW0uYw0KPiBpbmRleCAzYzY2 NzBjZjkwNWYuLjliODBlNjIyYWU4MCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jaGFyL21lbS5j DQo+ICsrKyBiL2RyaXZlcnMvY2hhci9tZW0uYw0KPiBAQCAtNTQ0LDcgKzU0NCw3IEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIGdldF91bm1hcHBlZF9hcmVhX3plcm8oc3RydWN0IGZpbGUgKmZpbGUs DQo+ICAgCX0NCj4gICANCj4gICAJLyogT3RoZXJ3aXNlIGZsYWdzICYgTUFQX1BSSVZBVEU6IHdp dGggbm8gc2htZW0gb2JqZWN0IGJlbmVhdGggaXQgKi8NCj4gLQlyZXR1cm4gY3VycmVudC0+bW0t PmdldF91bm1hcHBlZF9hcmVhKGZpbGUsIGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwly ZXR1cm4gbW1fZ2V0X3VubWFwcGVkX2FyZWEoY3VycmVudC0+bW0sIGZpbGUsIGFkZHIsIGxlbiwg cGdvZmYsIGZsYWdzKTsNCj4gICAjZWxzZQ0KPiAgIAlyZXR1cm4gLUVOT1NZUzsNCj4gICAjZW5k aWYNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZGF4L2RldmljZS5jIGIvZHJpdmVycy9kYXgvZGV2 aWNlLmMNCj4gaW5kZXggOTNlYmVkYzVlYzhjLi40N2MxMjZkMzdiNTkgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZGF4L2RldmljZS5jDQo+ICsrKyBiL2RyaXZlcnMvZGF4L2RldmljZS5jDQo+IEBA IC0zMjksMTQgKzMyOSwxNCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBkYXhfZ2V0X3VubWFwcGVk X2FyZWEoc3RydWN0IGZpbGUgKmZpbHAsDQo+ICAgCWlmICgob2ZmICsgbGVuX2FsaWduKSA8IG9m ZikNCj4gICAJCWdvdG8gb3V0Ow0KPiAgIA0KPiAtCWFkZHJfYWxpZ24gPSBjdXJyZW50LT5tbS0+ Z2V0X3VubWFwcGVkX2FyZWEoZmlscCwgYWRkciwgbGVuX2FsaWduLA0KPiAtCQkJcGdvZmYsIGZs YWdzKTsNCj4gKwlhZGRyX2FsaWduID0gbW1fZ2V0X3VubWFwcGVkX2FyZWEoY3VycmVudC0+bW0s IGZpbHAsIGFkZHIsIGxlbl9hbGlnbiwNCj4gKwkJCQkJICBwZ29mZiwgZmxhZ3MpOw0KPiAgIAlp ZiAoIUlTX0VSUl9WQUxVRShhZGRyX2FsaWduKSkgew0KPiAgIAkJYWRkcl9hbGlnbiArPSAob2Zm IC0gYWRkcl9hbGlnbikgJiAoYWxpZ24gLSAxKTsNCj4gICAJCXJldHVybiBhZGRyX2FsaWduOw0K PiAgIAl9DQo+ICAgIG91dDoNCj4gLQlyZXR1cm4gY3VycmVudC0+bW0tPmdldF91bm1hcHBlZF9h cmVhKGZpbHAsIGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwlyZXR1cm4gbW1fZ2V0X3Vu bWFwcGVkX2FyZWEoY3VycmVudC0+bW0sIGZpbHAsIGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsN Cj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJh dGlvbnMgZGV2X2RheF9hb3BzID0gew0KPiBkaWZmIC0tZ2l0IGEvZnMvaHVnZXRsYmZzL2lub2Rl LmMgYi9mcy9odWdldGxiZnMvaW5vZGUuYw0KPiBpbmRleCBkNzQ2ODY2YWUzYjYuLmNkODdlYTU5 NDRhMSAxMDA2NDQNCj4gLS0tIGEvZnMvaHVnZXRsYmZzL2lub2RlLmMNCj4gKysrIGIvZnMvaHVn ZXRsYmZzL2lub2RlLmMNCj4gQEAgLTI0OSwxMSArMjQ5LDExIEBAIGdlbmVyaWNfaHVnZXRsYl9n ZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBhZGRyLA0K PiAgIAl9DQo+ICAgDQo+ICAgCS8qDQo+IC0JICogVXNlIG1tLT5nZXRfdW5tYXBwZWRfYXJlYSB2 YWx1ZSBhcyBhIGhpbnQgdG8gdXNlIHRvcGRvd24gcm91dGluZS4NCj4gKwkgKiBVc2UgTU1GX1RP UERPV04gZmxhZyBhcyBhIGhpbnQgdG8gdXNlIHRvcGRvd24gcm91dGluZS4NCj4gICAJICogSWYg YXJjaGl0ZWN0dXJlcyBoYXZlIHNwZWNpYWwgbmVlZHMsIHRoZXkgc2hvdWxkIGRlZmluZSB0aGVp ciBvd24NCj4gICAJICogdmVyc2lvbiBvZiBodWdldGxiX2dldF91bm1hcHBlZF9hcmVhLg0KPiAg IAkgKi8NCj4gLQlpZiAobW0tPmdldF91bm1hcHBlZF9hcmVhID09IGFyY2hfZ2V0X3VubWFwcGVk X2FyZWFfdG9wZG93bikNCj4gKwlpZiAodGVzdF9iaXQoTU1GX1RPUERPV04sICZtbS0+ZmxhZ3Mp KQ0KPiAgIAkJcmV0dXJuIGh1Z2V0bGJfZ2V0X3VubWFwcGVkX2FyZWFfdG9wZG93bihmaWxlLCBh ZGRyLCBsZW4sDQo+ICAgCQkJCXBnb2ZmLCBmbGFncyk7DQo+ICAgCXJldHVybiBodWdldGxiX2dl dF91bm1hcHBlZF9hcmVhX2JvdHRvbXVwKGZpbGUsIGFkZHIsIGxlbiwNCj4gZGlmZiAtLWdpdCBh L2ZzL3Byb2MvaW5vZGUuYyBiL2ZzL3Byb2MvaW5vZGUuYw0KPiBpbmRleCAwNTM1MGYzYzI4MTIu LjAxNzE0NGE4NTE2YyAxMDA2NDQNCj4gLS0tIGEvZnMvcHJvYy9pbm9kZS5jDQo+ICsrKyBiL2Zz L3Byb2MvaW5vZGUuYw0KPiBAQCAtNDUxLDE1ICs0NTEsMTYgQEAgcGRlX2dldF91bm1hcHBlZF9h cmVhKHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcGRlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWdu ZWQgbG8NCj4gICAJCQkgICB1bnNpZ25lZCBsb25nIGxlbiwgdW5zaWduZWQgbG9uZyBwZ29mZiwN Cj4gICAJCQkgICB1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiAgIHsNCj4gLQl0eXBlb2ZfbWVtYmVy KHN0cnVjdCBwcm9jX29wcywgcHJvY19nZXRfdW5tYXBwZWRfYXJlYSkgZ2V0X2FyZWE7DQo+IC0N Cj4gLQlnZXRfYXJlYSA9IHBkZS0+cHJvY19vcHMtPnByb2NfZ2V0X3VubWFwcGVkX2FyZWE7DQo+ ICsJaWYgKHBkZS0+cHJvY19vcHMtPnByb2NfZ2V0X3VubWFwcGVkX2FyZWEpDQo+ICsJCXJldHVy biBwZGUtPnByb2Nfb3BzLT5wcm9jX2dldF91bm1hcHBlZF9hcmVhKGZpbGUsIG9yaWdfYWRkciwN Cj4gKwkJCQkJCQkgICAgIGxlbiwgcGdvZmYsDQo+ICsJCQkJCQkJICAgICBmbGFncyk7DQo+ICAg I2lmZGVmIENPTkZJR19NTVUNCj4gLQlpZiAoIWdldF9hcmVhKQ0KPiAtCQlnZXRfYXJlYSA9IGN1 cnJlbnQtPm1tLT5nZXRfdW5tYXBwZWRfYXJlYTsNCj4gKwllbHNlDQo+ICsJCXJldHVybiBtbV9n ZXRfdW5tYXBwZWRfYXJlYShjdXJyZW50LT5tbSwgZmlsZSwgb3JpZ19hZGRyLA0KPiArCQkJCQkg ICAgbGVuLCBwZ29mZiwgZmxhZ3MpOw0KPiAgICNlbmRpZg0KPiAtCWlmIChnZXRfYXJlYSkNCj4g LQkJcmV0dXJuIGdldF9hcmVhKGZpbGUsIG9yaWdfYWRkciwgbGVuLCBwZ29mZiwgZmxhZ3MpOw0K PiArDQo+ICAgCXJldHVybiBvcmlnX2FkZHI7DQo+ICAgfQ0KDQpUaGUgY2hhbmdlIGxvb2tzIHVu Y2xlYXIgYXQgZmlyc3QgbG9vay4gT2sgYWZ0ZXIgbG9va2luZyBhIHNlY29uZCB0aW1lIA0KaXQg c2VlbXMgdG8gc2ltcGxpZnkgdGhpbmdzLCBidXQgd291bGQgYmUgYmV0dGVyIGFzIGEgc2VwYXJh dGUgcGF0Y2guIA0KRG9uJ3Qga25vdy4NCg0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEvZnMvcmFtZnMv ZmlsZS1tbXUuYyBiL2ZzL3JhbWZzL2ZpbGUtbW11LmMNCj4gaW5kZXggYzdhMWFhM2M4ODJiLi5i NDVjN2VkYzMyMjUgMTAwNjQ0DQo+IC0tLSBhL2ZzL3JhbWZzL2ZpbGUtbW11LmMNCj4gKysrIGIv ZnMvcmFtZnMvZmlsZS1tbXUuYw0KPiBAQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgdW5zaWduZWQg bG9uZyByYW1mc19tbXVfZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbGUsDQo+ICAg CQl1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuLCB1bnNpZ25lZCBsb25nIHBn b2ZmLA0KPiAgIAkJdW5zaWduZWQgbG9uZyBmbGFncykNCj4gICB7DQo+IC0JcmV0dXJuIGN1cnJl bnQtPm1tLT5nZXRfdW5tYXBwZWRfYXJlYShmaWxlLCBhZGRyLCBsZW4sIHBnb2ZmLCBmbGFncyk7 DQo+ICsJcmV0dXJuIG1tX2dldF91bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBmaWxlLCBhZGRy LCBsZW4sIHBnb2ZmLCBmbGFncyk7DQo+ICAgfQ0KPiAgIA0KPiAgIGNvbnN0IHN0cnVjdCBmaWxl X29wZXJhdGlvbnMgcmFtZnNfZmlsZV9vcGVyYXRpb25zID0gew0KPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oDQo+IGluZGV4 IDhiNjExZTEzMTUzZS4uZDIwODY5ODgxMjE0IDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL2xpbnV4 L21tX3R5cGVzLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oDQo+IEBAIC03NDks MTEgKzc0OSw3IEBAIHN0cnVjdCBtbV9zdHJ1Y3Qgew0KPiAgIAkJfSBfX19fY2FjaGVsaW5lX2Fs aWduZWRfaW5fc21wOw0KPiAgIA0KPiAgIAkJc3RydWN0IG1hcGxlX3RyZWUgbW1fbXQ7DQo+IC0j aWZkZWYgQ09ORklHX01NVQ0KPiAtCQl1bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWEp IChzdHJ1Y3QgZmlsZSAqZmlscCwNCj4gLQkJCQl1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVk IGxvbmcgbGVuLA0KPiAtCQkJCXVuc2lnbmVkIGxvbmcgcGdvZmYsIHVuc2lnbmVkIGxvbmcgZmxh Z3MpOw0KPiAtI2VuZGlmDQo+ICsNCj4gICAJCXVuc2lnbmVkIGxvbmcgbW1hcF9iYXNlOwkvKiBi YXNlIG9mIG1tYXAgYXJlYSAqLw0KPiAgIAkJdW5zaWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNl OwkvKiBiYXNlIG9mIG1tYXAgYXJlYSBpbiBib3R0b20tdXAgYWxsb2NhdGlvbnMgKi8NCj4gICAj aWZkZWYgQ09ORklHX0hBVkVfQVJDSF9DT01QQVRfTU1BUF9CQVNFUw0KPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9zY2hlZC9jb3JlZHVtcC5oIGIvaW5jbHVkZS9saW51eC9zY2hlZC9jb3Jl ZHVtcC5oDQo+IGluZGV4IDAyZjUwOTBmZmVhMi4uZTYyZmY4MDVjZmM5IDEwMDY0NA0KPiAtLS0g YS9pbmNsdWRlL2xpbnV4L3NjaGVkL2NvcmVkdW1wLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9z Y2hlZC9jb3JlZHVtcC5oDQo+IEBAIC05Miw5ICs5MiwxMiBAQCBzdGF0aWMgaW5saW5lIGludCBn ZXRfZHVtcGFibGUoc3RydWN0IG1tX3N0cnVjdCAqbW0pDQo+ICAgI2RlZmluZSBNTUZfVk1fTUVS R0VfQU5ZCTMwDQo+ICAgI2RlZmluZSBNTUZfVk1fTUVSR0VfQU5ZX01BU0sJKDEgPDwgTU1GX1ZN X01FUkdFX0FOWSkNCj4gICANCj4gKyNkZWZpbmUgTU1GX1RPUERPV04JCTMxCS8qIG1tIHNlYXJj aGVzIHRvcCBkb3duIGJ5IGRlZmF1bHQgKi8NCj4gKyNkZWZpbmUgTU1GX1RPUERPV05fTUFTSwko MSA8PCBNTUZfVE9QRE9XTikNCj4gKw0KPiAgICNkZWZpbmUgTU1GX0lOSVRfTUFTSwkJKE1NRl9E VU1QQUJMRV9NQVNLIHwgTU1GX0RVTVBfRklMVEVSX01BU0sgfFwNCj4gICAJCQkJIE1NRl9ESVNB QkxFX1RIUF9NQVNLIHwgTU1GX0hBU19NRFdFX01BU0sgfFwNCj4gLQkJCQkgTU1GX1ZNX01FUkdF X0FOWV9NQVNLKQ0KPiArCQkJCSBNTUZfVk1fTUVSR0VfQU5ZX01BU0sgfCBNTUZfVE9QRE9XTl9N QVNLKQ0KPiAgIA0KPiAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBtbWZfaW5pdF9mbGFn cyh1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiAgIHsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc2NoZWQvbW0uaCBiL2luY2x1ZGUvbGludXgvc2NoZWQvbW0uaA0KPiBpbmRleCA5YTE5ZjFi NDJmNjQuLmNkZTk0NmU5MjZkOCAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC9t bS5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvc2NoZWQvbW0uaA0KPiBAQCAtOCw2ICs4LDcgQEAN Cj4gICAjaW5jbHVkZSA8bGludXgvbW1fdHlwZXMuaD4NCj4gICAjaW5jbHVkZSA8bGludXgvZ2Zw Lmg+DQo+ICAgI2luY2x1ZGUgPGxpbnV4L3N5bmNfY29yZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4 L3NjaGVkL2NvcmVkdW1wLmg+DQo+ICAgDQo+ICAgLyoNCj4gICAgKiBSb3V0aW5lcyBmb3IgaGFu ZGxpbmcgbW1fc3RydWN0cw0KPiBAQCAtMTg2LDYgKzE4NywxMCBAQCBhcmNoX2dldF91bm1hcHBl ZF9hcmVhX3RvcGRvd24oc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGxvbmcgYWRkciwNCj4g ICAJCQkgIHVuc2lnbmVkIGxvbmcgbGVuLCB1bnNpZ25lZCBsb25nIHBnb2ZmLA0KPiAgIAkJCSAg dW5zaWduZWQgbG9uZyBmbGFncyk7DQo+ICAgDQo+ICt1bnNpZ25lZCBsb25nIG1tX2dldF91bm1h cHBlZF9hcmVhKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgZmlsZSAqZmlscCwNCj4gKwkJ CQkgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuLA0KPiArCQkJCSAgIHVu c2lnbmVkIGxvbmcgcGdvZmYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOw0KPiArDQo+ICAgdW5zaWdu ZWQgbG9uZw0KPiAgIGdlbmVyaWNfZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbHAs IHVuc2lnbmVkIGxvbmcgYWRkciwNCj4gICAJCQkgIHVuc2lnbmVkIGxvbmcgbGVuLCB1bnNpZ25l ZCBsb25nIHBnb2ZmLA0KPiBkaWZmIC0tZ2l0IGEvaW9fdXJpbmcvaW9fdXJpbmcuYyBiL2lvX3Vy aW5nL2lvX3VyaW5nLmMNCj4gaW5kZXggY2Q5YTEzN2FkNmNlLi45ZWIzYjI1ODcwMzEgMTAwNjQ0 DQo+IC0tLSBhL2lvX3VyaW5nL2lvX3VyaW5nLmMNCj4gKysrIGIvaW9fdXJpbmcvaW9fdXJpbmcu Yw0KPiBAQCAtMzUxMyw3ICszNTEzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaW9fdXJpbmdf bW11X2dldF91bm1hcHBlZF9hcmVhKHN0cnVjdCBmaWxlICpmaWxwLA0KPiAgICNlbHNlDQo+ICAg CWFkZHIgPSAwVUw7DQo+ICAgI2VuZGlmDQo+IC0JcmV0dXJuIGN1cnJlbnQtPm1tLT5nZXRfdW5t YXBwZWRfYXJlYShmaWxwLCBhZGRyLCBsZW4sIHBnb2ZmLCBmbGFncyk7DQo+ICsJcmV0dXJuIG1t X2dldF91bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBmaWxwLCBhZGRyLCBsZW4sIHBnb2ZmLCBm bGFncyk7DQo+ICAgfQ0KPiAgIA0KPiAgICNlbHNlIC8qICFDT05GSUdfTU1VICovDQo+IGRpZmYg LS1naXQgYS9tbS9kZWJ1Zy5jIGIvbW0vZGVidWcuYw0KPiBpbmRleCBlZTUzM2E1Y2ViNzkuLjMy ZGI1ZGU4ZTFlNyAxMDA2NDQNCj4gLS0tIGEvbW0vZGVidWcuYw0KPiArKysgYi9tbS9kZWJ1Zy5j DQo+IEBAIC0xNjIsOSArMTYyLDYgQEAgRVhQT1JUX1NZTUJPTChkdW1wX3ZtYSk7DQo+ICAgdm9p ZCBkdW1wX21tKGNvbnN0IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KPiAgIHsNCj4gICAJcHJfZW1l cmcoIm1tICVweCB0YXNrX3NpemUgJWx1XG4iDQo+IC0jaWZkZWYgQ09ORklHX01NVQ0KPiAtCQki Z2V0X3VubWFwcGVkX2FyZWEgJXB4XG4iDQo+IC0jZW5kaWYNCj4gICAJCSJtbWFwX2Jhc2UgJWx1 IG1tYXBfbGVnYWN5X2Jhc2UgJWx1XG4iDQo+ICAgCQkicGdkICVweCBtbV91c2VycyAlZCBtbV9j b3VudCAlZCBwZ3RhYmxlc19ieXRlcyAlbHUgbWFwX2NvdW50ICVkXG4iDQo+ICAgCQkiaGl3YXRl cl9yc3MgJWx4IGhpd2F0ZXJfdm0gJWx4IHRvdGFsX3ZtICVseCBsb2NrZWRfdm0gJWx4XG4iDQo+ IEBAIC0xOTAsOSArMTg3LDYgQEAgdm9pZCBkdW1wX21tKGNvbnN0IHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tKQ0KPiAgIAkJImRlZl9mbGFnczogJSNseCglcEd2KVxuIiwNCj4gICANCj4gICAJCW1tLCBt bS0+dGFza19zaXplLA0KPiAtI2lmZGVmIENPTkZJR19NTVUNCj4gLQkJbW0tPmdldF91bm1hcHBl ZF9hcmVhLA0KPiAtI2VuZGlmDQo+ICAgCQltbS0+bW1hcF9iYXNlLCBtbS0+bW1hcF9sZWdhY3lf YmFzZSwNCj4gICAJCW1tLT5wZ2QsIGF0b21pY19yZWFkKCZtbS0+bW1fdXNlcnMpLA0KPiAgIAkJ YXRvbWljX3JlYWQoJm1tLT5tbV9jb3VudCksDQo+IGRpZmYgLS1naXQgYS9tbS9odWdlX21lbW9y eS5jIGIvbW0vaHVnZV9tZW1vcnkuYw0KPiBpbmRleCA5NGM5NThmN2ViYjUuLmJjM2JmNDQxZTc2 OCAxMDA2NDQNCj4gLS0tIGEvbW0vaHVnZV9tZW1vcnkuYw0KPiArKysgYi9tbS9odWdlX21lbW9y eS5jDQo+IEBAIC04MjIsOCArODIyLDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgX190aHBfZ2V0 X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbHAsDQo+ICAgCWlmIChsZW5fcGFkIDwgbGVu IHx8IChvZmYgKyBsZW5fcGFkKSA8IG9mZikNCj4gICAJCXJldHVybiAwOw0KPiAgIA0KPiAtCXJl dCA9IGN1cnJlbnQtPm1tLT5nZXRfdW5tYXBwZWRfYXJlYShmaWxwLCBhZGRyLCBsZW5fcGFkLA0K PiAtCQkJCQkgICAgICBvZmYgPj4gUEFHRV9TSElGVCwgZmxhZ3MpOw0KPiArCXJldCA9IG1tX2dl dF91bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBmaWxwLCBhZGRyLCBsZW5fcGFkLA0KPiArCQkJ CSAgIG9mZiA+PiBQQUdFX1NISUZULCBmbGFncyk7DQo+ICAgDQo+ICAgCS8qDQo+ICAgCSAqIFRo ZSBmYWlsdXJlIG1pZ2h0IGJlIGR1ZSB0byBsZW5ndGggcGFkZGluZy4gVGhlIGNhbGxlciB3aWxs IHJldHJ5DQo+IEBAIC04NDEsOCArODQxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgX190aHBf Z2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbHAsDQo+ICAgDQo+ICAgCW9mZl9zdWIg PSAob2ZmIC0gcmV0KSAmIChzaXplIC0gMSk7DQo+ICAgDQo+IC0JaWYgKGN1cnJlbnQtPm1tLT5n ZXRfdW5tYXBwZWRfYXJlYSA9PSBhcmNoX2dldF91bm1hcHBlZF9hcmVhX3RvcGRvd24gJiYNCj4g LQkgICAgIW9mZl9zdWIpDQo+ICsJaWYgKHRlc3RfYml0KE1NRl9UT1BET1dOLCAmY3VycmVudC0+ bW0tPmZsYWdzKSAmJiAhb2ZmX3N1YikNCj4gICAJCXJldHVybiByZXQgKyBzaXplOw0KPiAgIA0K PiAgIAlyZXQgKz0gb2ZmX3N1YjsNCj4gQEAgLTg1OSw3ICs4NTgsNyBAQCB1bnNpZ25lZCBsb25n IHRocF9nZXRfdW5tYXBwZWRfYXJlYShzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBh ZGRyLA0KPiAgIAlpZiAocmV0KQ0KPiAgIAkJcmV0dXJuIHJldDsNCj4gICANCj4gLQlyZXR1cm4g Y3VycmVudC0+bW0tPmdldF91bm1hcHBlZF9hcmVhKGZpbHAsIGFkZHIsIGxlbiwgcGdvZmYsIGZs YWdzKTsNCj4gKwlyZXR1cm4gbW1fZ2V0X3VubWFwcGVkX2FyZWEoY3VycmVudC0+bW0sIGZpbHAs IGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gICB9DQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwo dGhwX2dldF91bm1hcHBlZF9hcmVhKTsNCj4gICANCj4gZGlmZiAtLWdpdCBhL21tL21tYXAuYyBi L21tL21tYXAuYw0KPiBpbmRleCAzMjgxMjg3NzcxYzkuLjM5ZTlhM2FlM2NhNSAxMDA2NDQNCj4g LS0tIGEvbW0vbW1hcC5jDQo+ICsrKyBiL21tL21tYXAuYw0KPiBAQCAtMTgxNSw3ICsxODE1LDgg QEAgZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgYWRk ciwgdW5zaWduZWQgbG9uZyBsZW4sDQo+ICAgCQl1bnNpZ25lZCBsb25nIHBnb2ZmLCB1bnNpZ25l ZCBsb25nIGZsYWdzKQ0KPiAgIHsNCj4gICAJdW5zaWduZWQgbG9uZyAoKmdldF9hcmVhKShzdHJ1 Y3QgZmlsZSAqLCB1bnNpZ25lZCBsb25nLA0KPiAtCQkJCSAgdW5zaWduZWQgbG9uZywgdW5zaWdu ZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7DQo+ICsJCQkJICB1bnNpZ25lZCBsb25nLCB1bnNpZ25l ZCBsb25nLCB1bnNpZ25lZCBsb25nKQ0KPiArCQkJCSAgPSBOVUxMOw0KPiAgIA0KPiAgIAl1bnNp Z25lZCBsb25nIGVycm9yID0gYXJjaF9tbWFwX2NoZWNrKGFkZHIsIGxlbiwgZmxhZ3MpOw0KPiAg IAlpZiAoZXJyb3IpDQo+IEBAIC0xODI1LDcgKzE4MjYsNiBAQCBnZXRfdW5tYXBwZWRfYXJlYShz dHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGxlbiwN Cj4gICAJaWYgKGxlbiA+IFRBU0tfU0laRSkNCj4gICAJCXJldHVybiAtRU5PTUVNOw0KPiAgIA0K PiAtCWdldF9hcmVhID0gY3VycmVudC0+bW0tPmdldF91bm1hcHBlZF9hcmVhOw0KPiAgIAlpZiAo ZmlsZSkgew0KPiAgIAkJaWYgKGZpbGUtPmZfb3AtPmdldF91bm1hcHBlZF9hcmVhKQ0KPiAgIAkJ CWdldF9hcmVhID0gZmlsZS0+Zl9vcC0+Z2V0X3VubWFwcGVkX2FyZWE7DQo+IEBAIC0xODQ0LDcg KzE4NDQsMTEgQEAgZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVk IGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBsZW4sDQo+ICAgCWlmICghZmlsZSkNCj4gICAJCXBn b2ZmID0gMDsNCj4gICANCj4gLQlhZGRyID0gZ2V0X2FyZWEoZmlsZSwgYWRkciwgbGVuLCBwZ29m ZiwgZmxhZ3MpOw0KPiArCWlmIChnZXRfYXJlYSkNCj4gKwkJYWRkciA9IGdldF9hcmVhKGZpbGUs IGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwllbHNlDQo+ICsJCWFkZHIgPSBtbV9nZXRf dW5tYXBwZWRfYXJlYShjdXJyZW50LT5tbSwgZmlsZSwgYWRkciwgbGVuLA0KPiArCQkJCQkgICAg cGdvZmYsIGZsYWdzKTsNCj4gICAJaWYgKElTX0VSUl9WQUxVRShhZGRyKSkNCj4gICAJCXJldHVy biBhZGRyOw0KPiAgIA0KPiBAQCAtMTg1OSw2ICsxODYzLDE3IEBAIGdldF91bm1hcHBlZF9hcmVh KHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVu LA0KPiAgIA0KPiAgIEVYUE9SVF9TWU1CT0woZ2V0X3VubWFwcGVkX2FyZWEpOw0KPiAgIA0KPiAr dW5zaWduZWQgbG9uZw0KPiArbW1fZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IG1tX3N0cnVjdCAq bW0sIHN0cnVjdCBmaWxlICpmaWxlLA0KPiArCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5z aWduZWQgbG9uZyBsZW4sDQo+ICsJCSAgICAgdW5zaWduZWQgbG9uZyBwZ29mZiwgdW5zaWduZWQg bG9uZyBmbGFncykNCj4gK3sNCj4gKwlpZiAodGVzdF9iaXQoTU1GX1RPUERPV04sICZtbS0+Zmxh Z3MpKQ0KPiArCQlyZXR1cm4gYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duKGZpbGUsIGFk ZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwlyZXR1cm4gYXJjaF9nZXRfdW5tYXBwZWRfYXJl YShmaWxlLCBhZGRyLCBsZW4sIHBnb2ZmLCBmbGFncyk7DQo+ICt9DQoNClRoaXMgZnVuY3Rpb24g c2VlbXMgcXVpdGUgc2ltcGxlLCB3b3VsZG4ndCBpdCBiZSBiZXR0ZXIgdG8gbWFrZSBpdCBhIA0K c3RhdGljIGlubGluZSA/DQoNCj4gK0VYUE9SVF9TWU1CT0wobW1fZ2V0X3VubWFwcGVkX2FyZWEp Ow0KPiArDQo+ICAgLyoqDQo+ICAgICogZmluZF92bWFfaW50ZXJzZWN0aW9uKCkgLSBMb29rIHVw IHRoZSBmaXJzdCBWTUEgd2hpY2ggaW50ZXJzZWN0cyB0aGUgaW50ZXJ2YWwNCj4gICAgKiBAbW06 IFRoZSBwcm9jZXNzIGFkZHJlc3Mgc3BhY2UuDQo+IGRpZmYgLS1naXQgYS9tbS9zaG1lbS5jIGIv bW0vc2htZW0uYw0KPiBpbmRleCBkN2M4NGZmNjIxODYuLjU0NTIwNjVmYWE0NiAxMDA2NDQNCj4g LS0tIGEvbW0vc2htZW0uYw0KPiArKysgYi9tbS9zaG1lbS5jDQo+IEBAIC0yMjQwLDggKzIyNDAs NiBAQCB1bnNpZ25lZCBsb25nIHNobWVtX2dldF91bm1hcHBlZF9hcmVhKHN0cnVjdCBmaWxlICpm aWxlLA0KPiAgIAkJCQkgICAgICB1bnNpZ25lZCBsb25nIHVhZGRyLCB1bnNpZ25lZCBsb25nIGxl biwNCj4gICAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBwZ29mZiwgdW5zaWduZWQgbG9uZyBmbGFn cykNCj4gICB7DQo+IC0JdW5zaWduZWQgbG9uZyAoKmdldF9hcmVhKShzdHJ1Y3QgZmlsZSAqLA0K PiAtCQl1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25l ZCBsb25nKTsNCj4gICAJdW5zaWduZWQgbG9uZyBhZGRyOw0KPiAgIAl1bnNpZ25lZCBsb25nIG9m ZnNldDsNCj4gICAJdW5zaWduZWQgbG9uZyBpbmZsYXRlZF9sZW47DQo+IEBAIC0yMjUxLDggKzIy NDksOCBAQCB1bnNpZ25lZCBsb25nIHNobWVtX2dldF91bm1hcHBlZF9hcmVhKHN0cnVjdCBmaWxl ICpmaWxlLA0KPiAgIAlpZiAobGVuID4gVEFTS19TSVpFKQ0KPiAgIAkJcmV0dXJuIC1FTk9NRU07 DQo+ICAgDQo+IC0JZ2V0X2FyZWEgPSBjdXJyZW50LT5tbS0+Z2V0X3VubWFwcGVkX2FyZWE7DQo+ IC0JYWRkciA9IGdldF9hcmVhKGZpbGUsIHVhZGRyLCBsZW4sIHBnb2ZmLCBmbGFncyk7DQo+ICsJ YWRkciA9IG1tX2dldF91bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBmaWxlLCB1YWRkciwgbGVu LCBwZ29mZiwNCj4gKwkJCQkgICAgZmxhZ3MpOw0KPiAgIA0KPiAgIAlpZiAoIUlTX0VOQUJMRUQo Q09ORklHX1RSQU5TUEFSRU5UX0hVR0VQQUdFKSkNCj4gICAJCXJldHVybiBhZGRyOw0KPiBAQCAt MjMwOSw3ICsyMzA3LDggQEAgdW5zaWduZWQgbG9uZyBzaG1lbV9nZXRfdW5tYXBwZWRfYXJlYShz dHJ1Y3QgZmlsZSAqZmlsZSwNCj4gICAJaWYgKGluZmxhdGVkX2xlbiA8IGxlbikNCj4gICAJCXJl dHVybiBhZGRyOw0KPiAgIA0KPiAtCWluZmxhdGVkX2FkZHIgPSBnZXRfYXJlYShOVUxMLCB1YWRk ciwgaW5mbGF0ZWRfbGVuLCAwLCBmbGFncyk7DQo+ICsJaW5mbGF0ZWRfYWRkciA9IG1tX2dldF91 bm1hcHBlZF9hcmVhKGN1cnJlbnQtPm1tLCBOVUxMLCB1YWRkciwNCj4gKwkJCQkJICAgICBpbmZs YXRlZF9sZW4sIDAsIGZsYWdzKTsNCj4gICAJaWYgKElTX0VSUl9WQUxVRShpbmZsYXRlZF9hZGRy KSkNCj4gICAJCXJldHVybiBhZGRyOw0KPiAgIAlpZiAoaW5mbGF0ZWRfYWRkciAmIH5QQUdFX01B U0spDQo+IEBAIC00NzU1LDcgKzQ3NTQsNyBAQCB1bnNpZ25lZCBsb25nIHNobWVtX2dldF91bm1h cHBlZF9hcmVhKHN0cnVjdCBmaWxlICpmaWxlLA0KPiAgIAkJCQkgICAgICB1bnNpZ25lZCBsb25n IGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuLA0KPiAgIAkJCQkgICAgICB1bnNpZ25lZCBsb25nIHBn b2ZmLCB1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiAgIHsNCj4gLQlyZXR1cm4gY3VycmVudC0+bW0t PmdldF91bm1hcHBlZF9hcmVhKGZpbGUsIGFkZHIsIGxlbiwgcGdvZmYsIGZsYWdzKTsNCj4gKwly ZXR1cm4gbW1fZ2V0X3VubWFwcGVkX2FyZWEoY3VycmVudC0+bW0sIGZpbGUsIGFkZHIsIGxlbiwg cGdvZmYsIGZsYWdzKTsNCj4gICB9DQo+ICAgI2VuZGlmDQo+ICAgDQo+IGRpZmYgLS1naXQgYS9t bS91dGlsLmMgYi9tbS91dGlsLmMNCj4gaW5kZXggNWE2YTk4MDI1ODNiLi4yYjk1OTU1M2Y5Y2Ug MTAwNjQ0DQo+IC0tLSBhL21tL3V0aWwuYw0KPiArKysgYi9tbS91dGlsLmMNCj4gQEAgLTQ1Miwx NyArNDUyLDE3IEBAIHZvaWQgYXJjaF9waWNrX21tYXBfbGF5b3V0KHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tLCBzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQ0KPiAgIA0KPiAgIAlpZiAobW1hcF9pc19s ZWdhY3kocmxpbV9zdGFjaykpIHsNCj4gICAJCW1tLT5tbWFwX2Jhc2UgPSBUQVNLX1VOTUFQUEVE X0JBU0UgKyByYW5kb21fZmFjdG9yOw0KPiAtCQltbS0+Z2V0X3VubWFwcGVkX2FyZWEgPSBhcmNo X2dldF91bm1hcHBlZF9hcmVhOw0KPiArCQljbGVhcl9iaXQoTU1GX1RPUERPV04sICZtbS0+Zmxh Z3MpOw0KPiAgIAl9IGVsc2Ugew0KPiAgIAkJbW0tPm1tYXBfYmFzZSA9IG1tYXBfYmFzZShyYW5k b21fZmFjdG9yLCBybGltX3N0YWNrKTsNCj4gLQkJbW0tPmdldF91bm1hcHBlZF9hcmVhID0gYXJj aF9nZXRfdW5tYXBwZWRfYXJlYV90b3Bkb3duOw0KPiArCQlzZXRfYml0KE1NRl9UT1BET1dOLCAm bW0tPmZsYWdzKTsNCj4gICAJfQ0KPiAgIH0NCj4gICAjZWxpZiBkZWZpbmVkKENPTkZJR19NTVUp ICYmICFkZWZpbmVkKEhBVkVfQVJDSF9QSUNLX01NQVBfTEFZT1VUKQ0KPiAgIHZvaWQgYXJjaF9w aWNrX21tYXBfbGF5b3V0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QgcmxpbWl0ICpybGlt X3N0YWNrKQ0KPiAgIHsNCj4gICAJbW0tPm1tYXBfYmFzZSA9IFRBU0tfVU5NQVBQRURfQkFTRTsN Cj4gLQltbS0+Z2V0X3VubWFwcGVkX2FyZWEgPSBhcmNoX2dldF91bm1hcHBlZF9hcmVhOw0KPiAr CWNsZWFyX2JpdChNTUZfVE9QRE9XTiwgJm1tLT5mbGFncyk7DQo+ICAgfQ0KPiAgICNlbmRpZg0K PiAgIA0K