From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v11 09/11] drm: Expose modes with aspect ratio, only if requested Date: Mon, 23 Apr 2018 13:16:59 +0300 Message-ID: <20180423101659.GG13908@intel.com> References: <1524231111-17440-1-git-send-email-ankit.k.nautiyal@intel.com> <1524231111-17440-10-git-send-email-ankit.k.nautiyal@intel.com> <20180420142239.GD13908@intel.com> <2f90d63a-d337-df50-4045-b6c663f6c595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <2f90d63a-d337-df50-4045-b6c663f6c595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Nautiyal, Ankit K" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBBcHIgMjMsIDIwMTggYXQgMTE6MTk6MDhBTSArMDUzMCwgTmF1dGl5YWwsIEFua2l0 IEsgd3JvdGU6Cj4gCj4gCj4gT24gNC8yMC8yMDE4IDc6NTIgUE0sIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiA+IE9uIEZyaSwgQXByIDIwLCAyMDE4IGF0IDA3OjAxOjQ5UE0gKzA1MzAsIE5hdXRp eWFsLCBBbmtpdCBLIHdyb3RlOgo+ID4+IEZyb206IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5h dXRpeWFsQGludGVsLmNvbT4KPiA+Pgo+ID4+IFdlIHBhcnNlIHRoZSBFRElEIGFuZCBhZGQgYWxs IHRoZSBtb2RlcyBpbiB0aGUgY29ubmVjdG9yJ3MgbW9kZWxpc3QuCj4gPj4gVGhpcyBhZGRzIENF QSBtb2RlcyB3aXRoIGFzcGVjdCByYXRpbyBpbmZvcm1hdGlvbiB0b28sIHJlZ2FyZGxlc3Mgb2YK PiA+PiB3aGV0aGVyIHVzZXIgc3BhY2UgcmVxdWVzdGVkIHRoaXMgaW5mb3JtYXRpb24gb3Igbm90 Lgo+ID4+Cj4gPj4gVGhpcyBwYXRjaCBwcnVuZXMgdGhlIG1vZGVzIHdpdGggYXNwZWN0LXJhdGlv IGluZm9ybWF0aW9uLCBmcm9tIGEKPiA+PiBjb25uZWN0b3IncyBtb2RlbGlzdCwgaWYgdGhlIHVz ZXItc3BhY2UgaGFzIG5vdCBzZXQgdGhlIGFzcGVjdCByYXRpbwo+ID4+IERSTSBjbGllbnQgY2Fw LiBIb3dldmVyIGlmIHN1Y2ggYSBtb2RlIGlzIHVuaXF1ZSBpbiB0aGUgbGlzdCwgaXQgaXMKPiA+ PiBrZXB0IGluIHRoZSBsaXN0LCB3aXRoIGFzcGVjdC1yYXRpbyBmbGFncyByZXNldC4KPiA+Pgo+ ID4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ PiBDYzogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4+IENj OiBKb3NlIEFicmV1IDxqb3NlLmFicmV1QHN5bm9wc3lzLmNvbT4KPiA+Pgo+ID4+IFNpZ25lZC1v ZmYtYnk6IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KPiA+Pgo+ ID4+IFYzOiBBcyBzdWdnZXN0ZWQgYnkgVmlsbGUsIG1vZGlmaWVkIHRoZSBtZWNoYW5pc20gb2Yg cHJ1bmluZyBvZiBtb2Rlcwo+ID4+ICAgICAgd2l0aCBhc3BlY3QtcmF0aW8sIGlmIHRoZSBhc3Bl Y3QtcmF0aW8gaXMgbm90IHN1cHBvcnRlZC4gSW5zdGVhZAo+ID4+ICAgICAgb2Ygc3RyYWlnaHQg YXdheSBwcnVuaW5nIHN1Y2ggYSBtb2RlLCB0aGUgbW9kZSBpcyByZXRhaW5lZCB3aXRoCj4gPj4g ICAgICBhc3BlY3QgcmF0aW8gYml0cyBzZXQgdG8gemVybywgcHJvdmlkZWQgaXQgaXMgdW5pcXVl Lgo+ID4+IFY0OiByZWJhc2UKPiA+PiBWNTogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9t IFZpbGxlOgo+ID4+ICAgICAgLXVzZWQgYSBwb2ludGVyIHRvIHN0b3JlIGxhc3QgdmFsaWQgbW9k ZS4KPiA+PiAgICAgIC1hdm9pZGVkLCBtb2RpZnlpbmcgb2YgcGljdHVyZV9hc3BlY3RfcmF0aW8g aW4ga2VybmVsIG1vZGUsCj4gPj4gICAgICAgaW5zdGVhZCBvbmx5IGZsYWdzIGJpdHMgb2YgdXNl ciBtb2RlIGFyZSByZXNldCAoaWYgYXNwZWN0LXJhdGlvCj4gPj4gICAgICAgaXMgbm90IHN1cHBv cnRlZCkuCj4gPj4gVjY6IEFzIHN1Z2dlc3RlZCBieSBWaWxsZSwgY29ycmVjdGVkIHRoZSBtb2Rl IHBydW5pbmcgbG9naWMgYW5kCj4gPj4gICAgICBlbGFib3JhdGVkIHRoZSBtb2RlIHBydW5pbmcg bG9naWMgYW5kIHRoZSBhc3N1bXB0aW9ucyB0YWtlbi4KPiA+PiBWNzogcmViYXNlCj4gPj4gVjg6 IHJlYmFzZQo+ID4+IFY5OiByZWJhc2UKPiA+PiBWMTA6IHJlYmFzZQo+ID4+IFYxMTogRml4ZWQg dGhlIGlzc3VlIGNhdXNlZCBpbiBrbXNfM2QgdGVzdCwgYW5kIGVuaGFuY2VkIHRoZSBwcnVuaW5n Cj4gPj4gICAgICAgbG9naWMgdG8gY29ycmVjdGx5IGlkZW50aWZ5IGFuZCBwcnVuZSBtb2RlcyB3 aXRoIGFzcGVjdC1yYXRpbywKPiA+PiAgICAgICBpZiBhc3BlY3QtcmF0aW8gY2FwIGlzIG5vdCBz ZXQuCj4gPj4gLS0tCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIHwgNTYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiA+PiAgIDEgZmlsZSBj aGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Nvbm5lY3Rvci5jCj4gPj4gaW5kZXggYjNjZGU4OS4uODY1ZWUzNTQgMTAwNjQ0Cj4gPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+PiBAQCAtMTUzMSwxNSArMTUzMSwzNSBAQCBzdGF0 aWMgc3RydWN0IGRybV9lbmNvZGVyICpkcm1fY29ubmVjdG9yX2dldF9lbmNvZGVyKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZQo+ID4+ICAgCXJldHVybiBjb25uZWN0b3ItPmVuY29kZXI7Cj4g Pj4gICB9Cj4gPj4gICAKPiA+PiAtc3RhdGljIGJvb2wgZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJz cGFjZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+PiAtCQkJCQkgY29u c3Qgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gPj4gK3N0YXRpYyBib29sCj4gPj4gK2Ry bV9tb2RlX2V4cG9zZV90b191c2Vyc3BhY2UoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUsCj4gPj4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGVs aXN0LAo+ID4+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ID4+ ICAgewo+ID4+ICAgCS8qCj4gPj4gICAJICogSWYgdXNlci1zcGFjZSBoYXNuJ3QgY29uZmlndXJl ZCB0aGUgZHJpdmVyIHRvIGV4cG9zZSB0aGUgc3RlcmVvIDNECj4gPj4gICAJICogbW9kZXMsIGRv bid0IGV4cG9zZSB0aGVtLgo+ID4+ICAgCSAqLwo+ID4+ICsJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGVfaXRyOwo+ID4+ICsKPiA+PiAgIAlpZiAoIWZpbGVfcHJpdi0+c3RlcmVvX2FsbG93 ZWQgJiYgZHJtX21vZGVfaXNfc3RlcmVvKG1vZGUpKQo+ID4+ICAgCQlyZXR1cm4gZmFsc2U7Cj4g Pj4gKwkvKgo+ID4+ICsJICogSWYgdXNlci1zcGFjZSBoYXNuJ3QgY29uZmlndXJlZCB0aGUgZHJp dmVyIHRvIGV4cG9zZSB0aGUgbW9kZXMKPiA+PiArCSAqIHdpdGggYXNwZWN0LXJhdGlvLCBkb24n dCBleHBvc2UgdGhlbS4gSG93ZXZlciBpZiBzdWNoIGEgbW9kZQo+ID4+ICsJICogaXMgdW5pcXVl LCBsZXQgaXQgYmUgZXhwb3NlZCwgYnV0IHJlc2V0IHRoZSBhc3BlY3QtcmF0aW8gZmxhZ3MKPiA+ PiArCSAqIHdoaWxlIHByZXBhcmluZyB0aGUgbGlzdCBvZiB1c2VyLW1vZGVzLgo+ID4+ICsJICov Cj4gPj4gKwlpZiAoIWZpbGVfcHJpdi0+YXNwZWN0X3JhdGlvX2FsbG93ZWQgJiYKPiA+PiArCSAg ICBtb2RlLT5waWN0dXJlX2FzcGVjdF9yYXRpbyAhPSBIRE1JX1BJQ1RVUkVfQVNQRUNUX05PTkUp IHsKPiA+PiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGVfaXRyLCAmbW9kZWxpc3QtPmhlYWQs IGhlYWQpCj4gPj4gKwkJCWlmIChkcm1fbW9kZV9tYXRjaChtb2RlX2l0ciwgbW9kZSwKPiA+PiAr CQkJCQkgICBEUk1fTU9ERV9NQVRDSF9USU1JTkdTIHwKPiA+PiArCQkJCQkgICBEUk1fTU9ERV9N QVRDSF9DTE9DSyB8Cj4gPj4gKwkJCQkJICAgRFJNX01PREVfTUFUQ0hfRkxBR1MgfAo+ID4+ICsJ CQkJCSAgIERSTV9NT0RFX01BVENIXzNEX0ZMQUdTKSkKPiA+PiArCQkJCXJldHVybiBmYWxzZTsK PiA+PiArCX0KPiA+PiAgIAo+ID4+ICAgCXJldHVybiB0cnVlOwo+ID4+ICAgfQo+ID4+IEBAIC0x NTUwLDcgKzE1NzAsNyBAQCBpbnQgZHJtX21vZGVfZ2V0Y29ubmVjdG9yKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4gICAJc3RydWN0IGRybV9tb2RlX2dldF9jb25uZWN0 b3IgKm91dF9yZXNwID0gZGF0YTsKPiA+PiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOwo+ID4+ICAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiA+PiAtCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlOwo+ID4+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUsICp0bXAsIG1vZGVsaXN0Owo+ID4+ICAgCWludCBtb2RlX2NvdW50ID0gMDsKPiA+PiAgIAlp bnQgZW5jb2RlcnNfY291bnQgPSAwOwo+ID4+ICAgCWludCByZXQgPSAwOwo+ID4+IEBAIC0xNjA1 LDIzICsxNjI1LDM3IEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+PiAgIAlvdXRfcmVzcC0+c3VicGl4ZWwgPSBjb25uZWN0 b3ItPmRpc3BsYXlfaW5mby5zdWJwaXhlbF9vcmRlcjsKPiA+PiAgIAlvdXRfcmVzcC0+Y29ubmVj dGlvbiA9IGNvbm5lY3Rvci0+c3RhdHVzOwo+ID4+ICAgCj4gPj4gKwlJTklUX0xJU1RfSEVBRCgm bW9kZWxpc3QuaGVhZCk7Cj4gPiBXaHkgYXJlIHdlIHVzaW5nIGEgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgdG8gZ2V0IGEgc2ltcGxlIGxpc3RfaGVhZD8KPiAKPiBZZXMgeW91IGFyZSByaWdodCwg d2UgY2FuIHVzZSB0aGUgc2ltcGxlIGxpc3RfaGVhZCBoZXJlLiBJIHdhcyB0cnlpbmcgdG8gCj4g dXNlIG1vZGVsaXN0IGFzIGZpcnN0IG1vZGUsIGFuZCBnb29mZWQgdXAuCj4gSXRzIGEgbWlzdGFr ZSwgSSB3aWxsIGNvcnJlY3QgaXQgaW4gbmV4dCBwYXRjaHNldC4KPiAKPiA+Cj4gPj4gKwo+ID4+ ICAgCS8qIGRlbGF5ZWQgc28gd2UgZ2V0IG1vZGVzIHJlZ2FyZGxlc3Mgb2YgcHJlLWZpbGxfbW9k ZXMgc3RhdGUgKi8KPiA+PiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3It Pm1vZGVzLCBoZWFkKQo+ID4+IC0JCWlmIChkcm1fbW9kZV9leHBvc2VfdG9fdXNlcnNwYWNlKG1v ZGUsIGZpbGVfcHJpdikpCj4gPj4gKwkJaWYgKGRybV9tb2RlX2V4cG9zZV90b191c2Vyc3BhY2Uo bW9kZSwgJm1vZGVsaXN0LAo+ID4+ICsJCQkJCQkgZmlsZV9wcml2KSkgewo+ID4+ICsJCQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqdG1wX21vZGU7Cj4gPj4gKwo+ID4+ICsJCQl0bXBfbW9kZSA9 IGRybV9tb2RlX2R1cGxpY2F0ZShkZXYsIG1vZGUpOwo+ID4gRHVwbGljYXRpbmcgZXZlcnkgbW9k ZSBzZWVtcyByYXRoZXIgd2FzdGVmdWwuIEkgc3VwcG9zZSB3ZSBjb3VsZAo+ID4ganVzdCBhZGQg YW5vdGhlciBsaXN0X2hlYWQgdG8gc3RydWN0IGRybV9kaXNwbGF5X21vZGUgZm9yIHRoaXMKPiA+ IHB1cnBvc2UuIEFuIGFsdGVybmF0aXZlIGNvdWxkIGJlIHRvIHNvbWVob3cgbWFyayBlYWNoIGV4 cG9zZWQgbW9kZQo+ID4gYW5kIGp1c3Qgd2FsayB0aGUgb3JpZ2luYWwgY29ubmVjdG9yIG1vZGUg bGlzdC4KPiAKPiBBZ3JlZWQuIEl0cyBpbmRlZWQgd2FzdGVmdWwgYXMgd2UgaGF2ZSB0byBtYWtl IHRoZSBsaXN0IGluIDJuZCBpb2N0bCAKPiBjYWxsIGFnYWluLgo+IEFzIHlvdSBoYXZlIHN1Z2dl c3RlZCwgdG8gbWFyayB0aGUgZXhwb3NlZCBtb2RlcywgY2FuIHdlIGFkZCBhIGZsYWcgaW4gCj4g ZHJtX2Rpc3BsYXlfbW9kZQo+IHNvbWV0aGluZyBsaWtlICJ0b19iZV9leHBvc2VkIiwgd2hpY2gg d2lsbCBiZSBzZXQgaW4gdGhlIGZpcnN0IGlvY3RsIAo+IGNhbGwgd2hpbGUgZGV0ZXJtaW5pbmcg dGhlIHNwYWNlLgo+IDJuZCB0aW1lLCB3ZSBjYW4gc2tpcCB0aGUgbWFya2luZyBwcm9jZXNzLCBh bmQgaXRlcmF0ZSBvdmVyIHRoZSAKPiBjb25uZWN0b3IgbW9kZS1saXN0LCBtYWtpbmcKPiB1c2Vy LW1vZGVzIGZvciBvbmx5IHRoZSBtb2RlcyB0aGF0IGFyZSBtYXJrZWQ/CgpOby4gWW91IGNhbid0 IHRydXN0IHN1Y2ggYSBmbGFnIGFjcm9zcyB0d28gaW9jdGwgY2FsbHMuIEl0IHdvdWxkIGhhdmUg dG8KYmUgcHJvdGVjdGVkIGJ5IG1vZGVfY29uZmlnLm11dGV4IGFuZCBhcyBzb29uIGFzIHlvdSdk IGRyb3AgdGhlIGxvY2sKdGhlIGZsYWcgd291bGQgYmVjb21lIGludmFsaWQuCgo+IAo+ID4+ICsJ CQlsaXN0X2FkZF90YWlsKCZ0bXBfbW9kZS0+aGVhZCwgJm1vZGVsaXN0LmhlYWQpOwo+ID4+ICAg CQkJbW9kZV9jb3VudCsrOwo+ID4+ICsJCX0KPiA+PiAgIAo+ID4+ICAgCS8qCj4gPj4gICAJICog VGhpcyBpb2N0bCBpcyBjYWxsZWQgdHdpY2UsIG9uY2UgdG8gZGV0ZXJtaW5lIGhvdyBtdWNoIHNw YWNlIGlzCj4gPj4gICAJICogbmVlZGVkLCBhbmQgdGhlIDJuZCB0aW1lIHRvIGZpbGwgaXQuCj4g Pj4gKwkgKiBUaGUgbW9kZXMgdGhhdCBuZWVkIHRvIGJlIGV4cG9zZWQgdG8gdGhlIHVzZXIgYXJl IG1haW50YWluZWQgaW4gdGhlCj4gPj4gKwkgKiAnbW9kZWxpc3QnLiBXaGVuIHRoZSBpb2N0bCBp cyBjYWxsZWQgZmlyc3QgdGltZSB0byBkZXRlcm1pbmUgdGhlLAo+ID4+ICsJICogc3BhY2UsIHRo ZSBtb2RlbGlzdCBnZXRzIGZpbGxlZCwgdG8gZmluZCB0aGUgbm8uIG9mIG1vZGVzLiBJbiB0aGUK PiA+PiArCSAqIDJuZCB0aW1lLCB0aGUgdXNlciBtb2RlcyBhcmUgZmlsbGVkLCBvbmUgYnkgb25l IGZyb20gdGhlIG1vZGVsaXN0Lgo+ID4+ICAgCSAqLwo+ID4+ICAgCWlmICgob3V0X3Jlc3AtPmNv dW50X21vZGVzID49IG1vZGVfY291bnQpICYmIG1vZGVfY291bnQpIHsKPiA+PiAgIAkJY29waWVk ID0gMDsKPiA+PiAgIAkJbW9kZV9wdHIgPSAoc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIF9fdXNl ciAqKSh1bnNpZ25lZCBsb25nKW91dF9yZXNwLT5tb2Rlc19wdHI7Cj4gPj4gLQkJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtb2RlLCAmY29ubmVjdG9yLT5tb2RlcywgaGVhZCkgewo+ID4+IC0JCQlpZiAo IWRybV9tb2RlX2V4cG9zZV90b191c2Vyc3BhY2UobW9kZSwgZmlsZV9wcml2KSkKPiA+PiAtCQkJ CWNvbnRpbnVlOwo+ID4+IC0KPiA+PiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZtb2Rl bGlzdC5oZWFkLCBoZWFkKSB7Cj4gPj4gICAJCQlkcm1fbW9kZV9jb252ZXJ0X3RvX3Vtb2RlKCZ1 X21vZGUsIG1vZGUpOwo+ID4+ICsJCQkvKgo+ID4+ICsJCQkgKiBSZXNldCBhc3BlY3QgcmF0aW8g ZmxhZ3Mgb2YgdXNlci1tb2RlLCBpZiBtb2RlcyB3aXRoCj4gPj4gKwkJCSAqIGFzcGVjdC1yYXRp byBhcmUgbm90IHN1cHBvcnRlZC4KPiA+PiArCQkJICovCj4gPj4gKwkJCWRybV9tb2RlX2ZpbHRl cl9hc3BlY3RfcmF0aW9fZmxhZ3MoZmlsZV9wcml2LCAmdV9tb2RlKTsKPiA+PiAgIAkJCWlmIChj b3B5X3RvX3VzZXIobW9kZV9wdHIgKyBjb3BpZWQsCj4gPj4gICAJCQkJCSAmdV9tb2RlLCBzaXpl b2YodV9tb2RlKSkpIHsKPiA+PiAgIAkJCQlyZXQgPSAtRUZBVUxUOwo+ID4+IEBAIC0xNjUxLDYg KzE2ODUsMTIgQEAgaW50IGRybV9tb2RlX2dldGNvbm5lY3RvcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+ID4+ICAgCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0aW9uX211dGV4KTsKPiA+PiAgIAo+ID4+ICAgb3V0Ogo+ID4+ICsJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKG1vZGUsIHRtcCwgJm1vZGVsaXN0LmhlYWQsIGhlYWQpIHsKPiA+ PiArCQlsaXN0X2RlbCgmbW9kZS0+aGVhZCk7Cj4gPj4gKwkJZHJtX21vZGVfZGVzdHJveShkZXYs IG1vZGUpOwo+ID4+ICsJfQo+ID4+ICsJbGlzdF9kZWwoJm1vZGVsaXN0LmhlYWQpOwo+ID4+ICsK PiA+PiAgIAlkcm1fY29ubmVjdG9yX3B1dChjb25uZWN0b3IpOwo+ID4+ICAgCj4gPj4gICAJcmV0 dXJuIHJldDsKPiA+PiAtLSAKPiA+PiAyLjcuNAo+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRl bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK