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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6AE9CC77B7D for ; Mon, 15 May 2023 04:45:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 91478900003; Mon, 15 May 2023 00:45:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8C4F8900002; Mon, 15 May 2023 00:45:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 73E9F900003; Mon, 15 May 2023 00:45:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 649CB900002 for ; Mon, 15 May 2023 00:45:49 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 3509BAF2BC for ; Mon, 15 May 2023 04:45:49 +0000 (UTC) X-FDA: 80791251618.01.E4EADD5 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on2073.outbound.protection.outlook.com [40.107.12.73]) by imf19.hostedemail.com (Postfix) with ESMTP id 1A42D1A0006 for ; Mon, 15 May 2023 04:45:45 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=csgroup.eu header.s=selector1 header.b=emNgjpNK; spf=pass (imf19.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 40.107.12.73 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu; dmarc=pass (policy=quarantine) header.from=csgroup.eu; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684125946; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QgUk3IEYYsvp3eXY2tKFgzDR65XgteOF691S2mk/VVc=; b=4Uw3F4nJTvbGw9Rd4sGbKFn6ULt+H6rhi2a7v5kz/kHd5Kei3W4qqXvvuPPj42cAu7OQNm Ah7o7N3GTJjeZ1J+p3nG3QiyVj+g+VOHBY0KBK6NWizcqOiCFE+knqSxfFW29HNglSEEv9 UU/j6crCGQ/DiEWl8c0vEKhH9IDQrbY= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1684125946; a=rsa-sha256; cv=pass; b=1vnZrBho0A8IU+lGGTLa+ABrMRO3qxD7WUBhGr8mWQEicozvtGcrinPUxJxGkGLlX79+0c 2hZO74NrxbHzAtW96ugpveKw8WIQK2KJLuNYoPrrZGS9kQy0s9YS/w/44cgKqZMNJLPLjj BsayOvwMJGQ/OZIPbw33qLvLgrzpi3M= ARC-Authentication-Results: i=2; imf19.hostedemail.com; dkim=pass header.d=csgroup.eu header.s=selector1 header.b=emNgjpNK; spf=pass (imf19.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 40.107.12.73 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu; dmarc=pass (policy=quarantine) header.from=csgroup.eu; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a7kR+N3GXqfmhte1hdOJDGJtUfihquU/A1JnAOpy5uRc6RY84wwR8MEIP20R9VgCkUEarZlwGKQgM4ytil7oVStXxYBRMhBk0LgbybQWwX9bj78zBYXZRbLTNS7ULhfm/rO7zYPkVK3LOyxq4lNri2QxYBr8WClz4ISyM+QEAvaJN09Gbxmlg4cwGcY1LhdxoKIwZM+QuAYke3+NUQs4pl0uDQN5H/Jqb6sBZD+ekDu8s9cVbRP3O/OmZrmnebwXGAO69GD1AfBC5FcstYwTlT6lr/BPNjC6HMV6lhEVh6tKjYSLltG/ifjl51YnG/am8bWWiEEePRU61/O7y9oelg== 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=QgUk3IEYYsvp3eXY2tKFgzDR65XgteOF691S2mk/VVc=; b=e+aTgvEpcJlWRe6yry+QBVvUqL62GjVw1dswf9hXmmg6eoXc1KVYHa4rzotdOjZg6tuyze0YCF1ay8CEhjDOJoyW9jpb82Qt5/7hj7nT4CqbJAGvgMfkBnKpTXeEUGe3W5sHGV2gn8hO6bI0dmlqG1bgXgKC1gkxlaqMvZZ12Z7a9K4W84V82mzxxgn4aebF5D6fvTMNbnMkNmnn/P84pitCHJ0sup3yokCFmF4xf/GF8DwINbNY+8PX3mjCuEsWF7zQfqD8JQ6JCSMsVFjqRlJC/7/3GZUDCwmLiPxX3AbKhrNqEKLfKFyMzjaVLKL3RH9WCRGkJFnP5oDg5Bn/Qg== 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=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QgUk3IEYYsvp3eXY2tKFgzDR65XgteOF691S2mk/VVc=; b=emNgjpNKKNc6BPTyHrMOJ1FqpQDCMEJwiPUpyzw5Cg9F2krKm3KaX1uH/sn/CqEcPFy7j4zGv/n0eX0hpBxpuefyFU17zZXi33xQzx4OLATdT+SY2PS1Qs7NjCG3UoaqM8NEdQKzSddWW9tWLmOu2b6wtjV+klx0f0dUKfzPWlFDHQgrYAWSwoDzEojDnY1Jf1U1YO73TD+jjyBnvowKenoHdoF36WZL3pFT1Tb3lT52aGOWTxJaIJE7FywjbM6b2lF2R1tPBHI/BomaxuImtaVFnCGDvmHsGhnuGyvtvmaSHkUa4G0mIYgiJEEpYIW3JHGPRnn4iHKmsehY6HA45Q== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PAZP264MB2942.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1f2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 04:45:42 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::447b:6135:3337:d243]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::447b:6135:3337:d243%3]) with mapi id 15.20.6387.030; Mon, 15 May 2023 04:45:42 +0000 From: Christophe Leroy To: Kent Overstreet CC: Lorenzo Stoakes , Christoph Hellwig , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-bcachefs@vger.kernel.org" , Kent Overstreet , Andrew Morton , Uladzislau Rezki , "linux-mm@kvack.org" Subject: Re: [PATCH 07/32] mm: Bring back vmalloc_exec Thread-Topic: [PATCH 07/32] mm: Bring back vmalloc_exec Thread-Index: AQHZgpdUsgx7flCbUE+3jXS45Hg7zK9SaWKAgAAHaoCABcbjAIAB6dOAgABVD4CAAFR0gA== Date: Mon, 15 May 2023 04:45:42 +0000 Message-ID: <6f049870-1684-1875-3cdc-73e1323ffdb0@csgroup.eu> References: <20230509165657.1735798-1-kent.overstreet@linux.dev> <20230509165657.1735798-8-kent.overstreet@linux.dev> <8f76b8c2-f59d-43fc-9613-bb094e53fb16@lucifer.local> In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PAZP264MB2942:EE_ x-ms-office365-filtering-correlation-id: 21d78b4d-01d8-4f93-5fcd-08db54ff3d29 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +lfKy2T2pH1+24qQcLF2y/FLUNR+YbuoZ+HD/ggpPd0jxLkKrMDLyLDbbnzDCmDg1BXx1LwTBOrcUw3HslJyTq0AqKPiSkn9QOb2En96VsxrW0udSAgqa/QfvBEKVMRyxZe7QZg8douDszFRnll1FPtb9LiVCMn1r/SC6fe46xme24NYO84h6HNnHtAhmBqeZzfCaD/AbKBlfBIwDFBWZJ9vu7iLsLnBt8nXD9KOkWFJqJY9dBWH2C27lN9iKVz5znGDi69YJab4k/mvrZJRX6HNYlbZzgAkXo4+1da3NEozf7kt251Y9tGn1E4jP2+fqyG1bixmE4b3ckoC7vf1bgVMOPeqNOdtt8AIJkHkfsynDU2iLw5UU3mmdkx8XFdGHbxZkk6DVx7g+QkbnD2pmGGX0bBJDHJU/9Xa40TspU8E0ROjkEKDJDjfYZVehluf0DMDMo3IcNpflIKgoFq8uOjCMpo6kgQh306tsJpHNWay4fD+8f38fISBWW4Q51A2vSU1SUOh7f+YgjUSbJRhlo1hTwIXhXN2ZsOS/Un5HB8BzbF6+pv90EUQwBXHbKrT6uZieqhafaUsbcQ4PBgEkMoYsTQxeS4wqWQ6PZCXCnYG6l+6fxrqqH1dIc73QhBggam6Y3uEMicwMD1N78lQjF0slGmOP7GHpjan8dVedXEia/5liOPew0aB5eU3KP5s 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:(13230028)(4636009)(39850400004)(376002)(396003)(366004)(346002)(136003)(451199021)(31686004)(83380400001)(66574015)(4326008)(6916009)(36756003)(38100700002)(122000001)(41300700001)(38070700005)(316002)(6512007)(6506007)(6486002)(26005)(478600001)(66946007)(66446008)(66556008)(64756008)(66476007)(2616005)(91956017)(76116006)(8676002)(8936002)(7416002)(44832011)(31696002)(5660300002)(2906002)(54906003)(86362001)(186003)(71200400001)(43740500002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bjllUHpQNXU0MWFMbUE3bHRjY3Bad3d4L0RNOVVjdk1FaUxvazB6L1ZSTG50?= =?utf-8?B?VnJwaEp3U2NVS1BLS0xFTWFlZHc2K3hKRy94b3BUSUUwM2NzajlTQzBncUFx?= =?utf-8?B?Z3cwOTg2S1ZFUXVaYnRDckN1MEtHeC9ocG1qZUltaDRpS2VHTFhjU1V1UUFM?= =?utf-8?B?WDlrTk5MamhPUWovMWJvY3pGWWxVeG1vcFhneDhCMmEwcFROM1YzSXpLaDNu?= =?utf-8?B?cENid2x4a2JoZlU5TVlwVm81UmRtcDBzYmVkbkpGUGxObWc3d0VTNGJFQjVD?= =?utf-8?B?Sm1mbkRnQU5zenFzZ2E0ZTlheGxYZjA3bW96YXhCR050eWhBa2tOdW5LSG0y?= =?utf-8?B?cmdodUxpWjBVT3Bqc0srd1c4bEtGcTMyRzZCN3h6Y21SVjZKem5JQlZxWmFS?= =?utf-8?B?RVdENFBzVWhxWXk2cSsvSlJlZFJ4WFpQNFY4WjV6eU1rdVJMcHJSY0lseU0x?= =?utf-8?B?OTBzNVBOTWxER1oxc0hPNG1uV2EzTnpCRS9wMi9mRzJwM3AvVHRRVCt2RTla?= =?utf-8?B?UzdoYVBLelp6MS9ldzdabDh0ODBTcEg5Y2ZGNVM4WjNHakVZeXc2QmZhL3BU?= =?utf-8?B?WnVEdzd6M0F5K0ErZlZidnVaRDNvVkYxVU8vQnFTMlhPdkFZN2xYNDBHMmtr?= =?utf-8?B?YzllYXFwaUpJWjJZQkFLeGx5RllBbEFqdWYydVFFTVg3T2txVStLY1hwODYw?= =?utf-8?B?QVhKcEtrbXIySnhlTld3R09CcEI2aGtzOTdxb0hqb3V5bW44b2VydEF0QVFy?= =?utf-8?B?R1N0MVJuQm5Tc2pHdDZjWDhnZXJFTTVacjRNcDlyNlNQNXU0OEU3ejlZenJi?= =?utf-8?B?K3lXR0ZRNEFyRUZwWHdZbllicEhJNmJFdEJYOEs3Q1F5TEdNd2tSVUk1bWZi?= =?utf-8?B?TGphMFc5Tm1LSE9mV2hIWG5nWVlKc2Zqc2crZWl5ZEU1RmlZSnpiUnJvbUpL?= =?utf-8?B?OFc5cDN0dzhXTlJSWTRwNFZUc01GYzRqdzZDaXdBK2FCTG1WMm05V2ZXcFIz?= =?utf-8?B?N0NOa3BkSUh6K3owckZ4QXRNcVR0UXFVMzdYdEd4Yno2YnM1UDRkUmtrQ043?= =?utf-8?B?R2lwcVhaRXA2MGs3bGFkNmtnakVKZlBneUh2bWNhbHdINGw3OHlsc0FKbnZM?= =?utf-8?B?K3RJTzZpOWEyS296SFl3L01LZzBvVXFMaUtYSE5hMVplUEF5Wk5yU2F2WG13?= =?utf-8?B?TnFsY1lPWU9GWGN5eHZST1hBQ0dYZFhZRDIzbFcra3FLMHVIdWFPdjhjaGVv?= =?utf-8?B?Q1pObXJlMlpwNGJjQktHanNtbVRVVzFScEVQdUk1YXQreXN2VjdBU1kwTTZD?= =?utf-8?B?OWRtcFlzS3RBaWlUWDV4WHRIeWxRdzRNSFQrVjJMbWh4MDF6c0w0NGJnVllD?= =?utf-8?B?K3ZxTzFXcHlkRGZDMDlMVGlDdzRMM0J3QVBKSmtoTEFiVjc3RGFxNFhaMDVW?= =?utf-8?B?dklNS3pkTXkxQzA4SkhkTzMwN3JCaFhJMmJyZXpQMW4rdDVaZDNyY0tmRXh2?= =?utf-8?B?Zm84RlFtRjRmbXBRa25MM3loZ0VBcVJrb1ZRWm1CaVRWRGdlbEdmT1MrWWRL?= =?utf-8?B?TlJkMktrblFqWGhSS0tOR09Ua21ZUGR5ZEFTSGdBMU8yblpNT0l0aS9LV3My?= =?utf-8?B?dmZNakxNZmJ4ZFczOUFnSWJnZ1pQRWV3MHZ4UGNCTEFvZThyemlzMVdGbVFQ?= =?utf-8?B?Z2xoQWM4V1NQU3VLdjZRMzNvbnhtMlNPMzQwbjFEZDllaWNxU2NzZndSdmha?= =?utf-8?B?QU9wcHF5UVRiK0kwdWZhUW9FNGpYU1BaMkxyY2tSODdjMlNtWlZuWHNIYXA3?= =?utf-8?B?Rk9nUzN6RVc0NGxFN1VjS09tU1BPa0JGK2xxNG0xeUIwK3lRVVlTckxvUmo4?= =?utf-8?B?NUFORG1jRjRXMEdvYTZqdkNsbUpGQklDelZJMTFaWkdFSzNiU2thbE1YT2p6?= =?utf-8?B?b0pVOTVaRUpYclpKNkNSSDUzdFJydFl1R0pxZ2lTNVBCbEhJZ1V3SjBwQkNl?= =?utf-8?B?UVB6ZHU5S2M1OUhENTFRWmtGN0Rwb0xsa3VpcDBaTHBDR0htZGJ3WENvTVUy?= =?utf-8?B?eHVTRzg3czRpNzJyMmZrUHhDYWEzSG1UZFJKL0s3bVpQUmoyUDFMN25hYUto?= =?utf-8?Q?XWx9iPydnK8JEbDy0aolGjdub?= Content-Type: text/plain; charset="utf-8" Content-ID: <7114471F58A50243B48B069A92668383@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 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: 21d78b4d-01d8-4f93-5fcd-08db54ff3d29 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 04:45:42.2353 (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: n9vnrwfNqBRBsVwD6pcf6EejBgogihyUEINxxaxnPdr3OZw1UZd2/OAtlAPJ/bcc2RZB56RlLoQPXu5vnGNBXcgSEiIS6GaJEB+lETML4WE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAZP264MB2942 X-Rspamd-Queue-Id: 1A42D1A0006 X-Rspam-User: X-Rspamd-Server: rspam06 X-Stat-Signature: e3b6en8x8xq7k7cn68hwdxto3mjtwc3a X-HE-Tag: 1684125945-196394 X-HE-Meta: U2FsdGVkX19NmhtIhZHal1Ts7BYvv1YCuC7J4yI4GzGY0OQOpkLYO5rhBEew8fDahPiO9RkhGIgT8VjlzuJWVPHodAgaJBGnqKZuFcUvdywx8zWIAKcfEBWhW7+cClRhMTDl+4Dtx0eAZ6F9MLK9n8EObzsR7nODEDGhE2fxpL7iAYnTQwyYnCTwTxQVM1WNQU7S6fljkwxd1f64ZohOVsHKHe6WNKPP+1i4O+ehMB7w+MR1CVXAxkmLPzf9b550kNiGYyC2ysC93A4iZG/AO6gU/nhbKAVvct/ADYoFC2o0cTizOX3AIpyYi+t3vi7+BEMGd+o+FaFpOOtfhazVTqFaP8L4HhOXSr6QzBk13Kyq8fQlH5r41u23bYlrXXRP3ufleaThQHHnd/CR2fE13uw8+w3udrAMV2daTBvX1I8keWtQ6OnSB4rjDgn+n+PiAo+IxvzctwlqCqCTv9msyk2EnFblGwHNeG0aUXG548VZz7c0ftgSNTY9FchzXK8kCM6vh+YZFZSTqjouHYZmr9pWEJMnXHV8XfjFq2xIBYQ0b7dyIDptdV5NaCflnIrBpLlBrZEZac+xxrIWVT3piTqREmDSWEYpniK0e9rLDDpdkYa/xpENdaz0jY7Pk65p25FM+ffrP0xKJ3VDlv769XBRVlReVuk1BoZIGO6ZA1YQvmW3SVUXI742HJELfU+rDYKnwqnvghQkT5eeHWHmRVuC+BNJdF0qLnDWcV8MS7QanfEkwAwF2qXTIOqFBSvVGMWcqpk7DopUPrIUQGwyY8zTqDfi5sHrcdU9MKzew6uIyijCn/TWX00zzfBbp+Q3QejMiUM3AN0Ik1kzGAJ8pXQIF84145MclsTz+XIBuT0Jjosq8u2eWlA6ybpqq7SKZT0Y0ulDmU/IP2rsJPBs9DUX2TPrBxZRwa9cR6+AdiNw6WLTocXL27HYsSGay2WCGWkaHtYCPe9VVmg4O6i ImYac0WQ 94krK1sa73Y1z6yaMBnrNr5GHrwEN5SW9qxuew0Ef6ro6bUEAZMWSMoTSMI7hEm7u7LCj4iNqdVhPtZklQwWAgNVfOdCzyy4ny/tcJEJg0c7QH4n75XsFl0IyS/Fou1SGEdEBvYJO7M0nI/EBvYfku2Qctcxk63vBZc1tLfUknDw4alSfHPuaLtG97oJ4Y3y1ncgYQnCcapD6v5ybKzUfw92VPrNI/JLJ1FlvL0q8ydCFS0sC+mN94DKvseHX8JtkwBV1jgaSIF6VsaJjbqyhz0OiFpk/P7jUpQcOHAwqHT7BmPYnCQdvS7QTrTt4+cfsaJPKMEWALlmkDtk53mn/xp830QsXuyumh189cCY9Y4gTkOlDDAC9RQpcoPiJGD7ofiuw9X2bA7bErcXWTuo4QIG1WIg+PIleCntOWE+I3No+nAZZPzWacOoAY3T86RA30RmPZJ+PiTw72syKFMy4jtDg+Eh38pHHLNJ8wPMNAh8SfVQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: DQoNCkxlIDE1LzA1LzIwMjMgw6AgMDE6NDMsIEtlbnQgT3ZlcnN0cmVldCBhIMOpY3JpdMKgOg0K PiBPbiBTdW4sIE1heSAxNCwgMjAyMyBhdCAwNjozOTowMFBNICswMDAwLCBDaHJpc3RvcGhlIExl cm95IHdyb3RlOg0KPj4gSSBhZGRpdGlvbiB0byB0aGF0LCBJIHN0aWxsIGRvbid0IHVuZGVyc3Rh bmQgd2h5IHlvdSBicmluZyBiYWNrDQo+PiB2bWFsbG9jX2V4ZWMoKSBpbnN0ZWFkIG9mIHVzaW5n IG1vZHVsZV9hbGxvYygpLg0KPj4NCj4+IEFzIHJlbWluZGVkIGluIGEgcHJldmlvdXMgcmVzcG9u c2UsIHNvbWUgYXJjaGl0ZWN0dXJlcyBsaWtlIHBvd2VycGMvMzJzDQo+PiBjYW5ub3QgYWxsb2Nh dGUgZXhlYyBtZW1vcnkgaW4gdm1hbGxvYyBzcGFjZS4gT24gcG93ZXJwYyB0aGlzIGlzIGJlY2F1 c2UNCj4+IGV4ZWMgcHJvdGVjdGlvbiBpcyBwZXJmb3JtZWQgb24gMjU2TWJ5dGVzIHNlZ21lbnRz IGFuZCB2bWFsbG9jIHNwYWNlIGlzDQo+PiBmbGFnZ2VkIG5vbi1leGVjLiBTb21lIG90aGVyIGFy Y2hpdGVjdHVyZXMgaGF2ZSBhIGNvbnN0cmFpbnQgb24gZGlzdGFuY2UNCj4+IGJldHdlZW4ga2Vy bmVsIGNvcmUgdGV4dCBhbmQgb3RoZXIgdGV4dC4NCj4+DQo+PiBUb2RheSB5b3UgaGF2ZSBmb3Ig aW5zdGFuY2Uga3Byb2JlcyBpbiB0aGUga2VybmVsIHRoYXQgbmVlZCBkeW5hbWljIGV4ZWMNCj4+ IG1lbW9yeS4gSXQgdXNlcyBtb2R1bGVfYWxsb2MoKSB0byBnZXQgaXQuIE9uIHNvbWUgYXJjaGl0 ZWN0dXJlcyB5b3UgYWxzbw0KPj4gaGF2ZSBmdHJhY2UgdGhhdCBnZXRzIHNvbWUgZXhlYyBtZW1v cnkgd2l0aCBtb2R1bGVfYWxsb2MoKS4NCj4+DQo+PiBTbywgSSBzdGlsbCBkb24ndCB1bmRlcnN0 YW5kIHdoeSB5b3UgY2Fubm90IHVzZSBtb2R1bGVfYWxsb2MoKSBhbmQgbmVlZA0KPj4gdm1hbGxv Y19leGVjKCkgaW5zdGVhZC4NCj4gDQo+IEJlY2F1c2UgSSBkaWRuJ3Qga25vdyBhYm91dCBpdCA6 KQ0KPiANCj4gTG9va3MgbGlrZSB0aGF0IGlzIGluZGVlZCB0aGUgYXBwcm9wcmlhdGUgaW50ZXJm YWNlIChpZiBhIGJpdCBwb29ybHkNCj4gbmFtZWQpLCBJJ2xsIHN3aXRjaCB0byB1c2luZyB0aGF0 LCB0aGFua3MuDQo+IA0KPiBJdCdsbCBzdGlsbCBuZWVkIHRvIGJlIGV4cG9ydGVkLCBidXQgaXQg bG9va3MgbGlrZSB0aGUgV3xYIGF0dHJpYnV0ZQ0KPiBkaXNjdXNzaW9uIGlzIG5vdCByZWFsbHkg Z2VybWFuZSBoZXJlIHNpbmNlIGl0J3Mgd2hhdCBvdGhlciBpbiBrZXJuZWwNCj4gdXNlcnMgYXJl IHVzaW5nLCBhbmQgdGhlcmUncyBub3RoaW5nIHBhcnRpY3VsYXJseSBzcGVjaWFsIGFib3V0IGhv dw0KPiBiY2FjaGVmcyBpcyB1c2luZyBpdCBjb21wYXJlZCB0byB0aGVtLg0KDQpUaGUgV3xYIHN1 YmplY3QgaXMgYXBwbGljYWJsZS4NCg0KSWYgeW91IGxvb2sgaW50byBwb3dlcnBjJ3MgbW9kdWxl X2FsbG9jKCksIHlvdSdsbCBzZWUgdGhhdCB3aGVuIA0KQ09ORklHX1NUUklDVF9NT0RVTEVfUldY IGlzIHNlbGVjdGVkLCBtb2R1bGVfYWxsb2MoKSBhbGxvY2F0ZSANClBBR0VfS0VSTkVMIG1lbW9y eS4gSXQgaXMgdGhlbiB1cCB0byB0aGUgY29uc3VtZXIgdG8gY2hhbmdlIGl0IHRvIFJPLVguDQoN ClNlZSBmb3IgaW5zdGFuY2UgaW4gYXJjaC9wb3dlcnBjL2tlcm5lbC9rcHJvYmVzLmM6DQoNCnZv aWQgKmFsbG9jX2luc25fcGFnZSh2b2lkKQ0Kew0KCXZvaWQgKnBhZ2U7DQoNCglwYWdlID0gbW9k dWxlX2FsbG9jKFBBR0VfU0laRSk7DQoJaWYgKCFwYWdlKQ0KCQlyZXR1cm4gTlVMTDsNCg0KCWlm IChzdHJpY3RfbW9kdWxlX3J3eF9lbmFibGVkKCkpDQoJCXNldF9tZW1vcnlfcm94KCh1bnNpZ25l ZCBsb25nKXBhZ2UsIDEpOw0KDQoJcmV0dXJuIHBhZ2U7DQp9DQoNCg0KQ2hyaXN0b3BoZQ0K