From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm: disable deep color when EDID violates spec Date: Wed, 11 Jan 2017 13:38:10 +0200 Message-ID: <20170111113810.GJ31595@intel.com> References: <20170110105213.GW31595@intel.com> <20170110174608.GH31595@intel.com> <6d21d10b-01a4-55ca-3e6d-e93839e07bda@amd.com> <87a8ax9ali.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id A868A6E897 for ; Wed, 11 Jan 2017 11:38:14 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87a8ax9ali.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jani Nikula Cc: "Deucher, Alexander" , Nicholas Sielicki , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMTEsIDIwMTcgYXQgMTI6MDQ6MDlQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAxMCBKYW4gMjAxNywgSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5k QGFtZC5jb20+IHdyb3RlOgo+ID4gT24gMjAxNy0wMS0xMCAwMzo0MSBQTSwgSGFycnkgV2VudGxh bmQgd3JvdGU6Cj4gPj4gT24gMjAxNy0wMS0xMCAwMzoxMCBQTSwgQWxleCBEZXVjaGVyIHdyb3Rl Ogo+ID4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCAzOjAyIFBNLCBFcm5zdCBTasO2c3RyYW5k IDxlcm5zdHBAZ21haWwuY29tPgo+ID4+PiB3cm90ZToKPiA+Pj4+IEkga2luZG9mIGFzc3VtZSBE UCBpcyB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIHRoZXNlIGRheXMgYW5kIHdpdGgKPiA+Pj4+IEZy ZWVzeW5jCj4gPj4+PiB5b3UgdXNlCj4gPj4+PiBEUCBvciBjb3Vyc2UsIGJ1dCB0aGlzIHF1ZXN0 aW9uIHdhcyBzcGVjaWZpY2FsbHkgZm9yIEhETUkuCj4gPj4+PiBJIGd1ZXNzIHRoaXMgcGF0Y2gg ZG9lc24ndCBhZmZlY3QgZGVlcCBjb2xvciBvdmVyIERQPwo+ID4+Pj4KPiA+Pj4+IEFueXdheSwg b25seSAxNyBvZiB0aG9zZSBtb25pdG9ycyBoYXZlIEZyZWVTeW5jIGJ1dCBhbG1vc3QgYWxsIGhh dmUKPiA+Pj4+IERQLCBzbwo+ID4+Pj4gcGVyaGFwcyB0aGV5IG9ubHkgc3VwcG9ydAo+ID4+Pj4g MTAgYnBjIHdoZW4gY29ubmVjdGVkIHdpdGggRFA/Cj4gPj4+Cj4gPj4+IFdlIHNlZSAxMCBicGMg b25seSBvdmVyIEhETUkgYSBsb3QgYXBwYXJlbnRseS4gIEkgZ3Vlc3MgYSBsb3Qgb2YKPiA+Pj4g bW9uaXRvciB2ZW5kb3JzIGRvIHRoZSBtaW5pbXVtIG5lY2Vzc2FyeSBmb3IgZGVlcCBjb2xvci4K PiA+Pj4KPiA+Pgo+ID4+IFllcywgYXBwYXJlbnRseSB0aGVyZSBhcmUgYSBidW5jaCBvZiBIRE1J IGRpc3BsYXlzIHRoYXQgd2UgZHJpdmUgaW4KPiA+PiAxMGJwYyB0aGF0IG1pZ2h0IG9yIG1pZ2h0 IG5vdCByZXBvcnQgMTJicGMgc3VwcG9ydC4gRnJvbSB0YWxraW5nIHRvIG91cgo+ID4+IEhETUkg Z3V5cyBpdCBzb3VuZHMgbGlrZSB0aGlzIGlzIGEgc2xpZ2h0bHkgYW1iaWd1b3VzIGFyZWEgaW4g dGhlIHNwZWMsCj4gPj4gZGVzcGl0ZSB3aGF0IHRoZSBIRE1JIHNwZWMgcXVvdGUgbWVudGlvbmVk IGJ5IE5pY2hvbGFzIHNhaWQuIEknbGwgc2VlIGlmCj4gPj4gSSBjYW4gZ2V0IG1vcmUgaW5mby4K PiA+Pgo+ID4KPiA+IEFkZGluZyBFcm5zdCwgTmljaG9sYXMsIFZpbGxlLCBBbGV4IGFnYWluLgo+ ID4KPiA+IFNvIGFwcGFyZW50bHkgdGhlIHNwZWMgaXMgcHJldHR5IGNsZWFyIGFuZCB0aGVyZSdz IGEgc2luayBjb21wbGlhbmNlIAo+ID4gdGVzdCB0aGF0IHNob3VsZCBjb3ZlciB0aGlzLiBJIGRv bid0IHJlYWxseSB0aGluayBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIAo+ID4gc291cmNlIGRldmlj ZSB0byBiYWJ5c2l0IHRoZSBzaW5rJ3MgYmVoYXZpb3IsIHRob3VnaC4KPiA+Cj4gPiBJbiBnZW5l cmFsIHdlIG1pZ2h0IHdhbnQgdG8gdHJ5IGZvciBhIHNvbHV0aW9uIHRoYXQgZ2l2ZXMgdGhlIGJl c3QgdXNlciAKPiA+IGV4cGVyaWVuY2UgYW5kIGhpZ2hlc3QgaW50ZXJvcGVyYWJpbGl0eSwgc28g Y2hlY2sgd2hhdCBzaW5rIHN1cHBvcnRzLCAKPiA+IGNoZWNrIHdoYXQgc291cmNlIHN1cHBvcnRz LCBjaGVjayB3aGF0IGNhYmxlIGNhbiBkbywgYW5kIGRvIGFuIAo+ID4gaW50ZXJzZWN0aW9uIG9m IGFsbCB0byBnaXZlIHRoZSBiZXN0IHVzZXIgZXhwZXJpZW5jZS4KPiA+Cj4gPiBJIHN1Z2dlc3Qg dG8gYmxvY2sgMTAtYml0IG9uIGRyaXZlcidzIHRoYXQgY2FuJ3QgaGFuZGxlIHRoaXMuCj4gCj4g QWdyZWVkLiBQcmV0dHkgbXVjaCBib2lscyBkb3duIHRvIHdoYXQgSSB3cm90ZSBpbiBbMV0uCj4g Cj4gQlIsCj4gSmFuaS4KPiAKPiBbMV0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJj aGl2ZXMvZHJpLWRldmVsLzIwMTctSmFudWFyeS8xMjkzNzQuaHRtbAoKQWZ0ZXIgYSBiaXQgb2Yg ZGlnZ2luZyBhcm91bmQgSSBmb3VuZCBteSBwYXRjaCB0byBjaGVjayB0aGUgRENfMzYgYml0Cmlu IGk5MTUgY29kZToKZ2l0Oi8vZ2l0aHViLmNvbS92c3lyamFsYS9saW51eC5naXQgaGRtaV9zaW5r X3RtZHNfbGltaXRfMgoKTmljaG9sYXMsIHlvdSB3YW50IHRvIGdpdmUgdGhhdCBnbz8KCj4gCj4g Cj4gCj4gPgo+ID4gSGFycnkKPiA+Cj4gPgo+ID4+IEknbSBub3Qgc3VyZSBpdCBtYWtlcyBzZW5z ZSB0byBibG9jayBhbGwgZGVlcCBjb2xvciBtb2RlcyBpbiB0aGlzIGNhc2UKPiA+PiBmb3IgYWxs IGRyaXZlcnMuIE90aGVyIEhXIChlLmcuIEFNRCdzKSBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZiBk cml2aW5nCj4gPj4gMTAtYml0LiBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIGp1c3QgYmxvY2sgdGhp cyBvbiB0aGUgaTkxNSBzaWRlIGFzIFZpbGxlCj4gPj4gYWxsdWRlZCB0byBvbiBhbm90aGVyIHRo cmVhZD8KPiA+Pgo+ID4+IEhhcnJ5Cj4gPj4KPiA+Pj4gQWxleAo+ID4+Pgo+ID4+Pj4KPiA+Pj4+ IFJlZ2FyZHMKPiA+Pj4+IC8vRXJuc3QKPiA+Pj4+Cj4gPj4+PiAyMDE3LTAxLTEwIDIwOjU0IEdN VCswMTowMCBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT46Cj4gPj4+Pj4KPiA+ Pj4+PiBPbiBUdWUsIEphbiAxMCwgMjAxNyBhdCAxMjo0NiBQTSwgVmlsbGUgU3lyasOkbMOkCj4g Pj4+Pj4gPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPiA+Pj4+Pj4gT24g VHVlLCBKYW4gMTAsIDIwMTcgYXQgMTI6Mjc6NDVQTSAtMDUwMCwgQWxleCBEZXVjaGVyIHdyb3Rl Ogo+ID4+Pj4+Pj4gT24gVHVlLCBKYW4gMTAsIDIwMTcgYXQgNjozMyBBTSwgRXJuc3QgU2rDtnN0 cmFuZCA8ZXJuc3RwQGdtYWlsLmNvbT4KPiA+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+IElzbid0 IDEwYnBjIHZlcnkgY29tbW9uIGFtb25nIG1vbml0b3JzLCBhbmQgMTJicGMgdmVyeSByYXJlPyBP cgo+ID4+Pj4+Pj4+IG1heWJlCj4gPj4+Pj4+Pj4gSSdtCj4gPj4+Pj4+Pj4gY29uZnVzaW5nIHRo ZSB0cmFuc3BvcnQgbGF5ZXIgd2l0aCB0aGUgcHJlc2VudGF0aW9uIGNhcGFiaWxpdGllcy4uLj8K PiA+Pj4+Pj4+PiBIZXJlIGFyZSAyMDEgbW9uaXRvcnMgdGhhdCBjbGFpbSAxMGJwYzoKPiA+Pj4+ Pj4+PiBodHRwOi8vcHJpY2VzcHkuY28udWsvY2F0ZWdvcnkucGhwP2w9czMwMDg1OTQzNCZvPWVn XzQwMSNwcm9kbGlzdGEKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEZXSVcsIEkndmUg YWxtb3N0IG5ldmVyIHNlZW4gYSBtb25pdG9yIHRoYXQgc3VwcG9ydHMgMTIgYnBjLCBidXQgSSd2 ZQo+ID4+Pj4+Pj4gc2VlIHF1aXRlIGEgZmV3IDEwIGJwYyBtb25pdG9ycy4KPiA+Pj4+Pj4KPiA+ Pj4+Pj4gSSd2ZSBzZWVuIHBsZW50eSBvZiBtb25pdG9ycyB0aGF0IGRvIDEwYnBjIG92ZXIgRFAs IGJ1dCBJJ3ZlIG5ldmVyCj4gPj4+Pj4+IHNlZW4KPiA+Pj4+Pj4gYW55dGhpbmcgdGhhdCBkb2Vz IDEwYnBjIG92ZXIgSERNSS4gMTJicGMgb3ZlciBIRE1JIGlzIHByZXR0eSBjb21tb24KPiA+Pj4+ Pj4gaW4gInByb3BlciIgVFZzIGluIG15IGV4cGVyaWVuY2UuCj4gPj4+Pj4+Cj4gPj4+Pj4+PiBJ IGNhbiB0YWxrIHRvIG91ciBkaXNwbGF5IHRlYW0gdG8KPiA+Pj4+Pj4+IHNlZSB3aGF0IG90aGVy IE9TZXMgZG8uCj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoYW5rcy4gVGhhdCBzaG91bGQgZ2l2ZSB1cyBz b21lIGlkZWEgaWYgYW55b25lIGV2ZXIgdHJpZWQgMTBicGMKPiA+Pj4+Pj4gb3ZlciBIRE1JIG9u IHRoZXNlIHRoaW5ncy4KPiA+Pj4+Pgo+ID4+Pj4+IFdlIGFwcGFyZW50bHkgc2VlIHRoaXMgcHJl dHR5IGNvbW1vbmx5LCBlc3BlY2lhbGx5IHdpdGggZnJlZXN5bmMKPiA+Pj4+PiBtb25pdG9ycywg YW5kIHdlIHN1cHBvcnQgaXQuICBJdCBzZWVtcyB0byBiZSBwcmV0dHkgcHJldmFsZW50IGJlY2F1 c2UKPiA+Pj4+PiB5b3UgY2FuIHN1cHBvcnQgYSBoaWdoZXIgcmVmcmVzaCByYXRlIHdpdGggYSBs b3dlciBicGMuCj4gPj4+Pj4KPiA+Pj4+PiBBbGV4Cj4gPj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4+ Cj4gPj4+Pj4+PiBBbGV4Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+IFJlZ2FyZHMKPiA+Pj4+Pj4+PiAv L0VybnN0Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAyMDE3LTAxLTEwIDExOjUyIEdNVCswMTowMCBW aWxsZSBTeXJqw6Rsw6QKPiA+Pj4+Pj4+PiA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Ogo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBPbiBUaHUsIEphbiAwNSwgMjAxNyBhdCAwNTo0NToy M1BNIC0wNjAwLCBOaWNob2xhcyBTaWVsaWNraSB3cm90ZToKPiA+Pj4+Pj4+Pj4+IEFzIHBlciB0 aGUgSERNSSAxLjMgYW5kIDEuNCBzcGVjLCAiZGVlcCBjb2xvciBtb2RlcyIgYXJlIGNvbG9yCj4g Pj4+Pj4+Pj4+PiBkZXB0aHMKPiA+Pj4+Pj4+Pj4+IGdyZWF0ZXIgdGhhbiAyNCBiaXRzIHBlciBw aXhlbC4gVGhlIHNwZWMgZXhwbGljaXRseSBzdGF0ZXMsICJBbGwKPiA+Pj4+Pj4+Pj4+IERlZXAK PiA+Pj4+Pj4+Pj4+IENvbG9yIG1vZGVzIGFyZSBvcHRpb25hbCB0aG91Z2ggaWYgYW4gSERNSSBT b3VyY2Ugb3IgU2luayBzdXBwb3J0cwo+ID4+Pj4+Pj4+Pj4gYW55Cj4gPj4+Pj4+Pj4+PiBEZWVw IENvbG9yIG1vZGUsIGl0IHNoYWxsIHN1cHBvcnQgMzYtYml0IG1vZGUuIiAoNi4yLjQgQ29sb3Ig RGVwdGgKPiA+Pj4+Pj4+Pj4+IFJlcXVpcmVtZW50cykuCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ Pj4gSSBjYW1lIGFjcm9zcyBhIG1vbml0b3IgKEFjZXIgWDIzM0gpIHRoYXQgc3VwcGxpZXMgYW4g aWxsZWdhbCBFRElECj4gPj4+Pj4+Pj4+PiB3aGVyZQo+ID4+Pj4+Pj4+Pj4gRENfMzBiaXQgaXMg c2V0IGFuZCBEQ18zNmJpdCBpcyBub3Qgc2V0LiBUaGUgZW5kIHJlc3VsdCBpcyBiYWRseQo+ID4+ Pj4+Pj4+Pj4gZ2FyYmxlZAo+ID4+Pj4+Pj4+Pj4gb3V0cHV0IGJlY2F1c2UgdGhlIGRyaXZlciBp cyBzZW5kaW5nIDM2QlBQIHdoZW4gdGhlIG1vbml0b3IgY2FuJ3QKPiA+Pj4+Pj4+Pj4+IGhhbmRs ZQo+ID4+Pj4+Pj4+Pj4gaXQuCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gTXVjaCBvZiB0aGUg aW50ZWwgaGFyZHdhcmUgaXMgaW5jYXBhYmxlIG9mIG9wZXJhdGluZyBhdCBhbnkKPiA+Pj4+Pj4+ Pj4+IGJpdC1wZXItY29tcG9uZW50IHNldHRpbmcgb3V0c2lkZSBvZiA4IG9yIDEyLCBhbmQgdGhl IHNwZWMgc2VlbXMKPiA+Pj4+Pj4+Pj4+IHRvCj4gPj4+Pj4+Pj4+PiBpbXBseSB0aGF0IGlmIGFu eSBkZWVwIGNvbG9yIHN1cHBvcnQgaXMgZm91bmQsIHRoZW4gaXQgaXMgYSBzYWZlCj4gPj4+Pj4+ Pj4+PiBhc3N1bXB0aW9uIHRvIG9wZXJhdGUgYXQgMTIuCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ Pj4gVGhpcyBwYXRjaCBlbnN1cmVzIHRoYXQgdGhlIEVESUQgaXMgd2l0aGluIHRoZSBzcGVjIChz cGVjaWZpY2FsbHksCj4gPj4+Pj4+Pj4+PiB0aGF0Cj4gPj4+Pj4+Pj4+PiBEQ18zNmJpdCBpcyBz ZXQpIGJlZm9yZSBjb21taXR0aW5nIHRvIGdvaW5nIGZvcndhcmQgd2l0aCBhbnkgZGVlcAo+ID4+ Pj4+Pj4+Pj4gY29sb3JzLiAgVGhlcmUgd2FzIGFscmVhZHkgYSBjaGVjayBmb3IgdGhpcyBFRElE IGluY29uc2lzdGVuY3ksCj4gPj4+Pj4+Pj4+PiBidXQgaXQKPiA+Pj4+Pj4+Pj4+IHJlc3VsdGVk IG9ubHkgaW4gYSB3YXJuaW5nIGFuZCBkaWQgbm90IGZhbGwtYmFjayB0byBzYWZlcgo+ID4+Pj4+ Pj4+Pj4gc2V0dGluZ3MuCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gQ0M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4+Pj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBOaWNob2xhcyBTaWVsaWNraSA8bmljaG9sYXMuc2llbGlja2lAZ21haWwuY29tPgo+ ID4+Pj4+Pj4+Pj4gLS0tCj4gPj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMg fCAzNQo+ID4+Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiA+ Pj4+Pj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZWRpZC5jCj4gPj4+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4g Pj4+Pj4+Pj4+PiBpbmRleCAzMzZiZTMxZmYzZGUuLjQyY2UzZjU0ZDJkYyAxMDA2NDQKPiA+Pj4+ Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gPj4+Pj4+Pj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ID4+Pj4+Pj4+Pj4gQEAgLTM3NzIsMzAgKzM3 NzIsMzQgQEAgc3RhdGljIHZvaWQKPiA+Pj4+Pj4+Pj4+IGRybV9wYXJzZV9oZG1pX2RlZXBfY29s b3JfaW5mbyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4+Pj4+Pj4+Pj4gIHsK PiA+Pj4+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvOwo+ID4+Pj4+Pj4+Pj4gICAgICAgdW5zaWduZWQgaW50IGRjX2Jw YyA9IDA7Cj4gPj4+Pj4+Pj4+PiArICAgICB1OCBtb2RlcyA9IDA7Cj4gPj4+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+Pj4gICAgICAgLyogSERNSSBzdXBwb3J0cyBhdCBsZWFzdCA4IGJwYyAqLwo+ID4+Pj4+ Pj4+Pj4gICAgICAgaW5mby0+YnBjID0gODsKPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiArICAg ICAvKiBFbnN1cmUgYWxsIERDIG1vZGVzIGFyZSB1bnNldCBpZiB3ZSByZXR1cm4gZWFybHkgKi8K PiA+Pj4+Pj4+Pj4+ICsgICAgIGluZm8tPmVkaWRfaGRtaV9kY19tb2RlcyA9IDA7Cj4gPj4+Pj4+ Pj4+Cj4gPj4+Pj4+Pj4+IENsZWFyaW5nIHRoaXMgaW4gZHJtX2FkZF9kaXNwbGF5X2luZm8oKSBz aG91bGQgYmUgc3VmZmljaWVudCBzaW5jZQo+ID4+Pj4+Pj4+PiB0aGlzIGd1eSBkb2Vzbid0IGdl dCBjYWxsZWQgZnJvbSBhbnl3aGVyZSBlbHNlLiBTbyB0aGlzIHBhcnQgY291bGQKPiA+Pj4+Pj4+ Pj4gYmUgZHJvcHBwZWQuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IE90aGVyd2lzZSB0aGlzIGZl ZWxzIGxpa2UgYSBkZWNlbnQgd2F5IHRvIGhhbmRsZSB0aGUgcHJvYmxlbS4gV2UKPiA+Pj4+Pj4+ Pj4gY291bGQgb2YgY291cnNlIHRyeSB0byB1c2UgdGhlIDEwYnBjIChvciB3aGF0ZXZlcikgZGVl cCBjb2xvciBtb2Rlcwo+ID4+Pj4+Pj4+PiB0aGUgc2luayBjbGFpbXMgdG8gc3VwcG9ydCwgYnV0 IGdpdmVuIHRoYXQgdGhlIHBlb3BsZSBkZXNpZ25pbmcgdGhlCj4gPj4+Pj4+Pj4+IHRoaW5nIGRp ZG4ndCBib3RoZXIgcmVhZGluZyB0aGUgc3BlYywgaXQgc2VlbXMgc2FmZXIgdG8ganVzdAo+ID4+ Pj4+Pj4+PiBkaXNhYmxlCj4gPj4+Pj4+Pj4+IGRlZXAgY29sb3Igc3VwcG9ydCBlbnRpcmVseS4K PiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiArCj4g Pj4+Pj4+Pj4+PiAgICAgICBpZiAoY2VhX2RiX3BheWxvYWRfbGVuKGhkbWkpIDwgNikKPiA+Pj4+ Pj4+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+ICAg ICAgIGlmIChoZG1pWzZdICYgRFJNX0VESURfSERNSV9EQ18zMCkgewo+ID4+Pj4+Pj4+Pj4gICAg ICAgICAgICAgICBkY19icGMgPSAxMDsKPiA+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgaW5mby0+ ZWRpZF9oZG1pX2RjX21vZGVzIHw9IERSTV9FRElEX0hETUlfRENfMzA7Cj4gPj4+Pj4+Pj4+PiAr ICAgICAgICAgICAgIG1vZGVzIHw9IERSTV9FRElEX0hETUlfRENfMzA7Cj4gPj4+Pj4+Pj4+PiAg ICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkgc2luayBkb2VzIGRlZXAgY29sb3IgMzAu XG4iLAo+ID4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1l KTsKPiA+Pj4+Pj4+Pj4+ICAgICAgIH0KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiAgICAgICBp ZiAoaGRtaVs2XSAmIERSTV9FRElEX0hETUlfRENfMzYpIHsKPiA+Pj4+Pj4+Pj4+ICAgICAgICAg ICAgICAgZGNfYnBjID0gMTI7Cj4gPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgIGluZm8tPmVkaWRf aGRtaV9kY19tb2RlcyB8PSBEUk1fRURJRF9IRE1JX0RDXzM2Owo+ID4+Pj4+Pj4+Pj4gKyAgICAg ICAgICAgICBtb2RlcyB8PSBEUk1fRURJRF9IRE1JX0RDXzM2Owo+ID4+Pj4+Pj4+Pj4gICAgICAg ICAgICAgICBEUk1fREVCVUcoIiVzOiBIRE1JIHNpbmsgZG9lcyBkZWVwIGNvbG9yIDM2LlxuIiwK PiA+Pj4+Pj4gID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsK PiA+Pj4+Pj4+Pj4+ICAgICAgIH0KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiAgICAgICBpZiAo aGRtaVs2XSAmIERSTV9FRElEX0hETUlfRENfNDgpIHsKPiA+Pj4+Pj4+Pj4+ICAgICAgICAgICAg ICAgZGNfYnBjID0gMTY7Cj4gPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgIGluZm8tPmVkaWRfaGRt aV9kY19tb2RlcyB8PSBEUk1fRURJRF9IRE1JX0RDXzQ4Owo+ID4+Pj4+Pj4+Pj4gKyAgICAgICAg ICAgICBtb2RlcyB8PSBEUk1fRURJRF9IRE1JX0RDXzQ4Owo+ID4+Pj4+Pj4+Pj4gICAgICAgICAg ICAgICBEUk1fREVCVUcoIiVzOiBIRE1JIHNpbmsgZG9lcyBkZWVwIGNvbG9yIDQ4LlxuIiwKPiA+ Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rvci0+bmFtZSk7Cj4gPj4+ Pj4+Pj4+PiAgICAgICB9Cj4gPj4+Pj4+Pj4+PiBAQCAtMzgwNiw5ICszODEwLDI0IEBAIHN0YXRp YyB2b2lkCj4gPj4+Pj4+Pj4+PiBkcm1fcGFyc2VfaGRtaV9kZWVwX2NvbG9yX2luZm8oc3RydWN0 Cj4gPj4+Pj4+Pj4+PiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPj4+Pj4+Pj4+PiAgICAg ICAgICAgICAgIHJldHVybjsKPiA+Pj4+Pj4+Pj4+ICAgICAgIH0KPiA+Pj4+Pj4+Pj4+Cj4gPj4+ Pj4+Pj4+PiArICAgICAvKgo+ID4+Pj4+Pj4+Pj4gKyAgICAgICogQWxsIGRlZXAgY29sb3IgbW9k ZXMgYXJlIG9wdGlvbmFsLCBidXQgaWYgYSBzaW5rIHN1cHBvcnRzCj4gPj4+Pj4+Pj4+PiBhbnkK PiA+Pj4+Pj4+Pj4+IGRlZXAKPiA+Pj4+Pj4+Pj4+ICsgICAgICAqIGNvbG9yIG1vZGUsIGl0IG11 c3Qgc3VwcG9ydCAzNi1iaXQgbW9kZS4gSWYgdGhpcyBpcyBmb3VuZAo+ID4+Pj4+Pj4+Pj4gbm90 Cj4gPj4+Pj4+Pj4+PiArICAgICAgKiB0byBiZSB0aGUgY2FzZSwgc2luayBpcyBpbiB2aW9sYXRp b24gb2YgSERNSSAxLjMgLyAxLjQKPiA+Pj4+Pj4+Pj4+IHNwZWMgYW5kCj4gPj4+Pj4+Pj4+PiBp dAo+ID4+Pj4+Pj4+Pj4gKyAgICAgICogaXMgcHJ1ZGVudCB0byBkaXNhYmxlIGFsbCBkZWVwIGNv bG9yIG1vZGVzLiBSZXR1cm4gaGVyZQo+ID4+Pj4+Pj4+Pj4gYmVmb3JlCj4gPj4+Pj4+Pj4+PiAr ICAgICAgKiBjb21taXR0aW5nIGJwYyBhbmQgZWRpZF9oZG1pX2RjX21vZGVzLgo+ID4+Pj4+Pj4+ Pj4gKyAgICAgICovCj4gPj4+Pj4+Pj4+PiArICAgICBpZiAoIShtb2RlcyAmIERSTV9FRElEX0hE TUlfRENfMzYpKSB7Cj4gPj4+Pj4+Pj4+PiArICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhE TUkgc2luayBzaG91bGQgZG8gRENfMzYsIGJ1dCBkb2VzCj4gPj4+Pj4+Pj4+PiBub3QhXG4iLAo+ ID4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPiA+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuOwo+ID4+Pj4+Pj4+Pj4gKyAgICAgfQo+ID4+ Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4gICAgICAgRFJNX0RFQlVHKCIl czogQXNzaWduaW5nIEhETUkgc2luayBjb2xvciBkZXB0aCBhcyAlZAo+ID4+Pj4+Pj4+Pj4gYnBj LlxuIiwKPiA+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPm5hbWUsIGRjX2Jw Yyk7Cj4gPj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5icGMgPSBkY19icGM7Cj4gPj4+Pj4+Pj4+PiAr ICAgICBpbmZvLT5lZGlkX2hkbWlfZGNfbW9kZXMgPSBtb2RlczsKPiA+Pj4+Pj4+Pj4+Cj4gPj4+ Pj4+Pj4+PiAgICAgICAvKgo+ID4+Pj4+Pj4+Pj4gICAgICAgICogRGVlcCBjb2xvciBzdXBwb3J0 IG1hbmRhdGVzIFJHQjQ0NCBzdXBwb3J0IGZvciBhbGwgdmlkZW8KPiA+Pj4+Pj4+Pj4+IEBAIC0z ODIzLDE1ICszODQyLDYgQEAgc3RhdGljIHZvaWQKPiA+Pj4+Pj4+Pj4+IGRybV9wYXJzZV9oZG1p X2RlZXBfY29sb3JfaW5mbyhzdHJ1Y3QKPiA+Pj4+Pj4+Pj4+IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiA+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgRFJNX0RFQlVHKCIlczogSERNSSBzaW5r IGRvZXMgWUNSQ0I0NDQgaW4gZGVlcAo+ID4+Pj4+Pj4+Pj4gY29sb3IuXG4iLAo+ID4+Pj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPiA+Pj4+Pj4+Pj4+ ICAgICAgIH0KPiA+Pj4+Pj4+Pj4+IC0KPiA+Pj4+Pj4+Pj4+IC0gICAgIC8qCj4gPj4+Pj4+Pj4+ PiAtICAgICAgKiBTcGVjIHNheXMgdGhhdCBpZiBhbnkgZGVlcCBjb2xvciBtb2RlIGlzIHN1cHBv cnRlZCBhdAo+ID4+Pj4+Pj4+Pj4gYWxsLAo+ID4+Pj4+Pj4+Pj4gLSAgICAgICogdGhlbiBkZWVw IGNvbG9yIDM2IGJpdCBtdXN0IGJlIHN1cHBvcnRlZC4KPiA+Pj4+Pj4+Pj4+IC0gICAgICAqLwo+ ID4+Pj4+Pj4+Pj4gLSAgICAgaWYgKCEoaGRtaVs2XSAmIERSTV9FRElEX0hETUlfRENfMzYpKSB7 Cj4gPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgIERSTV9ERUJVRygiJXM6IEhETUkgc2luayBzaG91 bGQgZG8gRENfMzYsIGJ1dCBkb2VzCj4gPj4+Pj4+Pj4+PiBub3QhXG4iLAo+ID4+Pj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5uYW1lKTsKPiA+Pj4+Pj4+Pj4+IC0g ICAgIH0KPiA+Pj4+Pj4+Pj4+ICB9Cj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gIHN0YXRpYyB2 b2lkCj4gPj4+Pj4+Pj4+PiBAQCAtMzg5NSw2ICszOTA1LDcgQEAgc3RhdGljIHZvaWQgZHJtX2Fk ZF9kaXNwbGF5X2luZm8oc3RydWN0Cj4gPj4+Pj4+Pj4+PiBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPj4+Pj4+Pj4+PiAgICAgICAvKiBkcml2ZXIgZmlndXJlcyBpdCBvdXQgaW4gdGhpcyBj YXNlICovCj4gPj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5icGMgPSAwOwo+ID4+Pj4+Pj4+Pj4gICAg ICAgaW5mby0+Y29sb3JfZm9ybWF0cyA9IDA7Cj4gPj4+Pj4+Pj4+PiArICAgICBpbmZvLT5lZGlk X2hkbWlfZGNfbW9kZXMgPSAwOwo+ID4+Pj4+Pj4+Pj4gICAgICAgaW5mby0+Y2VhX3JldiA9IDA7 Cj4gPj4+Pj4+Pj4+PiAgICAgICBpbmZvLT5tYXhfdG1kc19jbG9jayA9IDA7Cj4gPj4+Pj4+Pj4+ PiAgICAgICBpbmZvLT5kdmlfZHVhbCA9IGZhbHNlOwo+ID4+Pj4+Pj4+Pj4gLS0KPiA+Pj4+Pj4+ Pj4+IDIuMTEuMAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtLQo+ID4+Pj4+Pj4+PiBWaWxsZSBT eXJqw6Rsw6QKPiA+Pj4+Pj4+Pj4gSW50ZWwgT1RDCj4gPj4+Pj4+Pj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+Pj4+Pj4+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiA+Pj4+Pj4+Pj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ ID4+Pj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+Pj4+Pj4g ZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+Pj4+Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiA+Pj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+IC0tCj4gPj4+ Pj4+IFZpbGxlIFN5cmrDpGzDpAo+ID4+Pj4+PiBJbnRlbCBPVEMKPiA+Pj4+Cj4gPj4+Pgo+ID4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+PiBk cmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiA+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwKPiA+Pj4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tIAo+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNv dXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==