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=-11.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable 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 3C193C433E7 for ; Fri, 9 Oct 2020 10:36:58 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 9D0DB221FC for ; Fri, 9 Oct 2020 10:36:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="2P3l7Mwb"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z0ZZm8k9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D0DB221FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=OuWF5K45DikYhlzPp+sutSeOlwb9+O6bqnHBEa/UK+s=; b=2P3l7Mwbokn5HcghWC0mPry22 h4dK3uGS8A3YDXqDv7Fc29TocsyrkwJ7n0/AI3QVq3FOJAPoGYezfgcFCv5sWZv6qhttDAtoqF848 Tc1hDxpkQTxi3xf6PShN9euJC26KnnBkTRd/ncoKHN0PSENo97c3QZ+dj125N7EzhH93oV93lZyut 7UEeyZ12MhDK6otHIihbYjQi2bAsQ9yx6PTpdah+jp3a6Sh01gS7VJH9RTwnsY/bSJqmCVA8UKGSf qCckB/UXg4kEvimInIyITsE+C4cJW66/cHsAF5kY0fViZY4dC62xE/+/zSPPHAepRiiBmffOPkilN SupMwaExg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpjN-0003sp-Fj; Fri, 09 Oct 2020 10:34:33 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kQpjK-0003ro-6q for linux-arm-kernel@lists.infradead.org; Fri, 09 Oct 2020 10:34:31 +0000 Received: from coco.lan (ip5f5ad5d0.dynamic.kabel-deutschland.de [95.90.213.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0DEF9221FC; Fri, 9 Oct 2020 10:34:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602239669; bh=pRI4Tm1lG+Jblk58G1pSvqxmgDEZi2xS8IJzqwbJFvw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Z0ZZm8k90LDIkkwepgM63s827tTWfKOZRcqR7o+KzIwoiE1/gtsqyykPEtefC1BOJ aqhxaJ85cRFHWn7mghZunfQqK4WizlHdY1AlS3galp81cAdVsdFebaWYB06Z1YG2jP N7/7ovKPoZG++Py9RD5QO4Y+qb3C0vzKbhvXTkLw= Date: Fri, 9 Oct 2020 12:34:21 +0200 From: Mauro Carvalho Chehab To: Daniel Vetter Subject: Re: [PATCH v2 09/17] mm: Add unsafe_follow_pfn Message-ID: <20201009123421.67a80d72@coco.lan> In-Reply-To: <20201009075934.3509076-10-daniel.vetter@ffwll.ch> References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-10-daniel.vetter@ffwll.ch> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201009_063430_411473_70934B43 X-CRM114-Status: GOOD ( 36.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , kvm@vger.kernel.org, Jason Gunthorpe , John Hubbard , LKML , DRI Development , linux-mm@kvack.org, =?UTF-8?B?SsOpcsO0bWU=?= Glisse , Daniel Vetter , Dan Williams , Linus Torvalds , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org 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 SGksCgpFbSBGcmksICA5IE9jdCAyMDIwIDA5OjU5OjI2ICswMjAwCkRhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+IGVzY3JldmV1OgoKPiBXYXkgYmFjayBpdCB3YXMgYSByZWFz b25hYmxlIGFzc3VtcHRpb25zIHRoYXQgaW9tZW0gbWFwcGluZ3MgbmV2ZXIKPiBjaGFuZ2UgdGhl IHBmbiByYW5nZSB0aGV5IHBvaW50IGF0LiBCdXQgdGhpcyBoYXMgY2hhbmdlZDoKPiAKPiAtIGdw dSBkcml2ZXJzIGR5bmFtaWNhbGx5IG1hbmFnZSB0aGVpciBtZW1vcnkgbm93YWRheXMsIGludmFs aWRhdGluZwo+IHB0ZXMgd2l0aCB1bm1hcF9tYXBwaW5nX3JhbmdlIHdoZW4gYnVmZmVycyBnZXQg bW92ZWQKPiAKPiAtIGNvbnRpZ3VvdXMgZG1hIGFsbG9jYXRpb25zIGhhdmUgbW92ZWQgZnJvbSBk ZWRpY2F0ZWQgY2FydmV0b3V0cyB0bwo+IGNtYSByZWdpb25zLiBUaGlzIG1lYW5zIGlmIHdlIG1p c3MgdGhlIHVubWFwIHRoZSBwZm4gbWlnaHQgY29udGFpbgo+IHBhZ2VjYWNoZSBvciBhbm9uIG1l bW9yeSAod2VsbCBhbnl0aGluZyBhbGxvY2F0ZWQgd2l0aCBHRlBfTU9WRUFCTEUpCj4gCj4gLSBl dmVuIC9kZXYvbWVtIG5vdyBpbnZhbGlkYXRlcyBtYXBwaW5ncyB3aGVuIHRoZSBrZXJuZWwgcmVx dWVzdHMgdGhhdAo+IGlvbWVtIHJlZ2lvbiB3aGVuIENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGlz IHNldCwgc2VlIDMyMzRhYzY2NGE4Nwo+ICgiL2Rldi9tZW06IFJldm9rZSBtYXBwaW5ncyB3aGVu IGEgZHJpdmVyIGNsYWltcyB0aGUgcmVnaW9uIikKPiAKPiBBY2Nlc3NpbmcgcGZucyBvYnRhaW5l ZCBmcm9tIHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3MgaXMKPiB0aGVyZWZvcmUg bm8gbG9uZ2VyIGEgZ29vZCBpZGVhLgo+IAo+IFVuZm9ydHVuYXRlbHkgdGhlcmUncyBzb21lIHVz ZXJzIHdoZXJlIHRoaXMgaXMgbm90IGZpeGFibGUgKGxpa2UgdjRsCj4gdXNlcnB0ciBvZiBpb21l bSBtYXBwaW5ncykgb3IgaW52b2x2ZXMgYSBwaWxlIG9mIHdvcmsgKHZmaW8gdHlwZTEKPiBpb21t dSkuIEZvciBub3cgYW5ub3RhdGUgdGhlc2UgYXMgdW5zYWZlIGFuZCBzcGxhdCBhcHByb3ByaWF0 ZWx5Lgo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBhbiB1bnNhZmVfZm9sbG93X3Bmbiwgd2hpY2ggbGF0 ZXIgcGF0Y2hlcyB3aWxsIHRoZW4KPiByb2xsIG91dCB0byBhbGwgYXBwcm9wcmlhdGUgcGxhY2Vz LgoKTkFDSywgYXMgdGhpcyBicmVha3MgYW4gZXhpc3RpbmcgdXNlcnNwYWNlIEFQSSBvbiBtZWRp YS4KCldoaWxlIEkgYWdyZWUgdGhhdCB1c2luZyB0aGUgdXNlcnB0ciBvbiBtZWRpYSBpcyBzb21l dGhpbmcgdGhhdApuZXcgZHJpdmVycyBtYXkgbm90IHN1cHBvcnQsIGFzIERNQUJVRiBpcyBhIGJl dHRlciB3YXkgb2YKaGFuZGxpbmcgaXQsIGNoYW5naW5nIHRoaXMgZm9yIGV4aXN0aW5nIG9uZXMg aXMgYSBiaWcgbm8sIAphcyBpdCBtYXkgYnJlYWsgdXNlcnNhcGFjZS4KClRoZSByaWdodCBhcHBy b2FjaCBoZXJlIHdvdWxkIGJlIHRvIGJlIGFibGUgdG8gZmluZS10dW5lCnN1cHBvcnQgZm9yIGl0 IG9uIGEgcGVyLWRyaXZlciBiYXNpcywgZS4gZy4gZGlzYWJsaW5nIHN1Y2gKZmVhdHVyZSBvbmx5 IGZvciBkcml2ZXJzIHRoYXQgd291bGQgdXNlIGEgbW92YWJsZSBwYWdlLgoKVGhlIG1lZGlhIHN1 YnN5c3RlbSBoYXMgYWxyZWFkeSBhIHdheSB0byBkaXNhYmxlIFVTRVJQVFIKc3VwcG9ydCBmcm9t IFZCMi4gdGhlIHJpZ2h0IGFwcHJvYWNoIHdvdWxkIGJlIHRvIGVuc3VyZQp0aGF0IG5ld2VyIGRy aXZlcnMgd2lsbCBvbmx5IHNldCB0aGlzIGlmIHRoZXkgd29uJ3QgdXNlCm1vdmFibGUgcGFnZXMu CgpSZWdhcmRzLApNYXVybwoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGludGVsLmNvbT4KPiBDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+ Cj4gQ2M6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgo+IENjOiBEYW4gV2lsbGlh bXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiBDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KPiBDYzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEu Y29tPgo+IENjOiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiBDYzogSmFu IEthcmEgPGphY2tAc3VzZS5jej4KPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0Bp bnRlbC5jb20+Cj4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+IENjOiBsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgtc2Ftc3VuZy1zb2NAdmdlci5rZXJuZWwu b3JnCj4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwo+IENjOiBrdm1Admdlci5rZXJu ZWwub3JnCj4gLS0tCj4gIGluY2x1ZGUvbGludXgvbW0uaCB8ICAyICsrCj4gIG1tL21lbW9yeS5j ICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIG1tL25vbW11 LmMgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCj4gIHNlY3VyaXR5L0tjb25maWcgICB8 IDEzICsrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1 ZGUvbGludXgvbW0uaAo+IGluZGV4IDJhMTY2MzFjMWZkYS4uZWM4YzkwOTI4ZmM5IDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvbW0uaAo+IEBA IC0xNjUzLDYgKzE2NTMsOCBAQCBpbnQgZm9sbG93X3B0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAq bW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiAgCQkgICBwdGVfdCAqKnB0ZXBwLCBwbWRfdCAq KnBtZHBwLCBzcGlubG9ja190ICoqcHRscCk7Cj4gIGludCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCj4gIAl1bnNpZ25lZCBsb25n ICpwZm4pOwo+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiArCQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4p Owo+ICBpbnQgZm9sbG93X3BoeXMoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVk IGxvbmcgYWRkcmVzcywKPiAgCQl1bnNpZ25lZCBpbnQgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgKnBy b3QsIHJlc291cmNlX3NpemVfdCAqcGh5cyk7Cj4gIGludCBnZW5lcmljX2FjY2Vzc19waHlzKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gZGlmZiAtLWdp dCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKPiBpbmRleCBmN2NiYzRkZGUwZWYuLjdjN2Iy MzRmZmIyNCAxMDA2NDQKPiAtLS0gYS9tbS9tZW1vcnkuYwo+ICsrKyBiL21tL21lbW9yeS5jCj4g QEAgLTQ4MjEsNyArNDgyMSwxMiBAQCBFWFBPUlRfU1lNQk9MKGZvbGxvd19wdGVfcG1kKTsKPiAg ICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNzCj4gICAqIEBwZm46IGxvY2F0aW9uIHRv IHN0b3JlIGZvdW5kIFBGTgo+ICAgKgo+IC0gKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLgo+ICsgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLiBOb3RlIHRoYXQgY2FsbGVycyBtdXN0Cj4gKyAqIGVuc3Vy ZSBjb2hlcmVuY3kgd2l0aCBwdGUgdXBkYXRlcyBieSB1c2luZyBhICZtbXVfbm90aWZpZXIgdG8g Zm9sbG93IHVwZGF0ZXMuCj4gKyAqIElmIHRoaXMgaXMgbm90IGZlYXNpYmxlLCBvciB0aGUgYWNj ZXNzIHRvIHRoZSBAcGZuIGlzIG9ubHkgdmVyeSBzaG9ydCB0ZXJtLAo+ICsgKiB1c2UgZm9sbG93 X3B0ZV9wbWQoKSBpbnN0ZWFkIGFuZCBob2xkIHRoZSBwYWdldGFibGUgbG9jayBmb3IgdGhlIGR1 cmF0aW9uIG9mCj4gKyAqIHRoZSBhY2Nlc3MgaW5zdGVhZC4gQW55IGNhbGxlciBub3QgZm9sbG93 aW5nIHRoZXNlIHJlcXVpcmVtZW50cyBtdXN0IHVzZQo+ICsgKiB1bnNhZmVfZm9sbG93X3Bmbigp IGluc3RlYWQuCj4gICAqCj4gICAqIFJldHVybjogemVybyBhbmQgdGhlIHBmbiBhdCBAcGZuIG9u IHN1Y2Nlc3MsIC12ZSBvdGhlcndpc2UuCj4gICAqLwo+IEBAIC00ODQ0LDYgKzQ4NDksMzEgQEAg aW50IGZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcg YWRkcmVzcywKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGZvbGxvd19wZm4pOwo+ICAKPiArLyoqCj4g KyAqIHVuc2FmZV9mb2xsb3dfcGZuIC0gbG9vayB1cCBQRk4gYXQgYSB1c2VyIHZpcnR1YWwgYWRk cmVzcwo+ICsgKiBAdm1hOiBtZW1vcnkgbWFwcGluZwo+ICsgKiBAYWRkcmVzczogdXNlciB2aXJ0 dWFsIGFkZHJlc3MKPiArICogQHBmbjogbG9jYXRpb24gdG8gc3RvcmUgZm91bmQgUEZOCj4gKyAq Cj4gKyAqIE9ubHkgSU8gbWFwcGluZ3MgYW5kIHJhdyBQRk4gbWFwcGluZ3MgYXJlIGFsbG93ZWQu Cj4gKyAqCj4gKyAqIFJldHVybnMgemVybyBhbmQgdGhlIHBmbiBhdCBAcGZuIG9uIHN1Y2Nlc3Ms IC12ZSBvdGhlcndpc2UuCj4gKyAqLwo+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiArCXVuc2lnbmVkIGxv bmcgKnBmbikKPiArewo+ICsjaWZkZWYgQ09ORklHX1NUUklDVF9GT0xMT1dfUEZOCj4gKwlwcl9p bmZvKCJ1bnNhZmUgZm9sbG93X3BmbiB1c2FnZSByZWplY3RlZCwgc2VlIENPTkZJR19TVFJJQ1Rf Rk9MTE9XX1BGTlxuIik7Cj4gKwlyZXR1cm4gLUVJTlZBTDsKPiArI2Vsc2UKPiArCVdBUk5fT05D RSgxLCAidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2VcbiIpOwo+ICsJYWRkX3RhaW50KFRBSU5UX1VT RVIsIExPQ0tERVBfU1RJTExfT0spOwo+ICsKPiArCXJldHVybiBmb2xsb3dfcGZuKHZtYSwgYWRk cmVzcywgcGZuKTsKPiArI2VuZGlmCj4gK30KPiArRVhQT1JUX1NZTUJPTCh1bnNhZmVfZm9sbG93 X3Bmbik7Cj4gKwo+ICAjaWZkZWYgQ09ORklHX0hBVkVfSU9SRU1BUF9QUk9UCj4gIGludCBmb2xs b3dfcGh5cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPiAgCQl1bnNpZ25lZCBsb25nIGFk ZHJlc3MsIHVuc2lnbmVkIGludCBmbGFncywKPiBkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21t L25vbW11LmMKPiBpbmRleCA3NWEzMjcxNDlhZjEuLjNkYjI5MTBmMGQ2NCAxMDA2NDQKPiAtLS0g YS9tbS9ub21tdS5jCj4gKysrIGIvbW0vbm9tbXUuYwo+IEBAIC0xMzIsNiArMTMyLDIzIEBAIGlu dCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChmb2xsb3dfcGZuKTsKPiAgCj4gKy8qKgo+ICsg KiB1bnNhZmVfZm9sbG93X3BmbiAtIGxvb2sgdXAgUEZOIGF0IGEgdXNlciB2aXJ0dWFsIGFkZHJl c3MKPiArICogQHZtYTogbWVtb3J5IG1hcHBpbmcKPiArICogQGFkZHJlc3M6IHVzZXIgdmlydHVh bCBhZGRyZXNzCj4gKyAqIEBwZm46IGxvY2F0aW9uIHRvIHN0b3JlIGZvdW5kIFBGTgo+ICsgKgo+ ICsgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZOIG1hcHBpbmdzIGFyZSBhbGxvd2VkLgo+ ICsgKgo+ICsgKiBSZXR1cm5zIHplcm8gYW5kIHRoZSBwZm4gYXQgQHBmbiBvbiBzdWNjZXNzLCAt dmUgb3RoZXJ3aXNlLgo+ICsgKi8KPiAraW50IHVuc2FmZV9mb2xsb3dfcGZuKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCj4gKwl1bnNpZ25lZCBsb25n ICpwZm4pCj4gK3sKPiArCXJldHVybiBmb2xsb3dfcGZuKHZtYSwgYWRkcmVzcywgcGZuKTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MKHVuc2FmZV9mb2xsb3dfcGZuKTsKPiArCj4gIExJU1RfSEVBRCh2 bWFwX2FyZWFfbGlzdCk7Cj4gIAo+ICB2b2lkIHZmcmVlKGNvbnN0IHZvaWQgKmFkZHIpCj4gZGlm ZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCj4gaW5kZXggNzU2 MWY2Zjk5ZjFkLi40ODk0NTQwMmUxMDMgMTAwNjQ0Cj4gLS0tIGEvc2VjdXJpdHkvS2NvbmZpZwo+ ICsrKyBiL3NlY3VyaXR5L0tjb25maWcKPiBAQCAtMjMwLDYgKzIzMCwxOSBAQCBjb25maWcgU1RB VElDX1VTRVJNT0RFSEVMUEVSX1BBVEgKPiAgCSAgSWYgeW91IHdpc2ggZm9yIGFsbCB1c2VybW9k ZSBoZWxwZXIgcHJvZ3JhbXMgdG8gYmUgZGlzYWJsZWQsCj4gIAkgIHNwZWNpZnkgYW4gZW1wdHkg c3RyaW5nIGhlcmUgKGkuZS4gIiIpLgo+ICAKPiArY29uZmlnIFNUUklDVF9GT0xMT1dfUEZOCj4g Kwlib29sICJEaXNhYmxlIHVuc2FmZSB1c2Ugb2YgZm9sbG93X3BmbiIKPiArCWRlcGVuZHMgb24g TU1VCj4gKwloZWxwCj4gKwkgIFNvbWUgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsIGZvbGxv d3MgdXNlcnNwYWNlIG1hcHBpbmdzIHRvIGlvbWVtCj4gKwkgIHJhbmdlcyBpbiBhbiB1bnNhZmUg bWF0dGVyLiBFeGFtcGxlcyBpbmNsdWRlIHY0bCB1c2VycHRyIGZvciB6ZXJvLWNvcHkKPiArCSAg YnVmZmVycyBzaGFyaW5nLgo+ICsKPiArCSAgSWYgdGhpcyBvcHRpb24gaXMgc3dpdGNoZWQgb24s IHN1Y2ggYWNjZXNzIGlzIHJlamVjdGVkLiBPbmx5IGVuYWJsZQo+ICsJICB0aGlzIG9wdGlvbiB3 aGVuIHlvdSBtdXN0IHJ1biB1c2Vyc3BhY2Ugd2hpY2ggcmVxdWlyZXMgdGhpcy4KPiArCj4gKwkg IElmIGluIGRvdWJ0LCBzYXkgWS4KPiArCj4gIHNvdXJjZSAic2VjdXJpdHkvc2VsaW51eC9LY29u ZmlnIgo+ICBzb3VyY2UgInNlY3VyaXR5L3NtYWNrL0tjb25maWciCj4gIHNvdXJjZSAic2VjdXJp dHkvdG9tb3lvL0tjb25maWciCgoKClRoYW5rcywKTWF1cm8KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK