From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Nautiyal, Ankit K" Subject: Re: [PATCH v13 08/10] drm: Expose modes with aspect ratio, only if requested Date: Mon, 7 May 2018 18:22:49 +0530 Message-ID: References: <1525243822-19308-1-git-send-email-ankit.k.nautiyal@intel.com> <1525243822-19308-9-git-send-email-ankit.k.nautiyal@intel.com> <20180503062625.GD12521@phenom.ffwll.local> <20180504201945.GC23723@intel.com> <042d7a32-35ae-95fa-3cbc-3ccf327b3a8d@intel.com> <20180507122841.GD23723@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180507122841.GD23723@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org CgpPbiA1LzcvMjAxOCA1OjU4IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gT24gTW9uLCBN YXkgMDcsIDIwMTggYXQgMTA6MzQ6NTNBTSArMDUzMCwgTmF1dGl5YWwsIEFua2l0IEsgd3JvdGU6 Cj4+Cj4+IE9uIDUvNS8yMDE4IDE6NDkgQU0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4+IE9u IFRodSwgTWF5IDAzLCAyMDE4IGF0IDA4OjI2OjI2QU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3Jv dGU6Cj4+Pj4gT24gV2VkLCBNYXkgMDIsIDIwMTggYXQgMTI6MjA6MjBQTSArMDUzMCwgTmF1dGl5 YWwsIEFua2l0IEsgd3JvdGU6Cj4+Pj4+IEZyb206IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5h dXRpeWFsQGludGVsLmNvbT4KPj4+Pj4KPj4+Pj4gV2UgcGFyc2UgdGhlIEVESUQgYW5kIGFkZCBh bGwgdGhlIG1vZGVzIGluIHRoZSBjb25uZWN0b3IncyBtb2RlbGlzdC4KPj4+Pj4gVGhpcyBhZGRz IENFQSBtb2RlcyB3aXRoIGFzcGVjdCByYXRpbyBpbmZvcm1hdGlvbiB0b28sIHJlZ2FyZGxlc3Mg b2YKPj4+Pj4gd2hldGhlciB1c2VyIHNwYWNlIHJlcXVlc3RlZCB0aGlzIGluZm9ybWF0aW9uIG9y IG5vdC4KPj4+Pj4KPj4+Pj4gVGhpcyBwYXRjaDoKPj4+Pj4gLXBydW5lcyB0aGUgbW9kZXMgd2l0 aCBhc3BlY3QtcmF0aW8gaW5mb3JtYXRpb24sIGZyb20gYQo+Pj4+PiAgICBjb25uZWN0b3IncyBt b2RlbGlzdCwgaWYgdGhlIHVzZXItc3BhY2UgaGFzIG5vdCBzZXQgdGhlIGFzcGVjdCByYXRpbwo+ Pj4+PiAgICBEUk0gY2xpZW50IGNhcC4gSG93ZXZlciBpZiBzdWNoIGEgbW9kZSBpcyB1bmlxdWUg aW4gdGhlIGxpc3QsIGl0IGlzCj4+Pj4+ICAgIGtlcHQgaW4gdGhlIGxpc3QsIHdpdGggYXNwZWN0 LXJhdGlvIGZsYWdzIHJlc2V0Lgo+Pj4+PiAtcHJlcGFyZXMgYSBsaXN0IG9mIGV4cG9zZWQgbW9k ZXMsIHdoaWNoIGlzIHVzZWQgdG8gZmluZCB1bmlxdWUgbW9kZXMKPj4+Pj4gICAgaWYgYXNwZWN0 LXJhdGlvIGlzIG5vdCBhbGxvd2VkLgo+Pj4+PiAtYWRkcyBhIG5ldyBsaXN0X2hlYWQgJ2V4cG9z ZWRfaGVhZCcgaW4gZHJtX21vZGVfZGlzcGxheSwgdG8gdHJhdmVyc2UKPj4+Pj4gICAgdGhlIGxp c3Qgb2YgZXhwb3NlZCBtb2Rlcy4KPj4+Pj4KPj4+Pj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+Pj4+PiBDYzogU2hhc2hhbmsgU2hhcm1hIDxzaGFz aGFuay5zaGFybWFAaW50ZWwuY29tPgo+Pj4+PiBDYzogSm9zZSBBYnJldSA8am9zZS5hYnJldUBz eW5vcHN5cy5jb20+Cj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEFua2l0IE5hdXRpeWFsIDxh bmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KPj4+Pj4KPj4+Pj4gVjM6IEFzIHN1Z2dlc3RlZCBi eSBWaWxsZSwgbW9kaWZpZWQgdGhlIG1lY2hhbmlzbSBvZiBwcnVuaW5nIG9mIG1vZGVzCj4+Pj4+ ICAgICAgIHdpdGggYXNwZWN0LXJhdGlvLCBpZiB0aGUgYXNwZWN0LXJhdGlvIGlzIG5vdCBzdXBw b3J0ZWQuIEluc3RlYWQKPj4+Pj4gICAgICAgb2Ygc3RyYWlnaHQgYXdheSBwcnVuaW5nIHN1Y2gg YSBtb2RlLCB0aGUgbW9kZSBpcyByZXRhaW5lZCB3aXRoCj4+Pj4+ICAgICAgIGFzcGVjdCByYXRp byBiaXRzIHNldCB0byB6ZXJvLCBwcm92aWRlZCBpdCBpcyB1bmlxdWUuCj4+Pj4+IFY0OiByZWJh c2UKPj4+Pj4gVjU6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZToKPj4+Pj4g ICAgICAgLXVzZWQgYSBwb2ludGVyIHRvIHN0b3JlIGxhc3QgdmFsaWQgbW9kZS4KPj4+Pj4gICAg ICAgLWF2b2lkZWQsIG1vZGlmeWluZyBvZiBwaWN0dXJlX2FzcGVjdF9yYXRpbyBpbiBrZXJuZWwg bW9kZSwKPj4+Pj4gICAgICAgIGluc3RlYWQgb25seSBmbGFncyBiaXRzIG9mIHVzZXIgbW9kZSBh cmUgcmVzZXQgKGlmIGFzcGVjdC1yYXRpbwo+Pj4+PiAgICAgICAgaXMgbm90IHN1cHBvcnRlZCku Cj4+Pj4+IFY2OiBBcyBzdWdnZXN0ZWQgYnkgVmlsbGUsIGNvcnJlY3RlZCB0aGUgbW9kZSBwcnVu aW5nIGxvZ2ljIGFuZAo+Pj4+PiAgICAgICBlbGFib3JhdGVkIHRoZSBtb2RlIHBydW5pbmcgbG9n aWMgYW5kIHRoZSBhc3N1bXB0aW9ucyB0YWtlbi4KPj4+Pj4gVjc6IHJlYmFzZQo+Pj4+PiBWODog cmViYXNlCj4+Pj4+IFY5OiByZWJhc2UKPj4+Pj4gVjEwOiByZWJhc2UKPj4+Pj4gVjExOiBGaXhl ZCB0aGUgaXNzdWUgY2F1c2VkIGluIGttc18zZCB0ZXN0LCBhbmQgZW5oYW5jZWQgdGhlIHBydW5p bmcKPj4+Pj4gICAgICAgIGxvZ2ljIHRvIGNvcnJlY3RseSBpZGVudGlmeSBhbmQgcHJ1bmUgbW9k ZXMgd2l0aCBhc3BlY3QtcmF0aW8sCj4+Pj4+ICAgICAgICBpZiBhc3BlY3QtcmF0aW8gY2FwIGlz IG5vdCBzZXQuCj4+Pj4+IFYxMjogQXMgc3VnZ2VzdGVkIGJ5IFZpbGxlLCBhZGRlZCBhbm90aGVy IGxpc3RfaGVhZCBpbgo+Pj4+PiAgICAgICAgZHJtX21vZGVfZGlzcGxheSB0byB0cmF2ZXJzZSB0 aGUgbGlzdCBvZiBleHBvc2VkIG1vZGVzIGFuZAo+Pj4+PiAgICAgICAgYXZvaWRlZCBkdXBsaWNh dGlvbiBvZiBtb2Rlcy4KPj4+Pj4gVjEzOiBNaW5vciBtb2RpZmljYXRpb25zLCBhcyBzdWdnZXN0 ZWQgYnkgVmlsbGUuCj4+Pj4+IC0tLQo+Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5l Y3Rvci5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPj4+ Pj4gICAgaW5jbHVkZS9kcm0vZHJtX21vZGVzLmggICAgICAgICB8IDEzICsrKysrKysrKysrKwo+ Pj4+PiAgICAyIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p Cj4+Pj4+Cj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4+PiBpbmRleCBkZmM4Y2ExLi44 Y2ExMTQ5IDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPj4+Pj4gQEAgLTE1 MzEsMTUgKzE1MzEsMzYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2Nvbm5lY3Rv cl9nZXRfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmUKPj4+Pj4gICAgCXJldHVy biBjb25uZWN0b3ItPmVuY29kZXI7Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgCj4+Pj4+IC1zdGF0aWMg Ym9vbCBkcm1fbW9kZV9leHBvc2VfdG9fdXNlcnNwYWNlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlLAo+Pj4+PiAtCQkJCQkgY29uc3Qgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCj4+Pj4+ICtzdGF0aWMgYm9vbAo+Pj4+PiArZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJzcGFj ZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPj4+Pj4gKwkJCSAgICAgY29u c3Qgc3RydWN0IGxpc3RfaGVhZCAqZXhwb3J0X2xpc3QsCj4+Pj4+ICsJCQkgICAgIGNvbnN0IHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+Pj4+PiAgICB7Cj4+Pj4+ICAgIAkvKgo+Pj4+PiAg ICAJICogSWYgdXNlci1zcGFjZSBoYXNuJ3QgY29uZmlndXJlZCB0aGUgZHJpdmVyIHRvIGV4cG9z ZSB0aGUgc3RlcmVvIDNECj4+Pj4+ICAgIAkgKiBtb2RlcywgZG9uJ3QgZXhwb3NlIHRoZW0uCj4+ Pj4+ICAgIAkgKi8KPj4+Pj4gKwo+Pj4+PiAgICAJaWYgKCFmaWxlX3ByaXYtPnN0ZXJlb19hbGxv d2VkICYmIGRybV9tb2RlX2lzX3N0ZXJlbyhtb2RlKSkKPj4+Pj4gICAgCQlyZXR1cm4gZmFsc2U7 Cj4+Pj4+ICsJLyoKPj4+Pj4gKwkgKiBJZiB1c2VyLXNwYWNlIGhhc24ndCBjb25maWd1cmVkIHRo ZSBkcml2ZXIgdG8gZXhwb3NlIHRoZSBtb2Rlcwo+Pj4+PiArCSAqIHdpdGggYXNwZWN0LXJhdGlv LCBkb24ndCBleHBvc2UgdGhlbS4gSG93ZXZlciBpZiBzdWNoIGEgbW9kZQo+Pj4+PiArCSAqIGlz IHVuaXF1ZSwgbGV0IGl0IGJlIGV4cG9zZWQsIGJ1dCByZXNldCB0aGUgYXNwZWN0LXJhdGlvIGZs YWdzCj4+Pj4+ICsJICogd2hpbGUgcHJlcGFyaW5nIHRoZSBsaXN0IG9mIHVzZXItbW9kZXMuCj4+ Pj4+ICsJICovCj4+Pj4+ICsJaWYgKCFmaWxlX3ByaXYtPmFzcGVjdF9yYXRpb19hbGxvd2VkICYm Cj4+Pj4+ICsJICAgIG1vZGUtPnBpY3R1cmVfYXNwZWN0X3JhdGlvICE9IEhETUlfUElDVFVSRV9B U1BFQ1RfTk9ORSkgewo+Pj4+PiArCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZV9pdHI7 Cj4+Pj4+ICsKPj4+Pj4gKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShtb2RlX2l0ciwgZXhwb3J0X2xp c3QsIGV4cG9ydF9oZWFkKQo+Pj4+IEJ5IHdhbGtpbmcgdGhlIGxpc3Qgb2Ygb25seSB0aGUgbW9k ZXMgYWxyZWFkeSBhZGRlZCB0byB0aGUgZXhwb3J0IGxpc3Qgd2UKPj4+PiByZWx5IG9uIEFTUEVD VF9OT05FIGJlaW5nIGZpcnN0IGlmIHByZXNlbnQuIFRoYXQgc2VlbXMgdG8gYmUgYSBiaXQKPj4+ PiBmcmFnaWxlLiBJZiB3ZSBpbnN0ZWFkIHdhbGsgb3ZlciBhbGwgcHJlc2VudCBtb2RlcyAoaS5l LiBjb25uZWN0b3ItPm1vZGVzKQo+Pj4+IHRoZW4gSSB0aGluayB0aGF0J3MgYXZvaWRlZC4KPj4+ IEkgZG9uJ3QgdGhpbmsgdGhhdCB3b3VsZCB3b3JrLiBJZiB3ZSBqdXN0IHdhbGsgb3ZlciBhbGwg dGhlIG1vZGVzIHRoZW4KPj4+IHdvdWxkbid0IHdlIGFsd2F5cyBmaW5kIGEgZHVwbGljYXRlIHdo ZW4gdGhlIHNhbWUgbW9kZSB3aXRoIHR3byBkaWZmZXJlbnQKPj4+IGFzcGVjdCByYXRpb3MgaXMg b24gdGhlIGxpc3Q/IEFuZCB0aGVuIHdlJ2QgZXhwb3J0IG5laXRoZXI/IE9yIG1heWJlIEkKPj4+ IG1pc3VuZGVyc3Rvb2Qgd2hhdCB5b3UgbWVhbiBoZXJlLgo+Pj4KPj4+IFRvIG1lIGl0IHNlZW1z IGxpa2UgdGhlIGNvcnJlY3Qgb3B0aW9uIGlzIHRvIGNoZWNrIGFnYWluc3QgdGhlCj4+PiBleHBv cnRfbGlzdCB1bmNvbmRpdGlvbmFsbHksIG5vIG1hdHRlciB3aGV0aGVyIHRoZSBjdXJyZW50IG1v ZGUgaGFzIHRoZQo+Pj4gYXNwZWN0IHJhdGlvIHNldCBvciBub3QuIElmIGFuIGlkZW50aWNhbCBt b2RlIGlzIGFscmVhZHkgb24gdGhlIGxpc3QKPj4+IHdlIGRvbid0IGV4cG9ydCBhZ2FpbiwgaWYg aXQncyBub3QgdGhlcmUgdGhlbiB3ZSBleHBvcnQuCj4+IEFncmVlZC4gVGhlIGN1cnJlbnQgY29k ZSBkb2VzIGhhdmUgYSBwcm9ibGVtIHJpZ2h0bHkgcG9pbnRlZCBieSBEYW5pZWwKPj4gVmV0dGVy IGFuZCB0aGUgbWFpbiByZWFzb24KPj4gZm9yIHRoYXQgaXMgLSB3ZSBhcmUgY2hlY2tpbmcgZm9y IGR1cGxpY2F0ZXMgb25seSBpZiB0aGUgbW9kZSBoYXMgc29tZQo+PiBhc3BlY3QtcmF0aW8uCj4+ IEFzIHlvdSBoYXZlIHN1Z2dlc3RlZCwgSWYgd2UgY2FuIGRvIGF3YXkgd2l0aCB0aGUgY29uZGl0 aW9uIHRvIGNoZWNrIGZvcgo+PiBkdXBsaWNhdGVzIGZvciBvbmx5Cj4+ICJtb2RlcyBoYXZpbmcg YXNwZWN0IHJhdGlvIiwgaXQgd2lsbCBzb2x2ZSB0aGUgcHJvYmxlbS4KPj4gSW4gdGhhdCBjYXNl LCBpZiB0aGUgYXNwZWN0LXJhdGlvIGNhcCBpcyBub3Qgc2V0LCB3ZSB3aWxsIGJlIHJlbW92aW5n Cj4+IHRoZSBkdXBsaWNhdGVzIGZvciBhbGwgbW9kZXMsIGlycmVzcGVjdGl2ZQo+PiBvZiBoYXZp bmcgYXNwZWN0LXJhdGlvIGluZm9ybWF0aW9uIG9yIG5vdCwgYnV0IGlmIGFzcGVjdC1yYXRpbyBp cwo+PiBhbGxvd2VkLCB3ZSB3b3VsZCBkbyBubyBzdWNoIGNoZWNraW5nLgo+Pgo+PiBPciBkbyB5 b3Ugc3VnZ2VzdCB0aGF0IHdlIHJlbW92ZSBkdXBsaWNhdGVzIGluIGFueSBjYXNlLCB3aGV0aGVy Cj4+IGFzcGVjdC1yYXRpbyBjYXAgaXMgc2V0IGJ5IHRoZSB1c2VyIG9yIG5vdD8KPiBJZiB0aGVy ZSBhcmUgZHVwbGljYXRlcyBvbiB0aGUgY29ubmVjdG9yIG1vZGUgbGlzdCB3ZSd2ZSBkb25lIHNv bWV0aGluZwo+IHdyb25nIHdoZW4gcG9wdWxhdGluZyB0aGUgbGlzdC4gU28gbm8sIHdlIHNob3Vs ZCBub3QgaGF2ZSB0byBjaGVjayBmb3IKPiBkdXBsaWNhdGVzIGluIHRoYXQgY2FzZS4KCkFscmln aHQuIFNvIEknbGwganVzdCBkcm9wIHRoZSBjb25kaXRpb24gdG8gY2hlY2sgdGhlIG1vZGUncyAK YXNwZWN0LXJhdGlvIGFuZCBzbyB0aGUgZXhwb3J0X2xpc3Qgd2lsbCBiZSBjaGVja2VkIHVuY29u ZGl0aW9uYWxseSwgaWYgCmFzcGVjdC1yYXRpbyBjYXAgaXMgbm90IHNldC4KSG93ZXZlciBpZiB0 aGUgYXNwZWN0LXJhdGlvIGNhcCBpcyBzZXQsIHdlIGp1c3QgbW92ZSB0aGUgbW9kZSB0byAKZXhw b3J0LWxpc3Qgd2l0aG91dCBjaGVja2luZyBmb3IgaXRzIGR1cGxpY2F0ZXMuCgpJIHdpbGwgc2Vu ZCB0aGUgbmV4dC1wYXRjaCBzZXQgd2l0aCB0aGlzIGNoYW5nZSwgYWxvbmcgd2l0aCB0aGUgcmVt b3ZhbCAKb2YgaGVscGVyIGZ1bmN0aW9ucyBhcyBkaXNjdXNzZWQgZWFybGllci4KCj4KPj4+PiBX aXRoIHRoYXQgY2hhbmdlZDoKPj4+Pgo+Pj4+IFJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+Pj4+Cj4+Pj4+ICsJCQlpZiAoZHJtX21vZGVfbWF0Y2go bW9kZV9pdHIsIG1vZGUsCj4+Pj4+ICsJCQkJCSAgIERSTV9NT0RFX01BVENIX1RJTUlOR1MgfAo+ Pj4+PiArCQkJCQkgICBEUk1fTU9ERV9NQVRDSF9DTE9DSyB8Cj4+Pj4+ICsJCQkJCSAgIERSTV9N T0RFX01BVENIX0ZMQUdTIHwKPj4+Pj4gKwkJCQkJICAgRFJNX01PREVfTUFUQ0hfM0RfRkxBR1Mp KQo+Pj4+PiArCQkJCXJldHVybiBmYWxzZTsKPj4+Pj4gKwl9Cj4+Pj4+ICAgIAo+Pj4+PiAgICAJ cmV0dXJuIHRydWU7Cj4+Pj4+ICAgIH0KPj4+Pj4gQEAgLTE1NTksNiArMTU4MCw3IEBAIGludCBk cm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK Pj4+Pj4gICAgCXN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB1X21vZGU7Cj4+Pj4+ICAgIAlzdHJ1 Y3QgZHJtX21vZGVfbW9kZWluZm8gX191c2VyICptb2RlX3B0cjsKPj4+Pj4gICAgCXVpbnQzMl90 IF9fdXNlciAqZW5jb2Rlcl9wdHI7Cj4+Pj4+ICsJTElTVF9IRUFEKGV4cG9ydF9saXN0KTsKPj4+ Pj4gICAgCj4+Pj4+ICAgIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJf TU9ERVNFVCkpCj4+Pj4+ICAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+IEBAIC0xNjA3LDIxICsx NjI5LDMwIEBAIGludCBkcm1fbW9kZV9nZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPj4+Pj4gICAgCj4+Pj4+ICAgIAkvKiBkZWxheWVkIHNvIHdlIGdldCBt b2RlcyByZWdhcmRsZXNzIG9mIHByZS1maWxsX21vZGVzIHN0YXRlICovCj4+Pj4+ICAgIAlsaXN0 X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFkKQo+Pj4+PiAtCQlp ZiAoZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJzcGFjZShtb2RlLCBmaWxlX3ByaXYpKQo+Pj4+PiAr CQlpZiAoZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJzcGFjZShtb2RlLCAmZXhwb3J0X2xpc3QsCj4+ Pj4+ICsJCQkJCQkgZmlsZV9wcml2KSkgewo+Pj4+PiArCQkJbGlzdF9hZGRfdGFpbCgmbW9kZS0+ ZXhwb3J0X2hlYWQsICZleHBvcnRfbGlzdCk7Cj4+Pj4+ICAgIAkJCW1vZGVfY291bnQrKzsKPj4+ Pj4gKwkJfQo+Pj4+PiAgICAKPj4+Pj4gICAgCS8qCj4+Pj4+ICAgIAkgKiBUaGlzIGlvY3RsIGlz IGNhbGxlZCB0d2ljZSwgb25jZSB0byBkZXRlcm1pbmUgaG93IG11Y2ggc3BhY2UgaXMKPj4+Pj4g ICAgCSAqIG5lZWRlZCwgYW5kIHRoZSAybmQgdGltZSB0byBmaWxsIGl0Lgo+Pj4+PiArCSAqIFRo ZSBtb2RlcyB0aGF0IG5lZWQgdG8gYmUgZXhwb3NlZCB0byB0aGUgdXNlciBhcmUgbWFpbnRhaW5l ZCBpbiB0aGUKPj4+Pj4gKwkgKiAnZXhwb3J0X2xpc3QnLiBXaGVuIHRoZSBpb2N0bCBpcyBjYWxs ZWQgZmlyc3QgdGltZSB0byBkZXRlcm1pbmUgdGhlLAo+Pj4+PiArCSAqIHNwYWNlLCB0aGUgZXhw b3J0X2xpc3QgZ2V0cyBmaWxsZWQsIHRvIGZpbmQgdGhlIG5vLm9mIG1vZGVzLiBJbiB0aGUKPj4+ Pj4gKwkgKiAybmQgdGltZSwgdGhlIHVzZXIgbW9kZXMgYXJlIGZpbGxlZCwgb25lIGJ5IG9uZSBm cm9tIHRoZSBleHBvcnRfbGlzdC4KPj4+Pj4gICAgCSAqLwo+Pj4+PiAgICAJaWYgKChvdXRfcmVz cC0+Y291bnRfbW9kZXMgPj0gbW9kZV9jb3VudCkgJiYgbW9kZV9jb3VudCkgewo+Pj4+PiAgICAJ CWNvcGllZCA9IDA7Cj4+Pj4+ICAgIAkJbW9kZV9wdHIgPSAoc3RydWN0IGRybV9tb2RlX21vZGVp bmZvIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKW91dF9yZXNwLT5tb2Rlc19wdHI7Cj4+Pj4+IC0J CWxpc3RfZm9yX2VhY2hfZW50cnkobW9kZSwgJmNvbm5lY3Rvci0+bW9kZXMsIGhlYWQpIHsKPj4+ Pj4gLQkJCWlmICghZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJzcGFjZShtb2RlLCBmaWxlX3ByaXYp KQo+Pj4+PiAtCQkJCWNvbnRpbnVlOwo+Pj4+PiAtCj4+Pj4+ICsJCWxpc3RfZm9yX2VhY2hfZW50 cnkobW9kZSwgJmV4cG9ydF9saXN0LCBleHBvcnRfaGVhZCkgewo+Pj4+PiAgICAJCQlkcm1fbW9k ZV9jb252ZXJ0X3RvX3Vtb2RlKCZ1X21vZGUsIG1vZGUpOwo+Pj4+PiArCQkJLyoKPj4+Pj4gKwkJ CSAqIFJlc2V0IGFzcGVjdCByYXRpbyBmbGFncyBvZiB1c2VyLW1vZGUsIGlmIG1vZGVzIHdpdGgK Pj4+Pj4gKwkJCSAqIGFzcGVjdC1yYXRpbyBhcmUgbm90IHN1cHBvcnRlZC4KPj4+Pj4gKwkJCSAq Lwo+Pj4+PiArCQkJZHJtX21vZGVfZmlsdGVyX2FzcGVjdF9yYXRpb19mbGFncyhmaWxlX3ByaXYs ICZ1X21vZGUpOwo+Pj4+PiAgICAJCQlpZiAoY29weV90b191c2VyKG1vZGVfcHRyICsgY29waWVk LAo+Pj4+PiAgICAJCQkJCSAmdV9tb2RlLCBzaXplb2YodV9tb2RlKSkpIHsKPj4+Pj4gICAgCQkJ CXJldCA9IC1FRkFVTFQ7Cj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZXMu aCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4+Pj4+IGluZGV4IDJmNzhiN2UuLmIxNTlmZTAg MTAwNjQ0Cj4+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4+Pj4+ICsrKyBiL2lu Y2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4+Pj4+IEBAIC00MTEsNiArNDExLDE5IEBAIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlIHsKPj4+Pj4gICAgCSAqIEZpZWxkIGZvciBzZXR0aW5nIHRoZSBIRE1J IHBpY3R1cmUgYXNwZWN0IHJhdGlvIG9mIGEgbW9kZS4KPj4+Pj4gICAgCSAqLwo+Pj4+PiAgICAJ ZW51bSBoZG1pX3BpY3R1cmVfYXNwZWN0IHBpY3R1cmVfYXNwZWN0X3JhdGlvOwo+Pj4+PiArCj4+ Pj4+ICsJLyoqCj4+Pj4+ICsJICogQGV4cG9ydF9oZWFkOgo+Pj4+PiArCSAqCj4+Pj4+ICsJICog c3RydWN0IGxpc3RfaGVhZCBmb3IgbW9kZXMgdG8gYmUgZXhwb3NlZCB0byB0aGUgdXNlcnNwYWNl Lgo+Pj4+PiArCSAqIFRoaXMgaXMgdG8gbWFpbnRhaW4gYSBsaXN0IG9mIGV4cG9zZWQgbW9kZXMg d2hpbGUgcHJlcGFyaW5nCj4+Pj4+ICsJICogdXNlci1tb2RlJ3MgbGlzdCBpbiBkcm1fbW9kZV9n ZXRjb25uZWN0b3IgaW9jdGwuIFRoZSBwdXJwb3NlIG9mIHRoaXMKPj4+Pj4gKwkgKiBsaXN0X2hl YWQgb25seSBsaWVzIGluIHRoZSBpb2N0bCBmdW5jdGlvbiwgYW5kIGlzIG5vdCBleHBlY3RlZCB0 byBiZQo+Pj4+PiArCSAqIHVzZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24uCj4+Pj4+ICsJICogT25j ZSB1c2VkLCB0aGUgc3RhbGUgcG9pbnRlcnMgYXJlIG5vdCByZXNldCwgYnV0IGxlZnQgYXMgaXQg aXMsIHRvCj4+Pj4+ICsJICogYXZvaWQgb3ZlcmhlYWQgb2YgcHJvdGVjdGluZyBpdCBieSBtb2Rl X2NvbmZpZy5tdXRleC4KPj4+Pj4gKwkgKi8KPj4+Pj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGV4cG9y dF9oZWFkOwo+Pj4+PiAgICB9Owo+Pj4+PiAgICAKPj4+Pj4gICAgLyoqCj4+Pj4+IC0tIAo+Pj4+ PiAyLjcuNAo+Pj4+Pgo+Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+Pj4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+Pj4+IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4+PiAtLSAKPj4+PiBEYW5pZWwgVmV0dGVyCj4+ Pj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4+Pj4gaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+Pj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=