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 028CFCE79B4 for ; Wed, 20 Sep 2023 10:06:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 71C3A6B012C; Wed, 20 Sep 2023 06:06:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CCB76B0130; Wed, 20 Sep 2023 06:06:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BC766B0141; Wed, 20 Sep 2023 06:06:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4B7F56B012C for ; Wed, 20 Sep 2023 06:06:34 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1E4C0120E22 for ; Wed, 20 Sep 2023 10:06:34 +0000 (UTC) X-FDA: 81256546308.03.A27E00B Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.85.151]) by imf29.hostedemail.com (Postfix) with ESMTP id 259B312001A for ; Wed, 20 Sep 2023 10:06:29 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=aculab.com; spf=pass (imf29.hostedemail.com: domain of david.laight@aculab.com designates 185.58.85.151 as permitted sender) smtp.mailfrom=david.laight@aculab.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695204392; 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; bh=0rHj0ESklV2aefU9qVarmM+u/rRhbXDpSbQ7/XcWDfU=; b=p5PUjV6IroJvwJyWtnGM/AQWcFXe99eMe7K+nDATT9BSNg5uTMBSNIM6KmF+7xRNnDUmjF NSvly05GiF684OKOyg1MB52/PECursJnQMC4+9R0o3pP+oYNSe/Dm9iLF9Aq5i9xzalGMg PTc1nUADA6tBt3JmFOXl9uN2ZPuL9N4= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=aculab.com; spf=pass (imf29.hostedemail.com: domain of david.laight@aculab.com designates 185.58.85.151 as permitted sender) smtp.mailfrom=david.laight@aculab.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695204392; a=rsa-sha256; cv=none; b=avCA6QU+rdnJ5sqnnnuAUSWYRYZMz0Ch98FU0fbHu+Qk/8VOnjbIcCMCq8ZIDkQ05KuSUz C4HhdWxkoRaS8GUCDjesip+MXkTwYCkdUD2NFjUsHzJEtgyMbWKDYhEbkotW96fgawg0ag nC9j1PN41m8TxHfvYw+nsgbFQlrA9bM= Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with both STARTTLS and AUTH (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-258-rzX29dJ6Oz-jMKGfcRcBhg-1; Wed, 20 Sep 2023 11:06:20 +0100 X-MC-Unique: rzX29dJ6Oz-jMKGfcRcBhg-1 Received: from AcuMS.Aculab.com (10.202.163.4) by AcuMS.aculab.com (10.202.163.4) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Wed, 20 Sep 2023 11:06:16 +0100 Received: from AcuMS.Aculab.com ([::1]) by AcuMS.aculab.com ([::1]) with mapi id 15.00.1497.048; Wed, 20 Sep 2023 11:06:16 +0100 From: David Laight To: 'Vlastimil Babka' , 'Kees Cook' CC: "linux-kernel@vger.kernel.org" , "'linux-mm@kvack.org'" , 'Christoph Lameter' , 'Pekka Enberg' , 'David Rientjes' , 'Joonsoo Kim' , "'Andrew Morton'" , 'Eric Dumazet' , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Roman Gushchin Subject: RE: Subject: [PATCH v2] slab: kmalloc_size_roundup() must not return 0 for non-zero size Thread-Topic: Subject: [PATCH v2] slab: kmalloc_size_roundup() must not return 0 for non-zero size Thread-Index: Adnhh8rbtLpHk7QBQE+HpPR0NWDZ5gAMq8SAABymU5AApLGGAAACRmZQ///11gD//+uuIIANzcKA///uM/A= Date: Wed, 20 Sep 2023 10:06:16 +0000 Message-ID: References: <4d31a2bf7eb544749023cf491c0eccc8@AcuMS.aculab.com> <202309071235.CB4F6B2@keescook> <20ca0a567a874052a1161e9be0870463@AcuMS.aculab.com> <1bf41b7c8d7c428c8bfb5504ec9f680e@AcuMS.aculab.com> <1d634412-c0e5-4c16-92a4-447bde684ad6@suse.cz> <5569ec99-b441-f7f0-060b-168abc089b23@suse.cz> In-Reply-To: <5569ec99-b441-f7f0-060b-168abc089b23@suse.cz> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Rspamd-Queue-Id: 259B312001A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: k8d4xe7hi1nruwhiaukzwut9mxpfk8yi X-HE-Tag: 1695204389-479344 X-HE-Meta: U2FsdGVkX19wxhlXmiDawqpO16aLyP9o+PvOVPdUmusdqRAWMPzPf6ONuR671qfZLCuKCP9GvaTQkpsErjw53ofL7ODXNRYMXWTy4xIAEUxGZipSgxfNDSNP0sZgF4MENipSUl7oEXLKIwFs1flB5DQMnEhOOjbLdpYma8K7KdIEpw/4rH4usHyclXSKrp4TNHdXXZapCr6C0RKSipLu19N2PfbgPilSB+hs+JvCvI8qQd1K00IaXp7vBkVAlm1QEwqCChR1K2sD2OUM6iSVfgx0e7MlzONiBma9iiyePLQtwf6lH3tSTvqhvI3SQCAlMGSJ98Af4y3nylSQRjB2SfyFWZI4CFZpmhavkhzFVA9Jypy6mvp2FHSLaxRQNFpCqcUgrKQLXbswHd5CpAY9FjM+YprzqWSBNfN48Q+eqFEvrUMG384VEMLuyncc2t9aFJQry0qIztRwkIfecKJ+29XHrM7+/UaJUDNkw/7LK96C40Oo/yAbe5aO3bKwF3NCrhLfsPHNG6LKL7Oe+JesmyrXSod6w+TWuOJJoBNi5SfVTdgQyX8gCvT6p79mRoy1IJyzTnZPje7gLelaYH1h9M2LpV2EW5ZUY08dmyxtFFJ/l+IehLN0pwrjyCwPtxY3Ef+W6DZ2x0srT8/3dG2Dhz+JMmJwDOUDuS5u7jclOTUQgyEznxrW7dVFNIcpS/rVsmsYXwm/WsQ+GXl/DZAEjRTlBJDG0bVDyQyYfD7eKkL4bVCEE26D4GJH3XNZ+NbhPkF+7InpWGcle2hEgoVsDlI7fWCgfdpvLpDGiycsTADh7YTH9GASvxUivTOpIxQemtDPKj2QfwZiDzmkwc51XPUpH6r/lLhqdtykvpZpPpubBsHUMsDp0bKQxfRT09xMsrWZOc/cr94RoFTvvBW01xOIF8C8OJWABxYgf7BFkLakD9zCPSYe+Jz9IOqbpRy0o+l5+uX9Tqu/bex/2RS qNjbkMas 5TV5E4nCNyL72GHBQGsS1u53I+by9zDBdZ2XUPW9BMiKsEBF7KqmNca5WJDsTLA731cNu3LMJD440vRNxxcWYEcpdIHf2tZcW0Bp/ra3x3DfeuSuie61CD9iwfWx7N5znAPyl3JpaF92T008uLDQtrj1UmjscQwb7IXTV8XNftWY4YJ/Sx5PyufO1Im18F6TPZOBDheFz9+XISdDqAvdg7Z8XBwcA9Ny/kTqnMXc9tk7DNSzlM445ObKDIiMXYaJ+Zi8/QRnFw/jGbhz8Q7khLS0ejfUXgLGeJOyKOvw5P2TGmfnMecD+F/YhNfudUCzDnc8Zy6BDd2m8utGWb5AG81k8P/m0BwR/ZE+RevDbqVn7C3ryKsHdzm0OILsAzKBNYsshLSXlZMRomjj7/IbsT2HnL0A1IzX8fHLPlQiFYB35gWg3p6rXFSaYE5SE/SGpq3gAwDXwtE7oLxwjzvIaMUMQljBYZlKbIN+PxFTUekC8FPlKae8++rZ+OQ== 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: RnJvbTogVmxhc3RpbWlsIEJhYmthDQo+IFNlbnQ6IDIwIFNlcHRlbWJlciAyMDIzIDEwOjU4DQo+ IA0KPiBPbiA5LzExLzIzIDE4OjM4LCBEYXZpZCBMYWlnaHQgd3JvdGU6DQo+ID4+ID4+IFNvIHBl cmhhcHMgdGhlIGJlc3Qgd291bGQgYmUgdG8gcmV0dXJuIHNpemUgZm9yIGMgPT0gTlVMTCwgYnV0 IGFsc28gZG8gYQ0KPiA+PiA+PiBXQVJOX09OQ0U/DQo+ID4+ID4NCj4gPj4gPiBUaGF0IHdvdWxk IGFkZCBhIHJlYWwgZnVuY3Rpb24gY2FsbCB0byBhbiBvdGhlcndpc2UgbGVhZiBmdW5jdGlvbg0K PiA+PiA+IGFuZCBhbG1vc3QgY2VydGFpbmx5IHJlcXVpcmUgdGhlIGNvbXBpbGVyIGNyZWF0ZSBh IHN0YWNrIGZyYW1lLg0KPiA+Pg0KPiA+PiBIbSBJIHRob3VnaHQgV0FSTiBpcyBkb25lIGJ5IHRy aXBwaW5nIG9uIHVuZGVmaW5lZCBpbnN0cnVjdGlvbiBsaWtlIEJVRw0KPiA+PiB0aGVzZSBkYXlz LiBBbHNvIGFueSBjb2RlIHRoYXQgYWNjZXB0cyB0aGUgY2FsbCB0byBrbWFsbG9jX3NpemVfcm91 bmR1cA0KPiA+PiBwcm9iYWJseSBjb3VsZCBhY2NlcHQgdGhhdCB0b28uDQo+ID4NCj4gPiBJdCdz IHByb2JhYmx5IGp1c3Qgd29ydGggcmVtb3ZpbmcgdGhlIGMgPT0gTlVMTCBjaGVjayBhbmQNCj4g PiBhc3N1bWluZyB0aGVyZSB3b24ndCBiZSBhbnkgZmFsbG91dC4NCj4gPiBUaGUgTlVMTCBwb2lu dGVyIGRlcmVmIGlzIGFuIGVhc3kgdG8gZGVidWcgYXMgYW55dGhpbmcgZWxzZS4NCj4gPg0KPiA+ IElmIGl0IGdldHMgY2FsbGVkIGluIGFueSBlYXJseSBpbml0IGNvZGUgaXQnbGwgc29vbiBzaG93 IHVwLg0KPiANCj4gR29vZCBwb2ludCwgZWFybHkgY3Jhc2ggc2hvdWxkIGJlIG9rLg0KPiBTbyBo b3cgYWJvdXQgdGhpcyB3aXRoIG15IHR3ZWFrcywgbG9va3Mgb2s/DQoNCklzIHRoYXQganVzdC9t YWlubHkgdGhlIGNoYW5nZSB0byBhc3N1bWUgdGhhdCBrbWFsbG9jX3NsYWIoKSBkb2Vzbid0IGZh aWw/DQpZb3UgY2FuIGFsc28gcmVtb3ZlICdjJy4NCglyZXR1cm4ga21hbGxvY19zbGFiKHNpemUs IEdGUF9LRVJORUwsIDApLT5vYmplY3Rfc2l6ZTsNCmlzbid0IHRvbyBsb25nLg0KDQpJIGFsc28g ZGlkIGEgZ3JlcCBmb3IgY2FsbGVycy4NCk5vdGhpbmcgaW4gZWFybHkgY29kZSwgSUlSQyBtYWlu bHkgJ25ldCcuDQoNCglEYXZpZA0KDQo+IEknbGwgcHV0IGl0IGluIC1uZXh0IGFuZA0KPiBzZW5k IHdpdGggYW5vdGhlciBob3RmaXggdG8gNi42IG5leHQgd2Vlay4NCj4gLS0tLTg8LS0tLQ0KPiBG cm9tIGY1ZGUxZWU3YjM1ZDdhYjM1YzIxYzc5ZGQxM2NlYTQ5ZmJlMjM5YjcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxDQo+IEZyb206IERhdmlkIExhaWdodCA8ZGF2aWQubGFpZ2h0QGFjdWxhYi5j b20+DQo+IERhdGU6IFRodSwgNyBTZXAgMjAyMyAxMjo0MjoyMCArMDAwMA0KPiBTdWJqZWN0OiBb UEFUQ0hdIFN1YmplY3Q6IFtQQVRDSCB2Ml0gc2xhYjoga21hbGxvY19zaXplX3JvdW5kdXAoKSBt dXN0IG5vdA0KPiAgcmV0dXJuIDAgZm9yIG5vbi16ZXJvIHNpemUNCj4gDQo+IFRoZSB0eXBpY2Fs IHVzZSBvZiBrbWFsbG9jX3NpemVfcm91bmR1cCgpIGlzOg0KPiANCj4gCXB0ciA9IGttYWxsb2Mo c3ogPSBrbWFsbG9jX3NpemVfcm91bmR1cChzaXplKSwgLi4uKTsNCj4gCWlmICghcHRyKSByZXR1 cm4gLUVOT01FTS4NCj4gDQo+IFRoaXMgbWVhbnMgaXQgaXMgdml0YWxseSBpbXBvcnRhbnQgdGhh dCB0aGUgcmV0dXJuZWQgdmFsdWUgaXNuJ3QgbGVzcw0KPiB0aGFuIHRoZSBhcmd1bWVudCBldmVu IGlmIHRoZSBhcmd1bWVudCBpcyBpbnNhbmUuDQo+IEluIHBhcnRpY3VsYXIgaWYga21hbGxvY19z bGFiKCkgZmFpbHMgb3IgdGhlIHZhbHVlIGlzIGFib3ZlDQo+IChNQVhfVUxPTkcgLSBQQUdFX1NJ WkUpIHplcm8gaXMgcmV0dXJuZWQgYW5kIGttYWxsb2MoKSB3aWxsIHJldHVybg0KPiBpdHMgc2lu Z2xlIHplcm8tbGVuZ3RoIGJ1ZmZlciBaRVJPX1NJWkVfUFRSLg0KPiANCj4gRml4IHRoaXMgYnkg cmV0dXJuaW5nIHRoZSBpbnB1dCBzaXplIGlmIHRoZSBzaXplIGV4Y2VlZHMNCj4gS01BTExPQ19N QVhfU0laRS4ga21hbGxvYygpIHdpbGwgdGhlbiByZXR1cm4gTlVMTCBhcyB0aGUgc2l6ZSByZWFs bHkgaXMNCj4gdG9vIGJpZy4NCj4gDQo+IGttYWxsb2Nfc2xhYigpIHNob3VsZCBub3Qgbm9ybWFs bHkgcmV0dXJuIE5VTEwsIHVubGVzcyBjYWxsZWQgdG9vIGVhcmx5Lg0KPiBBZ2FpbiwgcmV0dXJu aW5nIHplcm8gaXMgbm90IHRoZSBjb3JyZWN0IGFjdGlvbiBhcyBpdCBjYW4gYmUgaW4gc29tZQ0K PiB1c2FnZSBzY2VuYXJpb3Mgc3RvcmVkIHRvIGEgdmFyaWFibGUgYW5kIG9ubHkgbGF0ZXIgY2F1 c2Uga21hbGxvYygpDQo+IHJldHVybiBaRVJPX1NJWkVfUFRSIGFuZCBzdWJzZXF1ZW50IGNyYXNo ZXMgb24gYWNjZXNzLiBJbnN0ZWFkIHdlIGNhbg0KPiBzaW1wbHkgc3RvcCBjaGVja2luZyB0aGUg a21hbGxvY19zbGFiKCkgcmVzdWx0IGNvbXBsZXRlbHksIGFzIGNhbGxpbmcNCj4ga21hbGxvY19z aXplX3JvdW5kdXAoKSB0b28gZWFybHkgd291bGQgdGhlbiByZXN1bHQgaW4gYW4gaW1tZWRpYXRl IGNyYXNoDQo+IGR1cmluZyBib290IGFuZCB0aGUgZGV2ZWxvcGVyIG5vdGljaW5nIGFuIGlzc3Vl IGluIHRoZWlyIGNvZGUuDQo+IA0KPiBbdmJhYmthQHN1c2UuY3o6IHJlbW92ZSBrbWFsbG9jX3Ns YWIoKSByZXN1bHQgY2hlY2ssIHR3ZWFrIGNvbW1lbnRzIGFuZA0KPiAgY29tbWl0IGxvZ10NCj4g U2lnbmVkLW9mZi1ieTogRGF2aWQgTGFpZ2h0IDxkYXZpZC5sYWlnaHRAYWN1bGFiLmNvbT4NCj4g Rml4ZXM6IDA1YTk0MDY1NmUxZSAoInNsYWI6IEludHJvZHVjZSBrbWFsbG9jX3NpemVfcm91bmR1 cCgpIikNCj4gU2lnbmVkLW9mZi1ieTogVmxhc3RpbWlsIEJhYmthIDx2YmFia2FAc3VzZS5jej4N Cj4gLS0tDQo+ICBtbS9zbGFiX2NvbW1vbi5jIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0t LQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0K PiANCj4gZGlmZiAtLWdpdCBhL21tL3NsYWJfY29tbW9uLmMgYi9tbS9zbGFiX2NvbW1vbi5jDQo+ IGluZGV4IGU5OWU4MjEwNjVjMy4uMWRjMTA4MjI0YmQxIDEwMDY0NA0KPiAtLS0gYS9tbS9zbGFi X2NvbW1vbi5jDQo+ICsrKyBiL21tL3NsYWJfY29tbW9uLmMNCj4gQEAgLTc0NywyMiArNzQ3LDI1 IEBAIHNpemVfdCBrbWFsbG9jX3NpemVfcm91bmR1cChzaXplX3Qgc2l6ZSkNCj4gIHsNCj4gIAlz dHJ1Y3Qga21lbV9jYWNoZSAqYzsNCj4gDQo+IC0JLyogU2hvcnQtY2lyY3VpdCB0aGUgMCBzaXpl IGNhc2UuICovDQo+IC0JaWYgKHVubGlrZWx5KHNpemUgPT0gMCkpDQo+IC0JCXJldHVybiAwOw0K PiAtCS8qIFNob3J0LWNpcmN1aXQgc2F0dXJhdGVkICJ0b28tbGFyZ2UiIGNhc2UuICovDQo+IC0J aWYgKHVubGlrZWx5KHNpemUgPT0gU0laRV9NQVgpKQ0KPiAtCQlyZXR1cm4gU0laRV9NQVg7DQo+ ICsJaWYgKHNpemUgJiYgc2l6ZSA8PSBLTUFMTE9DX01BWF9DQUNIRV9TSVpFKSB7DQo+ICsJCS8q DQo+ICsJCSAqIFRoZSBmbGFncyBkb24ndCBtYXR0ZXIgc2luY2Ugc2l6ZV9pbmRleCBpcyBjb21t b24gdG8gYWxsLg0KPiArCQkgKiBOZWl0aGVyIGRvZXMgdGhlIGNhbGxlciBmb3IganVzdCBnZXR0 aW5nIC0+b2JqZWN0X3NpemUuDQo+ICsJCSAqLw0KPiArCQljID0ga21hbGxvY19zbGFiKHNpemUs IEdGUF9LRVJORUwsIDApOw0KPiArCQlyZXR1cm4gYy0+b2JqZWN0X3NpemU7DQo+ICsJfQ0KPiAr DQo+ICAJLyogQWJvdmUgdGhlIHNtYWxsZXIgYnVja2V0cywgc2l6ZSBpcyBhIG11bHRpcGxlIG9m IHBhZ2Ugc2l6ZS4gKi8NCj4gLQlpZiAoc2l6ZSA+IEtNQUxMT0NfTUFYX0NBQ0hFX1NJWkUpDQo+ ICsJaWYgKHNpemUgJiYgc2l6ZSA8PSBLTUFMTE9DX01BWF9TSVpFKQ0KPiAgCQlyZXR1cm4gUEFH RV9TSVpFIDw8IGdldF9vcmRlcihzaXplKTsNCj4gDQo+ICAJLyoNCj4gLQkgKiBUaGUgZmxhZ3Mg ZG9uJ3QgbWF0dGVyIHNpbmNlIHNpemVfaW5kZXggaXMgY29tbW9uIHRvIGFsbC4NCj4gLQkgKiBO ZWl0aGVyIGRvZXMgdGhlIGNhbGxlciBmb3IganVzdCBnZXR0aW5nIC0+b2JqZWN0X3NpemUuDQo+ ICsJICogUmV0dXJuICdzaXplJyBmb3IgMCAtIGttYWxsb2MoKSByZXR1cm5zIFpFUk9fU0laRV9Q VFINCj4gKwkgKiBhbmQgdmVyeSBsYXJnZSBzaXplIC0ga21hbGxvYygpIG1heSBmYWlsLg0KPiAg CSAqLw0KPiAtCWMgPSBrbWFsbG9jX3NsYWIoc2l6ZSwgR0ZQX0tFUk5FTCwgMCk7DQo+IC0JcmV0 dXJuIGMgPyBjLT5vYmplY3Rfc2l6ZSA6IDA7DQo+ICsJcmV0dXJuIHNpemU7DQo+ICsNCj4gIH0N Cj4gIEVYUE9SVF9TWU1CT0woa21hbGxvY19zaXplX3JvdW5kdXApOw0KPiANCj4gLS0NCj4gMi40 Mi4wDQo+IA0KPiANCg0KLQ0KUmVnaXN0ZXJlZCBBZGRyZXNzIExha2VzaWRlLCBCcmFtbGV5IFJv YWQsIE1vdW50IEZhcm0sIE1pbHRvbiBLZXluZXMsIE1LMSAxUFQsIFVLDQpSZWdpc3RyYXRpb24g Tm86IDEzOTczODYgKFdhbGVzKQ0K