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.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,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 73161C433E0 for ; Thu, 11 Mar 2021 04:31:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 D99E564F9E for ; Thu, 11 Mar 2021 04:31:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D99E564F9E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hnCz7aY8ybj/aQQUG9LE6DDkOQHtxcCdbhsGZWmb9Ps=; b=mYA8keGKkuiQM7WD/kQydDtcT QJ/mHTomWw5+IQzRs+NlfK4Nuzm7JyA9ippKRIVW1/Tq3VeF9T/L4Z67JLRDrzj61tM18YWbBJelN N6RRWdrOvfxCZUMvD3467ZFv7SjrNWK4k8YEWNXhXNS6dAXQ8dEK4oE2lpR2Do6V2ZSZ6pflW/GoO 9PbKTvHVvo8ATNUYph91o4dSte+eo2v5vsvYz8s6ASvp49KrO4S0kC3ddwBhaU/xJESRt4a/eHvF9 CTYLNbqXaVOIwMiMJ5k24fXTs6xg6E3PBTZU+nrn6dRb78QZVMxgq1QjQBxH3MuF2hjZ4buApWtKc RMcbIq/ng==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lKCwz-008LTU-GG; Thu, 11 Mar 2021 04:29:29 +0000 Received: from foss.arm.com ([217.140.110.172]) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lKCwu-008LTB-MO for linux-arm-kernel@lists.infradead.org; Thu, 11 Mar 2021 04:29:27 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 08B5631B; Wed, 10 Mar 2021 20:29:16 -0800 (PST) Received: from [10.163.66.3] (unknown [10.163.66.3]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C9CDD3F793; Wed, 10 Mar 2021 20:29:12 -0800 (PST) Subject: Re: [RFC] mm: Enable generic pfn_valid() to handle early sections with memmap holes To: David Hildenbrand , linux-mm@kvack.org Cc: Russell King , Catalin Marinas , Will Deacon , Andrew Morton , Mike Rapoport , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <1615174073-10520-1-git-send-email-anshuman.khandual@arm.com> <745496f5-e099-8780-e42e-f347b55e8476@redhat.com> From: Anshuman Khandual Message-ID: <72902ace-5f00-b484-aa71-e6841fb7d082@arm.com> Date: Thu, 11 Mar 2021 09:59:49 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <745496f5-e099-8780-e42e-f347b55e8476@redhat.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210311_042925_133107_3ED600C4 X-CRM114-Status: GOOD ( 37.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAzLzgvMjEgMjowNyBQTSwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4gT24gMDguMDMu MjEgMDQ6MjcsIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+PiBQbGF0Zm9ybXMgbGlrZSBhcm0g YW5kIGFybTY0IGhhdmUgcmVkZWZpbmVkIHBmbl92YWxpZCgpIGJlY2F1c2UgdGhlaXIgZWFybHkK Pj4gbWVtb3J5IHNlY3Rpb25zIG1pZ2h0IGhhdmUgY29udGFpbmVkIG1lbW1hcCBob2xlcyBjYXVz ZWQgYnkgbWVtYmxvY2sgYXJlYXMKPj4gdGFnZ2VkIHdpdGggTUVNQkxPQ0tfTk9NQVAsIHdoaWNo IHNob3VsZCBiZSBza2lwcGVkIHdoaWxlIHZhbGlkYXRpbmcgYSBwZm4KPj4gZm9yIHN0cnVjdCBw YWdlIGJhY2tpbmcuIFRoaXMgc2NlbmFyaW8gY291bGQgYmUgY2FwdHVyZWQgd2l0aCBhIG5ldyBv cHRpb24KPj4gQ09ORklHX0hBVkVfRUFSTFlfU0VDVElPTl9NRU1NQVBfSE9MRVMgYW5kIHRoZW4g Z2VuZXJpYyBwZm5fdmFsaWQoKSBjYW4gYmUKPj4gaW1wcm92ZWQgdG8gYWNjb21tb2RhdGUgc3Vj aCBwbGF0Zm9ybXMuIFRoaXMgcmVkdWNlcyBvdmVyYWxsIGNvZGUgZm9vdHByaW50Cj4+IGFuZCBh bHNvIGltcHJvdmVzIG1haW50YWluYWJpbGl0eS4KPj4KPj4gQ29tbWl0IDRmNWIwYzE3ODk5NiAo ImFybSwgYXJtNjQ6IG1vdmUgZnJlZV91bnVzZWRfbWVtbWFwKCkgdG8gZ2VuZXJpYyBtbSIpCj4+ IGhhZCB1c2VkIENPTkZJR19IQVZFX0FSQ0hfUEZOX1ZBTElEIHRvIGdhdGUgZnJlZV91bnVzZWRf bWVtbWFwKCksIHdoaWNoIGluCj4+IHR1cm4gaGFkIGV4cGFuZGVkIGl0cyBzY29wZSB0byBuZXcg cGxhdGZvcm1zIGxpa2UgYXJjIGFuZCBtNjhrLiBSYXRoZXIgbGV0cwo+PiByZXN0cmljdCBiYWNr IHRoZSBzY29wZSBmb3IgZnJlZV91bnVzZWRfbWVtbWFwKCkgdG8gYXJtIGFuZCBhcm02NCBwbGF0 Zm9ybXMKPj4gdXNpbmcgdGhpcyBuZXcgY29uZmlnIG9wdGlvbiBpLmUgQ09ORklHX0hBVkVfRUFS TFlfU0VDVElPTl9NRU1NQVAuCj4+Cj4+IFdoaWxlIGhlcmUsIGl0IGV4cG9ydHMgdGhlIHN5bWJv bCBtZW1ibG9ja19pc19tYXBfbWVtb3J5KCkgdG8gYnVpbGQgZHJpdmVycwo+PiB0aGF0IGRlcGVu ZCBvbiBwZm5fdmFsaWQoKSBidXQgZG9lcyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgdmlzaWJpbGl0 eS4gQWZ0ZXIKPj4gdGhpcyBuZXcgY29uZmlnIGlzIGluIHBsYWNlLCBqdXN0IGRyb3AgQ09ORklH X0hBVkVfQVJDSF9QRk5fVkFMSUQgZnJvbSBib3RoCj4+IGFybSBhbmQgYXJtNjQgcGxhdGZvcm1z Lgo+Pgo+PiBDYzogUnVzc2VsbCBLaW5nIDxsaW51eEBhcm1saW51eC5vcmcudWs+Cj4+IENjOiBD YXRhbGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPgo+PiBDYzogV2lsbCBEZWFj b24gPHdpbGxAa2VybmVsLm9yZz4KPj4gQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91 bmRhdGlvbi5vcmc+Cj4+IENjOiBNaWtlIFJhcG9wb3J0IDxycHB0QGtlcm5lbC5vcmc+Cj4+IENj OiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT4KPj4gQ2M6IGxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVs Lm9yZwo+PiBDYzogbGludXgtbW1Aa3ZhY2sub3JnCj4+IFN1Z2dlc3RlZC1ieTogRGF2aWQgSGls ZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEto YW5kdWFsIDxhbnNodW1hbi5raGFuZHVhbEBhcm0uY29tPgo+PiAtLS0KPj4gVGhpcyBhcHBsaWVz IG9uIDUuMTItcmMyIGFsb25nIHdpdGggYXJtNjQgcGZuX3ZhbGlkKCkgZml4IHBhdGNoZXMgWzFd IGFuZAo+PiBoYXMgYmVlbiBsaWdodGx5IHRlc3RlZCBvbiB0aGUgYXJtNjQgcGxhdGZvcm0uIFRo ZSBpZGVhIHRvIHJlcHJlc2VudCB0aGlzCj4+IHVuaXF1ZSBzaXR1YXRpb24gb24gdGhlIGFybSBh bmQgYXJtNjQgcGxhdGZvcm1zIHdpdGggYSBjb25maWcgb3B0aW9uIHdhcwo+PiBwcm9wb3NlZCBi eSBEYXZpZCBIIGR1cmluZyBhbiBlYXJsaWVyIGRpc2N1c3Npb24gWzJdLiBUaGlzIHN0aWxsIGRv ZXMgbm90Cj4+IGJ1aWxkIG9uIGFybSBwbGF0Zm9ybSBkdWUgdG8gcGZuX3ZhbGlkKCkgcmVzb2x1 dGlvbiBlcnJvcnMuIE5vbmV0aGVsZXNzCj4+IHdhbnRlZCB0byBnZXQgc29tZSBlYXJseSBmZWVk YmFjayB3aGV0aGVyIHRoZSBvdmVyYWxsIGFwcHJvYWNoIGhlcmUsIGlzCj4+IGFjY2VwdGFibGUg b3Igbm90Lgo+IAo+IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8ga2VlcCB0aGUgYXJtIHZhcmlhbnQg Zm9yIG5vdy4gVGhlIGFybTY0IHZhcmlhbnQgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMgYW5k IHdoZXJlIHdlIG1pc3NlZCB1cGRhdGVzIHdoZW4gd29ya2luZyBvbiB0aGUgZ2VuZXJpYyB2YXJp YW50LgoKU3VyZSwgd2lsbCBkcm9wIHRoZSBjaGFuZ2VzIG9uIGFybS4KCj4gCj4gVGhlIGdlbmVy aWMgdmFyaWFudCByZWFsbHkgb25seSBhcHBsaWVzIHRvIDY0Yml0IHRhcmdldHMgd2hlcmUgd2Ug aGF2ZSBTUEFSU0VNRU0uIFNlZSB4ODYgYXMgYW4gZXhhbXBsZS4KCk9rYXkuCgo+IAo+IFsuLi5d Cj4gCj4+IMKgIC8qCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5j bHVkZS9saW51eC9tbXpvbmUuaAo+PiBpbmRleCA0Nzk0NmNlYzc1ODQuLjkzNTMyOTk0MTEzZiAx MDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9tbXpvbmUuaAo+PiArKysgYi9pbmNsdWRlL2xp bnV4L21tem9uZS5oCj4+IEBAIC0xNDA5LDggKzE0MDksMjMgQEAgc3RhdGljIGlubGluZSBpbnQg cGZuX3NlY3Rpb25fdmFsaWQoc3RydWN0IG1lbV9zZWN0aW9uICptcywgdW5zaWduZWQgbG9uZyBw Zm4pCj4+IMKgIH0KPj4gwqAgI2VuZGlmCj4+IMKgICtib29sIG1lbWJsb2NrX2lzX21hcF9tZW1v cnkocGh5c19hZGRyX3QgYWRkcik7Cj4+ICsKPj4gwqAgI2lmbmRlZiBDT05GSUdfSEFWRV9BUkNI X1BGTl9WQUxJRAo+PiDCoCBzdGF0aWMgaW5saW5lIGludCBwZm5fdmFsaWQodW5zaWduZWQgbG9u ZyBwZm4pCj4+ICt7Cj4+ICvCoMKgwqAgcGh5c19hZGRyX3QgYWRkciA9IFBGTl9QSFlTKHBmbik7 Cj4+ICsKPj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBFbnN1cmUgdGhlIHVwcGVyIFBBR0Vf U0hJRlQgYml0cyBhcmUgY2xlYXIgaW4gdGhlCj4+ICvCoMKgwqDCoCAqIHBmbi4gRWxzZSBpdCBt aWdodCBsZWFkIHRvIGZhbHNlIHBvc2l0aXZlcyB3aGVuCj4+ICvCoMKgwqDCoCAqIHNvbWUgb2Yg dGhlIHVwcGVyIGJpdHMgYXJlIHNldCwgYnV0IHRoZSBsb3dlciBiaXRzCj4+ICvCoMKgwqDCoCAq IG1hdGNoIGEgdmFsaWQgcGZuLgo+PiArwqDCoMKgwqAgKi8KPj4gK8KgwqDCoCBpZiAoUEhZU19Q Rk4oYWRkcikgIT0gcGZuKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gCj4gSSB0aGlu ayB0aGlzIHNob3VsZCBiZSBmaW5lIGZvciBvdGhlciBhcmNocyBhcyB3ZWxsLgo+IAo+PiArCj4+ ICsjaWZkZWYgQ09ORklHX1NQQVJTRU1FTQo+IAo+IFdoeSBkbyB3ZSBuZWVkIHRoZSBpZmRlZiBu b3c/IElmIHRoYXQncyB0byBjb3ZlciB0aGUgYXJtIGNhc2UsIHRoZW4gcGxlYXNlIGNvbnNpZGVy IHRoZSBhcm02NCBjYXNlIG9ubHkgZm9yIG5vdy4KClllcywgaXQgaXMgbm90IG5lZWRlZC4KCj4g Cj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgbWVtX3NlY3Rpb24gKm1zOwo+PiDCoCBAQCAt MTQyMyw3ICsxNDM4LDE0IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBmbl92YWxpZCh1bnNpZ25lZCBs b25nIHBmbikKPj4gwqDCoMKgwqDCoMKgICogVHJhZGl0aW9uYWxseSBlYXJseSBzZWN0aW9ucyBh bHdheXMgcmV0dXJuZWQgcGZuX3ZhbGlkKCkgZm9yCj4+IMKgwqDCoMKgwqDCoCAqIHRoZSBlbnRp cmUgc2VjdGlvbi1zaXplZCBzcGFuLgo+PiDCoMKgwqDCoMKgwqAgKi8KPj4gLcKgwqDCoCByZXR1 cm4gZWFybHlfc2VjdGlvbihtcykgfHwgcGZuX3NlY3Rpb25fdmFsaWQobXMsIHBmbik7Cj4+ICvC oMKgwqAgaWYgKGVhcmx5X3NlY3Rpb24obXMpKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIElT X0VOQUJMRUQoQ09ORklHX0hBVkVfRUFSTFlfU0VDVElPTl9NRU1NQVBfSE9MRVMpID8KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbWVtYmxvY2tfaXNfbWFwX21lbW9yeShwZm4gPDwgUEFHRV9T SElGVCkgOiAxOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIHBmbl9zZWN0aW9uX3ZhbGlkKG1zLCBw Zm4pOwo+PiArfQo+PiArI2VuZGlmCj4+ICvCoMKgwqAgcmV0dXJuIDE7Cj4+IMKgIH0KPj4gwqAg I2VuZGlmCj4+IMKgIGRpZmYgLS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwo+PiBpbmRl eCAyNGMwNDViMjRiOTUuLjBlYzIwZjY2MWIzZiAxMDA2NDQKPj4gLS0tIGEvbW0vS2NvbmZpZwo+ PiArKysgYi9tbS9LY29uZmlnCj4+IEBAIC0xMzUsNiArMTM1LDE2IEBAIGNvbmZpZyBIQVZFX0ZB U1RfR1VQCj4+IMKgIGNvbmZpZyBBUkNIX0tFRVBfTUVNQkxPQ0sKPj4gwqDCoMKgwqDCoCBib29s Cj4+IMKgICtjb25maWcgSEFWRV9FQVJMWV9TRUNUSU9OX01FTU1BUF9IT0xFUwo+PiArwqDCoMKg IGRlcGVuZHMgb24gQVJDSF9LRUVQX01FTUJMT0NLICYmIFNQQVJTRU1FTV9WTUVNTUFQCj4+ICvC oMKgwqAgZGVmX2Jvb2wgbgo+PiArwqDCoMKgIGhlbHAKPj4gK8KgwqDCoMKgwqAgRWFybHkgc2Vj dGlvbnMgb24gY2VydGFpbiBwbGF0Zm9ybXMgbWlnaHQgaGF2ZSBwb3J0aW9ucyB3aGljaCBhcmUK Pj4gK8KgwqDCoMKgwqAgbm90IGJhY2tlZCB3aXRoIHN0cnVjdCBwYWdlIG1hcHBpbmcgYXMgdGhl aXIgbWVtYmxvY2sgZW50cmllcyBhcmUKPj4gK8KgwqDCoMKgwqAgbWFya2VkIHdpdGggTUVNQkxP Q0tfTk9NQVAuIFdoZW4gc3Vic2NyaWJlZCwgdGhpcyBvcHRpb24gZW5hYmxlcwo+PiArwqDCoMKg wqDCoCBzcGVjaWZpYyBoYW5kbGluZyBmb3IgdGhvc2UgbWVtb3J5IHNlY3Rpb25zIGluIGNlcnRh aW4gc2l0dWF0aW9ucwo+PiArwqDCoMKgwqDCoCBzdWNoIGFzIHBmbl92YWxpZCgpLgo+PiArCj4+ IMKgICMgS2VlcCBhcmNoIE5VTUEgbWFwcGluZyBpbmZyYXN0cnVjdHVyZSBwb3N0LWluaXQuCj4+ IMKgIGNvbmZpZyBOVU1BX0tFRVBfTUVNSU5GTwo+PiDCoMKgwqDCoMKgIGJvb2wKPj4gZGlmZiAt LWdpdCBhL21tL21lbWJsb2NrLmMgYi9tbS9tZW1ibG9jay5jCj4+IGluZGV4IGFmYWVmYThmYzZh Yi4uZDlmYTJlNjJhYjdhIDEwMDY0NAo+PiAtLS0gYS9tbS9tZW1ibG9jay5jCj4+ICsrKyBiL21t L21lbWJsb2NrLmMKPj4gQEAgLTE3NDQsNiArMTc0NCw3IEBAIGJvb2wgX19pbml0X21lbWJsb2Nr IG1lbWJsb2NrX2lzX21hcF9tZW1vcnkocGh5c19hZGRyX3QgYWRkcikKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybiBmYWxzZTsKPj4gwqDCoMKgwqDCoCByZXR1cm4gIW1lbWJsb2NrX2lzX25v bWFwKCZtZW1ibG9jay5tZW1vcnkucmVnaW9uc1tpXSk7Cj4+IMKgIH0KPj4gK0VYUE9SVF9TWU1C T0wobWVtYmxvY2tfaXNfbWFwX21lbW9yeSk7Cj4+IMKgIMKgIGludCBfX2luaXRfbWVtYmxvY2sg bWVtYmxvY2tfc2VhcmNoX3Bmbl9uaWQodW5zaWduZWQgbG9uZyBwZm4sCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyAqc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25n ICplbmRfcGZuKQo+PiBAQCAtMTkyNiw3ICsxOTI3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGZy ZWVfdW51c2VkX21lbW1hcCh2b2lkKQo+PiDCoMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgc3RhcnQs IGVuZCwgcHJldl9lbmQgPSAwOwo+PiDCoMKgwqDCoMKgIGludCBpOwo+PiDCoCAtwqDCoMKgIGlm ICghSVNfRU5BQkxFRChDT05GSUdfSEFWRV9BUkNIX1BGTl9WQUxJRCkgfHwKPj4gK8KgwqDCoCBp ZiAoIUlTX0VOQUJMRUQoQ09ORklHX0hBVkVfRUFSTFlfU0VDVElPTl9NRU1NQVBfSE9MRVMpIHx8 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBJU19FTkFCTEVEKENPTkZJR19TUEFSU0VNRU1fVk1FTU1B UCkpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+IMKgCj4gCj4gV2l0aAo+IAo+IGNv bW1pdCAxZjkwYTM0NzdkZjNmZjFhOTFlMDY0YWY1NTRjZGM4ODdjOGY5ZTVlCj4gQXV0aG9yOiBE YW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiBEYXRlOsKgwqAgVGh1IEZl YiAyNSAxNzoxNzowNSAyMDIxIC0wODAwCj4gCj4gwqDCoMKgIG1tOiB0ZWFjaCBwZm5fdG9fb25s aW5lX3BhZ2UoKSBhYm91dCBaT05FX0RFVklDRSBzZWN0aW9uIGNvbGxpc2lvbnMKPiAKPiAoc3Rp bGwgaW4gLW5leHQgSSB0aGluaykKCkFscmVhZHkgaGFzIG1lcmdlZCBtYWlubGluZS4KCj4gCj4g WW91J2xsIGFsc28gaGF2ZSB0byB0YWtlIGNhcmUgb2YgcGZuX3RvX29ubGluZV9wYWdlKCkuCj4g CgpTb21ldGhpbmcgbGlrZSB0aGlzIHdvdWxkIHdvcmsgPwoKZGlmZiAtLWdpdCBhL21tL21lbW9y eV9ob3RwbHVnLmMgYi9tbS9tZW1vcnlfaG90cGx1Zy5jCmluZGV4IDViYTUxYThiZGFlYi4uMTk4 MTJkZWI4MDdmIDEwMDY0NAotLS0gYS9tbS9tZW1vcnlfaG90cGx1Zy5jCisrKyBiL21tL21lbW9y eV9ob3RwbHVnLmMKQEAgLTMwOSw2ICszMDksMTEgQEAgc3RydWN0IHBhZ2UgKnBmbl90b19vbmxp bmVfcGFnZSh1bnNpZ25lZCBsb25nIHBmbikKICAgICAgICAgKiBTYXZlIHNvbWUgY29kZSB0ZXh0 IHdoZW4gb25saW5lX3NlY3Rpb24oKSArCiAgICAgICAgICogcGZuX3NlY3Rpb25fdmFsaWQoKSBh cmUgc3VmZmljaWVudC4KICAgICAgICAgKi8KKyAgICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdf SEFWRV9FQVJMWV9TRUNUSU9OX01FTU1BUF9IT0xFUykpIHsKKyAgICAgICAgICAgICAgIGlmIChl YXJseV9zZWN0aW9uKG1zKSAmJiAhbWVtYmxvY2tfaXNfbWFwX21lbW9yeShQRk5fUEhZUyhwZm4p KSkKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgfQorCiAgICAg ICAgaWYgKElTX0VOQUJMRUQoQ09ORklHX0hBVkVfQVJDSF9QRk5fVkFMSUQpICYmICFwZm5fdmFs aWQocGZuKSkKICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=