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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 03FA0C47DD9 for ; Wed, 27 Mar 2024 09:29:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZaidyFh0wrqsGRvJ2myn3/NC6hDzKnKyaiyhD3HkqvU=; b=KFStLftYd4kNLV cmSqHGm37vq8jIFNSG0Se7Y0NnYEbLslfRh/YqHeufGlBPUHjjJDHFE6IIiLfIaHfm19koV+xKmvi POUncPjawCVVFeCV3eNu4eJ3pv1DnSfwdzp8ddYoditxubiWhY0Mm/gODeRSvt+kRONDr8Vb245aH moQrsq9R8vuwEoCaXS+0lQvvYJkF1envRasLL1zY7JnoDWTOo0oGFKwHwvMbWvbRShN654hPBHYWw PN9riZpqo2A7e0yhIumK/vK5vDezHyVwyQrh+gp1N403cLiDY7+aw0018BupDJs4cwsDXEGWzKqy9 ZcxIZXF5HE7uw1dbrBiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpPag-00000008ERq-0BGY; Wed, 27 Mar 2024 09:29:02 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpPad-00000008ERF-2koG for linux-arm-kernel@lists.infradead.org; Wed, 27 Mar 2024 09:29:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1711531737; h=from:from: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:autocrypt:autocrypt; bh=gwT5H6Iy2GGVhSZ2cEg2hRcUL9ThVqPhdTmqclD7WrY=; b=GZH8TjSavmReAJCx9O2oCitUE5aLFK9YwuFTPPBKq1mxRtXj8hFjYQ1IHYiyMzvpQxoOp5 6gOQPeCv6uNW4IYmk4JEpGFTeMx5TurcD++HDCrf17uqbeO3LFyglo06XoYBFC5A79fSo+ lNpyzsk67l/vh/6RfmzMfPqOhCF/6Ic= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-214-zfLptx2zNF2MyzCQ6kmrbg-1; Wed, 27 Mar 2024 05:28:55 -0400 X-MC-Unique: zfLptx2zNF2MyzCQ6kmrbg-1 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-34172041676so321998f8f.1 for ; Wed, 27 Mar 2024 02:28:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711531734; x=1712136534; h=content-transfer-encoding:in-reply-to:organization:autocrypt:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gwT5H6Iy2GGVhSZ2cEg2hRcUL9ThVqPhdTmqclD7WrY=; b=XWtJHpPwDtzxitgHP9lKWs4J/xRjePXTu2eE9MXicV29OK8xVQxtuzMsE4/lvzY+jz x1Rpvu8JrciCLNBvTs2uA5q8aSzvLI3xEP8AaHB2uVrFuW00oZ+17ShbWxC1MM3vt8s5 sNEGv3ZJRG3pBpNcr1r6xNfwSmbHQaNqGOABfhctDRC8ecs1OQgK73eIWOwHwOsmlTX3 E0DDeZwqwTJiTgSIUwvAJVpl0E3ms9WPtPf2qu1EbiKgu9c79LZEfNprWg6KZOTBt+mu J8GKLoSnhz72mnZlOirk7AT+Ga+cc6Ldikz3WsygpBTJl5o4TzVHa2kc9J/HPRjBpMz9 ZzXg== X-Gm-Message-State: AOJu0YwUwej5xzqLGSqDAZCMYtgA+lG1Xy/5huteW5j//3ODmTdOX1t3 1wYxgMpMQ1Dvt6BuJRda7zADDqzbXB+xeX/p3938BCEWG/SGKy8R+HvIg6GG5BC0X6xrV0oithx f/w1b47R9DJpdFJWudNcApOjoYsmMzv/dfgHnPKMqUnjIRpYqODBywWTVDO4EACD+NhQU80nzqj wK2BRv X-Received: by 2002:a5d:5229:0:b0:33e:9f3d:6910 with SMTP id i9-20020a5d5229000000b0033e9f3d6910mr3298897wra.31.1711531734531; Wed, 27 Mar 2024 02:28:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGEtIgRDxJJaHt06U7iL+3IecuV8hZtAK1wqDvb64JK30/XFGbqUAIwrmuV6dHoGyb50Getg== X-Received: by 2002:a5d:5229:0:b0:33e:9f3d:6910 with SMTP id i9-20020a5d5229000000b0033e9f3d6910mr3298863wra.31.1711531734031; Wed, 27 Mar 2024 02:28:54 -0700 (PDT) Received: from ?IPV6:2003:cb:c708:8a00:362b:7e34:a3bc:9ddf? (p200300cbc7088a00362b7e34a3bc9ddf.dip0.t-ipconnect.de. [2003:cb:c708:8a00:362b:7e34:a3bc:9ddf]) by smtp.gmail.com with ESMTPSA id t15-20020a5d690f000000b0033e95bf4796sm14337193wru.27.2024.03.27.02.28.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 27 Mar 2024 02:28:53 -0700 (PDT) Message-ID: <6777213f-6273-4942-86be-e712ee5ebd1a@redhat.com> Date: Wed, 27 Mar 2024 10:28:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v1 1/4] mm: Introduce ptep_get_lockless_norecency() To: Ryan Roberts , Mark Rutland , Catalin Marinas , Will Deacon , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Andrew Morton , Muchun Song Cc: linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20240215121756.2734131-1-ryan.roberts@arm.com> <20240215121756.2734131-2-ryan.roberts@arm.com> <7aefa967-43aa-490b-ae0d-7d1455402e89@redhat.com> <5c8dbda1-5b89-4599-9bc2-f840e7bc6a74@arm.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: <5c8dbda1-5b89-4599-9bc2-f840e7bc6a74@arm.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240327_022859_908992_4686592F X-CRM114-Status: GOOD ( 31.45 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjYuMDMuMjQgMTc6MzksIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPiBPbiAyNi8wMy8yMDI0IDE2 OjI3LCBEYXZpZCBIaWxkZW5icmFuZCB3cm90ZToKPj4gT24gMTUuMDIuMjQgMTM6MTcsIFJ5YW4g Um9iZXJ0cyB3cm90ZToKPj4+IFdpdGggdGhlIGludHJvZHVjdGlvbiBvZiBjb250cHRlIG1hcHBp bmcgc3VwcG9ydCBmb3IgYXJtNjQsIHRoYXQKPj4+IGFyY2hpdGVjdHVyZSdzIGltcGxlbWVudGF0 aW9uIG9mIHB0ZXBfZ2V0X2xvY2tsZXNzKCkgaGFzIGJlY29tZSB2ZXJ5Cj4+PiBjb21wbGV4IGR1 ZSB0byB0aGUgbmVlZCB0byBnYXRoZXIgYWNjZXNzIGFuZCBkaXJ0eSBiaXRzIGZyb20gYWNyb3Nz IGFsbAo+Pj4gb2YgdGhlIHB0ZXMgaW4gdGhlIGNvbnRwdGUgYmxvY2suIFRoaXMgcmVxdWlyZXMg Y2FyZWZ1bCBpbXBsZW1lbnRhdGlvbgo+Pj4gdG8gZW5zdXJlIHRoZSByZXR1cm5lZCB2YWx1ZSBp cyBjb25zaXN0ZW50IChiZWNhdXNlIGl0cyBub3QgcG9zc2libGUgdG8KPj4+IHJlYWQgYWxsIHB0 ZXMgYXRvbWljYWxseSksIGJ1dCBldmVuIGluIHRoZSBjb21tb24gY2FzZSB3aGVuIHRoZXJlIGlz IG5vCj4+PiByYWNpbmcgbW9kaWZpY2F0aW9uLCB3ZSBoYXZlIHRvIHJlYWQgYWxsIHB0ZXMsIHdo aWNoIGdpdmVzIGFuIH5PKG5eMikKPj4+IGNvc3QgaWYgdGhlIGNvcmUtbW0gaXMgaXRlcmF0aW5n IG92ZXIgYSByYW5nZSwgYW5kIHBlcmZvcm1pbmcgYQo+Pj4gcHRlcF9nZXRfbG9ja2xlc3MoKSBv biBlYWNoIHB0ZS4KPj4+Cj4+PiBTb2x2ZSB0aGlzIGJ5IGludHJvZHVjaW5nIHB0ZXBfZ2V0X2xv Y2tsZXNzX25vcmVjZW5jeSgpLCB3aGljaCBkb2VzIG5vdAo+Pj4gbWFrZSBhbnkgZ3VhcmFudGVl cyBhYm91dCBhY2Nlc3MgYW5kIGRpcnR5IGJpdHMuIFRoZXJlZm9yZSBpdCBjYW4gc2ltcGx5Cj4+ PiByZWFkIHRoZSBzaW5nbGUgdGFyZ2V0IHB0ZS4KPj4+Cj4+PiBBdCB0aGUgc2FtZSB0aW1lLCBj b252ZXJ0IGFsbCBjYWxsIHNpdGVzIHRoYXQgcHJldmlvdXNseSB1c2VkCj4+PiBwdGVwX2dldF9s b2NrbGVzcygpIGJ1dCBkb24ndCBjYXJlIGFib3V0IGFjY2VzcyBhbmQgZGlydHkgc3RhdGUuCj4+ Pgo+Pgo+PiBJJ2QgcHJvYmFibHkgc3BsaXQgdGhhdCBwYXJ0IG9mZi4KPiAKPiBJIHRob3VnaHQg dGhlIGdlbmVyYWwgZ3VpZGFuY2Ugd2FzIHRvIGludHJvZHVjZSBuZXcgQVBJcyBpbiBzYW1lIHBh dGNoIHRoZXkgYXJlCj4gZmlyc3QgdXNlZCBpbj8gSWYgSSBzcGxpdCB0aGlzIG9mZiwgSSdsbCBo YXZlIG9uZSBwYXRjaCBmb3IgYSBuZXcgKHVudXNlZCkgQVBJLAo+IHRoZW4gYW5vdGhlciBmb3Ig dGhlIGZpcnN0IHVzZXJzLgoKSSBkb24ndCBrbm93IHdoYXQgZXhhY3QgZ3VpZGFuY2UgdGhlcmUg aXMsIGJ1dCBJIHRlbmQgdG8gbGVhdmUgIm5vbiAKdHJpdmlhbCBjaGFuZ2VzIiB0byBzZXBhcmF0 ZSBwYXRjaGVzLgoKU29tZSBvZiB0aGUgY2hhbmdlcyBoZXJlIGFyZSByYXRoZXIgdHJpdmlhbCAo bW0vaHVnZXRsYi5jKSwgYW5kIEkgYWdyZWUgCnRoYXQgd2UgY2FuIHBlcmZvcm0gdGhlbSBoZXJl LgoKQXQgbGVhc3QgdGhlICJ2bWYub3JpZ19wdGUiIGxvb2tlZCAibm9uLXRyaXZpYWwiIHRvIG1l LCB0aHVzIG15IGNvbW1lbnQuCgo+IAo+Pgo+Pj4gV2UgbWF5IHdhbnQgdG8gZG8gc29tZXRoaW5n IHNpbWlsYXIgZm9yIHB0ZXBfZ2V0KCkgKGkuZS4KPj4+IHB0ZXBfZ2V0X25vcmVjZW5jeSgpKSBp biBmdXR1cmU7IGl0IGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhlIGNvbnNpc3RlbmN5Cj4+PiBwcm9i bGVtIGJlY2F1c2UgdGhlIFBUTCBzZXJpYWxpemVzIGl0IHdpdGggYW55IG1vZGlmaWNhdGlvbnMs IGJ1dCBkb2VzCj4+PiBzdWZmZXIgdGhlIHNhbWUgTyhuXjIpIGNvc3QuCj4+Pgo+Pj4gU2lnbmVk LW9mZi1ieTogUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVydHNAYXJtLmNvbT4KPj4+IC0tLQo+Pj4g IMKgIGluY2x1ZGUvbGludXgvcGd0YWJsZS5oIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQo+Pj4gIMKgIGtlcm5lbC9ldmVudHMvY29yZS5jwqDCoMKgIHzCoCAyICst Cj4+PiAgwqAgbW0vaHVnZXRsYi5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+Pj4g IMKgIG1tL2todWdlcGFnZWQuY8KgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPj4+ICDCoCBtbS9t ZW1vcnkuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+Pj4gIMKgIG1tL3N3YXBf c3RhdGUuY8KgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPj4+ICDCoCBtbS9zd2FwZmlsZS5jwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPj4+ICDCoCA3IGZpbGVzIGNoYW5nZWQsIDQwIGlu c2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvcGd0YWJsZS5oIGIvaW5jbHVkZS9saW51eC9wZ3RhYmxlLmgKPj4+IGluZGV4IGEzNmNm NGUxMjRiMC4uOWRkNDBmZGJkODI1IDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9saW51eC9wZ3Rh YmxlLmgKPj4+ICsrKyBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+PiBAQCAtNTI4LDE2ICs1 MjgsNDcgQEAgc3RhdGljIGlubGluZSBwbWRfdCBwbWRwX2dldF9sb2NrbGVzcyhwbWRfdCAqcG1k cCkKPj4+ICDCoCAjZW5kaWYgLyogQ09ORklHX1BHVEFCTEVfTEVWRUxTID4gMiAqLwo+Pj4gIMKg ICNlbmRpZiAvKiBDT05GSUdfR1VQX0dFVF9QWFhfTE9XX0hJR0ggKi8KPj4+Cj4+PiAtLyoKPj4+ IC0gKiBXZSByZXF1aXJlIHRoYXQgdGhlIFBURSBjYW4gYmUgcmVhZCBhdG9taWNhbGx5Lgo+Pj4g LSAqLwo+Pj4gIMKgICNpZm5kZWYgcHRlcF9nZXRfbG9ja2xlc3MKPj4+ICsvKioKPj4+ICsgKiBw dGVwX2dldF9sb2NrbGVzcyAtIEdldCBhIHB0ZSB3aXRob3V0IGhvbGRpbmcgdGhlIHBhZ2UgdGFi bGUgbG9jay4gWW91bmcgYW5kCj4+PiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGRpcnR5IGJpdHMgYXJlIGd1YXJhbnRlZWQgdG8gYWNjdXJhdGVseSByZWZsZWN0 IHRoZSBzdGF0ZQo+Pj4gKyAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBvZiB0aGUgcHRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLgo+Pj4gKyAqIEBwdGVwOiBQYWdl IHRhYmxlIHBvaW50ZXIgZm9yIHB0ZSB0byBnZXQuCj4+PiArICoKPj4+ICsgKiBJZiB5b3VuZyBh bmQgZGlydHkgaW5mb3JtYXRpb24gaXMgbm90IHJlcXVpcmVkLCB1c2UKPj4+ICsgKiBwdGVwX2dl dF9sb2NrbGVzc19ub3JlY2VuY3koKSB3aGljaCBjYW4gYmUgZmFzdGVyIG9uIHNvbWUgYXJjaGl0 ZWN0dXJlcy4KPj4+ICsgKgo+Pj4gKyAqIE1heSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcmNoaXRl Y3R1cmU7IG90aGVyd2lzZSwgaW1wbGVtZW50ZWQgdXNpbmcKPj4+ICsgKiBwdGVwX2dldCgpLCBv biB0aGUgYXNzdW1wdGlvbiB0aGF0IGl0IGlzIGF0b21pYy4KPj4+ICsgKgo+Pj4gKyAqIENvbnRl eHQ6IEFueS4KPj4+ICsgKi8KPj4KPj4gSSB0aGluayB3ZSB1c3VhbGx5IHNheSAiQW55IGNvbnRl eHQuIi4gQnV0IEkgd291bGQganVzdCBkbyBpdCBsaWtlIGlkci5oOgo+Pgo+PiAiQW55IGNvbnRl eHQuIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgbG9ja2luZyBpbiB5 b3VyIGNvZGUuIgo+Pgo+PiAuLi4gYnV0IGlzIHRoaXMgdHJ1ZT8gV2UgcmVhbGx5IHdhbnQgdG8g c2F5ICJ3aXRob3V0IHBhZ2UgdGFibGUgbG9jayIuIEJlY2F1c2UKPj4gdGhlcmUgbXVzdCBiZSBz b21lIHdheSB0byBwcmV2ZW50IGFnYWluc3QgY29uY3VycmVudCBwYWdlIHRhYmxlIGZyZWVpbmcu IEZvcgo+PiBleGFtcGxlLCBHVVAtZmFzdCBkaXNhYmxlcyBJUlFzLCB3aGVyZWJ5IHBhZ2UgdGFi bGUgZnJlZWluZyBjb2RlIGZyZWVzIHVzaW5nIFJDVS4KPiAKPiBIb3cgYWJvdXQ6Cj4gCj4gIgo+ IENvbnRleHQ6IEFueSBjb250ZXh0IHRoYXQgZ3VhcnJhbnRlZXMgdGhlIHBhZ2UgdGFibGUgY2Fu J3QgYmUgZnJlZWQKCnMvZ3VhcnJhbnRlZXMvZ3VhcmFudGVlcy8KCj4gY29uY3VycmVudGx5LiBU aGUgcGFnZSB0YWJsZSBsb2NrIGlzIG5vdCByZXF1aXJlZC4KPiAiCj4gCgpTb3VuZHMgZ29vZC4K Cj4+Cj4+PiAgwqAgc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX2dldF9sb2NrbGVzcyhwdGVfdCAq cHRlcCkKPj4+ICDCoCB7Cj4+PiAgwqDCoMKgwqDCoCByZXR1cm4gcHRlcF9nZXQocHRlcCk7Cj4+ PiAgwqAgfQo+Pj4gIMKgICNlbmRpZgo+Pj4KPj4+ICsjaWZuZGVmIHB0ZXBfZ2V0X2xvY2tsZXNz X25vcmVjZW5jeQo+Pj4gKy8qKgo+Pj4gKyAqIHB0ZXBfZ2V0X2xvY2tsZXNzX25vcmVjZW5jeSAt IEdldCBhIHB0ZSB3aXRob3V0IGhvbGRpbmcgdGhlIHBhZ2UgdGFibGUgbG9jay4KPj4+ICsgKsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFlvdW5nIGFuZCBkaXJ0eSBiaXRzIG1heSBu b3QgYmUgYWNjdXJhdGUuCj4+PiArICogQHB0ZXA6IFBhZ2UgdGFibGUgcG9pbnRlciBmb3IgcHRl IHRvIGdldC4KPj4+ICsgKgo+Pj4gKyAqIFByZWZlciB0aGlzIG92ZXIgcHRlcF9nZXRfbG9ja2xl c3MoKSB3aGVuIHlvdW5nIGFuZCBkaXJ0eSBpbmZvcm1hdGlvbiBpcyBub3QKPj4+ICsgKiByZXF1 aXJlZCBzaW5jZSBpdCBjYW4gYmUgZmFzdGVyIG9uIHNvbWUgYXJjaGl0ZWN0dXJlcy4KPj4+ICsg Kgo+Pj4gKyAqIE1heSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcmNoaXRlY3R1cmU7IG90aGVyd2lz ZSwgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIG1vcmUKPj4+ICsgKiBwcmVjaXNlIHB0ZXBfZ2V0X2xv Y2tsZXNzKCkuCj4+PiArICoKPj4+ICsgKiBDb250ZXh0OiBBbnkuCj4+Cj4+IFNhbWUgY29tbWVu dC4KPj4KPj4+ICsgKi8KPj4+ICtzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfZ2V0X2xvY2tsZXNz X25vcmVjZW5jeShwdGVfdCAqcHRlcCkKPj4+ICt7Cj4+PiArwqDCoMKgIHJldHVybiBwdGVwX2dl dF9sb2NrbGVzcyhwdGVwKTsKPj4+ICt9Cj4+PiArI2VuZGlmCj4+Cj4+IFsuLi5dCj4+Cj4+PiBk aWZmIC0tZ2l0IGEvbW0vaHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCj4+PiBpbmRleCA2ODI4M2U1 NGM4OTkuLjQxZGM0NGViODQ1NCAxMDA2NDQKPj4+IC0tLSBhL21tL2h1Z2V0bGIuYwo+Pj4gKysr IGIvbW0vaHVnZXRsYi5jCj4+PiBAQCAtNzUxNyw3ICs3NTE3LDcgQEAgcHRlX3QgKmh1Z2VfcHRl X2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3QKPj4+IHZtX2FyZWFfc3RydWN0ICp2 bWEsCj4+PiAgwqDCoMKgwqDCoCB9Cj4+Pgo+Pj4gIMKgwqDCoMKgwqAgaWYgKHB0ZSkgewo+Pj4g LcKgwqDCoMKgwqDCoMKgIHB0ZV90IHB0ZXZhbCA9IHB0ZXBfZ2V0X2xvY2tsZXNzKHB0ZSk7Cj4+ PiArwqDCoMKgwqDCoMKgwqAgcHRlX3QgcHRldmFsID0gcHRlcF9nZXRfbG9ja2xlc3Nfbm9yZWNl bmN5KHB0ZSk7Cj4+Pgo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBCVUdfT04ocHRlX3ByZXNlbnQo cHRldmFsKSAmJiAhcHRlX2h1Z2UocHRldmFsKSk7Cj4+PiAgwqDCoMKgwqDCoCB9Cj4+PiBkaWZm IC0tZ2l0IGEvbW0va2h1Z2VwYWdlZC5jIGIvbW0va2h1Z2VwYWdlZC5jCj4+PiBpbmRleCAyNzcx ZmMwNDNiM2IuLjFhNmM5ZWQ4MjM3YSAxMDA2NDQKPj4+IC0tLSBhL21tL2todWdlcGFnZWQuYwo+ Pj4gKysrIGIvbW0va2h1Z2VwYWdlZC5jCj4+PiBAQCAtMTAxOSw3ICsxMDE5LDcgQEAgc3RhdGlj IGludCBfX2NvbGxhcHNlX2h1Z2VfcGFnZV9zd2FwaW4oc3RydWN0IG1tX3N0cnVjdAo+Pj4gKm1t LAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+ICDCoMKgwqDCoMKgwqDCoMKg wqAgfQo+Pj4KPj4+IC3CoMKgwqDCoMKgwqDCoCB2bWYub3JpZ19wdGUgPSBwdGVwX2dldF9sb2Nr bGVzcyhwdGUpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIHZtZi5vcmlnX3B0ZSA9IHB0ZXBfZ2V0X2xv Y2tsZXNzX25vcmVjZW5jeShwdGUpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWlzX3N3 YXBfcHRlKHZtZi5vcmlnX3B0ZSkpCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29u dGludWU7Cj4+Cj4+Cj4+IEhtLCBJIHRoaW5rIHlvdSBtZW50aW9uZWQgdGhhdCB3ZSB3YW50IHRv IGJlIGNhcmVmdWwgd2l0aCB2bWYub3JpZ19wdGUuCj4gCj4gWWVhaCBnb29kIHBvaW50LiBTbyBJ IGd1ZXNzIHRoaXMgc2hvdWxkIG1vdmUgdG8gcGF0Y2ggMyAod2hpY2ggbWF5IGJlIGRyb3BwZWQg LQo+IHRiZCk/Cj4gCgpZZXMuIE9yIGEgc2VwYXJhdGUgb25lIHdoZXJlIHlvdSBleHBsYWluIGlu IGRldGFpbCB3aHkgZG9fc3dhcF9wYWdlKCkgCmNhbiBoYW5kbGUgaXQganVzdCBmaW5lLgoKLS0g CkNoZWVycywKCkRhdmlkIC8gZGhpbGRlbmIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==