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 3BEDDC3DA6E for ; Wed, 20 Dec 2023 09:18:38 +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=DQn8HhWCeQmJrl+NqVAj1JdDAEIQc+xLesXUf43/JwQ=; b=sq8X0ReB9VQm7B wUcLnUMBoscXtgGwowg9yEia4Zi/QIw5KDCffw9U9P8CEKCo5+BnX5zfpKjTwXk7mDqe5izOazc76 8QDoAMF3azMO/ATjcaDubB11tcoHtBml9k+fYpa5j7M8UEeoMBaezTmPcMjAN1eNs8UhTgu2jaMY6 EmzazNslPq7FiZLKvqS8ZPj7B6ZRLRRxT41LPDS4lEBSLqgaDPaqdU8Zyo7xai3TXEN2iLcswWYiF wl4M8cpxlWV/i6hJm8UFUYk3jbLbkxoJflnIfKxraHyj23ZdkEQSM7kLVDBeDSLgtGAKzU1R/qE6x 4VzbINOZ870oDtP49yRQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rFsiG-00GiEL-2r; Wed, 20 Dec 2023 09:18:00 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rFsiD-00GiCw-3B for linux-arm-kernel@lists.infradead.org; Wed, 20 Dec 2023 09:17:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1703063874; 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=51YhYfURjkTSAZFjlaTjEgUsM8OmUxf+tU0jMDZLv1Q=; b=JJpILC8SuF0OGhEZfRWZqHiJJlrV641Ry8uAEQWgff2nWFzwYX3fFVlgKub4rs3BEDmvF+ QvyNwDLJ9s6M7Maqcx+cz/Gj6tb2wN4jvzNKABgE1lTu7EP+Ealr8Ma4sylcK4WRx6ICXc QeGkvwCFY8LsVgTvJg6buIt5Mh+fiF8= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-518-MDpqBB0OO568RyI7PVqeHw-1; Wed, 20 Dec 2023 04:17:52 -0500 X-MC-Unique: MDpqBB0OO568RyI7PVqeHw-1 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-67ef8bbfe89so92392386d6.0 for ; Wed, 20 Dec 2023 01:17:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703063872; x=1703668672; h=content-transfer-encoding:in-reply-to:organization:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=51YhYfURjkTSAZFjlaTjEgUsM8OmUxf+tU0jMDZLv1Q=; b=u+Ik3GEvQGEW+YWBOHHKmSpLHaTEsZ5/L9gFjCTrpKl1jEss1uMLFnPtly25kn65Tz uHjB4zH4LmcrRlg1BoPzaMIz7wdH6PVYRJGSuFwyLkxwrbJVO+SFg33CfD1HZN8q1yZB 117lRUNEC+E1NBWgsi8sMiibJ8ty2ltcQNPR4iejytJP18jEFFjgJgh0CIMm1r666nfy jynVeTxb1QtTWlDW4cEcbwtg4sytA2h0LW864/kgQmBytY+hBPpb1Dnqea1ZHNZsLwkj NpgPd1ncPFhX+05mE87C6jUsHcZR3mKOMy8X/O1PIJlfv7tm0YzSjqBpOxPH3Gy2RQqZ 1C/g== X-Gm-Message-State: AOJu0YzLFQ3xKbJa0NJ8rl0xorpb7cZcfK98Bzcp+TgiAKt4VjRbIVkJ +qrmkYUez+Nnc+3q7Nmlbpmx3WAAFm2lH9YYgDOXO4AVSAl+qt6S14GNPOU7juheetOpLW02v/F dYeIKk4ItdxNvRtYDyQpZcFCWAH5Cc9BQrfY= X-Received: by 2002:ad4:5dca:0:b0:67f:143d:b8c8 with SMTP id m10-20020ad45dca000000b0067f143db8c8mr13208303qvh.110.1703063871639; Wed, 20 Dec 2023 01:17:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IFDDpA2OAiYFhHdNO5Cg2Nqb9eOpfrgP9GNexEJ4SZ/FJG+Foon+Sy2N+ZjzIFtioVXUHbBvg== X-Received: by 2002:ad4:5dca:0:b0:67f:143d:b8c8 with SMTP id m10-20020ad45dca000000b0067f143db8c8mr13208278qvh.110.1703063871248; Wed, 20 Dec 2023 01:17:51 -0800 (PST) Received: from ?IPV6:2003:cb:c73b:eb00:8e25:6953:927:1802? (p200300cbc73beb008e25695309271802.dip0.t-ipconnect.de. [2003:cb:c73b:eb00:8e25:6953:927:1802]) by smtp.gmail.com with ESMTPSA id pp17-20020a056214139100b0067aa31371ddsm3451859qvb.80.2023.12.20.01.17.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Dec 2023 01:17:50 -0800 (PST) Message-ID: <7c0236ad-01f3-437f-8b04-125d69e90dc0@redhat.com> Date: Wed, 20 Dec 2023 10:17:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 02/16] mm: Batch-copy PTE ranges during fork() To: Ryan Roberts , Catalin Marinas , Will Deacon , Ard Biesheuvel , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Zenghui Yu , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Anshuman Khandual , Matthew Wilcox , Yu Zhao , Mark Rutland , Kefeng Wang , John Hubbard , Zi Yan , Barry Song <21cnbao@gmail.com>, Alistair Popple , Yang Shi Cc: linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20231218105100.172635-1-ryan.roberts@arm.com> <20231218105100.172635-3-ryan.roberts@arm.com> <0bef5423-6eea-446b-8854-980e9c23a948@redhat.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: 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-20231220_011758_169699_30300457 X-CRM114-Status: GOOD ( 33.88 ) 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 T24gMTkuMTIuMjMgMTg6NDIsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPiBPbiAxOS8xMi8yMDIzIDE3 OjIyLCBEYXZpZCBIaWxkZW5icmFuZCB3cm90ZToKPj4gT24gMTkuMTIuMjMgMDk6MzAsIFJ5YW4g Um9iZXJ0cyB3cm90ZToKPj4+IE9uIDE4LzEyLzIwMjMgMTc6NDcsIERhdmlkIEhpbGRlbmJyYW5k IHdyb3RlOgo+Pj4+IE9uIDE4LjEyLjIzIDExOjUwLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+ IENvbnZlcnQgY29weV9wdGVfcmFuZ2UoKSB0byBjb3B5IGEgYmF0Y2ggb2YgcHRlcyBpbiBvbmUg Z28uIEEgZ2l2ZW4KPj4+Pj4gYmF0Y2ggaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJl IHdpdGggdGhlIG5ldyBoZWxwZXIsCj4+Pj4+IHB0ZV9iYXRjaF9yZW1haW5pbmcoKSwgYW5kIG1h cHMgYSBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMgYmxvY2sgb2YgbWVtb3J5LAo+Pj4+PiBhbGwgYmVs b25naW5nIHRvIHRoZSBzYW1lIGZvbGlvLiBBIHB0ZSBiYXRjaCBpcyB0aGVuIHdyaXRlLXByb3Rl Y3RlZCBpbgo+Pj4+PiBvbmUgZ28gaW4gdGhlIHBhcmVudCB1c2luZyB0aGUgbmV3IGhlbHBlciwg cHRlcF9zZXRfd3Jwcm90ZWN0cygpIGFuZCBpcwo+Pj4+PiBzZXQgaW4gb25lIGdvIGluIHRoZSBj aGlsZCB1c2luZyB0aGUgbmV3IGhlbHBlciwgc2V0X3B0ZXNfZnVsbCgpLgo+Pj4+Pgo+Pj4+PiBU aGUgcHJpbWFyeSBtb3RpdmF0aW9uIGZvciB0aGlzIGNoYW5nZSBpcyB0byByZWR1Y2UgdGhlIG51 bWJlciBvZiB0bGIKPj4+Pj4gbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucyB0aGF0IHRoZSBhcm02NCBi YWNrZW5kIGhhcyB0byBwZXJmb3JtIGR1cmluZwo+Pj4+PiBmb3JrLCBhcyBpdCBpcyBhYm91dCB0 byBhZGQgdHJhbnNwYXJlbnQgc3VwcG9ydCBmb3IgdGhlICJjb250aWd1b3VzIGJpdCIKPj4+Pj4g aW4gaXRzIHB0ZXMuIEJ5IHdyaXRlLXByb3RlY3RpbmcgdGhlIHBhcmVudCB1c2luZyB0aGUgbmV3 Cj4+Pj4+IHB0ZXBfc2V0X3dycHJvdGVjdHMoKSAobm90ZSB0aGUgJ3MnIGF0IHRoZSBlbmQpIGZ1 bmN0aW9uLCB0aGUgYmFja2VuZAo+Pj4+PiBjYW4gYXZvaWQgaGF2aW5nIHRvIHVuZm9sZCBjb250 aWcgcmFuZ2VzIG9mIFBURXMsIHdoaWNoIGlzIGV4cGVuc2l2ZSwKPj4+Pj4gd2hlbiBhbGwgcHRl cyBpbiB0aGUgcmFuZ2UgYXJlIGJlaW5nIHdyaXRlLXByb3RlY3RlZC4gU2ltaWxhcmx5LCBieQo+ Pj4+PiB1c2luZyBzZXRfcHRlc19mdWxsKCkgcmF0aGVyIHRoYW4gc2V0X3B0ZV9hdCgpIHRvIHNl dCB1cCBwdGVzIGluIHRoZQo+Pj4+PiBjaGlsZCwgdGhlIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB0 byBmb2xkIGEgY29udGlndW91cyByYW5nZSBvbmNlIHRoZXkKPj4+Pj4gYXJlIGFsbCBwb3B1bGF0 ZWQgLSB0aGV5IGNhbiBiZSBpbml0aWFsbHkgcG9wdWxhdGVkIGFzIGEgY29udGlndW91cwo+Pj4+ PiByYW5nZSBpbiB0aGUgZmlyc3QgcGxhY2UuCj4+Pj4+Cj4+Pj4+IFRoaXMgY29kZSBpcyB2ZXJ5 IHBlcmZvcm1hbmNlIHNlbnNpdGl2ZSwgYW5kIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mCj4+Pj4+ IGVmZm9ydCBoYXMgYmVlbiBwdXQgaW50byBub3QgcmVncmVzc2luZyBwZXJmb3JtYW5jZSBmb3Ig dGhlIG9yZGVyLTAKPj4+Pj4gZm9saW8gY2FzZS4gQnkgZGVmYXVsdCwgcHRlX2JhdGNoX3JlbWFp bmluZygpIGlzIGNvbXBpbGUgY29uc3RhbnQgMSwKPj4+Pj4gd2hpY2ggZW5hYmxlcyB0aGUgY29t cGlsZXIgdG8gc2ltcGxpZnkgdGhlIGV4dHJhIGxvb3BzIHRoYXQgYXJlIGFkZGVkCj4+Pj4+IGZv ciBiYXRjaGluZyBhbmQgcHJvZHVjZSBjb2RlIHRoYXQgaXMgZXF1aXZhbGVudCAoYW5kIGVxdWFs bHkKPj4+Pj4gcGVyZm9ybWFudCkgYXMgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uLgo+Pj4+ Pgo+Pj4+PiBUaGlzIGNoYW5nZSBhZGRyZXNzZXMgdGhlIGNvcmUtbW0gcmVmYWN0b3Jpbmcgb25s eSBhbmQgYSBzZXBhcmF0ZSBjaGFuZ2UKPj4+Pj4gd2lsbCBpbXBsZW1lbnQgcHRlX2JhdGNoX3Jl bWFpbmluZygpLCBwdGVwX3NldF93cnByb3RlY3RzKCkgYW5kCj4+Pj4+IHNldF9wdGVzX2Z1bGwo KSBpbiB0aGUgYXJtNjQgYmFja2VuZCB0byByZWFsaXplIHRoZSBwZXJmb3JtYW5jZQo+Pj4+PiBp bXByb3ZlbWVudCBhcyBwYXJ0IG9mIHRoZSB3b3JrIHRvIGVuYWJsZSBjb250cHRlIG1hcHBpbmdz Lgo+Pj4+Pgo+Pj4+PiBUbyBlbnN1cmUgdGhlIGFybTY0IGlzIHBlcmZvcm1hbnQgb25jZSBpbXBs ZW1lbnRlZCwgdGhpcyBjaGFuZ2UgaXMgdmVyeQo+Pj4+PiBjYXJlZnVsIHRvIG9ubHkgY2FsbCBw dGVwX2dldCgpIG9uY2UgcGVyIHB0ZSBiYXRjaC4KPj4+Pj4KPj4+Pj4gVGhlIGZvbGxvd2luZyBt aWNyb2JlbmNobWFyayByZXN1bHRzIGRlbW9uc3RhdGUgdGhhdCB0aGVyZSBpcyBubwo+Pj4+PiBz aWduaWZpY2FudCBwZXJmb3JtYW5jZSBjaGFuZ2UgYWZ0ZXIgdGhpcyBwYXRjaC4gRm9yayBpcyBj YWxsZWQgaW4gYQo+Pj4+PiB0aWdodCBsb29wIGluIGEgcHJvY2VzcyB3aXRoIDFHIG9mIHBvcHVs YXRlZCBtZW1vcnkgYW5kIHRoZSB0aW1lIGZvciB0aGUKPj4+Pj4gZnVuY3Rpb24gdG8gZXhlY3V0 ZSBpcyBtZWFzdXJlZC4gMTAwIGl0ZXJhdGlvbnMgcGVyIHJ1biwgOCBydW5zCj4+Pj4+IHBlcmZv cm1lZCBvbiBib3RoIEFwcGxlIE0yIChWTSkgYW5kIEFtcGVyZSBBbHRyYSAoYmFyZSBtZXRhbCku IFRlc3RzCj4+Pj4+IHBlcmZvcm1lZCBmb3IgY2FzZSB3aGVyZSAxRyBtZW1vcnkgaXMgY29tcHJp c2VkIG9mIG9yZGVyLTAgZm9saW9zIGFuZAo+Pj4+PiBjYXNlIHdoZXJlIGNvbXByaXNlZCBvZiBw dGUtbWFwcGVkIG9yZGVyLTkgZm9saW9zLiBOZWdhdGl2ZSBpcyBmYXN0ZXIsCj4+Pj4+IHBvc2l0 aXZlIGlzIHNsb3dlciwgY29tcGFyZWQgdG8gYmFzZWxpbmUgdXBvbiB3aGljaCB0aGUgc2VyaWVz IGlzIGJhc2VkOgo+Pj4+Pgo+Pj4+PiB8IEFwcGxlIE0yIFZNwqDCoCB8IG9yZGVyLTAgKHB0ZS1t YXApIHwgb3JkZXItOSAocHRlLW1hcCkgfAo+Pj4+PiB8IGZvcmvCoMKgwqDCoMKgwqDCoMKgwqAg fC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwKPj4+Pj4gfCBtaWNyb2Jl bmNowqDCoMKgIHzCoMKgwqAgbWVhbiB8wqDCoCBzdGRldiB8wqDCoMKgIG1lYW4gfMKgwqAgc3Rk ZXYgfAo+Pj4+PiB8LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0t fC0tLS0tLS0tLXwKPj4+Pj4gfCBiYXNlbGluZcKgwqDCoMKgwqAgfMKgwqDCoCAwLjAlIHzCoMKg wqAgMS4xJSB8wqDCoMKgIDAuMCUgfMKgwqDCoCAxLjIlIHwKPj4+Pj4gfCBhZnRlci1jaGFuZ2XC oCB8wqDCoCAtMS4wJSB8wqDCoMKgIDIuMCUgfMKgwqAgLTAuMSUgfMKgwqDCoCAxLjElIHwKPj4+ Pj4KPj4+Pj4gfCBBbXBlcmUgQWx0cmHCoCB8IG9yZGVyLTAgKHB0ZS1tYXApIHwgb3JkZXItOSAo cHRlLW1hcCkgfAo+Pj4+PiB8IGZvcmvCoMKgwqDCoMKgwqDCoMKgwqAgfC0tLS0tLS0tLS0tLS0t LS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwKPj4+Pj4gfCBtaWNyb2JlbmNowqDCoMKgIHzCoMKg wqAgbWVhbiB8wqDCoCBzdGRldiB8wqDCoMKgIG1lYW4gfMKgwqAgc3RkZXYgfAo+Pj4+PiB8LS0t LS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLXwKPj4+ Pj4gfCBiYXNlbGluZcKgwqDCoMKgwqAgfMKgwqDCoCAwLjAlIHzCoMKgwqAgMS4wJSB8wqDCoMKg IDAuMCUgfMKgwqDCoCAwLjElIHwKPj4+Pj4gfCBhZnRlci1jaGFuZ2XCoCB8wqDCoCAtMC4xJSB8 wqDCoMKgIDEuMiUgfMKgwqAgLTAuMSUgfMKgwqDCoCAwLjElIHwKPj4+Pj4KPj4+Pj4gVGVzdGVk LWJ5OiBKb2huIEh1YmJhcmQgPGpodWJiYXJkQG52aWRpYS5jb20+Cj4+Pj4+IFJldmlld2VkLWJ5 OiBBbGlzdGFpciBQb3BwbGUgPGFwb3BwbGVAbnZpZGlhLmNvbT4KPj4+Pj4gU2lnbmVkLW9mZi1i eTogUnlhbiBSb2JlcnRzIDxyeWFuLnJvYmVydHNAYXJtLmNvbT4KPj4+Pj4gLS0tCj4+Pj4+ICDC oMKgIGluY2x1ZGUvbGludXgvcGd0YWJsZS5oIHwgODAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPj4+Pj4gIMKgwqAgbW0vbWVtb3J5LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+Pj4+PiAg wqDCoCAyIGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkK Pj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oIGIvaW5jbHVk ZS9saW51eC9wZ3RhYmxlLmgKPj4+Pj4gaW5kZXggYWY3NjM5YzNiMGEzLi5kYjkzZmI4MTQ2NWEg MTAwNjQ0Cj4+Pj4+IC0tLSBhL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+Pj4+ICsrKyBiL2lu Y2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+Pj4+IEBAIC0yMDUsNiArMjA1LDI3IEBAIHN0YXRpYyBp bmxpbmUgaW50IHBtZF95b3VuZyhwbWRfdCBwbWQpCj4+Pj4+ICDCoMKgICNkZWZpbmUgYXJjaF9m bHVzaF9sYXp5X21tdV9tb2RlKCnCoMKgwqAgZG8ge30gd2hpbGUgKDApCj4+Pj4+ICDCoMKgICNl bmRpZgo+Pj4+PiAgwqDCoCArI2lmbmRlZiBwdGVfYmF0Y2hfcmVtYWluaW5nCj4+Pj4+ICsvKioK Pj4+Pj4gKyAqIHB0ZV9iYXRjaF9yZW1haW5pbmcgLSBOdW1iZXIgb2YgcGFnZXMgZnJvbSBhZGRy IHRvIG5leHQgYmF0Y2ggYm91bmRhcnkuCj4+Pj4+ICsgKiBAcHRlOiBQYWdlIHRhYmxlIGVudHJ5 IGZvciB0aGUgZmlyc3QgcGFnZS4KPj4+Pj4gKyAqIEBhZGRyOiBBZGRyZXNzIG9mIHRoZSBmaXJz dCBwYWdlLgo+Pj4+PiArICogQGVuZDogQmF0Y2ggY2VpbGluZyAoZS5nLiBlbmQgb2Ygdm1hKS4K Pj4+Pj4gKyAqCj4+Pj4+ICsgKiBTb21lIGFyY2hpdGVjdHVyZXMgKGFybTY0KSBjYW4gZWZmaWNp ZW50bHkgbW9kaWZ5IGEgY29udGlndW91cyBiYXRjaCBvZgo+Pj4+PiBwdGVzLgo+Pj4+PiArICog SW4gc3VjaCBjYXNlcywgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZW1haW5pbmcgbnVtYmVy IG9mIHBhZ2VzIHRvCj4+Pj4+IHRoZSBlbmQKPj4+Pj4gKyAqIG9mIHRoZSBjdXJyZW50IGJhdGNo LCBhcyBkZWZpbmVkIGJ5IGFkZHIuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuIGl0ZXJhdGluZwo+ Pj4+PiArICogb3ZlciBwdGVzLgo+Pj4+PiArICoKPj4+Pj4gKyAqIE1heSBiZSBvdmVycmlkZGVu IGJ5IHRoZSBhcmNoaXRlY3R1cmUsIGVsc2UgYmF0Y2ggc2l6ZSBpcyBhbHdheXMgMS4KPj4+Pj4g KyAqLwo+Pj4+PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcHRlX2JhdGNoX3JlbWFpbmlu ZyhwdGVfdCBwdGUsIHVuc2lnbmVkIGxvbmcgYWRkciwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBlbmQpCj4+Pj4+ICt7 Cj4+Pj4+ICvCoMKgwqAgcmV0dXJuIDE7Cj4+Pj4+ICt9Cj4+Pj4+ICsjZW5kaWYKPj4+Pgo+Pj4+ IEl0J3MgYSBzaGFtZSB3ZSBub3cgbG9zZSB0aGUgb3B0aW1pemF0aW9uIGZvciBhbGwgb3RoZXIg YXJjaHRpZWN0dXJlcy4KPj4+Pgo+Pj4+IFdhcyB0aGVyZSBubyB3YXkgdG8gaGF2ZSBzb21lIGJh c2ljIGJhdGNoaW5nIG1lY2hhbmlzbSB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhcmNoCj4+Pj4gc3Bl Y2lmaWNzPwo+Pj4KPj4+IEkgdHJpZWQgYSBidW5jaCBvZiB0aGluZ3MgYnV0IHVsdGltYXRlbHkg dGhlIHdheSBJJ3ZlIGRvbmUgaXQgd2FzIHRoZSBvbmx5IHdheQo+Pj4gdG8gcmVkdWNlIHRoZSBv cmRlci0wIGZvcmsgcmVncmVzc2lvbiB0byAwLgo+Pj4KPj4+IE15IG9yaWdpbmFsIHYzIHBvc3Rp bmcgd2FzIGNvc3RpbmcgNSUgZXh0cmEgYW5kIGV2ZW4gbXkgZmlyc3QgYXR0ZW1wdCBhdCBhbgo+ Pj4gYXJjaC1zcGVjaWZpYyB2ZXJzaW9uIHRoYXQgZGlkbid0IHJlc29sdmUgdG8gYSBjb21waWxl LXRpbWUgY29uc3RhbnQgMSBzdGlsbAo+Pj4gY29zdCBhbiBleHRyYSAzJS4KPj4+Cj4+Pgo+Pj4+ Cj4+Pj4gSSdkIGhhdmUgdGhvdWdodCB0aGF0IHNvbWV0aGluZyB2ZXJ5IGJhc2ljIHdvdWxkIGhh dmUgd29ya2VkIGxpa2U6Cj4+Pj4KPj4+PiAqIENoZWNrIGlmIFBURSBpcyB0aGUgc2FtZSB3aGVu IHNldHRpbmcgdGhlIFBGTiB0byAwLgo+Pj4+ICogQ2hlY2sgdGhhdCBQRk4gaXMgY29uc2VjdXRp dmUKPj4+PiAqIENoZWNrIHRoYXQgYWxsIFBGTnMgYmVsb25nIHRvIHRoZSBzYW1lIGZvbGlvCj4+ Pgo+Pj4gSSBoYXZlbid0IHRyaWVkIHRoaXMgZXhhY3QgYXBwcm9hY2gsIGJ1dCBJJ2QgYmUgc3Vy cHJpc2VkIGlmIEkgY2FuIGdldCB0aGUKPj4+IHJlZ3Jlc3Npb24gdW5kZXIgNCUgd2l0aCB0aGlz LiBGdXJ0aGVyIGFsb25nIHRoZSBzZXJpZXMgSSBzcGVudCBhIGxvdCBvZiB0aW1lCj4+PiBoYXZp bmcgdG8gZmlkZGxlIHdpdGggdGhlIGFybTY0IGltcGxlbWVudGF0aW9uOyBldmVyeSBjb25kaXRp b25hbCBhbmQgZXZlcnkKPj4+IG1lbW9yeSByZWFkIChldmVuIHdoZW4gaW4gY2FjaGUpIHdhcyBh IHByb2JsZW0uIFRoZXJlIGlzIGp1c3Qgc28gbGl0dGxlIGluIHRoZQo+Pj4gaW5uZXIgbG9vcCB0 aGF0IGV2ZXJ5IGluc3RydWN0aW9uIG1hdHRlcnMuIChBdCBsZWFzdCBvbiBBbXBlcmUgQWx0cmEg YW5kIEFwcGxlCj4+PiBNMikuCj4+Pgo+Pj4gT2YgY291cnNlIGlmIHlvdSdyZSB3aWxsaW5nIHRv IHBheSB0aGF0IDQtNSUgZm9yIG9yZGVyLTAgdGhlbiB0aGUgYmVuZWZpdCB0bwo+Pj4gb3JkZXIt OSBpcyBhcm91bmQgMTAlIGluIG15IG1lYXN1cmVtZW50cy4gUGVyc29uYWxseSB0aG91Z2gsIEkn ZCBwcmVmZXIgdG8gcGxheQo+Pj4gc2FmZSBhbmQgZW5zdXJlIHRoZSBjb21tb24gb3JkZXItMCBj YXNlIGRvZXNuJ3QgcmVncmVzcywgYXMgeW91IHByZXZpb3VzbHkKPj4+IHN1Z2dlc3RlZC4KPj4+ Cj4+Cj4+IEkganVzdCBoYWNrZWQgc29tZXRoaW5nIHVwLCBvbiB0b3Agb2YgbXkgYmVsb3ZlZCBy bWFwIGNsZWFudXAvYmF0Y2hpbmcgc2VyaWVzLiBJCj4+IGltcGxlbWVudGVkIHZlcnkgZ2VuZXJp YyBhbmQgc2ltcGxlIGJhdGNoaW5nIGZvciBsYXJnZSBmb2xpb3MgKGFsbCBQVEUgYml0cwo+PiBl eGNlcHQgdGhlIFBGTiBoYXZlIHRvIG1hdGNoKS4KPj4KPj4gU29tZSB2ZXJ5IHF1aWNrIHRlc3Rp bmcgKGRvbid0IHRydXN0IGVhY2ggbGFzdCAlICkgb24gSW50ZWwoUikgWGVvbihSKSBTaWx2ZXIK Pj4gNDIxMFIgQ1BVLgo+Pgo+PiBvcmRlci0wOiAwLjAxNDIxMCAtPiAwLjAxMzk2OQo+Pgo+PiAt PiBBcm91bmQgMS43ICUgZmFzdGVyCj4+Cj4+IG9yZGVyLTk6IDAuMDE0MzczIC0+IDAuMDA5MTQ5 Cj4+Cj4+IC0+IEFyb3VuZCAzNi4zICUgZmFzdGVyCj4gCj4gV2VsbCBJIGd1ZXNzIHRoYXQgc2hv d3MgbWUgOikKPiAKPiBJJ2xsIGRvIGEgcmV2aWV3IGFuZCBydW4gdGhlIHRlc3RzIG9uIG15IEhX IHRvIHNlZSBpZiBpdCBjb25jdXJzLgoKCkkgcHVzaGVkIGEgc2ltcGxlIGNvbXBpbGUgZml4dXAg KHdlIG5lZWQgcHRlX25leHRfcGZuKCkpLgoKTm90ZSB0aGF0IHdlIHNob3VsZCBwcm9iYWJseSBo YW5kbGUgInB0ZXBfc2V0X3dycHJvdGVjdHMiIHJhdGhlciBsaWtlIHNldF9wdGVzOgoKI2lmbmRl ZiB3cnByb3RlY3RfcHRlcwpzdGF0aWMgaW5saW5lIHZvaWQgd3Jwcm90ZWN0X3B0ZXMoc3RydWN0 IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgIHB0ZV90 ICpwdGVwLCB1bnNpZ25lZCBpbnQgbnIpCnsKICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAg ICAgICBwdGVwX3NldF93cnByb3RlY3QobW0sIGFkZHIsIHB0ZXApOwogICAgICAgICAgICAgICAg aWYgKC0tbnIgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICAgICBwdGVwKys7CiAgICAgICAgICAgICAgICBhZGRyICs9IFBBR0VfU0laRTsKICAgICAgICB9 Cn0KI2VuZGlmCgoKLS0gCkNoZWVycywKCkRhdmlkIC8gZGhpbGRlbmIKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==