From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Fix Limited Range Color Handling Date: Fri, 9 Feb 2018 17:38:38 +0200 Message-ID: <20180209153838.GK5453@intel.com> References: <1513955087-17598-1-git-send-email-uma.shankar@intel.com> <20171222155431.GQ10981@intel.com> <20171222161247.GR10981@intel.com> <20180130201351.GH5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DBC26E712 for ; Fri, 9 Feb 2018 15:38:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lin, Johnson" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMDksIDIwMTggYXQgMDE6MzQ6NDBQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBWaWxsZSBT eXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+U2VudDog V2VkbmVzZGF5LCBKYW51YXJ5IDMxLCAyMDE4IDE6NDQgQU0KPiA+VG86IFNoYW5rYXIsIFVtYSA8 dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+ID5DYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZzsgTGluLCBKb2huc29uIDxqb2huc29uLmxpbkBpbnRlbC5jb20+Owo+ID5TeXJqYWxhLCBW aWxsZSA8dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+OyBMYW5raG9yc3QsIE1hYXJ0ZW4KPiA+PG1h YXJ0ZW4ubGFua2hvcnN0QGludGVsLmNvbT4KPiA+U3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQ QVRDSF0gZHJtL2k5MTU6IEZpeCBMaW1pdGVkIFJhbmdlIENvbG9yIEhhbmRsaW5nCj4gPgo+ID5P biBUdWUsIEphbiAzMCwgMjAxOCBhdCAwMzoyMzozMlBNICswMDAwLCBTaGFua2FyLCBVbWEgd3Jv dGU6Cj4gPj4KPiA+Pgo+ID4+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4+ID5Gcm9t OiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0K PiA+PiA+U2VudDogRnJpZGF5LCBEZWNlbWJlciAyMiwgMjAxNyA5OjQzIFBNCj4gPj4gPlRvOiBT aGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiA+PiA+Q2M6IGludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmc7IExpbiwgSm9obnNvbgo+ID4+ID48am9obnNvbi5saW5AaW50 ZWwuY29tPjsgU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPjsKPiA+PiA+ TGFua2hvcnN0LCBNYWFydGVuIDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4gPj4gPlN1 YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0hdIGRybS9pOTE1OiBGaXggTGltaXRlZCBSYW5n ZSBDb2xvcgo+ID4+ID5IYW5kbGluZwo+ID4+ID4KPiA+PiA+T24gRnJpLCBEZWMgMjIsIDIwMTcg YXQgMDU6NTQ6MzFQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4+ID4+IE9uIEZy aSwgRGVjIDIyLCAyMDE3IGF0IDA4OjM0OjQ3UE0gKzA1MzAsIFVtYSBTaGFua2FyIHdyb3RlOgo+ ID4+ID4+ID4gRnJvbTogSm9obnNvbiBMaW4gPGpvaG5zb24ubGluQGludGVsLmNvbT4KPiA+PiA+ PiA+Cj4gPj4gPj4gPiBTb21lIHBhbmVscyBzdXBwb3J0IGxpbWl0ZWQgcmFuZ2Ugb3V0cHV0ICgx Ni0yMzUpIGNvbXBhcmVkIHRvCj4gPj4gPj4gPiBmdWxsIHJhbmdlIFJHQiB2YWx1ZXMgKDAtMjU1 KS4gQWxzbyB1c2Vyc3BhY2UgY2FuIGNvbnRyb2wgdGhlIFJHQgo+ID4+ID4+ID4gcmFuZ2UgdXNp bmcgIkJyb2FkY2FzdCBSR0IiIHByb3BlcnR5LiBDdXJyZW50bHkgdGhlIGNvZGUgdG8KPiA+PiA+ PiA+IGhhbmRsZSBmdWxsIHJhbmdlIHRvIGxpbWl0ZWQgcmFuZ2UgaXMgYnJva2VuLiBUaGlzIHBh dGNoIGZpeGVzCj4gPj4gPj4gPiB0aGUgc2FtZSBieSBwcm9wZXJseSBzY2FsaW5nIGRvd24gYWxs IHRoZSBmdWxsIHJhbmdlCj4gPj4gPj4gPiBjby1lZmZpY2llbnRzIHdpdGggbGltaXRlZCByYW5n ZSBzY2FsaW5nIGZhY3Rvci4KPiA+PiA+PiA+Cj4gPj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBKb2hu c29uIExpbiA8am9obnNvbi5saW5AaW50ZWwuY29tPgo+ID4+ID4+ID4gU2lnbmVkLW9mZi1ieTog VW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiA+PiA+PiA+IC0tLQo+ID4+ID4+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgfCAgIDE2ICsrKysrKysrKysr Ky0tLS0KPiA+PiA+PiA+ICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKPiA+PiA+PiA+Cj4gPj4gPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+ID4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jb2xvci5jCj4gPj4gPj4gPiBpbmRleCBhYTY2ZTk1Li43NzdjZTI2IDEwMDY0NAo+ID4+ID4+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+ID4+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+ID4+ID4gQEAgLTk0LDE2 ICs5NCwyNCBAQCBzdGF0aWMgdm9pZCBjdG1fbXVsdF9ieV9saW1pdGVkKHVpbnQ2NF90Cj4gPj4g Pj4gPiAqcmVzdWx0LAo+ID4+ID5pbnQ2NF90ICppbnB1dCkKPiA+PiA+PiA+ICAJZm9yIChpID0g MDsgaSA8IDk7IGkrKykKPiA+PiA+PiA+ICAJCXJlc3VsdFtpXSA9IDA7Cj4gPj4gPj4KPiA+PiA+ PiBUaGlzIGNhbiBnby4KPiA+PiA+Pgo+ID4+ID4+ID4KPiA+PiA+PiA+IC0JZm9yIChpID0gMDsg aSA8IDM7IGkrKykgewo+ID4+ID4+ID4gLQkJaW50NjRfdCB1c2VyX2NvZWZmID0gaW5wdXRbaSAq IDMgKyBpXTsKPiA+PiA+PiA+ICsJZm9yIChpID0gMDsgaSA8IDk7IGkrKykgewo+ID4+ID4+ID4g KwkJaW50NjRfdCB1c2VyX2NvZWZmID0gaW5wdXRbaV07Cj4gPj4gPj4KPiA+PiA+PiBUaGF0J3Mg bm90IGEgdHdvJ3MgY29tcGxlbWVudCBudW1iZXIgc28gc2hvdWxkIHByb2JhYmx5IGJlIHU2NC4K PiA+PiA+Pgo+ID4+ID4+ID4gIAkJdWludDY0X3QgbGltaXRlZF9jb2VmZiA9IENUTV9DT0VGRl9M SU1JVEVEX1JBTkdFID4+IDI7Cj4gPj4gPj4gPiAgCQl1aW50NjRfdCBhYnNfY29lZmYgPSBjbGFt cF92YWwoQ1RNX0NPRUZGX0FCUyh1c2VyX2NvZWZmKSwKPiA+PiA+PiA+ICAJCQkJCSAgICAgICAw LAo+ID4+ID4+ID4gIAkJCQkJICAgICAgIENUTV9DT0VGRl80XzAgLSAxKSA+PiAyOwo+ID4+ID4+ Cj4gPj4gPj4gU2VlbXMgdG8gbWUgdGhhdCB3ZSBzaG91bGQgYmUgYWJsZSB0byBkcm9wIHRoZSA+ PjIgZnJvbSB0aGUKPiA+PiA+PiBsaW1pdGVkX2NvZWZmIHNpbmNlIGl0J3MgYWx3YXlzIDwgMS4w LCBtYWtlIGJvdGggb2YgdGhlc2UgdTMyIGFuZAo+ID4+ID4+IHRoZW4gdXNlCj4gPj4gPj4gJ211 bF91MzJfdTMyKCkgPj4gMzAnIHRvIGdldCB0aGUgYW5zd2VyLgo+ID4+ID4+Cj4gPj4gPj4gPgo+ ID4+ID4+ID4gLQkJcmVzdWx0W2kgKiAzICsgaV0gPSAobGltaXRlZF9jb2VmZiAqIGFic19jb2Vm ZikgPj4gMjc7Cj4gPj4gPj4gPiArCQkvKgo+ID4+ID4+ID4gKwkJICogQnkgc2NhbGluZyBldmVy eSBjby1lZmZpY2llbnQgd2l0aCBsaW1pdGVkIHJhbmdlICgyMzUtMTYpCj4gPj4gPj4gPiArCQkg KiB2cyBmdWxsIHJhbmdlICgwLTI1NSkgdGhlIGZpbmFsIG8vcCB3aWxsIGJlIHNjYWxlZCBkb3du IHRvCj4gPj4gPj4gPiArCQkgKiBmaXQgaW4gdGhlIGxpbWl0ZWQgcmFuZ2Ugc3VwcG9ydGVkIGJ5 IHRoZSBwYW5lbC4KPiA+PiA+PiA+ICsJCSAqIE5lZWQgdG8gc2hpZnQgdGhlIG11bHRpcGxpY2F0 aW9uIHJlc3VsdCBieSAyOCBhcyB0aGUgZmxvYXRpbmcKPiA+PiA+PiA+ICsJCSAqIGNvdW50IGV4 cGVjdGVkIGlzIG9mIDMyYml0cywgbXVsdGlwbGljYXRpb24gaGVyZSBpcyBkb25lIGluCj4gPj4g Pj4gPiArCQkgKiBVMi4zMCBzbyByZXN1bHQgbmVlZCB0byBiZSByaWdodCBzaGlmdGVkIGJ5IDYw LTMyID0gMjgKPiA+PiA+PiA+ICsJCSAqLwo+ID4+ID4+ID4gKwkJcmVzdWx0W2ldID0gKGxpbWl0 ZWRfY29lZmYgKiBhYnNfY29lZmYpID4+IDI4Owo+ID4+ID4+ID4gIAkJaWYgKENUTV9DT0VGRl9O RUdBVElWRSh1c2VyX2NvZWZmKSkKPiA+PiA+Pgo+ID4+ID4+IEFuZCB0aGlzIGNhbiBiZSByZXBs YWNlZCB3aXRoIGp1c3QKPiA+PiA+Pgo+ID4+ID4+IHJlc3VsdFtpXSB8PSB1c2VyX2NvZWZmICYg Q1RNX0NPRUZGX1NJR047Cj4gPj4gPj4KPiA+PiA+PiB0byBlbGltaW5hdGUgdGhlIHNpbGx5IGJy YW5jaC4KPiA+PiA+Cj4gPj4gPkkgd29uZGVyIGlmIHdlIGNvdWxkIGFsc28gZ2V0IHNvbWUgaWd0 cyBmb3IgdGhpcyBsaW1pdGVkIHJhbmdlIHN0dWZmLgo+ID4+ID5NYXliZSBzb21ldGhpbmcgbGlr ZToKPiA+PiA+MS4gZ3JhYiBjcmMgZnJvbSBibGFjay93aGl0ZSBzY3JlZW4gd2l0aCBsaW1pdGVk IHJhbmdlIDIuIGdyYWIgY2RjCj4gPj4gPmZyb20gYWxtb3N0IGJsYWNrL3doaXRlIHNjcmVlbiB3 aXRoIGZ1bGwgcmFuZ2UgMy4gY29tcGFyZSB0aGUgdHdvCj4gPj4gPgo+ID4+ID5SZXBlYXQgd2l0 aCBhbiBpZGVudGl0eSBjc2MgbWF0cml4IHNldC4KPiA+PiA+Cj4gPj4gPk5vdCBzdXJlIGlmIHdl IGNhbiBnZXQgdGhlIGNyY3MgdG8gbWF0Y2ggaW4gdGhlc2UgdHdvIGNhc2VzIHRob3VnaC4KPiA+ PiA+SGFyZCB0byBzYXkgd2l0aG91dCB0cnlpbmcgaXQgb3V0Lgo+ID4+ID4KPiA+Pgo+ID4+IEhp IFZpbGxlLAo+ID4+IFdlIHdpbGwgdHJ5IHRoaXMgYXBwcm9hY2ggYW5kIHVwZGF0ZS4gSWRlYWxs eSBjcmMncyBzaG91bGQgbWF0Y2gsIHdpbGwKPiA+PiBjb25maXJtIHRoZSBiZWhhdmlvciBvbiBo YXJkd2FyZS4KPiA+Cj4gPkkgc3VzcGVjdCBpdCdzIG5vdCBnb2luZyB0byB3b3JrIG9uIHNvbWUg b2xkZXIgcGxhdGZvcm1zIGJlY2F1c2Ugd2UgdXNlIHRoZQo+ID5tYWdpYyBiaXQgaW4gdGhlIHBp cGUvcG9ydCByZWdpc3RlciB0byBkbyB0aGUgcmFuZ2UgY29tcHJlc3Npb24uIFRoZSBlZmZlY3Qg b2YKPiA+dGhhdCBiaXQgbWF5IG5vdCBiZSB2aXNpYmxlIGluIHRoZSBwaXBlIGNyYy4gQnV0IHN0 YXJ0aW5nIGZyb20gaHN3IGl0IHNob3VsZCBiZSBvay4KPiA+Cj4gCj4gSGkgVmlsbGUsCj4gV2Ug dHJpZWQgdG8gdGVzdCB0aGlzIG9uIEdMSyBhbmQgdGhlIGNyYyByZXN1bHRzIGFyZSBub3QgbWF0 Y2hpbmcuIFRyaWVkIGJlbG93IHNjZW5hcmlvczoKPiAxLiBGbGlwIEZCIChmdWxsIHdoaXRlKXdp dGggQnJvYWRjYXN0IFJHQiBwcm9wZXJ0eSBzZXQgdG8gIkZ1bGwgUmFuZ2UiIGFuZCB0aGVuIHdp dGggIkxpbWl0ZWQgUmFuZ2UiLgo+ICAgICAgV2l0aG91dCBhcHBseWluZy9jaGFuZ2luZyB0aGUg Q1RNLgo+IDIuIEZsaXAgRkIgKGZ1bGwgd2hpdGUpIHdpdGggQ1RNIHNldCBhcyB1bml0eSBhbmQs IG9uZSBmbGlwIHdpdGggIkZ1bGwgUmFuZ2UiIGFuZCBvbmUgd2l0aCAiTGltaXRlZCBSYW5nZSIu Cj4gCj4gSW4gYm90aCB0aGUgY2FzZXMsIGNyYyBpcyBub3QgbWF0Y2hpbmcuIE5vdCBzdXJlIGlm IHRoaXMgaXMgYW4gZXhwZWN0ZWQgYmVoYXZpb3IuIAoKV2VsbCwgaWYgeW91IHdhbnQgdGhlbSB0 byBtYXRjaCB5b3UgbmVlZCBhIGZiIHdpdGggMTYsMTYsMTYgYW5kCjIzNSwyMzUsMjM1IHJnYiBk YXRhIGZvciB0aGUgZnVsbCByYW5nZSB0ZXN0LgoKPiAKPiBCZWxvdyBpcyB0aGUgSUdUIGNvZGUg c25pcHBldCB1c2VkLCBmb3IgcmVmZXJlbmNlOgo+IAo+IHN0YXRpYyB2b2lkIHRlc3RfcGlwZV9s aW1pdGVkX3JhbmdlX2N0bShkYXRhX3QgKmRhdGEsIGlndF9wbGFuZV90ICpwcmltYXJ5KQo+IHsK PiAgICAgICAgIGNvbG9yX3Qgd2hpdGVbXSA9IHsgCj4gICAgICAgICAgICAgICAgIHsgMS4wLCAx LjAsIDEuMCB9LAo+ICAgICAgICAgICAgICAgICB7IDEuMCwgMS4wLCAxLjAgfSwKPiAgICAgICAg ICAgICAgICAgeyAxLjAsIDEuMCwgMS4wIH0KPiAgICAgICAgIH07Cj4gICAgICAgICBjb2xvcl90 IGJsYWNrW10gPSB7IAo+ICAgICAgICAgICAgICAgICB7IDAuMCwgMC4wLCAwLjAgfSwKPiAgICAg ICAgICAgICAgICAgeyAwLjAsIDAuMCwgMC4wIH0sCj4gICAgICAgICAgICAgICAgIHsgMC4wLCAw LjAsIDAuMCB9Cj4gICAgICAgICB9Owo+ICAgICAgICAgZG91YmxlIGN0bVtdID0geyAKPiAJMS4w LCAwLjAsIDAuMCwKPiAgICAgICAgICAgICAgICAgMC4wLCAxLjAsIDAuMCwKPiAgICAgICAgICAg ICAgICAgMC4wLCAwLjAsIDEuMCB9Owo+ICAgICAgICAgZG91YmxlICpkZWdhbW1hX2xpbmVhciwg KmdhbW1hX2xpbmVhcjsKPiAgICAgICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICAgICAgICAg Ym9vbCBoYXNfYnJvYWRjYXN0X3JnYl9vdXRwdXQgPSBmYWxzZTsKPiAKPiAgICAgICAgIGRlZ2Ft bWFfbGluZWFyID0gZ2VuZXJhdGVfdGFibGUoZGF0YS0+ZGVnYW1tYV9sdXRfc2l6ZSwgMS4wKTsK PiAgICAgICAgIGdhbW1hX2xpbmVhciA9IGdlbmVyYXRlX3RhYmxlKGRhdGEtPmdhbW1hX2x1dF9z aXplLCAxLjApOwo+IAo+ICAgICAgICAgZm9yX2VhY2hfdmFsaWRfb3V0cHV0X29uX3BpcGUoJmRh dGEtPmRpc3BsYXksIHByaW1hcnktPnBpcGUtPnBpcGUsIG91dHB1dCkgewo+ICAgICAgICAgICAg ICAgICBkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gICAgICAgICAgICAgICAgIHN0cnVjdCBpZ3Rf ZmIgZmJfbW9kZXNldCwgZmI7Cj4gICAgICAgICAgICAgICAgIGlndF9jcmNfdCBjcmNfZnVsbCwg Y3JjX2xpbWl0ZWQ7Cj4gICAgICAgICAgICAgICAgIGludCBmYl9pZCwgZmJfbW9kZXNldF9pZDsK PiAKPiAgICAgICAgICAgICAgICAgaWYgKCFpZ3Rfb3V0cHV0X2hhc19wcm9wKG91dHB1dCwgSUdU X0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCKSkKPiAgICAgICAgICAgICAgICAgICAgICAgICBjb250 aW51ZTsKPiAgICAgICAgICAgICAgICAgaGFzX2Jyb2FkY2FzdF9yZ2Jfb3V0cHV0ID0gdHJ1ZTsK PiAgICAgICAgICAgICAgICAgaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHByaW1hcnktPnBp cGUtPnBpcGUpOwo+ICAgICAgICAgICAgICAgICBtb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShv dXRwdXQpOwo+IAo+ICAgICAgICAgICAgICAgICAvKiBDcmVhdGUgYSBmcmFtZWJ1ZmZlciBhdCB0 aGUgc2l6ZSBvZiB0aGUgb3V0cHV0LiAqLwo+ICAgICAgICAgICAgICAgICBmYl9pZCA9IGlndF9j cmVhdGVfZmIoZGF0YS0+ZHJtX2ZkLCBtb2RlLT5oZGlzcGxheSwgIG1vZGUtPnZkaXNwbGF5LAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4 OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgICZmYik7Cj4gICAgICAgICAgICAgICAgIGln dF9hc3NlcnQoZmJfaWQpOwo+IAo+ICAgICAgICAgICAgICAgICBmYl9tb2Rlc2V0X2lkID0gaWd0 X2NyZWF0ZV9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLT52ZGlzcGxheSwgRFJNX0ZPUk1B VF9YUkdCODg4OCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgICZmYl9tb2Rlc2V0KTsKPiAgICAgICAgICAg ICAgICAgaWd0X2Fzc2VydChmYl9tb2Rlc2V0X2lkKTsKPiAgICAgICAgICAgICAgICAgaWd0X3Bs YW5lX3NldF9mYihwcmltYXJ5LCAmZmJfbW9kZXNldCk7Cj4gCj4gICAgICAgICAgICAgICAgIHNl dF9kZWdhbW1hKGRhdGEsIHByaW1hcnktPnBpcGUsIGRlZ2FtbWFfbGluZWFyKTsKPiAgICAgICAg ICAgICAgICAgc2V0X2dhbW1hKGRhdGEsIHByaW1hcnktPnBpcGUsIGdhbW1hX2xpbmVhcik7Cj4g ICAgICAgICAgICAgICAgIHNldF9jdG0ocHJpbWFyeS0+cGlwZSwgY3RtKTsKPiAKPiAgICAgICAg ICAgICAgICAgaWd0X291dHB1dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1Jf QlJPQURDQVNUX1JHQiwgQlJPQURDQVNUX1JHQl9GVUxMKTsKPiAgICAgICAgICAgICAgICAgcGFp bnRfcmVjdGFuZ2xlcyhkYXRhLCBtb2RlLCBibGFjaywgJmZiKTsKPiAgICAgICAgICAgICAgICAg aWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZmIpOwo+ICAgICAgICAgICAgICAgICBpZ3RfZGlz cGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICAgICAgICAgICAgICAgICBpZ3Rfd2FpdF9m b3JfdmJsYW5rKGRhdGEtPmRybV9mZCwgcHJpbWFyeS0+cGlwZS0+cGlwZSk7Cj4gICAgICAgICAg ICAgICAgIGlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJmNyY19mdWxs KTsKPiAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgIC8qIFNldCB0aGUgb3V0cHV0 IGludG8gbGltaXRlZCByYW5nZS4gKi8gICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAg IGlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LCBJR1RfQ09OTkVDVE9SX0JST0FEQ0FT VF9SR0IsIEJST0FEQ0FTVF9SR0JfMTZfMjM1KTsKPiAgICAgICAgICAgICAgICAgcGFpbnRfcmVj dGFuZ2xlcyhkYXRhLCBtb2RlLCBibGFjaywgJmZiKTsKPiAgICAgICAgICAgICAgICAgaWd0X3Bs YW5lX3NldF9mYihwcmltYXJ5LCAmZmIpOwo+ICAgICAgICAgICAgICAgICBpZ3RfZGlzcGxheV9j b21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICAgICAgICAgICAgICAgICBpZ3Rfd2FpdF9mb3JfdmJs YW5rKGRhdGEtPmRybV9mZCwgcHJpbWFyeS0+cGlwZS0+cGlwZSk7Cj4gICAgICAgICAgICAgICAg IGlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJmNyY19saW1pdGVkKTsK PiAKPiAgICAgICAgICAgICAgICAgaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyY19mdWxsLCAmY3Jj X2xpbWl0ZWQpOwo+IAo+IFJlZ2FyZHMsCj4gVW1hIFNoYW5rYXIKPiA+PiA+Pgo+ID4+ID4+Cj4g Pj4gPj4gPiAtCQkJcmVzdWx0W2kgKiAzICsgaV0gfD0gQ1RNX0NPRUZGX1NJR047Cj4gPj4gPj4g PiArCQkJcmVzdWx0W2ldIHw9IENUTV9DT0VGRl9TSUdOOwo+ID4+ID4+ID4gIAl9Cj4gPj4gPj4g PiAgfQo+ID4+ID4+ID4KPiA+PiA+PiA+IC0tCj4gPj4gPj4gPiAxLjcuOS41Cj4gPj4gPj4gPgo+ ID4+ID4+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiA+PiA+PiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+PiA+PiA+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+PiA+PiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPj4gPj4KPiA+PiA+PiAtLQo+ID4+ID4+IFZp bGxlIFN5cmrDpGzDpAo+ID4+ID4+IEludGVsIE9UQwo+ID4+ID4KPiA+PiA+LS0KPiA+PiA+Vmls bGUgU3lyasOkbMOkCj4gPj4gPkludGVsIE9UQwo+ID4KPiA+LS0KPiA+VmlsbGUgU3lyasOkbMOk Cj4gPkludGVsIE9UQwoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==