From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [PATCH RFC 3/6] drm: Plane YCbCr to RGB conversion related properties Date: Mon, 24 Apr 2017 13:58:07 +0100 Message-ID: <20170424125807.GA14809@e106950-lin.cambridge.arm.com> References: <3f25532ae9b05c34996fc9657261b204c627e232.1492768073.git.jsarha@ti.com> <20170421111756.GI30290@intel.com> <55ddddf5-5cea-8131-7808-5a7df8e27fb2@ti.com> <20170421135203.GN30290@intel.com> <20170421145340.GA4889@e106950-lin.cambridge.arm.com> <20170421152148.GO30290@intel.com> <20170421153400.GA6088@e106950-lin.cambridge.arm.com> <20170421164904.GP30290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id DC6DF6E20C for ; Mon, 24 Apr 2017 12:58:14 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170421164904.GP30290@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Liviu.Dudau@arm.com, dri-devel@lists.freedesktop.org, tomi.valkeinen@ti.com, Jyri Sarha , laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBcHIgMjEsIDIwMTcgYXQgMDc6NDk6MDRQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+T24gRnJpLCBBcHIgMjEsIDIwMTcgYXQgMDQ6MzQ6MDBQTSArMDEwMCwgQnJpYW4g U3RhcmtleSB3cm90ZToKPj4gT24gRnJpLCBBcHIgMjEsIDIwMTcgYXQgMDY6MjE6NDhQTSArMDMw MCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+PiA+T24gRnJpLCBBcHIgMjEsIDIwMTcgYXQgMDM6 NTM6NDJQTSArMDEwMCwgQnJpYW4gU3RhcmtleSB3cm90ZToKPj4gPj4gSGksCj4+ID4+Cj4+ID4+ IFRoYW5rcyBmb3IgcGlja2luZyB0aGlzIHVwIEp5cmkuCj4+ID4+Cj4+ID4+IE9uIEZyaSwgQXBy IDIxLCAyMDE3IGF0IDA0OjUyOjAzUE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4g Pj4gPk9uIEZyaSwgQXByIDIxLCAyMDE3IGF0IDA0OjM5OjE2UE0gKzAzMDAsIEp5cmkgU2FyaGEg d3JvdGU6Cj4+ID4+ID4+IE9uIDA0LzIxLzE3IDE0OjE3LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4+ID4+ID4+ID4+ICtzdGF0aWMgY2hhciAqeWNiY3JfdG9fcmdiX21vZGVfbmFtZVtdID0gewo+ PiA+PiA+PiA+PiArCVtEUk1fUExBTkVfWUNCQ1JfQlQ2MDFfTElNX1RPX1JHQl9CVDYwMV9GVUxM XSA9Cj4+ID4+ID4+ID4+ICsJCSJZQ2JDciBCVC42MDEgbGltaXRlZCByYW5nZSBUTyBSR0IgQlQu NjAxIGZ1bGwgcmFuZ2UiLAo+PiA+PiA+PiA+PiArCVtEUk1fUExBTkVfWUNCQ1JfQlQ2MDFfRlVM TF9UT19SR0JfQlQ2MDFfRlVMTF0gPQo+PiA+PiA+PiA+PiArCQkiWUNiQ3IgQlQuNjAxIGZ1bGwg cmFuZ2UgVE8gUkdCIEJULjYwMSBmdWxsIHJhbmdlIiwKPj4gPj4gPj4gPj4gKwlbRFJNX1BMQU5F X1lDQkNSX0JUNzA5X0xJTV9UT19SR0JfQlQ3MDlfRlVMTF0gPQo+PiA+PiA+PiA+PiArCQkiWUNi Q3IgQlQuNzA5IGxpbWl0ZWQgcmFuZ2UgVE8gUkdCIEJULjcwOSBmdWxsIHJhbmdlIiwKPj4gPj4g Pj4gPj4gKwlbRFJNX1BMQU5FX1lDQkNSX0JUMjAyMF9MSU1fVE9fUkdCX0JUMjAyMF9GVUxMXSA9 Cj4+ID4+ID4+ID4+ICsJCSJZQ2JDciBCVC4yMDIwIGxpbWl0ZWQgcmFuZ2UgVE8gUkdCIEJULjIw MjAgZnVsbCByYW5nZSIsCj4+ID4+ID4+ID4+ICsJW0RSTV9QTEFORV9ZQ0JDUl9CVDYwMV9MSU1f VE9fUkdCX0JUNzA5X0ZVTExdID0KPj4gPj4gPj4gPj4gKwkJIllDYkNyIEJULjYwMSBsaW1pdGVk IHJhbmdlIFRPIFJHQiBCVC43MDkgZnVsbCByYW5nZSIsCj4+ID4+ID4+ID4gV2UgcHJvYmFibHkg ZG9uJ3Qgd2FudCB0byBjb25mbGF0ZSB0aGUgWUNiQ3ItPlJHQiBwYXJ0IHdpdGggdGhlIGNvbG9y c3BhY2UKPj4gPj4gPj4gPiBjb252ZXJzaW9uIGJlY2F1c2UgdGhlIFlDYkNyLT5SR0IgcGFydCBz aG91bGQgYmUgcGVyZm9ybWVkIG9uIGdhbW1hIGVuY29kZWQKPj4gPj4gPj4gPiBkYXRhIGFuZCB0 aGUgY29sb3JzcGFjZSBjb252ZXJzaW9uIG9uIGxpbmVhciBkYXRhLiBTbyB3ZSBuZWVkIGEgZGVn YW1tYQo+PiA+PiA+PiA+IHN0YWdlIGluIGJldHdlZW4uIEF0IGxlYXN0IHRoYXQgc2VlbWVkIHRv IGJlIHRoZSBnZW5lcmFsIGNvbmNlbmN1cyBhZnRlcgo+PiA+PiA+PiA+IHRoZSBsYXN0IHJvdW5k IG9mIG1haWxzIG9uIHRoaXMgdG9waWMuCj4+ID4+ID4+ID4KPj4gPj4KPj4gPj4gSSB0aG91Z2h0 IHRoZSBjb25jbHVzaW9uIG9mIHRoZSBsYXN0IHJvdW5kIHdhcyB0aGF0IG9uIHNvbWUgaGFyZHdh cmUKPj4gPj4gdGhpcyB3b3VsZCBiZSBjb25mbGF0ZWQgYXMgYSBjb25zY2lvdXMgY2hvaWNlLiBJ ZiB0aGUgSFcgZG9lc24ndCBoYXZlCj4+ID4+IHRoZSByZXF1aXJlZCBkZWdhbW1hLT5jc2MtPmdh bW1hIHN0YWdlcywgYW5kIHRoZSBpbXBsZW1lbnRvci91c2VyCj4+ID4+IGRvZXNuJ3QgY2FyZSBh Ym91dCBiZWluZyBhIGxpdHRsZSBpbmNvcnJlY3QsIHRoZW4gaXQgY2FuIGFsbCBiZQo+PiA+PiBk ZXNjcmliZWQgaW4gdGhpcyBzaW5nbGUgcHJvcGVydHkuCj4+ID4KPj4gPkkgd2FzIHByb3Bvc2lu ZyB0aGUgc2luZ2xlIHByb3AgYXBwcm9hY2ggaW5pdGlhbGx5LCBidXQgbm93IEkgdGhpbmsgaXQK Pj4gPm1pZ2h0IGp1c3QgbGVhZCB0byBtb3JlIGNvbmZ1c2lvbi4gU28gYSBkZWRpY2F0ZWQgcHJv cGVydHkgZm9yIGVhY2ggc3RhZ2UKPj4gPmlzIHRoZSBjbGVhcmVyIGRlc2lnbiBJIHRoaW5rLiBX ZSBkbyBsb3NlIHBvdGVudGlhbGx5IGEgYml0IG9mCj4+ID5kaXNjb3ZlcmFiaWxpdHkgd2hlbiBu b3QgYWxsIGNvbWJpbmF0aW9ucyBhcmUgc3VwcG9ydGVkLCBidXQgd2UgaGF2ZQo+PiA+dGhhdCBw cm9ibGVtIGluIG1hbnkgb3RoZXIgcGxhY2VzIGFzIHdlbGwsIHNvIG5vdCBhIGJpZyBkZWFsIEkg dGhpbmsuCj4+ID4KPj4KPj4gWWVhaCB5b3UgbG9zZSBkaXNjb3ZlcmFiaWxpdHksIGJ1dCBkbyB5 b3UgYWxzbyBsb3NlIHRoZSBhYmlsaXR5IHRvIGRvCj4+IHRoZSBub24tcGVyZmVjdCwgc2luZ2xl LXN0YWdlIGNvbnZlcnNpb25zPwo+Cj5Ob3Qgc3VyZSB3aHkgb25lIHZzLiBtdWx0aXBsZSBwcm9w cyBzaG91bGQgbWF0dGVyIGhlcmUuIEVpdGhlciB5b3UKPmFjY2VwdCB0aGUgbGVzcyB0aGFuIHBl cmZlY3QgcGlwZWxpbmUgb3IgeW91IGRvbid0LiBXaGV0aGVyIHlvdSBhc2sgaXQKPnZpYSBvbmUg b2YgbXVsdGlwbGUgcHJvcHMgZG9lc24ndCBzZWVtIGFsbCB0aGF0IGRpZmZlcmVudCB0byBtZS4K Pgo+Pgo+PiBGb3IgSFcgdGhhdCBvbmx5IGhhcyBhIG1hdHJpeCwgaXMgdGhlIGRyaXZlciBleHBl Y3RlZCB0byBjb21iaW5lIGFsbAo+PiBvZiB0aGUgc2VwYXJhdGVkIHN0YWdlcyBkb3duIGludG8g YSBzaW5nbGUgbWF0cml4PyBPciBpdCB3b3VsZG4ndAo+PiBleHBvc2UgdGhlIG90aGVyIHByb3Bl cnRpZXMsIG9ubHkgYSBtYXRyaXgsIGFuZCB1c2Vyc3BhY2UgaGFzIHRvIGNvbWUKPj4gdXAgd2l0 aCBhIGJsb2IgdGhhdCBkb2VzIHRoZSAoYXBwcm94aW1hdGUpIHJpZ2h0IHRoaW5nPwo+Cj5JZiB5 b3UncmUgbm90IGhhcHB5IHdpdGggZXhwb3NpbmcganVzdCBvbmUgb3IgdGhlIG90aGVyLCB0aGVu IEkgZ3Vlc3MKPnlvdSB3b3VsZCBleHBvc2UgYm90aCBidXQgaW5kaWNhdGUgdGhhdCB0aGVyZSdz IG5vIGRlZ2FtbWEgaW4gYmV0d2Vlbgo+YW5kIHVzZXJzcGFjZSBjYW4gdGhlbiBjaG9vc2Ugd2hl dGhlciBpdCdzIGhhcHB5IHdpdGggdGhhdCBzb2x1dGlvbiBvcgo+b3Igbm90Lgo+CgpJIG1pZ2h0 IHVuZGVyc3RhbmQvZXhwbGFpbiBiZXR0ZXIgaWYgd2UgdGFrZSBhIGNvbmNyZXRlIGV4YW1wbGUu CgpMZXQncyBhc3N1bWUgSSBoYXZlIGEgaGFyZHdhcmUgcGlwZWxpbmUgd2l0aCB0aGUgZm9sbG93 aW5nIGJpdHM6CgpJbnB1dCAtPiAzeDMgKyAzIG1hdHJpeCAtPiBkZWdhbW1hIExVVCAtPiBDUlRD CgpNeSBpbnB1dCBpcyBub24tbGluZWFyIFlDYkNyIEJULjYwMSBmdWxsLXJhbmdlLCBhbmQgSSB3 YW50IGxpbmVhciBSR0IKQlQuNzA5LCBmdWxsLXJhbmdlIHRvIHJlYWNoIHRoZSBDUlRDLgoKCldo aWNoIHByb3BlcnRpZXMgd291bGQgbXkgZHJpdmVyIGV4cG9zZSwgYW5kIHdoaWNoIHZhbHVlcyBz aG91bGQgYmUKc2V0IG9uIHRoZW0/CgpNeSBhc3N1bXB0aW9uIC93YXMvIHRoYXQ6CgozeDMgKyAz IG1hdHJpeDoKICAgIEV4cG9zZWQgYXMKICAgIFlDQkNSX1RPX1JHQl9NT0RFID0gIllDYkNyIEJU LjYwMSBmdWxsLXJhbmdlIHRvIFJHQiBCVC43MDkgZnVsbC1yYW5nZSIKCmRlZ2FtbWEgTFVUOgog ICAgRXhwb3NlZCBhcyBERUdBTU1BLCBzZXQgYnkgdXNlcnNwYWNlIHRvIGFuIGludmVyc2UgQlQu NjAxIGdhbW1hCiAgICBjdXJ2ZQoKCkFyZSB5b3Ugc3VnZ2VzdGluZyBpbnN0ZWFkIHRoYXQ6Cgoz eDMgKyAzIG1hdHJpeDoKICAgIEV4cG9zZWQgYXMKICAgIFlDQkNSX1RPX1JHQl9NT0RFID0gIllD YkNyIFRPIFJHQiBDU0MgZnVsbCByYW5nZSBwcmVvZmZzZXQiCiAgICB3aXRoIFlDQkNSX1RPX1JH Ql9DU0MgPSA8dXNlcnNwYWNlLWRlcml2ZWQtbWF0cml4PgoKZGVnYW1tYSBMVVQ6CiAgICBFeHBv c2VkIGFzIERFR0FNTUEsIHNldCBieSB1c2Vyc3BhY2UgdG8gYW4gaW52ZXJzZSBCVC42MDEgZ2Ft bWEKICAgIGN1cnZlCgpUaGFua3MsCkJyaWFuCgo+Pgo+PiA+Pgo+PiA+PiBJZiB0aGVyZSBpcyBt b3JlIGNhcGFibGUgaGFyZHdhcmUgd2l0aCB0aGUgYWRkaXRpb25hbCBzdGFnZXMsIHRoZW4KPj4g Pj4gdGhleSBzaG91bGQgZXhwb3NlIGFkZGl0aW9uYWwgcHJvcGVydGllcyAoaW4gcGlwZWxpbmUg b3JkZXIpOgo+PiA+Pgo+PiA+PiBZQ0JDUl9UT19SR0JfKjoKPj4gPj4gICAgRG9lcyBZQ2JDci0+ UkdCIGNvbnZlcnNpb24gb24gbm9uLWxpbmVhciBZQ2JDciBkYXRhLAo+PiA+PiAgICBvbmx5IHRo ZSBlbnVtIHZhbHVlcyB3aGljaCBkb24ndCBoYXZlIGEgQ1NDIGFyZSBleHBvc2VkLgo+PiA+Cj4+ ID5Ob3Qgc3VyZSB3aGF0IHlvdSBtZWFuIGJ1dCB0aGF0IGxhc3QgcGFydC4KPj4gPgo+Pgo+PiBK dXN0IHRoYXQgdGhlIGVudW0gbGlzdCBzaG91bGQgb25seSBjb250YWluIHRoaW5ncyB0aGF0IGFy ZToKPj4gWUNiQ3IgQlQuNjAxICAtPiBSR0IgQlQuNjAxCj4+IFlDYkNyIEJULjcwOSAgLT4gUkdC IEJULjcwOQo+PiBZY2JDciBCVC4yMDIwIC0+IFJHQiBCVC4yMDIwCj4+Cj4+IGFuZCBub3QgYSB0 aG9zZSBpbmNsdWRpbmcgYSBjb2xvciBzcGFjZSBjaGFuZ2UsIGUuZy46Cj4+IFlDYkNyIEJULjYw MSAgLT4gUkdCIEJULjcwOQo+Cj5SaWdodC4gV2UgcHJvYmFibHkgc2hvdWxkbid0IGV2ZW4gaGF2 ZSB0aGUgIkJULndoYXRldmVyIiBvbiBib3RoIHNpZGVzCj5zaW5jZSBpdCdzIG5vdCByZWFsbHkg YSBjb2xvcnNwYWNlLCBqdXN0IHRoZSBlbmNvZGluZywgYW5kIG9uY2UgeW91Cj5kZWNvZGVkIHRo ZSBZQ2JDciBpbnRvIFJHQiBpdCdzIGp1c3QgUkdCLiBXZSBjb3VsZCBhY3R1YWxseSBqdXN0IGRl ZmluZQo+dGhlIGVudW0gdmFsdWVzIGFzICJCVC42MDEiLCJCVC43MDkiIGV0Yy4KPgo+Pgo+PiBi ZWNhdXNlIGFuIFJHQiBCVC42MDEgLT4gUkdCIEJULjcwOSBjb252ZXJzaW9uIGNhbiBiZSBwZXJm b3JtZWQKPj4gbGF0ZXIgd2l0aCB0aGUgUkdCX1RPX1JHQi9DVE0vd2hhdGV2ZXIgcHJvcGVydHku Cj4+Cj4+ID4+Cj4+ID4+IERFR0FNTUE6Cj4+ID4+ICAgIERvZXMgdGhlIG5vbi1saW5lYXIgdG8g bGluZWFyIGNvbnZlcnNpb24gb24gdGhlIFJHQiBkYXRhIG91dHB1dCBmcm9tCj4+ID4+ICAgIHRo ZSBZQ0JDUl9UT19SR0Igc3RhZ2UuCj4+ID4+Cj4+ID4+IFJHQl9UT19SR0JfKjoKPj4gPj4gICAg U2ltaWxhciBzZXQgb2YgcHJvcGVydGllcyB0byBZQ0JDUl9UT19SR0JfKiwgYWxsb3dpbmcgUkdC LT5SR0IgQ1NDCj4+ID4+ICAgIG9uIHRoZSBsaW5lYXIgZGF0YS4KPj4gPgo+PiA+V2UgbWF5IHdh bnQgdG8gY2FsbCB0aGlzIGp1c3QgQ1RNIHRvIG1hdGNoIHRoZSBtYXRjaGluZyBjcnRjIHByb3Au Cj4+ID4KPj4KPj4gR29vZCBjYWxsLgo+Pgo+PiAtQnJpYW4KPj4KPj4gPj4KPj4gPj4gR0FNTUE6 Cj4+ID4+ICAgIENvbnZlcnQgdGhlIENTQydkIFJHQiBkYXRhIGJhY2sgaW4gdG8gbm9uLWxpbmVh ciBmb3IgYmxlbmRpbmcgKGlmCj4+ID4+ICAgIGJsZW5kaW5nIGlzIHRvIGJlIGRvbmUgd2l0aCBu b24tbGluZWFyIGRhdGEpLgo+PiA+Pgo+PiA+PiBEcml2ZXJzIGNhbiBleHBvc2UgYXMgbWFueSBv ciBhcyBmZXcgb2YgdGhlIGFib3ZlIHByb3BlcnRpZXMgYXMgdGhlaXIKPj4gPj4gaGFyZHdhcmUg c3VwcG9ydHMuCj4+ID4+Cj4+ID4+ID4+Cj4+ID4+ID4+IEkgZG8gbm90IHJlYWxseSBoYXZlIHRo ZSBleHBlcnRpc2UgdG8gYXJndWUgd2l0aCB0aGF0LiBJIG1lcmVseSBjb3BpZWQKPj4gPj4gPj4g dGhlIGlkZWEgZnJvbSB0aGUgbWFpbCB0aHJlYWQgSSByZWZlcnJlZCB0byBpbiB0aGUgY292ZXIg bGV0dGVyLgo+PiA+PiA+PiBIb3dldmVyLCB0aGVyZSBhcmUgc2V2ZXJhbCBkaXNwbGF5IEhXcyBv dXQgdGhlcmUgdGhhdCBkbyBub3QgaGF2ZSBhbGwKPj4gPj4gPj4gYm9sdHMgYW5kIGtub2JzIHRv IG1ha2UgdGhlIGNvbG9yLXNwYWNlIGNvbnZlcnNpb24gaW4gZXhhY3RseSB0aGUgaWRlYWwKPj4g Pj4gPj4gb3JkZXIsIG9tYXAgRFNTIGJlaW5nIG9uZSBvZiB0aGVtLgo+PiA+PiA+Cj4+ID4+ID5Z ZWFoLiBJbnRlbCBoYXJkd2FyZSBpcyBpbiB0aGUgc2FtZSBib2F0IGZvciB0aGUgdGltZSBiZWlu Zy4gT24gY3VycmVudAo+PiA+PiA+aHcgSSB0aGluayB3ZSBjYW4gb25seSByZWFsbHkgZXhwb3Nl IHRoZSBZQ2JDci0+UkdCIGFuZCBkZWdhbW1hIHN0YWdlcy4KPj4gPj4gPgo+PiA+PiA+T24gc29t ZSBsaW1pdGVkIHNldCBvZiBwbGF0Zm9ybXMgd2UgY291bGQgZXhwb3NlIGEgYmxvYiBhcyB3ZWxs LCBhbmQgSQo+PiA+PiA+c3VwcG9zZSBpdCB3b3VsZCB0aGVuIGJlIHBvc3NpYmxlIHRvIHVzZSBp dCBmb3IgY29sb3Igc3BhY2UgY29udmVyc2lvbgo+PiA+PiA+aWYgeW91IGlnbm9yZSBnYW1tYSBh bmQvb3Igb25seSBkZWFsIHdpdGggbGluZWFyIFJHQiBkYXRhLiBCdXQgaXQncyBzdWNoCj4+ID4+ ID5hIGxpbWl0ZWQgc3Vic2V0IG9mIGhhcmR3YXJlIGZvciB1cyB0aGF0IEkgZG9uJ3QgdGhpbmsg SSdtIGludGVyZXN0ZWQKPj4gPj4gPmluIGV4cG9zaW5nIGl0Lgo+PiA+PiA+Cj4+ID4+Cj4+ID4+ IEknbSBub3Qgc3VyZSB0aGUgY3VzdG9tIGJsb2IgaXMgd29ydGggaGF2aW5nIGVpdGhlci4gSXQg Y2FuIGVhc2lseSBiZQo+PiA+PiBhZGRlZCBsYXRlciBpZiB3ZSBkZWNpZGUgd2Ugd2FudCBpdCBh ZnRlciBhbGwuCj4+ID4+Cj4+ID4+IFRoYW5rcywKPj4gPj4gLUJyaWFuCj4+ID4+Cj4+ID4+ID5J biB0aGUgZnV0dXJlIHdlIHNob3VsZCBiZSBnZXR0aW5nIGEgbW9yZSBmdWxseSBmbGVnZWQgcGlw ZWxpbmUuCj4+ID4+ID4KPj4gPj4gPj4KPj4gPj4gPj4gPiBBZnRlciBzdGFyaW5nIGF0IHRoZSB2 NGwgZG9jcyBvbiB0aGlzIHN0dWZmIEkga2luZGEgbGlrZSB0aGVpcgo+PiA+PiA+PiA+ICJlbmNv ZGluZyIgdGVybWlub2xvZ3kgdG8gZGVzY3JpYmUgdGhlIFlDYkNyLT5SR0IgcGFydCwgc28gSSdt IG5vdyBhCj4+ID4+ID4+ID4gbGl0dGxlIHBhcnRpYWwgdG8gY2FsbGluZyB0aGUgcHJvcCBzb21l dGhpbmcgbGlrZSBZQ0JDUl9FTkNPRElORy4gT1RPSAo+PiA+PiA+Pgo+PiA+PiA+PiBJIGd1ZXNz IHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIGNhbGxlZCBZQ0JDUl9ERUNPRElORy4KPj4gPj4gPgo+ PiA+PiA+T25seSBpZiB5b3UgdGhpbmsgb2YgaXQgYXMgYSB2ZXJiLgo+PiA+PiA+Cj4+ID4+ID4+ Cj4+ID4+ID4+ID4gaWYgd2Ugd2FudCB0byBleHBvc2UgdGhlIHJhdyBtYXRyaXggYXMgYSBibG9i IHRoZW4gbWF5YmUgY2FsbGluZyBpdCBhCj4+ID4+ID4+ID4gQ1NDIG1pZ2h0IGJlIGJldHRlci4g Tm90IHN1cmUgdGhlcmUncyBtdWNoIHBvaW50IGluIGV4cG9zaW5nIGl0IHRob3VnaC4KPj4gPj4g Pj4KPj4gPj4gPj4gSW4gbXkgZmlyc3QgdmVyc2lvbiBpdCB3YXMgY2FsbGVkIGp1c3QgQ1NDLCBi dXQgdGhlbiBJIHdhbnRlZCB0byBtYWtlIGl0Cj4+ID4+ID4+IGV4cGxpY2l0IHdoYXQgdGhpcyBD U0Mgd2FzIHVzZWQgZm9yIHRvIGF2b2lkIG1peGluZyB0aGUgWUNiQ3IgZGVjb2RpbmcKPj4gPj4g Pj4gbWF0cml4IHdpdGggWUNiQ3IgZW5jb2RpbmcgbWF0cml4LiBBdCBsZWFzdCBvbiBPTUFQIERT UyB3ZSBoYXZlIHBpZWNlcwo+PiA+PiA+PiBvZiBIVyB0aGF0IGNhbiBkbyBvbmx5IG9uZSBvciB0 aGUgb3RoZXIsIGUuZy4gdGhlIG9mZnNldCBjYWxjdWxhdGlvbnMKPj4gPj4gPj4gYXJlIHN1cHBv cnRlZCBvbmx5IHRvIG9uZSBkaXJlY3Rpb24uCj4+ID4+ID4KPj4gPj4gPkFyZSB5b3UgcGxhbm5p bmcgdG8gZG8gUkdCLT5ZQ2JDciBjb252ZXJzaW9uIGluIHRoZSBwbGFuZSBhcyB3ZWxsPyBJCj4+ ID4+ID50aGluayB3ZSdsbCBiZSBvbmx5IGRvaW5nIHRoYXQgYXQgY3J0Yy9jb25uZWN0b3IgbGV2 ZWwuCj4+ID4+ID4KPj4gPj4gPj4KPj4gPj4gPj4gPiBJIGRvbid0IHRoaW5rIG1vc3QgcGVvcGxl IGFyZSBpbiB0aGUgaGFiaXQgaWYgY29va2luZyB1cCBuZXcgd2F5cyB0bwo+PiA+PiA+PiA+IGVu Y29kZSB0aGVpciBwaXhlbCBkYXRhLgo+PiA+PiA+PiA+Cj4+ID4+ID4+Cj4+ID4+ID4+IEluIHRo ZSBlbWJlZGRlZCBzaWRlIEkgY2FuIGltYWdpbmUgdGhlcmUgY291bGQgYmUgc29tZSBjdXN0b20g YXBwbGlhbmNlcwo+PiA+PiA+PiB3aGVyZSBvbmUgbWF5IHdhbnQgdG8gZG8gc29tZSBjdXN0b20g dGhpbmcgd2l0aCB0aGUgQ1NDIGFuZCBub3QgbmVlZGluZwo+PiA+PiA+PiBhIGN1c3RvbSBrZXJu ZWwgZm9yIHRoYXQgY291bGQgbWFrZSBhIGxpZmUgZWFzaWVyLi4uIGJ1dCB0aGVuIGFnYWluIEkg YW0KPj4gPj4gPj4gbm90IHJlYWxseSBhbiBleHBlcnQgaW4gdGhpcyBhcmVhLgo+PiA+PiA+Cj4+ ID4+ID5JIHdvdWxkIGFzc3VtZSBtb3N0IGN1c3RvbXkgdGhpbmdzIHlvdSdkIGRvIGluIHRoZSBj cnRjIChlZy4gY29sb3IKPj4gPj4gPmNvcnJlY3Rpb24gYW5kIHdoYXRub3QpLiBCdXQgY291bGQg YmUgdGhhdCBJIGp1c3QgbGFjayBpbWFnaW5hdGlvbi4KPj4gPj4gPgo+PiA+PiA+LS0KPj4gPj4g PlZpbGxlIFN5cmrDpGzDpAo+PiA+PiA+SW50ZWwgT1RDCj4+ID4KPj4gPi0tCj4+ID5WaWxsZSBT eXJqw6Rsw6QKPj4gPkludGVsIE9UQwo+Cj4tLSAKPlZpbGxlIFN5cmrDpGzDpAo+SW50ZWwgT1RD Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=