From mboxrd@z Thu Jan 1 00:00:00 1970 From: skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [PATCH] drm/msm/dpu: enable cursor plane on dpu Date: Mon, 06 Aug 2018 17:56:28 +0530 Message-ID: References: <1533207284-4326-1-git-send-email-skolluku@codeaurora.org> <20180803153756.GJ20303@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180803153756.GJ20303@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wOC0wMyAyMTowNywgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFRodSwgQXVnIDAyLCAy MDE4IGF0IDA0OjI0OjQ0UE0gKzA1MzAsIFNyYXZhbnRoaSBLb2xsdWt1ZHVydSB3cm90ZToKPj4g UmVzZXJ2ZSBETUEgcGlwZSBmb3IgY3Vyc29yIHBsYW5lIGFuZCBhdHRhY2ggaXQgdG8gdGhlCj4+ IGNydGMgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbi4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IFNy YXZhbnRoaSBLb2xsdWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+Cj4gCj4gSGkgU3Jh dmFudGhpLAo+IFRoYW5rcyBmb3Igc2VuZGluZyB0aGlzLiBJIGhhdmUgYSBmZXcgY29tbWVudHMs IG1vc3RseSBiYXNlZCBvZmYgbXkgb3duIAo+IGN1cnNvcgo+IHBhdGNoIFsxXSBJIHBvc3RlZCBs YXN0IHdlZWsuIEl0J3MgbW9zdGx5IHRoZSBzYW1lIGFzIHdoYXQgeW91IGhhdmUgCj4gaGVyZSwg YnV0Cj4gdGFrZXMgYSBjb3VwbGUgZGlmZmVyZW50IHRoaW5ncyBpbnRvIGNvbnNpZGVyYXRpb24u Cj4gCj4gWzFdLQo+IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9zZWFucGF1bC9kcHUt c3RhZ2luZy9jb21taXQvZmRlOWYxMWY4ZjNiZTNjZWFhY2ZkMDc1MWUyNTBhM2MwMzQ3NmE4Ywo+ IAo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAg ICAgfCAgNSArKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgg ICAgICAgfCAgNCArLQo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2Nh dGFsb2cuYyB8IDUzIAo+PiArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jICAgICAgICB8IDM1ICsrKysrKysrKysrLS0t LS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYyAgICAgIHwg IDkgKy0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5oICAg ICAgfCAgNCArLQo+PiAgNiBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA1NSBkZWxl dGlvbnMoLSkKPj4gCj4gCj4gL3NuaXAKPiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfa21zLmMKPj4gaW5kZXggOGQ0Njc4ZC4uZGM2NDdlZSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+PiBAQCAtNTMxLDEyICs1MzEsMTMgQEAg c3RhdGljIGludCBfZHB1X2ttc19kcm1fb2JqX2luaXQoc3RydWN0IGRwdV9rbXMgCj4+ICpkcHVf a21zKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4+ICAJc3RydWN0IGRybV9w bGFuZSAqcHJpbWFyeV9wbGFuZXNbTUFYX1BMQU5FU10sICpwbGFuZTsKPj4gKwlzdHJ1Y3QgZHJt X3BsYW5lICpjdXJzb3JfcGxhbmVzW01BWF9QTEFORVNdID0geyBOVUxMIH07Cj4+ICAJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+PiAKPj4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2Owo+ PiAgCXN0cnVjdCBkcHVfbWRzc19jZmcgKmNhdGFsb2c7Cj4+IAo+PiAtCWludCBwcmltYXJ5X3Bs YW5lc19pZHggPSAwLCBpLCByZXQ7Cj4+ICsJaW50IHByaW1hcnlfcGxhbmVzX2lkeCA9IDAsIGN1 cnNvcl9wbGFuZXNfaWR4ID0gMCwgaSwgcmV0Owo+PiAgCWludCBtYXhfY3J0Y19jb3VudDsKPj4g Cj4+ICAJaWYgKCFkcHVfa21zIHx8ICFkcHVfa21zLT5kZXYgfHwgIWRwdV9rbXMtPmRldi0+ZGV2 KSB7Cj4+IEBAIC01NTYsMTYgKzU1NywyNCBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpf aW5pdChzdHJ1Y3QgZHB1X2ttcyAKPj4gKmRwdV9rbXMpCj4+IAo+PiAgCW1heF9jcnRjX2NvdW50 ID0gbWluKGNhdGFsb2ctPm1peGVyX2NvdW50LCBwcml2LT5udW1fZW5jb2RlcnMpOwo+PiAKPj4g LQkvKiBDcmVhdGUgdGhlIHBsYW5lcyAqLwo+PiArCS8qIENyZWF0ZSB0aGUgcGxhbmVzLCBrZWVw aW5nIHRyYWNrIG9mIG9uZSBwcmltYXJ5L2N1cnNvciBwZXIgY3J0YyAKPj4gKi8KPj4gIAlmb3Ig KGkgPSAwOyBpIDwgY2F0YWxvZy0+c3NwcF9jb3VudDsgaSsrKSB7Cj4+IC0JCWJvb2wgcHJpbWFy eSA9IHRydWU7Cj4+IC0KPj4gLQkJaWYgKGNhdGFsb2ctPnNzcHBbaV0uZmVhdHVyZXMgJiBCSVQo RFBVX1NTUFBfQ1VSU09SKQo+PiAtCQkJfHwgcHJpbWFyeV9wbGFuZXNfaWR4ID49IG1heF9jcnRj X2NvdW50KQo+PiAtCQkJcHJpbWFyeSA9IGZhbHNlOwo+PiAtCj4+IC0JCXBsYW5lID0gZHB1X3Bs YW5lX2luaXQoZGV2LCBjYXRhbG9nLT5zc3BwW2ldLmlkLCBwcmltYXJ5LAo+PiAtCQkJCSgxVUwg PDwgbWF4X2NydGNfY291bnQpIC0gMSwgMCk7Cj4+ICsJCWVudW0gZHJtX3BsYW5lX3R5cGUgdHlw ZTsKPj4gKwo+PiArCQlpZiAoKGNhdGFsb2ctPnNzcHBbaV0uZmVhdHVyZXMgJiBCSVQoRFBVX1NT UFBfQ1VSU09SKSkKPj4gKwkJCSYmIGN1cnNvcl9wbGFuZXNfaWR4IDwgbWF4X2NydGNfY291bnQp Cj4gCj4gWW91IGRvbid0IG5lZWQgdG8gY2hlY2sgdGhhdCB0aGUgaW5kZXggaXMgbGVzcyB0aGFu IG1heF9jcnRjX2NvdW50LCAKPiBpdCdsbCBmaXQgaW4KPiB0aGUgYXJyYXkgcmVnYXJkbGVzcy4K PiAKVGhlIGlkZWEgb2YgYWRkaW5nIHRoaXMgaXMgbm90IHRvIGFkZHJlc3MgYXJyYXkgYm91bmRz IGJ1dCB0byBhdm9pZCAKbWFya2luZwp0aGUgcGxhbmUgYXMgY3Vyc29yIHdoZW4gaXQgYWN0dWFs bHkgd29uJ3QgYmUgdXNlZCBhcyBvbmUuClRoYXQgaXMsIGJhc2VkIG9uIGNhdGFsb2cgaW5mbywg dHdvIERNQSBwaXBlcyBhcmUgbWFya2VkIGZvciBjdXJzb3IgCnBsYW5lcyBidXQgc2luY2UgY3Vy cmVudGx5LAp3ZSBoYXZlIGp1c3Qgb25lIGNydGMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gZXhwb3Nl IHR3byBjdXJzb3IgcGxhbmVzIGFuZCAKaW5zdGVhZAp1c2UgdGhlIG90aGVyIG9uZSBhcyBvdmVy bGF5LgpCYXNpY2FsbHksIHRoZSBjcnRjIGNvdW50IHNob3VsZCB0YWtlIHByZWNlZGVuY2Ugb3Zl ciBwaXBlIGNhcGFiaWxpdGllcyAKd2hpbGUgZGVjaWRpbmcKdGhlIG51bWJlciBvZiBjdXJzb3Ig cGxhbmVzIHJlcXVpcmVkLgoKPj4gKwkJCXR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4+ ICsJCWVsc2UgaWYgKHByaW1hcnlfcGxhbmVzX2lkeCA8IG1heF9jcnRjX2NvdW50KQo+PiArCQkJ dHlwZSA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlk7Cj4+ICsJCWVsc2UKPj4gKwkJCXR5cGUgPSBE Uk1fUExBTkVfVFlQRV9PVkVSTEFZOwo+PiArCj4+ICsJCURQVV9ERUJVRygiQ3JlYXRlIHBsYW5l IHR5cGUgJWQgd2l0aCBmZWF0dXJlcyAlbHggKGN1ciAlbHgpXG4iLAo+PiArCQkJICB0eXBlLCBj YXRhbG9nLT5zc3BwW2ldLmZlYXR1cmVzLAo+PiArCQkJICBjYXRhbG9nLT5zc3BwW2ldLmZlYXR1 cmVzICYgQklUKERQVV9TU1BQX0NVUlNPUikpOwo+PiArCj4+ICsJCXBsYW5lID0gZHB1X3BsYW5l X2luaXQoZGV2LCBjYXRhbG9nLT5zc3BwW2ldLmlkLCB0eXBlLAo+PiArCQkJCSAgICAgICAoMVVM IDw8IG1heF9jcnRjX2NvdW50KSAtIDEsIDApOwo+PiAgCQlpZiAoSVNfRVJSKHBsYW5lKSkgewo+ PiAgCQkJRFBVX0VSUk9SKCJkcHVfcGxhbmVfaW5pdCBmYWlsZWRcbiIpOwo+PiAgCQkJcmV0ID0g UFRSX0VSUihwbGFuZSk7Cj4+IEBAIC01NzMsNyArNTgyLDkgQEAgc3RhdGljIGludCBfZHB1X2tt c19kcm1fb2JqX2luaXQoc3RydWN0IGRwdV9rbXMgCj4+ICpkcHVfa21zKQo+PiAgCQl9Cj4+ICAJ CXByaXYtPnBsYW5lc1twcml2LT5udW1fcGxhbmVzKytdID0gcGxhbmU7Cj4+IAo+PiAtCQlpZiAo cHJpbWFyeSkKPj4gKwkJaWYgKHR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+PiArCQkJ Y3Vyc29yX3BsYW5lc1tjdXJzb3JfcGxhbmVzX2lkeCsrXSA9IHBsYW5lOwo+PiArCQllbHNlIGlm ICh0eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCj4+ICAJCQlwcmltYXJ5X3BsYW5lc1tw cmltYXJ5X3BsYW5lc19pZHgrK10gPSBwbGFuZTsKPj4gIAl9Cj4+IAo+PiBAQCAtNTgxLDcgKzU5 Miw3IEBAIHN0YXRpYyBpbnQgX2RwdV9rbXNfZHJtX29ial9pbml0KHN0cnVjdCBkcHVfa21zIAo+ PiAqZHB1X2ttcykKPj4gCj4+ICAJLyogQ3JlYXRlIG9uZSBDUlRDIHBlciBlbmNvZGVyICovCj4+ ICAJZm9yIChpID0gMDsgaSA8IG1heF9jcnRjX2NvdW50OyBpKyspIHsKPj4gLQkJY3J0YyA9IGRw dV9jcnRjX2luaXQoZGV2LCBwcmltYXJ5X3BsYW5lc1tpXSk7Cj4+ICsJCWNydGMgPSBkcHVfY3J0 Y19pbml0KGRldiwgcHJpbWFyeV9wbGFuZXNbaV0sIGN1cnNvcl9wbGFuZXNbaV0pOwo+IAo+IEhl cmUgeW91IGFzc3VtZSB0aGF0IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjdXJzb3IgcGVyIGNydGMu IFRoYXQgbWlnaHQgCj4gbm90IGJlCj4gdGhlIGNhc2UuIENoZWNrIG91dCBob3cgSSBoYW5kbGUg dGhpcyBpbiBteSBwYXRjaCB3aXRoIAo+IG1heF9jdXJzb3JfcGxhbmVzLCBpdCdzCj4gYSBiaXQg bW9yZSBzYWZlIHRoYW4gdGhpcy4KPiAKQXMgdGhlIGN1cnNvciBwbGFuZXMgYXJyYXkgaXMgaW5p dGl0YWxpemVkIHRvIE5VTEwsIHRoZXJlIHNob3VsZG4ndCBiZSAKYW55IGlzc3VlIGlmCnRoZXJl IGlzIG5vIGN1cnNvciBhc3NpZ25tZW50IGZvciBhIGdpdmVuIGNydGMuCgpUaGFua3MsClNyYXZh bnRoaQo+IAo+IAo+PiAgCQlpZiAoSVNfRVJSKGNydGMpKSB7Cj4+ICAJCQlyZXQgPSBQVFJfRVJS KGNydGMpOwo+PiAgCQkJZ290byBmYWlsOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3BsYW5lLmMKPj4gaW5kZXggYjY0MGUzOS4uZWZkZjliMiAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKPj4gQEAgLTE4MjcsNyArMTgy Nyw3IEBAIGJvb2wgaXNfZHB1X3BsYW5lX3ZpcnR1YWwoc3RydWN0IGRybV9wbGFuZSAKPj4gKnBs YW5lKQo+PiAKPj4gIC8qIGluaXRpYWxpemUgcGxhbmUgKi8KPj4gIHN0cnVjdCBkcm1fcGxhbmUg KmRwdV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+IC0JCXVpbnQzMl90IHBp cGUsIGJvb2wgcHJpbWFyeV9wbGFuZSwKPj4gKwkJdWludDMyX3QgcGlwZSwgZW51bSBkcm1fcGxh bmVfdHlwZSB0eXBlLAo+PiAgCQl1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzLCB1MzIgbWFz dGVyX3BsYW5lX2lkKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gTlVMTCwg Km1hc3Rlcl9wbGFuZSA9IE5VTEw7Cj4+IEBAIC0xODM1LDcgKzE4MzUsNiBAQCBzdHJ1Y3QgZHJt X3BsYW5lICpkcHVfcGxhbmVfaW5pdChzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwKPj4gIAlz dHJ1Y3QgZHB1X3BsYW5lICpwZHB1Owo+PiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7 Cj4+ICAJc3RydWN0IGRwdV9rbXMgKmttczsKPj4gLQllbnVtIGRybV9wbGFuZV90eXBlIHR5cGU7 Cj4+ICAJaW50IHpwb3NfbWF4ID0gRFBVX1pQT1NfTUFYOwo+PiAgCWludCByZXQgPSAtRUlOVkFM Owo+PiAKPj4gQEAgLTE5MTYsMTIgKzE5MTUsNiBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpkcHVfcGxh bmVfaW5pdChzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwKPj4gIAkJZ290byBjbGVhbl9zc3Bw Owo+PiAgCX0KPj4gCj4+IC0JaWYgKHBkcHUtPmZlYXR1cmVzICYgQklUKERQVV9TU1BQX0NVUlNP UikpCj4+IC0JCXR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1I7Cj4+IC0JZWxzZSBpZiAocHJp bWFyeV9wbGFuZSkKPj4gLQkJdHlwZSA9IERSTV9QTEFORV9UWVBFX1BSSU1BUlk7Cj4+IC0JZWxz ZQo+PiAtCQl0eXBlID0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPj4gIAlyZXQgPSBkcm1fdW5p dmVyc2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMHhmZiwgJmRwdV9wbGFuZV9mdW5jcywKPj4g IAkJCQlwZHB1LT5mb3JtYXRzLCBwZHB1LT5uZm9ybWF0cywKPj4gIAkJCQlOVUxMLCB0eXBlLCBO VUxMKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9w bGFuZS5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5oCj4+ IGluZGV4IGY2ZmU2ZGQuLjdmZWQwYjYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9wbGFuZS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9wbGFuZS5oCj4+IEBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBkcHVfcGxhbmVf Z2V0X2N0bF9mbHVzaChzdHJ1Y3QgZHJtX3BsYW5lIAo+PiAqcGxhbmUsIHN0cnVjdCBkcHVfaHdf Y3RsICpjdGwsCj4+ICAgKiBkcHVfcGxhbmVfaW5pdCAtIGNyZWF0ZSBuZXcgZHB1IHBsYW5lIGZv ciB0aGUgZ2l2ZW4gcGlwZQo+PiAgICogQGRldjogICBQb2ludGVyIHRvIERSTSBkZXZpY2UKPj4g ICAqIEBwaXBlOiAgZHB1IGhhcmR3YXJlIHBpcGUgaWRlbnRpZmllcgo+PiAtICogQHByaW1hcnlf cGxhbmU6IHRydWUgaWYgdGhpcyBwaXBlIGlzIHByaW1hcnkgcGxhbmUgZm9yIGNydGMKPj4gKyAq IEB0eXBlOiAgUGxhbmUgdHlwZSAtIFBSSU1BUlkvT1ZFUkxBWS9DVVJTT1IKPj4gICAqIEBwb3Nz aWJsZV9jcnRjczogYml0bWFzayBvZiBjcnRjIHRoYXQgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBn aXZlbiAKPj4gcGlwZQo+PiAgICogQG1hc3Rlcl9wbGFuZV9pZDogcHJpbWFyeSBwbGFuZSBpZCBv ZiBhIG11bHRpcmVjdCBwaXBlLiAwIHZhbHVlIAo+PiBwYXNzZWQgZm9yCj4+ICAgKiAgICAgICAg ICAgICAgICAgICBhIHJlZ3VsYXIgcGxhbmUgaW5pdGlhbGl6YXRpb24uIEEgbm9uLXplcm8gCj4+ IHByaW1hcnkgcGxhbmUKPj4gQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIGRwdV9wbGFuZV9nZXRf Y3RsX2ZsdXNoKHN0cnVjdCBkcm1fcGxhbmUgCj4+ICpwbGFuZSwgc3RydWN0IGRwdV9od19jdGwg KmN0bCwKPj4gICAqCj4+ICAgKi8KPj4gIHN0cnVjdCBkcm1fcGxhbmUgKmRwdV9wbGFuZV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+IC0JCXVpbnQzMl90IHBpcGUsIGJvb2wgcHJpbWFy eV9wbGFuZSwKPj4gKwkJdWludDMyX3QgcGlwZSwgZW51bSBkcm1fcGxhbmVfdHlwZSB0eXBlLAo+ PiAgCQl1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzLCB1MzIgbWFzdGVyX3BsYW5lX2lkKTsK Pj4gCj4+ICAvKioKPj4gLS0KPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMu IGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSAKPj4gRm9ydW0sCj4+IGEgTGludXggRm91 bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKPj4gCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5v QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=