From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH v2] drm/msm/display: negative x/y in cursor move Date: Thu, 26 Jul 2018 12:55:24 +0530 Message-ID: <1763b39b-9898-bf5a-9afc-32d8e753bbbc@codeaurora.org> References: <201807170504.KBRX6Bew%fengguang.wu@intel.com> <20180716230314.3527-1-carsten.behling@gmail.com> <99e72f0c-e753-cff9-9a58-50d919d472a5@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Carsten Behling Cc: Carsten Behling , Steve Kowalik , David Airlie , Daniel Vetter , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Rob Clark , Sean Paul , Viresh Kumar , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiBXZWRuZXNkYXkgMjUgSnVseSAyMDE4IDA4OjQwIFBNLCBDYXJzdGVuIEJlaGxpbmcgd3Jv dGU6Cj4gSGksCj4gCj4+IFRoYW5rcyBmb3IgdGhlIHBhdGNoLiBDb3VsZCB5b3UgdGVsbCBob3cg dG8gcmVwcm9kdWNlIHRoaXMgaXNzdWUKPj4gb24gYSBkYjQxMGM/Cj4gID4KPj4gSSB3YXMgcGxh eWluZyB3aXRoIHhyYW5kcidzIC0tcm90YXRlIGFuZCAtLXJlZmxlY3Qgb3B0aW9ucyB0byBnZXQK Pj4gYSByb3RhdGVkIG91dHB1dCwgYnV0IHdhc24ndCBhYmxlIHRvIGdlbmVyYXRlIG5lZ2F0aXZl IHgveQo+PiBjby1vcmRpbmF0ZXMuIEknbSB1c2luZyBsaW5hcm8ncyBkZWJpYW4gdXNlcnNwYWNl LCBydW5uaW5nIGx4cXQuCj4gCj4gSSB1c2VkIFlvY3RvIFJvY2tvIGZyb20gOTZCb2FyZHMKPiAK PiBodHRwczovL2dpdGh1Yi5jb20vOTZib2FyZHMvb2UtcnBiLW1hbmlmZXN0L3RyZWUvcm9ja28K PiAKPiBNQUNISU5FPWRyYWdvbmJvYXJkLTQxMGMKPiBESVNUUk89cnBiCj4gCj4gcnBiLWRlc2t0 b3AtaW1hZ2UKPiAKPiBDb25uZWN0IEhETUkgbW9uaXRvciBhbmQgVVNCIG1vdXNlLCB0aGVuCj4g Cj4gMS4pIEp1c3QgYm9vdC4gV2FpdCBmb3IgWC1TZXJ2ZXIgdXAuCj4gMi4pIEZyb20gbXkgc2Vy aWFsIGNvbnNvbGU6Cj4gIMKgIMKgIMKgRElTUExBWT06MC4wIHhyYW5kciAtbyAyCj4gMy4pIFRy eSB0byBtb3ZlIHRoZSBtb3VzZSB0byB0aGUgdXBwZXIgKHRoZSByb3RhdGVkIGxvd2VyKSBib3Jk ZXIuCj4gCj4gSW50ZXJlc3RpbmcgdG8ga25vdyB0aGF0IHlvdXIgZGViaWFuIHVzZXIgc3BhY2Ug aXMgb2suIFRoZSB5b2N0byBYMTEgCj4gY29uZmlndXJhdGlvbiBpcyB2ZXJ5IGJhc2ljLgo+IFRo ZXJlIG1heSBiZSBhIFgxMSBjb25maWd1cmF0aW9uIG9yIGV4dGVuc2lvbiB0aGF0IGRvZXMgdGhl IHRyaWNrIG9uIERlYmlhbi4KClRoYW5rcywgSSdsbCBnaXZlIHRoaXMgYSB0cnkuCgpUaGUgcGF0 Y2ggbG9va3MgZ29vZCwgYW55d2F5LiBSb2IncyBxdWV1ZWQgaXQgZm9yIG1zbS1uZXh0LgoKQXJj aGl0Cgo+IAo+IFRoZXJlZm9yZSwgSSBhc2tlZCB0aGUgWDExIHBlb3BsZSB3aGVyZSB0byBmaXg6 Cj4gCj4gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMveG9yZy9tc2c1ODk2OS5odG1sCj4g Cj4gQmVzdCByZWdhcmRzCj4gLUNhcnN0ZW4KPiAKPiAKPiAyMDE4LTA3LTI0IDE5OjMzIEdNVCsw MjowMCBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnIAo+IDxtYWlsdG86YXJj aGl0dEBjb2RlYXVyb3JhLm9yZz4+Ogo+IAo+ICAgICBIaSwKPiAKPiAgICAgT24gVHVlc2RheSAx NyBKdWx5IDIwMTggMDQ6MzMgQU0sIENhcnN0ZW4gQmVobGluZyB3cm90ZToKPiAKPiAgICAgICAg IG1vZGVzZXR0aW5nIFgxMSBkcml2ZXIgbWF5IHByb3ZpZGUgbmVnYXRpdmUgeC95IGNvcmRpbmF0 ZXMgaW4KPiAgICAgICAgIG1kcDVfY3J0Y19jdXJzb3JfbW92ZSBjYWxsIHdoZW4gcm90YXRpb24g aXMgZW5hYmxlZC4KPiAKPiAgICAgICAgIEN1cnNvciBidWZmZXIgY2FuIG92ZXJsYXAgZG93biB0 byBpdHMgbmVnYXRpdmUgd2lkdGgvaGVpZ2h0Lgo+IAo+ICAgICAgICAgUk9JIGhhcyB0byBiZSBy ZWNhbGN1bGF0ZWQgZm9yIG5lZ2F0aXZlIHgveSBpbmRpY2F0aW5nIHVzaW5nIHRoZQo+ICAgICAg ICAgbG93ZXIvcmlnaHQgY29ybmVyIG9mIHRoZSBjdXJzb3IgYnVmZmVyIGFuZCBob3RzcG90IG11 c3QgYmUgc2V0Cj4gICAgICAgICBpbiBNRFA1X0xNX0NVUlNPUl9YWV9TUkNfWSBNRFA1X0xNX0NV UlNPUl9YWV9TUkNfWC4KPiAKPiAKPiAgICAgVGhhbmtzIGZvciB0aGUgcGF0Y2guIENvdWxkIHlv dSB0ZWxsIGhvdyB0byByZXByb2R1Y2UgdGhpcyBpc3N1ZQo+ICAgICBvbiBhIGRiNDEwYz8KPiAK PiAgICAgSSB3YXMgcGxheWluZyB3aXRoIHhyYW5kcidzIC0tcm90YXRlIGFuZCAtLXJlZmxlY3Qg b3B0aW9ucyB0byBnZXQKPiAgICAgYSByb3RhdGVkIG91dHB1dCwgYnV0IHdhc24ndCBhYmxlIHRv IGdlbmVyYXRlIG5lZ2F0aXZlIHgveQo+ICAgICBjby1vcmRpbmF0ZXMuIEknbSB1c2luZyBsaW5h cm8ncyBkZWJpYW4gdXNlcnNwYWNlLCBydW5uaW5nIGx4cXQuCj4gCj4gICAgIFRoYW5rcywKPiAg ICAgQXJjaGl0Cj4gCj4gCj4gCj4gICAgICAgICBTaWduZWQtb2ZmLWJ5OiBDYXJzdGVuIEJlaGxp bmcgPGNhcnN0ZW4uYmVobGluZ0BnbWFpbC5jb20KPiAgICAgICAgIDxtYWlsdG86Y2Fyc3Rlbi5i ZWhsaW5nQGdtYWlsLmNvbT4+Cj4gICAgICAgICAtLS0KPiAgICAgICAgIENoYW5nZXMgaW4gdjI6 Cj4gICAgICAgICAtIGZpeGVkIGZvcm1hdCBzcGVjaWZpZXIgaW4gZGVidWcgbWVzc2FnZQo+IAo+ ICAgICAgICAgIMKgIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jIHwg NTEKPiAgICAgICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgICAgICAgICDC oCAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiAg ICAgICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2Ny dGMuYwo+ICAgICAgICAgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NydGMu Ywo+ICAgICAgICAgaW5kZXggMTAyNzEzNTk3ODllLi5hN2Y0YTY2ODhmZWMgMTAwNjQ0Cj4gICAg ICAgICAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvbWRwNS9tZHA1X2NydGMuYwo+ICAg ICAgICAgKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMKPiAg ICAgICAgIEBAIC02NSw3ICs2NSw3IEBAIHN0cnVjdCBtZHA1X2NydGMgewo+ICAgICAgICAgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqc2Nhbm91dF9ibzsK PiAgICAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB1aW50NjRfdCBpb3ZhOwo+ICAgICAg ICAgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVpbnQzMl90IHdpZHRoLCBoZWlnaHQ7Cj4gICAg ICAgICAtwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB1aW50MzJfdCB4LCB5Owo+ICAgICAgICAgK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgaW50IHgsIHk7Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgfSBj dXJzb3I7Cj4gICAgICAgICAgwqAgfTsKPiAgICAgICAgICDCoCAjZGVmaW5lIHRvX21kcDVfY3J0 Yyh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IG1kcDVfY3J0YywgYmFzZSkKPiAgICAgICAgIEBA IC03NjAsMjAgKzc2MCwzMSBAQCBzdGF0aWMgdm9pZCBnZXRfcm9pKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgICAgICAgIHVpbnQzMl90ICpyb2lfdywgdWludDMyX3QgKnJvaV9oKQo+ICAgICAg ICAgIMKgIMKgIMKgIMKgIMKgKiBDdXJzb3IgUmVnaW9uIE9mIEludGVyZXN0IChST0kpIGlzIGEg cGxhbmUgcmVhZCBmcm9tCj4gICAgICAgICBjdXJzb3IKPiAgICAgICAgICDCoCDCoCDCoCDCoCDC oCogYnVmZmVyIHRvIHJlbmRlci4gVGhlIFJPSSByZWdpb24gaXMgZGV0ZXJtaW5lZCBieQo+ICAg ICAgICAgdGhlIHZpc2liaWxpdHkgb2YKPiAgICAgICAgICDCoCDCoCDCoCDCoCDCoCogdGhlIGN1 cnNvciBwb2ludC4gSW4gdGhlIGRlZmF1bHQgQ3Vyc29yIGltYWdlIHRoZQo+ICAgICAgICAgY3Vy c29yIHBvaW50IHdpbGwKPiAgICAgICAgIC3CoCDCoCDCoCDCoCAqIGJlIGF0IHRoZSB0b3AgbGVm dCBvZiB0aGUgY3Vyc29yIGltYWdlLCB1bmxlc3MgaXQgaXMKPiAgICAgICAgIHNwZWNpZmllZAo+ ICAgICAgICAgLcKgIMKgIMKgIMKgICogb3RoZXJ3aXNlIHVzaW5nIGhvdHNwb3QgZmVhdHVyZS4K PiAgICAgICAgICvCoCDCoCDCoCDCoCAqIGJlIGF0IHRoZSB0b3AgbGVmdCBvZiB0aGUgY3Vyc29y IGltYWdlLgo+ICAgICAgICAgIMKgIMKgIMKgIMKgIMKgKgo+ICAgICAgICAgK8KgIMKgIMKgIMKg ICogV2l0aG91dCByb3RhdGlvbjoKPiAgICAgICAgICDCoCDCoCDCoCDCoCDCoCogSWYgdGhlIGN1 cnNvciBwb2ludCByZWFjaGVzIHRoZSByaWdodCAoeHJlcyAtIHggPAo+ICAgICAgICAgY3Vyc29y LndpZHRoKSBvcgo+ICAgICAgICAgIMKgIMKgIMKgIMKgIMKgKiBib3R0b20gKHlyZXMgLSB5IDwg Y3Vyc29yLmhlaWdodCkgYm91bmRhcnkgb2YgdGhlCj4gICAgICAgICBzY3JlZW4sIHRoZW4gUk9J Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgwqAqIHdpZHRoIGFuZCBST0kgaGVpZ2h0IG5lZWQgdG8g YmUgZXZhbHVhdGVkIHRvIGNyb3AKPiAgICAgICAgIHRoZSBjdXJzb3IgaW1hZ2UKPiAgICAgICAg ICDCoCDCoCDCoCDCoCDCoCogYWNjb3JkaW5nbHkuCj4gICAgICAgICAgwqAgwqAgwqAgwqAgwqAq ICh4cmVzLXgpIHdpbGwgYmUgbmV3IGN1cnNvciB3aWR0aCB3aGVuIHggPiAoeHJlcyAtCj4gICAg ICAgICBjdXJzb3Iud2lkdGgpCj4gICAgICAgICAgwqAgwqAgwqAgwqAgwqAqICh5cmVzLXkpIHdp bGwgYmUgbmV3IGN1cnNvciBoZWlnaHQgd2hlbiB5ID4gKHlyZXMgLQo+ICAgICAgICAgY3Vyc29y LmhlaWdodCkKPiAgICAgICAgICvCoCDCoCDCoCDCoCAqCj4gICAgICAgICArwqAgwqAgwqAgwqAg KiBXaXRoIHJvdGF0aW9uOgo+ICAgICAgICAgK8KgIMKgIMKgIMKgICogV2UgZ2V0IG5lZ2F0aXZl IHggYW5kL29yIHkgY29vcmRpbmF0ZXMuCj4gICAgICAgICArwqAgwqAgwqAgwqAgKiAoY3Vyc29y LndpZHRoIC0gYWJzKHgpKSB3aWxsIGJlIG5ldyBjdXJzb3Igd2lkdGggd2hlbgo+ICAgICAgICAg eCA8IDAKPiAgICAgICAgICvCoCDCoCDCoCDCoCAqIChjdXJzb3IuaGVpZ2h0IC0gYWJzKHkpKSB3 aWxsIGJlIG5ldyBjdXJzb3Igd2lkdGgKPiAgICAgICAgIHdoZW4geSA8IDAKPiAgICAgICAgICDC oCDCoCDCoCDCoCDCoCovCj4gICAgICAgICAtwqAgwqAgwqAgwqAqcm9pX3cgPSBtaW4obWRwNV9j cnRjLT5jdXJzb3Iud2lkdGgsIHhyZXMgLQo+ICAgICAgICAgK8KgIMKgIMKgIMKgaWYgKG1kcDVf Y3J0Yy0+Y3Vyc29yLnggPj0gMCkKPiAgICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCpy b2lfdyA9IG1pbihtZHA1X2NydGMtPmN1cnNvci53aWR0aCwgeHJlcyAtCj4gICAgICAgICAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbWRwNV9jcnRjLT5jdXJzb3IueCk7Cj4g ICAgICAgICAtwqAgwqAgwqAgwqAqcm9pX2ggPSBtaW4obWRwNV9jcnRjLT5jdXJzb3IuaGVpZ2h0 LCB5cmVzIC0KPiAgICAgICAgICvCoCDCoCDCoCDCoGVsc2UKPiAgICAgICAgICvCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCpyb2lfdyA9IG1kcDVfY3J0Yy0+Y3Vyc29yLndpZHRoIC0KPiAgICAgICAg IGFicyhtZHA1X2NydGMtPmN1cnNvci54KTsKPiAgICAgICAgICvCoCDCoCDCoCDCoGlmIChtZHA1 X2NydGMtPmN1cnNvci55ID49IDApCj4gICAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAq cm9pX2ggPSBtaW4obWRwNV9jcnRjLT5jdXJzb3IuaGVpZ2h0LCB5cmVzIC0KPiAgICAgICAgICDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBtZHA1X2NydGMtPmN1cnNvci55KTsK PiAgICAgICAgICvCoCDCoCDCoCDCoGVsc2UKPiAgICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCpyb2lfaCA9IG1kcDVfY3J0Yy0+Y3Vyc29yLmhlaWdodCAtCj4gICAgICAgICBhYnMobWRw NV9jcnRjLT5jdXJzb3IueSk7Cj4gICAgICAgICAgwqAgfQo+ICAgICAgICAgIMKgIMKgIHN0YXRp YyB2b2lkIG1kcDVfY3J0Y19yZXN0b3JlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g ICAgICAgICBAQCAtNzgzLDcgKzc5NCw3IEBAIHN0YXRpYyB2b2lkIG1kcDVfY3J0Y19yZXN0b3Jl X2N1cnNvcihzdHJ1Y3QKPiAgICAgICAgIGRybV9jcnRjICpjcnRjKQo+ICAgICAgICAgIMKgIMKg IMKgIMKgIHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSBnZXRfa21zKGNydGMpOwo+ICAgICAg ICAgIMKgIMKgIMKgIMKgIGNvbnN0IGVudW0gbWRwNV9jdXJzb3JfYWxwaGEgY3VyX2FscGhhID0K PiAgICAgICAgIENVUlNPUl9BTFBIQV9QRVJfUElYRUw7Cj4gICAgICAgICAgwqAgwqAgwqAgwqAg dWludDMyX3QgYmxlbmRjZmcsIHN0cmlkZTsKPiAgICAgICAgIC3CoCDCoCDCoCDCoHVpbnQzMl90 IHgsIHksIHdpZHRoLCBoZWlnaHQ7Cj4gICAgICAgICArwqAgwqAgwqAgwqB1aW50MzJfdCB4LCB5 LCBzcmNfeCwgc3JjX3ksIHdpZHRoLCBoZWlnaHQ7Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgdWlu dDMyX3Qgcm9pX3csIHJvaV9oOwo+ICAgICAgICAgIMKgIMKgIMKgIMKgIGludCBsbTsKPiAgICAg ICAgICDCoCBAQCAtODAwLDYgKzgxMSwyNiBAQCBzdGF0aWMgdm9pZAo+ICAgICAgICAgbWRwNV9j cnRjX3Jlc3RvcmVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgICAgICAgICDCoCDC oCDCoCDCoCBnZXRfcm9pKGNydGMsICZyb2lfdywgJnJvaV9oKTsKPiAgICAgICAgICDCoCArwqAg wqAgwqAvKiBJZiBjdXNyb3IgYnVmZmVyIG92ZXJsYXBzIGR1ZSB0byByb3RhdGlvbiBvbiB0aGUK PiAgICAgICAgICvCoCDCoCDCoCDCoCAqIHVwcGVyIG9yIGxlZnQgc2NyZWVuIGJvcmRlciB0aGUg cGl4ZWwgb2Zmc2V0IGluc2lkZQo+ICAgICAgICAgK8KgIMKgIMKgIMKgICogdGhlIGN1cnNvciBi dWZmZXIgb2YgdGhlIFJPSSBpcyB0aGUgcG9zaXRpdmUgb3ZlcmxhcAo+ICAgICAgICAgK8KgIMKg IMKgIMKgICogZGlzdGFuY2UuCj4gICAgICAgICArwqAgwqAgwqAgwqAgKi8KPiAgICAgICAgICvC oCDCoCDCoCDCoGlmIChtZHA1X2NydGMtPmN1cnNvci54IDwgMCkgewo+ICAgICAgICAgK8KgIMKg IMKgIMKgIMKgIMKgIMKgIMKgc3JjX3ggPSBhYnMobWRwNV9jcnRjLT5jdXJzb3IueCk7Cj4gICAg ICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB4ID0gMDsKPiAgICAgICAgICvCoCDCoCDCoCDC oH0gZWxzZSB7Cj4gICAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBzcmNfeCA9IDA7Cj4g ICAgICAgICArwqAgwqAgwqAgwqB9Cj4gICAgICAgICArwqAgwqAgwqAgwqBpZiAobWRwNV9jcnRj LT5jdXJzb3IueSA8IDApIHsKPiAgICAgICAgICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHNyY195 ID0gYWJzKG1kcDVfY3J0Yy0+Y3Vyc29yLnkpOwo+ICAgICAgICAgK8KgIMKgIMKgIMKgIMKgIMKg IMKgIMKgeSA9IDA7Cj4gICAgICAgICArwqAgwqAgwqAgwqB9IGVsc2Ugewo+ICAgICAgICAgK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgc3JjX3kgPSAwOwo+ICAgICAgICAgK8KgIMKgIMKgIMKgfQo+ ICAgICAgICAgK8KgIMKgIMKgIMKgREJHKCIlczogeD0ldSwgeT0ldSByb2lfdz0ldSByb2lfaD0l dSBzcmNfeD0ldSBzcmNfeT0ldSIsCj4gICAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBj cnRjLT5uYW1lLCB4LCB5LCByb2lfdywgcm9pX2gsIHNyY194LCBzcmNfeSk7Cj4gICAgICAgICAr Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1f Q1VSU09SX1NUUklERShsbSksCj4gICAgICAgICBzdHJpZGUpOwo+ICAgICAgICAgIMKgIMKgIMKg IMKgIG1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X0xNX0NVUlNPUl9GT1JNQVQobG0pLAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICBNRFA1X0xNX0NVUlNP Ul9GT1JNQVRfRk9STUFUKENVUlNPUl9GTVRfQVJHQjg4ODgpKTsKPiAgICAgICAgIEBAIC04MTIs NiArODQzLDkgQEAgc3RhdGljIHZvaWQgbWRwNV9jcnRjX3Jlc3RvcmVfY3Vyc29yKHN0cnVjdAo+ ICAgICAgICAgZHJtX2NydGMgKmNydGMpCj4gICAgICAgICAgwqAgwqAgwqAgwqAgbWRwNV93cml0 ZShtZHA1X2ttcywgUkVHX01EUDVfTE1fQ1VSU09SX1NUQVJUX1hZKGxtKSwKPiAgICAgICAgICDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBNRFA1X0xNX0NVUlNPUl9TVEFSVF9Y WV9ZX1NUQVJUKHkpIHwKPiAgICAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBNRFA1X0xNX0NVUlNPUl9TVEFSVF9YWV9YX1NUQVJUKHgpKTsKPiAgICAgICAgICvCoCDC oCDCoCDCoG1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X0xNX0NVUlNPUl9YWShsbSksCj4g ICAgICAgICArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBNRFA1X0xNX0NVUlNP Ul9YWV9TUkNfWShzcmNfeSkgfAo+ICAgICAgICAgK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgTURQNV9MTV9DVVJTT1JfWFlfU1JDX1goc3JjX3gpKTsKPiAgICAgICAgICDCoCDC oCDCoCDCoCBtZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9MTV9DVVJTT1JfQkFTRV9BRERS KGxtKSwKPiAgICAgICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBtZHA1 X2NydGMtPmN1cnNvci5pb3ZhKTsKPiAgICAgICAgICDCoCBAQCAtOTMyLDggKzk2Niw5IEBAIHN0 YXRpYyBpbnQgbWRwNV9jcnRjX2N1cnNvcl9tb3ZlKHN0cnVjdAo+ICAgICAgICAgZHJtX2NydGMg KmNydGMsIGludCB4LCBpbnQgeSkKPiAgICAgICAgICDCoCDCoCDCoCDCoCBpZiAodW5saWtlbHko IWNydGMtPnN0YXRlLT5lbmFibGUpKQo+ICAgICAgICAgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IHJldHVybiAwOwo+ICAgICAgICAgIMKgIC3CoCDCoCDCoG1kcDVfY3J0Yy0+Y3Vyc29yLnggPSB4 ID0gbWF4KHgsIDApOwo+ICAgICAgICAgLcKgIMKgIMKgIMKgbWRwNV9jcnRjLT5jdXJzb3IueSA9 IHkgPSBtYXgoeSwgMCk7Cj4gICAgICAgICArwqAgwqAgwqAgwqAvKiBhY2NlcHQgbmVnYXRpdmUg eC95IGNvb3JkaW5hdGVzIHVwIHRvIG1heGltdW0gY3Vyc29yCj4gICAgICAgICBvdmVybGFwICov Cj4gICAgICAgICArwqAgwqAgwqAgwqBtZHA1X2NydGMtPmN1cnNvci54ID0geCA9IG1heCh4LAo+ ICAgICAgICAgLShpbnQpbWRwNV9jcnRjLT5jdXJzb3Iud2lkdGgpOwo+ICAgICAgICAgK8KgIMKg IMKgIMKgbWRwNV9jcnRjLT5jdXJzb3IueSA9IHkgPSBtYXgoeSwKPiAgICAgICAgIC0oaW50KW1k cDVfY3J0Yy0+Y3Vyc29yLmhlaWdodCk7Cj4gICAgICAgICAgwqAgwqAgwqAgwqAgZ2V0X3JvaShj cnRjLCAmcm9pX3csICZyb2lfaCk7Cj4gCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ZyZWVkcmVubwo=