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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 7570DC12002 for ; Wed, 21 Jul 2021 07:51:14 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 63234600D1 for ; Wed, 21 Jul 2021 07:51:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 63234600D1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DA6336E919; Wed, 21 Jul 2021 07:51:12 +0000 (UTC) Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by gabe.freedesktop.org (Postfix) with ESMTPS id B99E96E904 for ; Wed, 21 Jul 2021 07:51:11 +0000 (UTC) Received: by mail-ot1-x32d.google.com with SMTP id j1-20020a0568302701b02904d1f8b9db81so1255289otu.12 for ; Wed, 21 Jul 2021 00:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Ux+7kW7KUbJrcrXySZYPjpL/XJ3jVqliYnI2MlvIp8A=; b=jJ5xDqAcO+V5fE4i8dxRplBJCMYM1qOax1ahpUeMUKjHWQrD1ssO0tdo85+OrXEocD 2oXHd0cU3pX0F14Acn+eircYW5/JhYVxusT2EUiFx9pcKPxeq/xpp9hB4wUnfolnNhUi xT0Zsq19M4OWJENWqWSe1i2IKowsB3rbWFHkc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Ux+7kW7KUbJrcrXySZYPjpL/XJ3jVqliYnI2MlvIp8A=; b=kLdEgdUXovX+iwVhSrEypmOhnURVQqn5KRdpUNg/AbXQiYXdft/WEp4IR3Lded2tsY HJHnkH91WBnSWioSxfqkTePvY9UQEotM5mGBMqU50R5RLxflc4vq2WR612SA91oEa4ur n7HOFARzp8mhEXwkICitMiq302OXA+vQXwJMzAwQqnJQbRJZ6NsffxR5hPNyqOZfJPhf I6fe3G2ddMqnyHLCtge/JTEGpwesNaeh8JtvBLSJkcECusCrYluTY11ah78ZDSZUaZ/Q s+bAlUSvHx7dlxayntFtpvPnil1OHY7rBlzgrpSuChXJjX4k5ZoXezK8xzvMnixZ5K08 jA+w== X-Gm-Message-State: AOAM530hArbb7ct5Tq3BqJuYuup/xZO4n/aHDPMn9OxZQfJgrN7K9ZjD DsBzK+AKSmiP0QHLYWBcF9nNepC1NK9Rv2RbpHgHUw== X-Google-Smtp-Source: ABdhPJyxQALb1OllI9ELKSjPXth96fCzjTBc7bvPgN0U2ANnYOnfOPh9b8aISs75aDIwx4/4NgLqLd/wd9EVWqfkKu0= X-Received: by 2002:a9d:27a4:: with SMTP id c33mr25910804otb.281.1626853870975; Wed, 21 Jul 2021 00:51:10 -0700 (PDT) MIME-Version: 1.0 References: <20210104205654.238928-1-jose.souza@intel.com> <20210104205654.238928-2-jose.souza@intel.com> In-Reply-To: From: Daniel Vetter Date: Wed, 21 Jul 2021 09:50:59 +0200 Message-ID: To: "Souza, Jose" Subject: Re: [Intel-gfx] [PATCH CI 2/4] drm/i915/display/psr: Use plane damage clips to calculate damaged area X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVHVlLCBKdWwgMjAsIDIwMjEgYXQgNjo1NSBQTSBTb3V6YSwgSm9zZSA8am9zZS5zb3V6YUBp bnRlbC5jb20+IHdyb3RlOgo+IE9uIFR1ZSwgMjAyMS0wNy0yMCBhdCAxNzozMSArMDIwMCwgRGFu aWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFR1ZSwgSnVsIDIwLCAyMDIxIGF0IDU6MTYgUE0gRGFu aWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+ID4gT24gVHVlLCBKdWwgMjAs IDIwMjEgYXQgNTowOSBQTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOgo+ ID4gPiA+IE9uIE1vbiwgSmFuIDQsIDIwMjEgYXQgOTo1NiBQTSBKb3PDqSBSb2JlcnRvIGRlIFNv dXphCj4gPiA+ID4gPGpvc2Uuc291emFAaW50ZWwuY29tPiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ ID4gPiBOb3cgdXNpbmcgcGxhbmUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IHRvIGNhbGN1YWx0ZSB0 aGUgZGFtYWdlZCBhcmVhLgo+ID4gPiA+ID4gU2VsZWN0aXZlIGZldGNoIG9ubHkgc3VwcG9ydHMg b25lIHJlZ2lvbiB0byBiZSBmZXRjaGVkIHNvIHNvZnR3YXJlCj4gPiA+ID4gPiBuZWVkcyB0byBj YWxjdWxhdGUgYSBib3VuZGluZyBib3ggYXJvdW5kIGFsbCBkYW1hZ2UgY2xpcHMuCj4gPiA+ID4g Pgo+ID4gPiA+ID4gTm93IHRoYXQgd2UgYXJlIG5vdCBjb21wbGV0ZSBmZXRjaGluZyBlYWNoIHBs YW5lLCB0aGVyZSBpcyBhbm90aGVyCj4gPiA+ID4gPiBsb29wIG5lZWRlZCBhcyBhbGwgdGhlIHBs YW5lIGFyZWFzIHRoYXQgaW50ZXJzZWN0IHdpdGggdGhlIHBpcGUKPiA+ID4gPiA+IGRhbWFnZWQg YXJlYSBuZWVkcyB0byBiZSBmZXRjaGVkIGZyb20gbWVtb3J5IHNvIHRoZSBjb21wbGV0ZSBibGVu ZGluZwo+ID4gPiA+ID4gb2YgYWxsIHBsYW5lcyBjYW4gaGFwcGVuLgo+ID4gPiA+ID4KPiA+ID4g PiA+IHYyOgo+ID4gPiA+ID4gLSBkbyBub3Qgc2hpZnRpbmcgbmV3X3BsYW5lX3N0YXRlLT51YXBp LmRzdCBvbmx5IHNyYyBpcyBpbiAxNi4xNiBmb3JtYXQKPiA+ID4gPiA+Cj4gPiA+ID4gPiB2NDoK PiA+ID4gPiA+IC0gc2V0dGluZyBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB1c2luZyB0aGUg d2hvbGUgcGlwZSBkYW1hZ2UgYXJlYQo+ID4gPiA+ID4gLSBtYXJrIHRoZSB3aG9sZSBwbGFuZSBh cmVhIGRhbWFnZWQgaWYgcGxhbmUgdmlzaWJpbGl0eSBvciBhbHBoYQo+ID4gPiA+ID4gY2hhbmdl ZAo+ID4gPiA+ID4KPiA+ID4gPiA+IHY1Ogo+ID4gPiA+ID4gLSB0YWtpbmcgaW4gY29uc2lkZXJh dGlvbiBzcmMueTEgaW4gdGhlIGRhbWFnZSBjb29yZGluYXRlcwo+ID4gPiA+ID4gLSBhZGRpbmcg dG8gdGhlIHBpcGUgZGFtYWdlZCBhcmVhIHBsYW5lcyB0aGF0IHdlcmUgdmlzaWJsZSBidXQgYXJl Cj4gPiA+ID4gPiBpbnZpc2libGUgaW4gdGhlIG5ldyBzdGF0ZQo+ID4gPiA+ID4KPiA+ID4gPiA+ IHY2Ogo+ID4gPiA+ID4gLSBjb25zaWRlciBvbGQgc3RhdGUgcGxhbmUgY29vcmRpbmF0ZXMgd2hl biB2aXNpYmlsaXR5IGNoYW5nZXMgb3IgaXQKPiA+ID4gPiA+IG1vdmVkIHRvIGNhbGN1bGF0ZSBk YW1hZ2VkIGFyZWEKPiA+ID4gPiA+IC0gcmVtb3ZlIGZyb20gZGFtYWdlZCBhcmVhIHRoZSBwb3J0 aW9uIG5vdCBpbiBzcmMgY2xpcAo+ID4gPiA+ID4KPiA+ID4gPiA+IHY3Ogo+ID4gPiA+ID4gLSBp bnRlcnNlYyBldmVyeSBkYW1hZ2UgY2xpcCB3aXRoIHNyYyB0byBtaW5pbWl6ZSBkYW1hZ2VkIGFy ZWEKPiA+ID4gPiA+Cj4gPiA+ID4gPiB2ODoKPiA+ID4gPiA+IC0gYWRqdXN0IHBpcGVfZGFtYWdl ZCBhcmVhIHRvIDQgbGluZXMgZ3JvdXBpbmcKPiA+ID4gPiA+IC0gYWRqdXN0IGNhbGN1bGF0aW9u IG5vdyB0aGF0IGlzIHVuZGVyc3Rvb2QgdGhhdCB1YXBpLnNyYyBpcyB0aGUKPiA+ID4gPiA+IGZy YW1lYnVmZmVyIGNvb3JkaW5hdGVzIHRoYXQgcGxhbmUgd2lsbCBzdGFydCB0byBmZXRjaCBmcm9t Cj4gPiA+ID4gPgo+ID4gPiA+ID4gdjk6Cj4gPiA+ID4gPiAtIE9ubHkgYWRkIHBsYW5lIGRzdCBv ciBzcmMgdG8gZGFtYWdlZF9hcmVhIGlmIHZpc2libGUKPiA+ID4gPiA+IC0gRWFybHkgc2tpcCBw bGFuZSBkYW1hZ2UgY2FsY3VsYXRpb24gaWYgaXQgd2FzIG5vdCB2aXNpYmxlIGluIG9sZCBhbmQK PiA+ID4gPiA+IG5ldyBzdGF0ZQo+ID4gPiA+ID4KPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gQ2M6IEd3YW4tZ3ll b25nIE11biA8Z3dhbi1neWVvbmcubXVuQGludGVsLmNvbT4KPiA+ID4gPiA+IFJldmlld2VkLWJ5 OiBHd2FuLWd5ZW9uZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+Cj4gPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNv bT4KPiA+ID4gPgo+ID4gPiA+IFdoeSBpcyB0aGlzIG5vdCB1c2luZyBkcm1fYXRvbWljX2hlbHBl cl9kYW1hZ2VfbWVyZ2VkPyBJIGp1c3Qgc3R1bWJsZWQKPiA+ID4gPiBvdmVyIHRoaXMsIGFuZCB0 aGlzIGlzIG9uZSBvZiB0aGUgb25seSB0d28gZHJpdmVycyB0aGF0IGRpcmVjdGx5IGRpZ3MKPiA+ ID4gPiBhcm91bmQgaW4gdGhlIGRhbWFnZSBhcmVhLCBhbmQgc2VlbXMgdG8gcmVpbnZlbnQgYSBi dW5jaCBvZiB0aGUgc3R1ZmYKPiA+ID4gPiBoZXJlLgo+Cj4gV2UgY2FuIHVzZSBkcm1fYXRvbWlj X2hlbHBlcl9kYW1hZ2VfbWVyZ2VkKCkgYnV0IGl0IHdvdWxkIG9ubHkgc2F2ZSB1cyBvbmUgZm9y IGxvb3AuCgpZZXMgcGxlYXNlLiBUaGUgdHJvdWJsZSB3aXRoIHJvbGxpbmcgb3VyIG93biBjb3Bp ZXMgZm9yIGV2ZXJ5dGhpbmcgaXMKdGhhdCBpdCBkb2VzIGFkZCB1cC4KCj4gPiA+IEFsc28sIGRp ZCB3ZSBtZXJnZSB0aGUgaWd0cyBmb3IgdGhpcyBzdHVmZj8gVGhleSB1bmZvcnR1bmF0ZWx5IG5l dmVyCj4gPiA+IGxhbmRlZCwgd2hlbiB2bXdnZnggdGVhbSBkaWQgYWxsIHRoaXMgd29yaywgYnV0 IGZvciBpOTE1IHdlIHJlYWxseQo+ID4gPiBzaG91bGRuJ3QgZXZlbiBsYW5kIG5ldyBzdXBwb3J0 IHdpdGhvdXQgdGVzdHMuCj4gPgo+ID4gTG8gYW5kIGJlaG9sZCwgd2UgbWVyZ2UgdGhlIHVhcGkg ZW5hYmxpbmcgd2F5IGVhcmxpZXIgdGhhbiB0aGlzIHBhdGNoIGhlcmU6Cj4gPgo+ID4gY29tbWl0 IDA5M2EzYTMwMDAwOTI2YjhiZGE5ZWVmNzczZTRlZDUwNzkwNTMzNTAKPiA+IEF1dGhvcjogSm9z w6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiBEYXRlOiAgIFRo dSBKdW4gMjUgMTg6MDE6NDcgMjAyMCAtMDcwMAo+ID4KPiA+ICAgIGRybS9pOTE1OiBBZGQgcGxh bmUgZGFtYWdlIGNsaXBzIHByb3BlcnR5Cj4gPgo+ID4gQW5kIHRoZSBpZ3RzIGFyZSBub3doZXJl IG5lYXIgdG8gYmUgc2VlbiwgYXQgbGVhc3QgdGhlIHN0dWZmIGZyb20KPiA+IHZtd2dmeCBkaWRu J3QgbGFuZC4gUGxlYXNlIGZpbGUgYSBKSVJBIGludGVybmFsbHkgYW5kIHBpbmcgbWUgb24gdGhh dAo+ID4gc28gdGhpcyBnZXRzIHNvcnRlZCBvdXQgYXNhcC4KPgo+IEhlcmUgdGhlIElHVDogaHR0 cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL2RybS9pZ3QtZ3B1LXRvb2xzLy0vYmxvYi9tYXN0 ZXIvdGVzdHMva21zX3BzcjJfc2YuYwoKVGhlcmUgd2FzIHNvbWUgaWd0cyB0aGF0IHdlcmUgY3Jv c3MtZHJpdmVyLCBub3QgaW50ZWwgc3BlY2lmaWMuIFRoZQp0aGluZyBoZXJlIGlzIHN1cHBvc2Vk IHRvIGJlIGEgY3Jvc3MtdmVuZG9yIGludGVyZmFjZSwgc28gd291bGQgYmUKcmVhbGx5IGdvb2Qg aWYgeW91IHJlc3VycmVjdCB0aG9zZSBmcm9tIHZtd2dmeCBmb2xrcyBhbmQgbGFuZCB0aGVtCnRv bzoKCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTEwODcvCgpDaGVl cnMsIERhbmllbAoKCgo+Cj4gPgo+ID4gVGhhbmtzLCBEYW5pZWwKPiA+Cj4gPiA+ID4gPiAtLS0K PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIHwgMTEz ICsrKysrKysrKysrKysrKysrKysrLS0tCj4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDk5IGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4KPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwo+ID4gPiA+ID4gaW5kZXggZDlhMzk1YzQ4 NmQzLi5mNWI5NTE5YjM3NTYgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCj4gPiA+ID4gPiBAQCAtMTI0Miw5ICsxMjQyLDExIEBA IHN0YXRpYyB2b2lkIHBzcjJfbWFuX3Rya19jdGxfY2FsYyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gPiA+ICAgICAgICAgaWYgKGNsaXAtPnkxID09IC0xKQo+ID4g PiA+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKPiA+ID4gPiA+Cj4gPiA+ID4gPiArICAg ICAgIGRybV9XQVJOX09OKGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2LCBjbGlwLT55MSAlIDQg fHwgY2xpcC0+eTIgJSA0KTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICAgICAgICAgdmFsIHw9IFBT UjJfTUFOX1RSS19DVExfU0ZfUEFSVElBTF9GUkFNRV9VUERBVEU7Cj4gPiA+ID4gPiAgICAgICAg IHZhbCB8PSBQU1IyX01BTl9UUktfQ1RMX1NVX1JFR0lPTl9TVEFSVF9BRERSKGNsaXAtPnkxIC8g NCArIDEpOwo+ID4gPiA+ID4gLSAgICAgICB2YWwgfD0gUFNSMl9NQU5fVFJLX0NUTF9TVV9SRUdJ T05fRU5EX0FERFIoRElWX1JPVU5EX1VQKGNsaXAtPnkyLCA0KSArIDEpOwo+ID4gPiA+ID4gKyAg ICAgICB2YWwgfD0gUFNSMl9NQU5fVFJLX0NUTF9TVV9SRUdJT05fRU5EX0FERFIoY2xpcC0+eTIg LyA0ICsgMSk7Cj4gPiA+ID4gPiAgZXhpdDoKPiA+ID4gPiA+ICAgICAgICAgY3J0Y19zdGF0ZS0+ cHNyMl9tYW5fdHJhY2tfY3RsID0gdmFsOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+IEBAIC0xMjY5 LDggKzEyNzEsOCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAg ICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gaW50ZWxfYXRvbWlj X2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPiA+ID4gPiArICAgICAgIHN0cnVj dCBkcm1fcmVjdCBwaXBlX2NsaXAgPSB7IC54MSA9IDAsIC55MSA9IC0xLCAueDIgPSBJTlRfTUFY LCAueTIgPSAtMSB9Owo+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg Km5ld19wbGFuZV9zdGF0ZSwgKm9sZF9wbGFuZV9zdGF0ZTsKPiA+ID4gPiA+IC0gICAgICAgc3Ry dWN0IGRybV9yZWN0IHBpcGVfY2xpcCA9IHsgLnkxID0gLTEgfTsKPiA+ID4gPiA+ICAgICAgICAg c3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPiA+ID4gPiA+ICAgICAgICAgYm9vbCBmdWxsX3Vw ZGF0ZSA9IGZhbHNlOwo+ID4gPiA+ID4gICAgICAgICBpbnQgaSwgcmV0Owo+ID4gPiA+ID4gQEAg LTEyODIsMTMgKzEyODQsMjUgQEAgaW50IGludGVsX3BzcjJfc2VsX2ZldGNoX3VwZGF0ZShzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ID4gPiA+ICAgICAgICAgaWYgKHJldCkK PiA+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ID4KPiA+ID4gPiA+ ICsgICAgICAgLyoKPiA+ID4gPiA+ICsgICAgICAgICogQ2FsY3VsYXRlIG1pbmltYWwgc2VsZWN0 aXZlIGZldGNoIGFyZWEgb2YgZWFjaCBwbGFuZSBhbmQgY2FsY3VsYXRlCj4gPiA+ID4gPiArICAg ICAgICAqIHRoZSBwaXBlIGRhbWFnZWQgYXJlYS4KPiA+ID4gPiA+ICsgICAgICAgICogSW4gdGhl IG5leHQgbG9vcCB0aGUgcGxhbmUgc2VsZWN0aXZlIGZldGNoIGFyZWEgd2lsbCBhY3R1YWxseSBi ZSBzZXQKPiA+ID4gPiA+ICsgICAgICAgICogdXNpbmcgd2hvbGUgcGlwZSBkYW1hZ2VkIGFyZWEu Cj4gPiA+ID4gPiArICAgICAgICAqLwo+ID4gPiA+ID4gICAgICAgICBmb3JfZWFjaF9vbGRuZXdf aW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsCj4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcGxh bmVfc3RhdGUsIGkpIHsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3JlY3Qg KnNlbF9mZXRjaF9hcmVhLCB0ZW1wOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fcmVjdCBzcmMsIGRhbWFnZWRfYXJlYSA9IHsgLnkxID0gLTEgfTsKPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqZGFtYWdlZF9jbGlwczsKPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICB1MzIgbnVtX2NsaXBzLCBqOwo+ID4gPiA+ID4KPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmNydGMgIT0gY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmICghbmV3X3BsYW5lX3N0YXRl LT51YXBpLnZpc2libGUgJiYKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIW9sZF9wbGFu ZV9zdGF0ZS0+dWFwaS52aXNpYmxlKQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg Y29udGludWU7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgLyoKPiA+ID4g PiA+ICAgICAgICAgICAgICAgICAgKiBUT0RPOiBOb3QgY2xlYXIgaG93IHRvIGhhbmRsZSBwbGFu ZXMgd2l0aCBuZWdhdGl2ZSBwb3NpdGlvbiwKPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgKiBh bHNvIHBsYW5lcyBhcmUgbm90IHVwZGF0ZWQgaWYgdGhleSBoYXZlIGEgbmVnYXRpdmUgWAo+ID4g PiA+ID4gQEAgLTEzMDAsMjMgKzEzMTQsOTQgQEAgaW50IGludGVsX3BzcjJfc2VsX2ZldGNoX3Vw ZGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ID4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gPiA+ID4gICAgICAgICAgICAgICAgIH0KPiA+ID4g PiA+Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgaWYgKCFuZXdfcGxhbmVfc3RhdGUtPnVhcGku dmlzaWJsZSkKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIG51bV9jbGlwcyA9IGRybV9wbGFuZV9nZXRfZGFtYWdlX2Ns aXBzX2NvdW50KCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkpOwo+ID4gPiA+ID4KPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICAvKgo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAqIEZvciBub3cgZG9p bmcgYSBzZWxlY3RpdmUgZmV0Y2ggaW4gdGhlIHdob2xlIHBsYW5lIGFyZWEsCj4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgICogb3B0aW1pemF0aW9ucyB3aWxsIGNvbWUgaW4gdGhlIGZ1dHVyZS4K PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBJZiB2aXNpYmlsaXR5IG9yIHBsYW5lIG1vdmVk LCBtYXJrIHRoZSB3aG9sZSBwbGFuZSBhcmVhIGFzCj4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICogZGFtYWdlZCBhcyBpdCBuZWVkcyB0byBiZSBjb21wbGV0ZSByZWRyYXcgaW4gdGhlIG5ldyBh bmQgb2xkCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICogcG9zaXRpb24uCj4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgICovCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgc2VsX2ZldGNoX2Fy ZWEgPSAmbmV3X3BsYW5lX3N0YXRlLT5wc3IyX3NlbF9mZXRjaF9hcmVhOwo+ID4gPiA+ID4gLSAg ICAgICAgICAgICAgIHNlbF9mZXRjaF9hcmVhLT55MSA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5z cmMueTEgPj4gMTY7Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgc2VsX2ZldGNoX2FyZWEtPnky ID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYy55MiA+PiAxNjsKPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUgIT0gb2xkX3BsYW5lX3N0 YXRlLT51YXBpLnZpc2libGUgfHwKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIWRybV9y ZWN0X2VxdWFscygmbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdCwKPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2xkX3BsYW5lX3N0YXRlLT51YXBpLmRzdCkp IHsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRfcGxhbmVfc3RhdGUt PnVhcGkudmlzaWJsZSkgewo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYW1hZ2VkX2FyZWEueTEgPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxOwo+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkX2FyZWEueTIgPSBvbGRf cGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkyOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2VkX2FyZWEpOwo+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld19wbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxl KSB7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRfYXJl YS55MSA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTE7Cj4gPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRfYXJlYS55MiA9IG5ld19wbGFuZV9zdGF0ZS0+ dWFwaS5kc3QueTI7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs aXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJmRhbWFnZWRfYXJlYSk7Cj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICB9Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5ld19wbGFuZV9z dGF0ZS0+dWFwaS5hbHBoYSAhPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGkuYWxwaGEgfHwKPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICghbnVtX2NsaXBzICYmCj4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3BsYW5lX3N0YXRlLT51YXBpLmZiICE9IG9s ZF9wbGFuZV9zdGF0ZS0+dWFwaS5mYikpIHsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIC8qCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiB0aGUgcGxhbmUg ZG9uJ3QgaGF2ZSBkYW1hZ2VkIGFyZWFzIGJ1dCB0aGUKPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAqIGZyYW1lYnVmZmVyIGNoYW5nZWQgb3IgYWxwaGEgY2hhbmdlZCwgbWFyayB0 aGUgd2hvbGUKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqIHBsYW5lIGFyZWEg YXMgZGFtYWdlZC4KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkxID0gbmV3X3BsYW5lX3N0 YXRlLT51YXBpLmRzdC55MTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRhbWFn ZWRfYXJlYS55MiA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTI7Cj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2Vk X2FyZWEpOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPiA+ ID4gPiArICAgICAgICAgICAgICAgfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgIGRybV9yZWN0X2ZwX3RvX2ludCgmc3JjLCAmbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYyk7 Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgZGFtYWdlZF9jbGlwcyA9IGRybV9wbGFuZV9nZXRf ZGFtYWdlX2NsaXBzKCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBudW1fY2xpcHM7IGorKykgewo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9yZWN0IGNsaXA7Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBjbGlwLngxID0gZGFtYWdl ZF9jbGlwc1tqXS54MTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsaXAueTEg PSBkYW1hZ2VkX2NsaXBzW2pdLnkxOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg Y2xpcC54MiA9IGRhbWFnZWRfY2xpcHNbal0ueDI7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICBjbGlwLnkyID0gZGFtYWdlZF9jbGlwc1tqXS55MjsKPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChkcm1fcmVjdF9pbnRlcnNlY3QoJmNsaXAsICZzcmMpKQo+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRlKCZk YW1hZ2VkX2FyZWEsICZjbGlwKTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiA+ID4g Pgo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIHRlbXAgPSAqc2VsX2ZldGNoX2FyZWE7Cj4gPiA+ ID4gPiAtICAgICAgICAgICAgICAgdGVtcC55MSArPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0 LnkxOwo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIHRlbXAueTIgKz0gbmV3X3BsYW5lX3N0YXRl LT51YXBpLmRzdC55MjsKPiA+ID4gPiA+IC0gICAgICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRl KCZwaXBlX2NsaXAsICZ0ZW1wKTsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAoZGFtYWdl ZF9hcmVhLnkxID09IC0xKQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkx ICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTEgLSBzcmMueTE7Cj4gPiA+ID4gPiArICAg ICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkyICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3Qu eTEgLSBzcmMueTE7Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgY2xpcF9hcmVhX3VwZGF0ZSgm cGlwZV9jbGlwLCAmZGFtYWdlZF9hcmVhKTsKPiA+ID4gPiA+ICsgICAgICAgfQo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKyAgICAgICBpZiAoZnVsbF91cGRhdGUpCj4gPiA+ID4gPiArICAgICAgICAg ICAgICAgZ290byBza2lwX3NlbF9mZXRjaF9zZXRfbG9vcDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICsgICAgICAgLyogSXQgbXVzdCBiZSBhbGlnbmVkIHRvIDQgbGluZXMgKi8KPiA+ID4gPiA+ICsg ICAgICAgcGlwZV9jbGlwLnkxIC09IHBpcGVfY2xpcC55MSAlIDQ7Cj4gPiA+ID4gPiArICAgICAg IGlmIChwaXBlX2NsaXAueTIgJSA0KQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHBpcGVfY2xp cC55MiA9ICgocGlwZV9jbGlwLnkyIC8gNCkgKyAxKSAqIDQ7Cj4gPiA+ID4gPiArCj4gPiA+ID4g PiArICAgICAgIC8qCj4gPiA+ID4gPiArICAgICAgICAqIE5vdyB0aGF0IHdlIGhhdmUgdGhlIHBp cGUgZGFtYWdlZCBhcmVhIGNoZWNrIGlmIGl0IGludGVyc2VjdCB3aXRoCj4gPiA+ID4gPiArICAg ICAgICAqIGV2ZXJ5IHBsYW5lLCBpZiBpdCBkb2VzIHNldCB0aGUgcGxhbmUgc2VsZWN0aXZlIGZl dGNoIGFyZWEuCj4gPiA+ID4gPiArICAgICAgICAqLwo+ID4gPiA+ID4gKyAgICAgICBmb3JfZWFj aF9vbGRuZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3Rh dGUsCj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX3JlY3QgKnNlbF9mZXRjaF9hcmVhLCBpbnRlcjsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmNydGMgIT0gY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjIHx8Cj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICFuZXdfcGxhbmVf c3RhdGUtPnVhcGkudmlzaWJsZSkKPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGludGVyID0gcGlw ZV9jbGlwOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmICghZHJtX3JlY3RfaW50ZXJzZWN0 KCZpbnRlciwgJm5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QpKQo+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArICAgICAgICAg ICAgICAgc2VsX2ZldGNoX2FyZWEgPSAmbmV3X3BsYW5lX3N0YXRlLT5wc3IyX3NlbF9mZXRjaF9h cmVhOwo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHNlbF9mZXRjaF9hcmVhLT55MSA9IGludGVy LnkxIC0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MTsKPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICBzZWxfZmV0Y2hfYXJlYS0+eTIgPSBpbnRlci55MiAtIG5ld19wbGFuZV9zdGF0ZS0+dWFw aS5kc3QueTE7Cj4gPiA+ID4gPiAgICAgICAgIH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiArc2tpcF9z ZWxfZmV0Y2hfc2V0X2xvb3A6Cj4gPiA+ID4gPiAgICAgICAgIHBzcjJfbWFuX3Rya19jdGxfY2Fs YyhjcnRjX3N0YXRlLCAmcGlwZV9jbGlwLCBmdWxsX3VwZGF0ZSk7Cj4gPiA+ID4gPiAgICAgICAg IHJldHVybiAwOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiAyLjMwLjAKPiA+ ID4gPiA+Cj4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ ID4KPiA+ID4gPiAtLQo+ID4gPiA+IERhbmllbCBWZXR0ZXIKPiA+ID4gPiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4g Pgo+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+IFNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ ID4KPiA+Cj4gPgo+CgoKLS0KRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwg Q29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==