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 6C174C531C9 for ; Sat, 25 Jul 2026 05:12: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-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XQN4Axj5TEUswJJ9N0sbLLtgFFYuCW+C+oTAMkGJkME=; b=dSUGrdDimSYbSD Tv7GQZV7UsVPgk7ozSrlnfqJ79A8XOKLFTaBuDAp5mjW0K9qoaD2RV714dUc+IPjjrgh5XJuIUN7x C8YCA15QyM299u1CdjFTIsFywyUKFDJxbpi6tK+kxgMa3GURH2jOBvI5MtuAP4D+nzg0VGeOFQ9Jw pOJdzG1qFafuEA8qAX+lXjPw5w3KTdtQXs58rN0TfSGDbyE92Nq27qDc2WTJ2cjT/Cjqg893qBEXT 8ke1atwXjG1c2FCOAYB3CDYji2BNGhI7FarpXbQQrbDoHP5WJ3XMffVPKPjxLo58apUHV4cbJTwKn Vb5ZXin0f/EtAlY79Lrw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wnUgL-000000003QA-0XSv; Sat, 25 Jul 2026 05:12:17 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wnUgJ-000000003Pv-0a2J for linux-phy@lists.infradead.org; Sat, 25 Jul 2026 05:12:15 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 593D660A77; Sat, 25 Jul 2026 05:12:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B68071F000E9; Sat, 25 Jul 2026 05:12:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784956334; bh=XQZ5fDiybyEGP8+U2le8dvWGHm1FN2dJmHu5WkRFyh4=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=htSORMHcbZGC8SYSpGIolBj4nKXd10WPzJQlBjsDb+ncoP17jT7IPlpRQig2MTy// gLni28P2EehsiKEFFWZCQ+2qmRH7otCA4WAYF1nU6cMp4qbVuuL9k5EPk+phrgGuoO UhMaU4gPLGclAPP/RnL6m91OYtSGPAxhpW11p6Q6OuuJTqj7YPaQmQ8PEp69OPKxLF /IuDWQC5RIA0tZReh/FRT1GMslzBYtsJE3OpAiDrz+lC2a6ri37x67Hdy7HGwZ28AB f7/Temi/MPPUjgNMlvthwEyO2TAwemlAlZRzmCe9KkN6vuOnUqPnUath2mpvDZzVGS YbLIIxjAF67xQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH RESEND 09/17] drm/spacemit: add Saturn DPU hardware backend To: "Cody Kang" Cc: olteanv@gmail.com, devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, vkoul@kernel.org, dri-devel@lists.freedesktop.org, linux-phy@lists.infradead.org In-Reply-To: <20260725-k3-display-v1-9-6de34d80e86c@gmail.com> References: <20260725-k3-display-v1-0-6de34d80e86c@gmail.com> <20260725-k3-display-v1-9-6de34d80e86c@gmail.com> Date: Sat, 25 Jul 2026 05:12:13 +0000 Message-Id: <20260725051213.B68071F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MTEgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtIaWdoXSBTbGVlcGluZyBtZW1v cnkgYWxsb2NhdGlvbnMgKGBHRlBfS0VSTkVMYCkgaW4gYXRvbWljIGNvbnRleHQgcGxhbmUgYW5k IENSVEMgdXBkYXRlIHBhdGhzLCB3aXRoIGEgc2lsZW50IGZhbGxiYWNrIHRoYXQgYnJlYWtzIGF0 b21pYyB1cGRhdGUgc2VtYW50aWNzLgotIFtIaWdoXSBTbGVlcGluZyBkZWxheSBmdW5jdGlvbiAo YHVzbGVlcF9yYW5nZWApIHVzZWQgaW4gQ1JUQyBhdG9taWMgZW5hYmxlIGNvbnRleHQuCi0gW0hp Z2hdIFVuY29uZGl0aW9uYWwgZGVyZWZlcmVuY2Ugb2YgYHN0YXRlLT5mYmAgZm9yIGRpc2FibGVk IG9yIHNvbGlkLWZpbGwgcGxhbmVzLgotIFtIaWdoXSBSYWNlIGNvbmRpdGlvbiBiZXR3ZWVuIHRo ZSBjb25maWd1cmF0aW9uIHRpbWVyIGhhbmRsZXIgYW5kIHRoZSBWU1lOQyBJU1IgbGVhZHMgdG8g YSBkb3VibGUgYGRybV9jcnRjX3ZibGFua19wdXRgIGFuZCByZWZjb3VudCB1bmRlcmZsb3cuCi0g W0hpZ2hdIFRoZSBgY2ZnX3JkeV90aW1lcmAgaXMgbm90IHN5bmNocm9ub3VzbHkgY2FuY2VsZWQg d2hlbiB0aGUgRFBVIGhhcmR3YXJlIGlzIHVuaW5pdGlhbGl6ZWQgb3IgZGlzYWJsZWQuCi0gW0hp Z2hdIGByb3dfZW9mX3RhZ2AgYW5kIHVuLXN0cm9iZWQgYG1vZHVsZV9yZWdzYCBhcmUgbGVmdCB1 bmluaXRpYWxpemVkIGluIGBzYXR1cm5faGVlX2NtZGxpc3RfZmlsbF9kYXRhX3JvdygpYC4KLSBb SGlnaF0gQWNjZXNzaW5nIGBjcnRjLT5zdGF0ZS0+ZXZlbnRgIGZyb20gdGhlIFZCTEFOSyBpbnRl cnJ1cHQgaGFuZGxlciByYWNlcyB3aXRoIGNvbmN1cnJlbnQgbm9uLWJsb2NraW5nIGF0b21pYyBj b21taXRzLCBjYXVzaW5nIGxlYWtlZCBhbmQgcHJlbWF0dXJlIGV2ZW50cy4KLSBbSGlnaF0gQ29t bWFuZCBsaXN0IGxlbmd0aCBjb3VudGVyIGRlc3luY2hyb25pemF0aW9uIGxlYWRzIHRvIG1pc3Np bmcgRU9GIHRhZ3MgYW5kIGRpc3BsYXkgaGFuZ3MuCi0gW0hpZ2hdIFJETUEgaGFyZHdhcmUgY29u ZmlndXJhdGlvbiBpcyB3cml0dGVuIHRvIGEgc2hhcmVkIHN0YWdpbmcgYnVmZmVyIGJ1dCBpcyBu ZXZlciBwYWNrZWQgaW50byB0aGUgRE1BIGNvbW1hbmQgbGlzdCwgY2F1c2luZyB1cGRhdGVzIHRv IGJlIGRyb3BwZWQgb3Igb3ZlcndyaXR0ZW4uCi0gW01lZGl1bV0gYGRwdV9ydW4oKWAgaWdub3Jl cyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBkcm1fY3J0Y192YmxhbmtfZ2V0KClgLCBwb3RlbnRpYWxs eSBsZWFkaW5nIHRvIHJlZmNvdW50IHVuZGVyZmxvdy4KLSBbTWVkaXVtXSBVc2luZyBDIGJpdGZp ZWxkcyBmb3IgRE1BLXNoYXJlZCBoYXJkd2FyZSBkZXNjcmlwdG9ycyAoYHN0cnVjdCBjbWRsaXN0 X2hlYWRlcmAgYW5kIGBzdHJ1Y3QgY21kbGlzdF9yb3dgKSBsZWFkcyB0byBjb21waWxlci1kZXBl bmRlbnQgbWVtb3J5IGxheW91dCBhbmQgYnJlYWtzIG9uIGRpZmZlcmVudCBlbmRpYW5uZXNzZXMu Ci0tCgotLS0gUGF0Y2ggWzldOiBbUEFUQ0ggUkVTRU5EIDA5LzE3XSBkcm0vc3BhY2VtaXQ6IGFk ZCBTYXR1cm4gRFBVIGhhcmR3YXJlIGJhY2tlbmQgLS0tCmNvbW1pdCA1MWJmZjgxNzZiNzVkMTNm M2FhNzVjMzlkNTIwODNlZDI1ZTEyMWMwCkF1dGhvcjogQ29keSBLYW5nIDxjb2R5a2FuZy5oa0Bn bWFpbC5jb20+CkRhdGU6ICAgU2F0IEp1bCAyNSAwNDo1MToxOCAyMDI2ICswMDAwCgogICAgZHJt L3NwYWNlbWl0OiBhZGQgU2F0dXJuIERQVSBoYXJkd2FyZSBiYWNrZW5kCiAgICAKICAgIEFkZCB0 aGUgcmVnaXN0ZXItbGV2ZWwgcHJvZ3JhbW1pbmcgb2Ygb25lIFNhdHVybiBpbnN0YW5jZTogY2xv Y2sgYW5kCiAgICByZXNldCBicmluZy11cCwgc2NlbmUgY29udHJvbCBhbmQgdGltaW5nIGdlbmVy YXRvciBzZXR1cCwgUkRNQSBjaGFubmVsCiAgICBhbmQgY29tcG9zZXIgbGF5ZXIgcHJvZ3JhbW1p bmcsIEZCQyBsaW5lLWJ1ZmZlciBidWRnZXRpbmcsIGludGVycnVwdAogICAgZGlzcGF0Y2ggYW5k IHRoZSBjZmctcmVhZHkvdnN5bmMgaGFuZHNoYWtlIHRoYXQgcGFjZXMgY29tbWl0cy4KCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zcGFjZW1pdC9kcHUvZHB1X3NhdHVybi5jIGIvZHJp dmVycy9ncHUvZHJtL3NwYWNlbWl0L2RwdS9kcHVfc2F0dXJuLmMKPiBpbmRleCA4ZDVmMTNiYzUz NzNjLi4uLi4KPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0 L2RwdS9kcHVfc2F0dXJuLmMKWyAuLi4gXQo+ICt2b2lkIHNwYWNlbWl0X2NmZ19yZHlfdGltZXJf aGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKPiArewpbIC4uLiBdCj4gKwlzcGluX2xvY2tf aXJxc2F2ZSgmZHJtLT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gKwlldmVudCA9IGNydGMtPnN0YXRl LT5ldmVudDsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIHJhY2Ugd2l0aCBjb25jdXJyZW50 IG5vbi1ibG9ja2luZyBhdG9taWMgY29tbWl0cz8gCgpUaGUgRFJNIGNvcmUncyBhdG9taWMgaGVs cGVycyBzeW5jaHJvbm91c2x5IHN3YXAgdGhlIGNydGMtPnN0YXRlIHBvaW50ZXIKZHVyaW5nIHRo ZSBjb21taXQgcGhhc2UgYmVmb3JlIHRoZSBoYXJkd2FyZSdzIFZCTEFOSyBpbnRlcnJ1cHQgZmly ZXMuIElmIHR3bwpub24tYmxvY2tpbmcgY29tbWl0cyBhcmUgaXNzdWVkIGJhY2stdG8tYmFjaywg dGhlIHNlY29uZCBjb21taXQgc3dhcHMKY3J0Yy0+c3RhdGUgdG8gaXRzIG5ldyBzdGF0ZS4KCldo ZW4gdGhlIGZpcnN0IGNvbW1pdCdzIFZCTEFOSyBmaXJlcyAob3IgdGhpcyB0aW1lciBoYW5kbGVy IGV4ZWN1dGVzKSwgcmVhZGluZwpjcnRjLT5zdGF0ZS0+ZXZlbnQgcHJlbWF0dXJlbHkgY29uc3Vt ZXMgdGhlIHNlY29uZCBjb21taXQncyBldmVudCwgbGVha2luZwp0aGUgZmlyc3QgY29tbWl0J3Mg ZXZlbnQuIFNob3VsZCB0aGUgZXZlbnQgYmUgc3RvcmVkIGluIGEgZHJpdmVyLXByaXZhdGUgQ1JU QwpzdHJ1Y3R1cmUgaW5zdGVhZD8KCj4gKwlpZiAoZXZlbnQpIHsKPiArCQljcnRjLT5zdGF0ZS0+ ZXZlbnQgPSBOVUxMOwo+ICsJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KGNydGMsIGV2ZW50 KTsKPiArCX0KPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRybS0+ZXZlbnRfbG9jaywgZmxh Z3MpOwo+ICsKPiArCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7Cj4gK30KWyAuLi4gXQo+ICtz dGF0aWMgaW50IGRwdV9pbml0KHN0cnVjdCBzcGFjZW1pdF9jcnRjICphX2NydGMpCj4gK3sKPiAr CXVuc2lnbmVkIGludCB0aW1lb3V0ID0gMTAwMDsKPiArCXN0cnVjdCBzcGFjZW1pdF9kcm1fcHJp dmF0ZSAqcHJpdiA9IGFfY3J0Yy0+Y3J0Yy5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IHNw YWNlbWl0X2h3X2RldmljZSAqaHdkZXYgPSBwcml2LT5od2RldjsKPiArCj4gKwlpZiAoIWFfY3J0 Yy0+Y2xvY2tzX29uKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXdoaWxlICh0aW1lb3V0KSB7Cj4g KwkJaWYgKGh3ZGV2LT5nZXRfY2ZnX3JkeShhX2NydGMsIGh3ZGV2KSA9PSAwKQo+ICsJCQlicmVh azsKPiArCQl1c2xlZXBfcmFuZ2UoMTAwLCAyMDApOwoKW1NldmVyaXR5OiBIaWdoXQpJcyBpdCBz YWZlIHRvIHVzZSBhIHNsZWVwaW5nIGRlbGF5IGZ1bmN0aW9uIGhlcmU/CgpkcHVfaW5pdCgpIGlz IGhvb2tlZCB0byB0aGUgLmluaXQgY2FsbGJhY2sgb2YgZHB1X2NvcmVfb3BzLCB3aGljaApleGVj dXRlcyBkdXJpbmcgdGhlIENSVEMgYXRvbWljIGVuYWJsZSBwaGFzZS4gVGhlIERSTSBzdWJzeXN0 ZW0gZ3VpZGVsaW5lcwpleHBsaWNpdGx5IHN0YXRlIHRoYXQgQ1JUQyBhdG9taWMgZW5hYmxlIGNh bGxiYWNrcyBydW4gaW4gYXRvbWljIGNvbnRleHQKd2hlcmUgc2xlZXBpbmcgaXMgc3RyaWN0bHkg Zm9yYmlkZGVuLiAKCldpbGwgdGhpcyB0cmlnZ2VyIGEgInNjaGVkdWxpbmcgd2hpbGUgYXRvbWlj IiBwYW5pYz8KCj4gKwkJdGltZW91dC0tOwo+ICsJfQo+ICsJaWYgKHRpbWVvdXQgPT0gMCkKPiAr CQlkcm1fZXJyKGFfY3J0Yy0+Y3J0Yy5kZXYsICJ3YWl0IGZvciBjZmcgcmVhZHkgdGltZWQgb3V0 XG4iKTsKPiArCj4gKwlod2Rldi0+ZHB1X2luaXQoYV9jcnRjKTsKPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArc3RhdGljIHZvaWQgZHB1X3VuaW5pdChzdHJ1Y3Qgc3BhY2VtaXRfY3J0YyAq YV9jcnRjKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3BhY2VtaXRfZHJtX3ByaXZhdGUgKnByaXYgPSBhX2Ny dGMtPmNydGMuZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBzcGFjZW1pdF9od19kZXZpY2Ug Kmh3ZGV2ID0gcHJpdi0+aHdkZXY7Cj4gKwo+ICsJaWYgKCFhX2NydGMtPmNsb2Nrc19vbikKPiAr CQlyZXR1cm47Cj4gKwo+ICsJdHJhY2VfZHB1X3VuaW5pdChhX2NydGMtPmRldl9pZCk7Cj4gKwlo d2Rldi0+aXJxX2VuYWJsZShhX2NydGMsIGZhbHNlKTsKPiArfQoKW1NldmVyaXR5OiBIaWdoXQpE b2VzIHRoaXMgdW5pbml0aWFsaXphdGlvbiBwYXRoIG5lZWQgdG8gY2FuY2VsIHRoZSBjb25maWd1 cmF0aW9uIHRpbWVyPwoKc2F0dXJuX2N0cmxfY2ZnX3JlYWR5KCkgYXJtcyBhX2NydGMtPmNmZ19y ZHlfdGltZXIgd2hlbiB0aGUgRFBVIGlzIHN0YXJ0ZWQuCklmIHRoZSBkaXNwbGF5IHBpcGVsaW5l IGlzIGRpc2FibGVkIGJlZm9yZSB0aGUgaGFyZHdhcmUgcmFpc2VzIHRoZSBDRkdfUkRZCmludGVy cnVwdCwgdGhpcyB0aW1lciB3aWxsIHJlbWFpbiBhY3RpdmUgYW5kIGNvdWxkIGZpcmUgYXN5bmNo cm9ub3VzbHkgYWZ0ZXIKc2h1dGRvd24uCgpDYW4gdGhpcyBsZWFkIHRvIHNwdXJpb3VzIHRpbWVv dXQgZXJyb3JzLCBpbmNvcnJlY3QgdmJsYW5rIHJlZmVyZW5jZSBkZWNyZW1lbnRzLApvciBhIHVz ZS1hZnRlci1mcmVlIGlmIHRoZSBDUlRDIG9iamVjdCBpcyBkZXN0cm95ZWQgYmVmb3JlIHRoZSB0 aW1lciBpcwpjYW5jZWxlZD8KCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBkcHVfaXNyX3ZibGFuayhz dHJ1Y3Qgc3BhY2VtaXRfY3J0YyAqYV9jcnRjLCBib29sICpmbGlwKQo+ICt7ClsgLi4uIF0KPiAr CXNwaW5fbG9jaygmZHJtLT5ldmVudF9sb2NrKTsKPiArCWV2ZW50ID0gY3J0Yy0+c3RhdGUtPmV2 ZW50OwoKW1NldmVyaXR5OiBIaWdoXQpDYW4gdGhpcyByZWFkIHRoZSB3cm9uZyBldmVudCBwb2lu dGVyPwoKU2ltaWxhciB0byB0aGUgdGltZXIgaGFuZGxlciBhYm92ZSwgYWNjZXNzaW5nIGNydGMt PnN0YXRlLT5ldmVudCByYWNlcyB3aXRoCmNvbmN1cnJlbnQgbm9uLWJsb2NraW5nIGF0b21pYyBj b21taXRzIHRoYXQgc3dhcCB0aGUgY3J0Yy0+c3RhdGUgcG9pbnRlci4KSWYgYSBuZXcgY29tbWl0 IGlzIHF1ZXVlZCwgdGhpcyByZWFkcyB0aGUgbmV3IHN0YXRlJ3MgZXZlbnQgYW5kIGxlYWtzIHRo ZQpjdXJyZW50IGZsaXAncyBldmVudC4KCj4gKwlpZiAoZXZlbnQpIHsKWyAuLi4gXQo+ICtzdGF0 aWMgdTMyIGRwdV9vbmxpbmVfaXNyKHN0cnVjdCBzcGFjZW1pdF9jcnRjICphX2NydGMpCj4gK3sK WyAuLi4gXQo+ICsJaXJxX2JpdCA9IGh3ZGV2LT5nZXRfaXJxX2JpdChJTlRfQ0ZHX1JEWSwgZGV2 X2lkKTsKPiArCWlmIChpcnFfcmF3ICYgaXJxX2JpdCkgewo+ICsJCWh3ZGV2LT5jbHJfaW50X3N0 cyhhX2NydGMsIGlycV9iaXQsIGRldl9pZCk7Cj4gKwkJdHJhY2VfZHB1X2lzcl9zdGF0dXMoImNm Z19yZHlfY2xyIiwgaXJxX3JhdyAmIGlycV9iaXQpOwo+ICsJCS8qCj4gKwkJICogQSBmaXJlZCB3 YXRjaGRvZyBhbHJlYWR5IHNlbnQgdGhlIGV2ZW50IGFuZCBwdXQgdGhpcyBmbGlwJ3MKPiArCQkg KiB2YmxhbmsgcmVmZXJlbmNlOyByZS1hcm1pbmcgdGhlIHZzeW5jIHBhdGggd291bGQgcHV0IHR3 aWNlLgo+ICsJCSAqLwo+ICsJCWlmICh0aW1lcl9kZWxldGUoJmFfY3J0Yy0+Y2ZnX3JkeV90aW1l cikpCj4gKwkJCWFfY3J0Yy0+ZmxpcF9kb25lID0gZmFsc2U7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRv ZXMgdXNpbmcgdGhlIG5vbi1ibG9ja2luZyB0aW1lcl9kZWxldGUoKSByZXR1cm4gdmFsdWUgY3Jl YXRlIGEgcmFjZQpjb25kaXRpb24/CgpJZiB0aW1lcl9kZWxldGUoKSByZXR1cm5zIDAgKGUuZy4s IGJlY2F1c2UgdGhlIGNhbGxiYWNrIGlzIGFjdGl2ZWx5IGV4ZWN1dGluZwpvbiBhbm90aGVyIENQ VSksIGl0IGxlYXZlcyBhX2NydGMtPmZsaXBfZG9uZSB1bm1vZGlmaWVkLiAKClRoZSBJU1IgdGhl biBwcm9jZXNzZXMgSU5UX1ZTWU5DIGFuZCBjYWxscyBkcHVfaXNyX3ZibGFuaygpLCB3aGljaCBy ZWFkcwpmbGlwX2RvbmUgPT0gZmFsc2UsIHNldHMgaXQgdG8gdHJ1ZSwgYW5kIGNhbGxzIGRybV9j cnRjX3ZibGFua19wdXQoKS4KQ29uY3VycmVudGx5LCB0aGUgdGltZXIgaGFuZGxlciBydW5zLCBz ZXRzIGZsaXBfZG9uZSA9IHRydWUsIGFuZCBhbHNvCnVuY29uZGl0aW9uYWxseSBjYWxscyBkcm1f Y3J0Y192YmxhbmtfcHV0KCkuIAoKQ291bGQgdGhpcyBsZWFkIHRvIGEgZG91YmxlIHZibGFuayBw dXQgYW5kIHJlZmNvdW50IHVuZGVyZmxvdz8KCj4gKwkJYV9jcnRjLT51cl9yZXBvcnRlZCA9IGZh bHNlOwpbIC4uLiBdCj4gK3N0YXRpYyB2b2lkIGRwdV9ydW4oc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICsJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9zdGF0ZSkKPiArewo+ICsJc3Ry dWN0IHNwYWNlbWl0X2NydGMgKmFfY3J0YyA9IHRvX3NwYWNlbWl0X2NydGMoY3J0Yyk7Cj4gKwlz dHJ1Y3Qgc3BhY2VtaXRfZHJtX3ByaXZhdGUgKnByaXYgPSBhX2NydGMtPmNydGMuZGV2LT5kZXZf cHJpdmF0ZTsKPiArCXN0cnVjdCBzcGFjZW1pdF9od19kZXZpY2UgKmh3ZGV2ID0gcHJpdi0+aHdk ZXY7Cj4gKwo+ICsJdHJhY2VfZHB1X3J1bihhX2NydGMtPmRldl9pZCk7Cj4gKwo+ICsJaWYgKGh3 ZGV2LT5jb25mX2RwdWN0cmwpCj4gKwkJaHdkZXYtPmNvbmZfZHB1Y3RybChjcnRjLCBvbGRfc3Rh dGUpOwo+ICsKPiArCS8qIGZsdXNoIGFsbCBjb25maWcgcmVnaXN0ZXIgd3JpdGVzIGJlZm9yZSBD RkdfUkRZIGlzIHJhaXNlZCAqLwo+ICsJbWIoKTsKPiArCj4gKwlkcm1fY3J0Y192YmxhbmtfZ2V0 KGNydGMpOwoKW1NldmVyaXR5OiBNZWRpdW1dClNob3VsZCB0aGUgcmV0dXJuIHZhbHVlIG9mIGRy bV9jcnRjX3ZibGFua19nZXQoKSBiZSBjaGVja2VkPwoKZHJtX2NydGNfdmJsYW5rX2dldCgpIGNh biBmYWlsIChlLmcuLCBpZiB2YmxhbmsgaW50ZXJydXB0cyBhcmUgdW5pbml0aWFsaXplZApvciBk aXNhYmxlZCksIHJldHVybmluZyBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgd2l0aG91dCBpbmNyZW1l bnRpbmcgdGhlIHZibGFuawpyZWZlcmVuY2UgY291bnQuIAoKQnkgaWdub3JpbmcgdGhpcyByZXR1 cm4gdmFsdWUsIHRoaXMgZnVuY3Rpb24gcHJvY2VlZHMgYXMgaWYgdGhlIHJlZmVyZW5jZSB3YXMK c3VjY2Vzc2Z1bGx5IGFjcXVpcmVkLiBXaGVuIHRoZSBoYXJkd2FyZSBpbnRlcnJ1cHQgb3IgdGlt ZW91dCBsYXRlciB0cmlnZ2VycywKdGhleSB1bmNvbmRpdGlvbmFsbHkgY2FsbCBkcm1fY3J0Y192 YmxhbmtfcHV0KCksIHdoaWNoIGNvdWxkIGNhdXNlIGEgcmVmY291bnQKdW5kZXJmbG93LgoKPiAr CWlmIChod2Rldi0+ZW5hYmxlX2NmZ19pcnEpCj4gKwkJaHdkZXYtPmVuYWJsZV9jZmdfaXJxKGFf Y3J0YywgaHdkZXYsIHRydWUpOwo+ICsKPiArCXNhdHVybl9jdHJsX2NmZ19yZWFkeShhX2NydGMs IHRydWUpOwoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L2RwdS9kcHVf c2F0dXJuX2hlZS5jIGIvZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L2RwdS9kcHVfc2F0dXJuX2hl ZS5jCj4gaW5kZXggYzIzZTRjYTM2ZDI2Yi4uLi4uCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zcGFjZW1pdC9kcHUvZHB1X3NhdHVybl9oZWUuYwpbIC4uLiBdCj4gK3Zv aWQgc2F0dXJuX2hlZV9wbGFuZV91cGRhdGVfaHdfY2hhbm5lbChzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSkKPiArewpbIC4uLiBdCj4gKwkvKiBGb3Igc29saWQgY29sb3IgYm90aCBzcmNfdyBhbmQg c3JjX2ggYXJlIDAgKi8KPiArCWlmICghc29saWRfZW4pIHsKPiArCQliYXNlID0gUkRNQV9CQVNF X0FERFJbcmRtYV9pZF07Cj4gKwkJLyogbGluZWFyIHNjYW5vdXQgb25seTogdGhlIEZCQyBkZWNv ZGUgcGF0aCBpcyBub3QgZXhwb3NlZCAqLwo+ICsJCWRwdV93cml0ZShod2RldiwgUkRNQV9QQVRI X1hfUkVHLCBiYXNlLCBsYXllcl9tb2RlLCAwLCBjbF9yZG1hKTsKCltTZXZlcml0eTogSGlnaF0K QXJlIHRoZXNlIFJETUEgaGFyZHdhcmUgY29uZmlndXJhdGlvbiB3cml0ZXMgZHJvcHBlZCBiZWNh dXNlIHRoZXkgYXJlIG5ldmVyCnBhY2tlZCBpbnRvIHRoZSBETUEgY29tbWFuZCBsaXN0PwoKVGhp cyB1c2VzIGFfY3J0Yy0+Y2xfcmRtYSB0byBzdGFnZSBoYXJkd2FyZSB3cml0ZXMgZm9yIHRoZSBS RE1BIGJsb2NrLgpIb3dldmVyLCB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGNhbGwgdG8gY21k bGlzdF9yZWdzX3BhY2tpbmcoKSBmb3IKY2xfcmRtYSB0byBjb21taXQgdGhlc2Ugd3JpdGVzIHRv IHRoZSBETUEtYmFja2VkIGNvbW1hbmQgbGlzdC4KClNpbmNlIGFfY3J0Yy0+Y2xfcmRtYSBpcyBh IHNpbmdsZSBzaGFyZWQgYnVmZmVyLCBkbyBzdWJzZXF1ZW50IHBsYW5lIHVwZGF0ZXMKb3Zlcndy aXRlIHRoZSBzdGFnZWQgc2V0dGluZ3Mgb2YgcHJldmlvdXMgcGxhbmVzLCBzaWxlbnRseSBjb3Jy dXB0aW5nIHRoZQpjb25maWd1cmF0aW9uIGFuZCBmYWlsaW5nIHRvIHByb2dyYW0gdGhlIGhhcmR3 YXJlPwoKPiArCQlkcHVfd3JpdGUoaHdkZXYsIFJETUFfUEFUSF9YX1JFRywgYmFzZSwgbGF5ZXJf Y21wc3JfaWQsClsgLi4uIF0KPiArCXN3aXRjaCAocGl4ZWxfYWxwaGEpIHsKPiArCWNhc2UgRFJN X01PREVfQkxFTkRfQ09WRVJBR0U6Cj4gKwkJYmxlbmRfbW9kZSA9IDB4MDsKPiArCQlicmVhazsK PiArCWNhc2UgRFJNX01PREVfQkxFTkRfUFJFTVVMVEk6Cj4gKwkJYmxlbmRfbW9kZSA9IDB4MTsK PiArCQlicmVhazsKPiArCWNhc2UgRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORToKPiArCQlibGVu ZF9tb2RlID0gMHgwOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlkcm1fZXJyKHBsYW5l LT5kZXYsICJ1bnN1cHBvcnRlZCBibGVuZCBtb2RlIGZvciBwaXhlbCBhbHBoYVxuIik7Cj4gKwl9 Cj4gKwo+ICsJaWYgKHN0YXRlLT5mYi0+Zm9ybWF0ICYmIHN0YXRlLT5mYi0+Zm9ybWF0LT5oYXNf YWxwaGEgJiYKCltTZXZlcml0eTogSGlnaF0KV2lsbCB0aGlzIHVuY29uZGl0aW9uYWxseSBkZXJl ZmVyZW5jZSBhIE5VTEwgcG9pbnRlciBmb3Igc29saWQtZmlsbCBwbGFuZXM/CgpEdXJpbmcgRFJN IGF0b21pYyBjb21taXRzLCBhIHBsYW5lJ3Mgc3RhdGUtPmZiIGlzIGZyZXF1ZW50bHkgTlVMTCAo ZS5nLiwgd2hlbgphIHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkLCBvciBmb3Igc29saWQgY29sb3Ig ZmlsbCBwbGFuZXMpLiAKCldoaWxlIHRoZSBlYXJsaWVyIGNvZGUgaGFuZGxlcyBzb2xpZCBmaWxs cyBieSBza2lwcGluZyB0aGUgUkRNQSBibG9jawooaWYgKCFzb2xpZF9lbikpLCB0aGlzIGJsb2Nr IGV2YWx1YXRlcyBzdGF0ZS0+ZmItPmZvcm1hdCB1bmNvbmRpdGlvbmFsbHksCndoaWNoIHdpbGwg Y2F1c2UgYSBrZXJuZWwgcGFuaWMgaWYgc3RhdGUtPmZiIGlzIE5VTEwuCgo+ICsJICAgIHBpeGVs X2FscGhhICE9IERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHsKPiArCQlpZiAoYWxwaGEgIT0g MHhmZikKPiArCQkJYWxwaGFfc2VsID0gMHgyOwo+ICsJCWVsc2UKPiArCQkJYWxwaGFfc2VsID0g MHgxOwo+ICsJfSBlbHNlIHsKPiArCQlibGVuZF9tb2RlID0gMHgwOwo+ICsJCWFscGhhX3NlbCA9 IDB4MDsKPiArCX0KPiArCj4gKwljbF9jbXAgPSBhbGxvY19jbWRsaXN0X3JlZ3MoQ01QU19YX1JF Ryk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNhbiB0aGlzIHRyaWdnZXIgYSAic2NoZWR1bGluZyB3aGls ZSBhdG9taWMiIHBhbmljIG9yIHNpbGVudCBmYWxsYmFjawpmYWlsdXJlcz8KCmFsbG9jX2NtZGxp c3RfcmVncygpIGlzIGEgbWFjcm8gdGhhdCB1c2VzIEdGUF9LRVJORUwgYWxsb2NhdGlvbnMKKGt6 YWxsb2Moc2l6ZW9mKCpjbCksIEdGUF9LRVJORUwpKS4gVGhpcyBwbGFuZSB1cGRhdGUgY2FsbGJh Y2sgcnVucyBpbiBhdG9taWMKY29udGV4dCB3aGVyZSBzbGVlcGluZyBpcyBmb3JiaWRkZW4uCgpB ZGRpdGlvbmFsbHksIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxzIGFuZCByZXR1cm5zIE5VTEwsIHRo ZSBkcHVfd3JpdGUoKSBtYWNybwpzaWxlbnRseSBmYWxscyBiYWNrIHRvIGltbWVkaWF0ZSBNTUlP IHdyaXRlcyAoZHB1X3dyaXRlX3JlZ193b3JkKS4gVGhpcwpieXBhc3NlcyB0aGUgY29tbWFuZCBs aXN0J3MgVkJMQU5LIHN5bmNocm9uaXphdGlvbiwgYXBwbHlpbmcgcGFydGlhbCBoYXJkd2FyZQpz dGF0ZSBpbW1lZGlhdGVseSBhbmQgY2F1c2luZyB2aXN1YWwgdGVhcmluZyBvciBsb2NrdXBzLgoK PiArCj4gKwliYXNlID0gQ01QX0JBU0VfQUREUlthX2NydGMtPmRldl9pZF07ClsgLi4uIF0KPiAr c3RydWN0IGNtZGxpc3RfaGVhZGVyIHsKPiArCXU2NCBuZXh0X2xpc3RfYWRkciA6IDM5Owo+ICsJ LyogcmVzZXJ2ZWQgKi8KPiArCXUzMjogMTsKPiArCXUzMiBub2RfbGVuIDogMTY7Cj4gKwkvKiAx OiB0aGUgbGFzdCBjbWRsaXN0IG5vZGUsIDI6IHBlbmRpbmcgbm9kZSwgb3RoZXJ3aXNlIDAgKi8K PiArCXUzMiBub2RfdHlwZSA6IDI7Cj4gKwl1MzIgbmV4dF9ub2Rfc2VjdSA6IDE7Cj4gKwl1NjQg d2FpdF9ldmVudF9sb3cgICAgOiA1Owo+ICsJdTY0IHdhaXRfZXZlbnQgICAgOiA1OTsKPiArCS8q IHJlc2VydmVkICovCj4gKwl1MzI6IDU7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgY21kbGlzdF9yb3cg ewo+ICsJdTMyIG1vZHVsZV9jZmdfYWRkciAgIDogMTk7Cj4gKwl1MzIgbW9kdWxlX2NmZ19zdHJv YmUgOiAxMjsKPiArCS8qIHRoZSBsYXN0IHJvdyB0YWcgPSAxLCBlbHNlIHRhZyA9IDAuICovCj4g Kwl1MzIgcm93X2VvZl90YWcgICAgICAgOiAxOwo+ICsJdTMyIG1vZHVsZV9yZWdzWzNdOwo+ICt9 OwoKW1NldmVyaXR5OiBNZWRpdW1dCkRvZXMgdXNpbmcgQyBiaXRmaWVsZHMgZm9yIERNQS1zaGFy ZWQgaGFyZHdhcmUgZGVzY3JpcHRvcnMgYnJlYWsgb24gZGlmZmVyZW50CmNvbXBpbGVycyBvciBl bmRpYW5uZXNzZXM/CgpUaGVzZSBzdHJ1Y3R1cmVzIGZvcm1hdCBjb21tYW5kIGxpc3Qgbm9kZXMg ZGlyZWN0bHkgaW50byBhIERNQSBidWZmZXIgY29uc3VtZWQKYnkgdGhlIGhhcmR3YXJlLiBUaGUg QyBzdGFuZGFyZCBsZWF2ZXMgYml0ZmllbGQgcGFja2luZyBvcmRlciBhbmQgYWxpZ25tZW50CmVu dGlyZWx5IGltcGxlbWVudGF0aW9uLWRlZmluZWQuIAoKTWl4aW5nIHU2NCBhbmQgdTMyIGJpdGZp ZWxkcyBtYWtlcyB0aGUgZXhhY3QgbWVtb3J5IGxheW91dCBoaWdobHkgc2Vuc2l0aXZlIHRvCmNv bXBpbGVyIEFCSXMgYW5kIHZlcnNpb25zLCBhbmQgaXQgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkg YWNyb3NzIGRpZmZlcmVudAplbmRpYW5uZXNzZXMuIENvdWxkIHlvdSB1c2UgZXhwbGljaXQgYml0 d2lzZSBvcGVyYXRpb25zIHdpdGggZml4ZWQtd2lkdGggdHlwZXMKaW5zdGVhZD8KCj4gKwo+ICsv KiBETUEgc3RyZWFtIGxheW91dCBjb25zdW1lZCBieSB0aGUgY21kbGlzdCBlbmdpbmU7IHNpemVz IGFyZSBsb2FkLWJlYXJpbmcuICovClsgLi4uIF0KPiArdm9pZCBzYXR1cm5faGVlX2NtZGxpc3Rf ZmlsbF9kYXRhX3JvdyhzdHJ1Y3QgY21kbGlzdCAqY2wsIHUzMiBzdHJvYmUsCj4gKwkJCQkgICAg ICB1MzIgb2Zmc2V0LCB1MzIgdmFsdWVbXSkKPiArewo+ICsJc3RydWN0IGNtZGxpc3Rfcm93ICpy b3c7Cj4gKwl1OCBpOwo+ICsKPiArCS8qCj4gKwkgKiBwYWNraW5nIGNvdW50cyByb3dzIGJsaW5k bHk7IGRyb3AgdGhlIHJvdyByYXRoZXIgdGhhbiB0aGUgYnVmZmVyIGVuZAo+ICsJICovCj4gKwlp ZiAoV0FSTl9PTkNFKENMX0hFQURFUl9TWiArIChjbC0+bm9kX2xlbiArIDEpICogQ0xfUk9XX1Na ID4gY2wtPnNpemUsCj4gKwkJICAgICAgImNtZGxpc3QgYnVmZmVyIGZ1bGwgKHJvd3MgJXUpXG4i LCBjbC0+bm9kX2xlbikpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXJvdyA9IChzdHJ1Y3QgY21kbGlz dF9yb3cgKikoKGNoYXIgKiljbC0+dmEgKyBDTF9IRUFERVJfU1opICsgY2wtPm5vZF9sZW47Cj4g Kwlyb3ctPm1vZHVsZV9jZmdfYWRkciA9IG9mZnNldCA+PiAyOwo+ICsJcm93LT5tb2R1bGVfY2Zn X3N0cm9iZSA9IHN0cm9iZTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQ01ETElTVF9ST1dfUkVH UzsgaSsrKQoKW1NldmVyaXR5OiBIaWdoXQpBcmUgcm93X2VvZl90YWcgYW5kIHVuLXN0cm9iZWQg bW9kdWxlX3JlZ3MgbGVmdCB1bmluaXRpYWxpemVkIGhlcmU/CgpUaGlzIG92ZXJsYXlzIGEgc3Ry dWN0IGNtZGxpc3Rfcm93IG9udG8gdGhlIGNsLT52YSBETUEgYnVmZmVyIHdpdGhvdXQKZXhwbGlj aXRseSBjbGVhcmluZyBvciBzZXR0aW5nIHJvdy0+cm93X2VvZl90YWcuIElmIHRoZSBidWZmZXIg aXMgcmV1c2VkCmFjcm9zcyBmcmFtZXMgYW5kIHRoZSBjdXJyZW50IGZyYW1lIGlzIHNob3J0ZXIg dGhhbiB0aGUgcHJldmlvdXMgb25lLApyb3dfZW9mX3RhZyBjb3VsZCBjb250YWluIGEgc3RhbGUg MSBmcm9tIHRoZSBlbmQgb2YgYSBwcmV2aW91cyBjb21taXQncwpsaXN0LiAKCklmIHRoZSBoYXJk d2FyZSBzZWVzIHRoaXMgdW5pbml0aWFsaXplZCBiaXRmaWVsZCBhcyAxLCBpdCB3aWxsIHRlcm1p bmF0ZQpjb21tYW5kIHByb2Nlc3NpbmcgcHJlbWF0dXJlbHksIGlnbm9yaW5nIGFsbCBzdWJzZXF1 ZW50IGNvbW1hbmRzIGluIHRoZSBjdXJyZW50CmZyYW1lIGFuZCBjYXVzaW5nIGRpc3BsYXkgaGFu Z3MuCgo+ICsJCWlmIChzdHJvYmUgJiBDTURMSVNUX1JFR19TVFJPQkUoaSkpClsgLi4uIF0KPiAr dm9pZCBzYXR1cm5faGVlX2NtZGxpc3RfZmlsbF9jb25mX3JvdyhzdHJ1Y3QgY21kbGlzdCAqY2ws IHN0cnVjdCBzcGFjZW1pdF9od19kZXZpY2UgKmh3ZGV2LAo+ICsJCQkJICAgICAgdTggZGV2X2lk KQo+ICt7ClsgLi4uIF0KPiArCS8qIEF0IG1vc3QgdGhyZWUgcm93cyBhcmUgYXBwZW5kZWQgYmVs b3c7IGJhaWwgYmVmb3JlIG92ZXJydW5uaW5nLiAqLwo+ICsJaWYgKFdBUk5fT05DRShDTF9IRUFE RVJfU1ogKyAoY2wtPm5vZF9sZW4gKyAzKSAqIENMX1JPV19TWiA+IGNsLT5zaXplLAo+ICsJCSAg ICAgICJjbWRsaXN0IGJ1ZmZlciBmdWxsICh0eXBlICV1LCByb3dzICV1KVxuIiwKPiArCQkgICAg ICBjbC0+dHlwZSwgY2wtPm5vZF9sZW4pKQo+ICsJCXJldHVybjsKCltTZXZlcml0eTogSGlnaF0K RG9lcyBhIGRlc3luY2hyb25pemVkIGNsLT5ub2RfbGVuIGNhdXNlIHRoZSBFT0YgdGFnIHRvIGJl IGRyb3BwZWQ/CgpUaGUgY2FsbGluZyBjb2RlIGluIGNtZGxpc3RfcmVnc19wYWNraW5nKCkgdW5j b25kaXRpb25hbGx5IGluY3JlbWVudHMKY2wtPm5vZF9sZW4gYWZ0ZXIgY2FsbGluZyBzYXR1cm5f aGVlX2NtZGxpc3RfZmlsbF9kYXRhX3JvdygpLCBldmVuIGlmIHRoYXQKZnVuY3Rpb24gc2lsZW50 bHkgZHJvcHBlZCB0aGUgcm93IGR1ZSB0byB0aGUgYnVmZmVyIGJlaW5nIGZ1bGwuCgpUaGlzIGNh dXNlcyBjbC0+bm9kX2xlbiB0byBhcnRpZmljaWFsbHkgaW5mbGF0ZSBiZXlvbmQgdGhlIGFjdHVh bCByb3dzCndyaXR0ZW4uIElmIGl0IGhpdHMgdGhpcyBXQVJOX09OQ0UsIGl0IGFib3J0cyBiZWZv cmUgYXBwZW5kaW5nIHRoZSBjcml0aWNhbApjb25maWd1cmF0aW9uIHJvdyBjb250YWluaW5nIHJv d19lb2ZfdGFnID0gMS4gCgpDb3VsZCB0aGUgaGFyZHdhcmUgcHJvY2VzcyBhbiBpbmNvbXBsZXRl IGNvbW1hbmQgbGlzdCBsYWNraW5nIGFuIEVPRiB0YWcsCnRoZXJlYnkgZmFpbGluZyB0byBzaWdu YWwgdGhlIENGR19SRFkgaW50ZXJydXB0PwoKPiArCj4gKwloZWFkZXIgPSAoc3RydWN0IGNtZGxp c3RfaGVhZGVyICopKGNsLT52YSk7Cgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3Bh Y2VtaXQvZHB1L3NhdHVybl9mYmNtZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9zcGFjZW1pdC9kcHUv c2F0dXJuX2ZiY21lbS5jCj4gaW5kZXggMTQ0NzE2ZWM5YjgwYy4uLi4uCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zcGFjZW1pdC9kcHUvc2F0dXJuX2ZiY21lbS5jClsg Li4uIF0KPiAraW50IHNhdHVybl9jYWxfbGF5ZXJfZmJjbWVtX3NpemUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gKwkJCQkgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gK3sKPiAr CXN0cnVjdCBzcGFjZW1pdF9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gdG9fc3BhY2VtaXRfcGxhbmVf c3RhdGUoc3RhdGUpOwo+ICsJdTMyIGRybV80Y2NfZm10ID0gcHN0YXRlLT5zdGF0ZS5mYi0+Zm9y bWF0LT5mb3JtYXQ7CgpbU2V2ZXJpdHk6IEhpZ2hdCldpbGwgdGhpcyBkZXJlZmVyZW5jZSBhIE5V TEwgcG9pbnRlciB3aGVuIHBzdGF0ZS0+c3RhdGUuZmIgaXMgTlVMTD8KClNpbWlsYXIgdG8gdGhl IGlzc3VlIGluIHNhdHVybl9oZWVfcGxhbmVfdXBkYXRlX2h3X2NoYW5uZWwoKSwgc3RhdGUtPmZi CmNhbiBiZSBOVUxMIGR1cmluZyBwbGFuZSBkaXNhYmxlbWVudCBvciBzb2xpZC1maWxsIHNjZW5h cmlvcy4gVGhpcwp1bmNvbmRpdGlvbmFsIGRlcmVmZXJlbmNlIHdpbGwgY2F1c2UgYSBrZXJuZWwg cGFuaWMgaW4gdGhvc2UgY2FzZXMuCgo+ICsJdTMyIGNyb3BfdyA9IHBzdGF0ZS0+c3RhdGUuc3Jj X3cgPj4gMTY7Cj4gKwo+ICsJLyogT25seSBsaW5lYXIgc2l6aW5nOiB0aGUgY29tcHJlc3NlZCBw YXRoIGlzIG5vdCBleHBvc2VkLiAqLwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8v c2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MDcyNS1rMy1kaXNwbGF5LXYxLTAtNmRlMzRkODBl ODZjQGdtYWlsLmNvbT9wYXJ0PTkKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0CmxpbnV4LXBo eUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LXBoeQo=