From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: DRM Atomic property for color-space conversion Date: Thu, 16 Mar 2017 19:05:12 +0200 Message-ID: References: <20170127172324.GB12018@e106950-lin.cambridge.arm.com> <20170130133513.GO31595@intel.com> <20170131123329.GB24500@e106950-lin.cambridge.arm.com> <20170131151546.GT31595@intel.com> <20170131155541.GF11506@e106950-lin.cambridge.arm.com> <20170316140725.GF31595@intel.com> <0cff6bab-7593-d3d2-f3b5-71dc21669dab@intel.com> <20170316143059.GG31595@intel.com> <20170316143721.GN6268@e110455-lin.cambridge.arm.com> <20170316155501.GA25006@e106950-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 41BE46EB5F for ; Thu, 16 Mar 2017 17:05:17 +0000 (UTC) In-Reply-To: <20170316155501.GA25006@e106950-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey Cc: Local user for Liviu Dudau , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, mihail.atanassov@arm.com, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAzLzE2LzIwMTcgNTo1NSBQTSwgQnJpYW4gU3RhcmtleSB3 cm90ZToKPiBIaSwKPgo+IE9uIFRodSwgTWFyIDE2LCAyMDE3IGF0IDA1OjE0OjA3UE0gKzAyMDAs IFNoYXJtYSBTaGFzaGFuayB3cm90ZToKPj4gUmVnYXJkcwo+Pgo+PiBTaGFzaGFuawo+Pgo+Pgo+ PiBPbiAzLzE2LzIwMTcgNDozNyBQTSwgTG9jYWwgdXNlciBmb3IgTGl2aXUgRHVkYXUgd3JvdGU6 Cj4+PiBPbiBUaHUsIE1hciAxNiwgMjAxNyBhdCAwNDozMDo1OVBNICswMjAwLCBWaWxsZSBTeXJq w6Rsw6Qgd3JvdGU6Cj4+Pj4gT24gVGh1LCBNYXIgMTYsIDIwMTcgYXQgMDQ6MjA6MjlQTSArMDIw MCwgU2hhcm1hLCBTaGFzaGFuayB3cm90ZToKPj4+Pj4gUmVnYXJkcwo+Pj4+Pgo+Pj4+PiBTaGFz aGFuawo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiAzLzE2LzIwMTcgNDowNyBQTSwgVmlsbGUgU3lyasOk bMOkIHdyb3RlOgo+Pj4+Pj4gT24gVHVlLCBKYW4gMzEsIDIwMTcgYXQgMDM6NTU6NDFQTSArMDAw MCwgQnJpYW4gU3RhcmtleSB3cm90ZToKPj4+Pj4+PiBPbiBUdWUsIEphbiAzMSwgMjAxNyBhdCAw NToxNTo0NlBNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+Pj4+Pj4+IE9uIFR1ZSwg SmFuIDMxLCAyMDE3IGF0IDEyOjMzOjI5UE0gKzAwMDAsIEJyaWFuIFN0YXJrZXkgd3JvdGU6Cj4+ Pj4+Pj4+PiBIaSwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBPbiBNb24sIEphbiAzMCwgMjAxNyBhdCAw MzozNToxM1BNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+Pj4+Pj4+Pj4gT24gRnJp LCBKYW4gMjcsIDIwMTcgYXQgMDU6MjM6MjRQTSArMDAwMCwgQnJpYW4gU3RhcmtleSB3cm90ZToK Pj4+Pj4+Pj4+Pj4gSGksCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFdlJ3JlIGxvb2tpbmcgdG8g ZW5hYmxlIHRoZSBwZXItcGxhbmUgY29sb3IgbWFuYWdlbWVudCAKPj4+Pj4+Pj4+Pj4gaGFyZHdh cmUgaW4KPj4+Pj4+Pj4+Pj4gTWFsaS1EUCB3aXRoIGF0b21pYyBwcm9wZXJ0aWVzLCB3aGljaCBo YXMgc3BhcmtlZCBzb21lIAo+Pj4+Pj4+Pj4+PiBjb252ZXJzYXRpb24KPj4+Pj4+Pj4+Pj4gYXJv dW5kIGhvdyB0byBoYW5kbGUgWUNiQ3IgZm9ybWF0cy4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4g QXMgaXQgc3RhbmRzIHRvZGF5LCBpdCdzIGFzc3VtZWQgdGhhdCBhIGRyaXZlciB3aWxsIAo+Pj4+ Pj4+Pj4+PiBpbXBsaWNpdGx5ICJkbyB0aGUKPj4+Pj4+Pj4+Pj4gcmlnaHQgdGhpbmciIHRvIGRp c3BsYXkgYSBZQ2JDciBidWZmZXIuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFlDYkNyIGRhdGEg b2Z0ZW4gdXNlcyBkaWZmZXJlbnQgZ2FtbWEgY3VydmVzIGFuZCBzaWduYWwgCj4+Pj4+Pj4+Pj4+ IHJhbmdlcyAoZS5nLgo+Pj4+Pj4+Pj4+PiBCVC42MDksIEJULjcwMSwgQlQuMjAyMCwgc3R1ZGlv IHJhbmdlLCBmdWxsLXJhbmdlKSwgc28gaXRzIAo+Pj4+Pj4+Pj4+PiBkZXNpcmFibGUKPj4+Pj4+ Pj4+Pj4gdG8gYmUgYWJsZSB0byBleHBsaWNpdGx5IGNvbnRyb2wgdGhlIFlDYkNyIHRvIFJHQiBj b252ZXJzaW9uIAo+Pj4+Pj4+Pj4+PiBwcm9jZXNzCj4+Pj4+Pj4+Pj4+IGZyb20gdXNlcnNwYWNl Lgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiBXZSdyZSBwcm9wb3NpbmcgYWRkaW5nIGEgIkNTQyIg KGNvbG9yLXNwYWNlIGNvbnZlcnNpb24pIAo+Pj4+Pj4+Pj4+PiBwcm9wZXJ0eSB0bwo+Pj4+Pj4+ Pj4+PiBjb250cm9sIHRoaXMgLSBwcmltYXJpbHkgcGVyLXBsYW5lIGZvciBmcmFtZWJ1ZmZlci0+ cGlwZWxpbmUgCj4+Pj4+Pj4+Pj4+IENTQywgYnV0Cj4+Pj4+Pj4+Pj4+IHBlcmhhcHMgb25lIHBl ciBDUlRDIHRvbyBmb3IgZGV2aWNlcyB3aGljaCBoYXZlIGFuIFJHQiAKPj4+Pj4+Pj4+Pj4gcGlw ZWxpbmUgYW5kCj4+Pj4+Pj4+Pj4+IHdhbnQgdG8gb3V0cHV0IGluIFlVViB0byB0aGUgZGlzcGxh eToKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gTmFtZTogIkNTQyIKPj4+Pj4+Pj4+Pj4gVHlwZTog RU5VTSB8IEFUT01JQzsKPj4+Pj4+Pj4+Pj4gRW51bSB2YWx1ZXMgKHJlcHJlc2VudGF0aXZlKToK Pj4+Pj4+Pj4+Pj4gImRlZmF1bHQiOgo+Pj4+Pj4+Pj4+PiAgICAgU2FtZSBiZWhhdmlvdXIgYXMg bm93LiAiU29tZSBraW5kIiBvZiBZQ2JDci0+UkdCIGNvbnZlcnNpb24KPj4+Pj4+Pj4+Pj4gICAg IGZvciBZQ2JDciBidWZmZXJzLCBieXBhc3MgZm9yIFJHQiBidWZmZXJzCj4+Pj4+Pj4+Pj4+ICJk aXNhYmxlIjoKPj4+Pj4+Pj4+Pj4gICAgIEV4cGxpY2l0bHkgZGlzYWJsZSBhbGwgY29sb3JzcGFj ZSBjb252ZXJzaW9uIChpLmUuIHVzZSBhbgo+Pj4+Pj4+Pj4+PiAgICAgaWRlbnRpdHkgbWF0cml4 KS4KPj4+Pj4+Pj4+Pj4gIllDYkNyIHRvIFJHQjogQlQuNzA5IjoKPj4+Pj4+Pj4+Pj4gICAgIE9u bHkgdmFsaWQgZm9yIFlDYkNyIGZvcm1hdHMuIENTQyBpbiBhY2NvcmRhbmNlIHdpdGggQlQuNzA5 Cj4+Pj4+Pj4+Pj4+ICAgICB1c2luZyBbMTYuLjIzNV0gZm9yICg4LWJpdCkgbHVtYSB2YWx1ZXMs IGFuZCBbMTYuLjI0MF0gZm9yCj4+Pj4+Pj4+Pj4+ICAgICA4LWJpdCBjaHJvbWEgdmFsdWVzLiBG b3IgMTAtYml0IGZvcm1hdHMsIHRoZSByYW5nZSAKPj4+Pj4+Pj4+Pj4gbGltaXRzIGFyZQo+Pj4+ Pj4+Pj4+PiAgICAgbXVsdGlwbGllZCBieSA0Lgo+Pj4+Pj4+Pj4+PiAiWUNiQ3IgdG8gUkdCOiBC VC43MDkgZnVsbC1zd2luZyI6Cj4+Pj4+Pj4+Pj4+ICAgICBPbmx5IHZhbGlkIGZvciBZQ2JDciBm b3JtYXRzLiBDU0MgaW4gYWNjb3JkYW5jZSB3aXRoIAo+Pj4+Pj4+Pj4+PiBCVC43MDksCj4+Pj4+ Pj4+Pj4+ICAgICBidXQgdXNpbmcgdGhlIGZ1bGwgcmFuZ2Ugb2YgZWFjaCBjaGFubmVsLgo+Pj4+ Pj4+Pj4+PiAiWUNiQ3IgdG8gUkdCOiBVc2UgQ1RNIjoqCj4+Pj4+Pj4+Pj4+ICAgICBPbmx5IHZh bGlkIGZvciBZQ2JDciBmb3JtYXRzLiBVc2UgdGhlIG1hdHJpeCBhcHBsaWVkIHZpYSAKPj4+Pj4+ Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4+ICAgICBwbGFuZSdzIENUTSBwcm9wZXJ0eQo+Pj4+Pj4+Pj4+ PiAiUkdCIHRvIFJHQjogVXNlIENUTSI6Kgo+Pj4+Pj4+Pj4+PiAgICAgT25seSB2YWxpZCBmb3Ig UkdCIGZvcm1hdHMuIFVzZSB0aGUgbWF0cml4IGFwcGxpZWQgdmlhIHRoZQo+Pj4+Pj4+Pj4+PiAg ICAgcGxhbmUncyBDVE0gcHJvcGVydHkKPj4+Pj4+Pj4+Pj4gIlVzZSBDVE0iOioKPj4+Pj4+Pj4+ Pj4gICAgIFZhbGlkIGZvciBhbnkgZm9ybWF0LiBVc2UgdGhlIG1hdHJpeCBhcHBsaWVkIHZpYSB0 aGUgCj4+Pj4+Pj4+Pj4+IHBsYW5lJ3MKPj4+Pj4+Pj4+Pj4gICAgIENUTSBwcm9wZXJ0eQo+Pj4+ Pj4+Pj4+PiAuLi4gYW55IG90aGVyIHZhbHVlcyBmb3IgQlQuNjAxLCBCVC4yMDIwLCBSR0IgdG8g WUNiQ3IgZXRjLiAKPj4+Pj4+Pj4+Pj4gZXRjLiBhcwo+Pj4+Pj4+Pj4+PiB0aGV5IGFyZSByZXF1 aXJlZC4KPj4+Pj4+Pj4+PiBIYXZpbmcgc29tZSBSR0IyUkdCIGFuZCBZQ0JDUjJSR0IgdGhpbmdz IGluIHRoZSBzYW1lIHByb3BlcnR5IAo+Pj4+Pj4+Pj4+IHNlZW1zCj4+Pj4+Pj4+Pj4gd2VpcmQu IEkgd291bGQganVzdCBnbyB3aXRoIHNvbWV0aGluZyB2ZXJ5IHNpbXBsZSBsaWtlOgo+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4gWUNCQ1JfVE9fUkdCX0NTQzoKPj4+Pj4+Pj4+PiAqIEJULjYwMQo+Pj4+ Pj4+Pj4+ICogQlQuNzA5Cj4+Pj4+Pj4+Pj4gKiBjdXN0b20gbWF0cml4Cj4+Pj4+Pj4+Pj4KPj4+ Pj4+Pj4+IEkgdGhpbmsgd2UndmUgYWdyZWVkIGluICNkcmktZGV2ZWwgdGhhdCB0aGlzIENTQyBw cm9wZXJ0eQo+Pj4+Pj4+Pj4gY2FuJ3Qvc2hvdWxkbid0IGJlIG1hcHBlZCBvbi10byB0aGUgZXhp c3RpbmcgKGhhcmR3YXJlIAo+Pj4+Pj4+Pj4gaW1wbGVtZW50aW5nCj4+Pj4+Pj4+PiB0aGUpIENU TSBwcm9wZXJ0eSAtIGV2ZW4gaW4gdGhlIGNhc2Ugb2YgcGVyLXBsYW5lIGNvbG9yIAo+Pj4+Pj4+ Pj4gbWFuYWdlbWVudCAtCj4+Pj4+Pj4+PiBiZWNhdXNlIENTQyBuZWVkcyB0byBiZSBkb25lIGJl Zm9yZSBERUdBTU1BLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNvLCBJJ20gaW4gZmF2b3VyIG9mIGdv aW5nIHdpdGggd2hhdCB5b3Ugc3VnZ2VzdGVkIGluIHRoZSAKPj4+Pj4+Pj4+IGZpcnN0IHBsYWNl Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEEgbmV3IFlDQkNSX1RPX1JHQl9DU0MgcHJvcGVydHksIGVu dW0gdHlwZSwgd2l0aCBhIGxpc3Qgb2YgZml4ZWQKPj4+Pj4+Pj4+IGNvbnZlcnNpb25zLiBJJ2Qg ZHJvcCB0aGUgY3VzdG9tIG1hdHJpeCBmb3Igbm93LCBhcyB3ZSdkIG5lZWQgCj4+Pj4+Pj4+PiB0 byBhZGQKPj4+Pj4+Pj4+IGFub3RoZXIgcHJvcGVydHkgdG8gYXR0YWNoIHRoZSBjdXN0b20gbWF0 cml4IGJsb2IgdG9vLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEkgc3RpbGwgdGhpbmsgd2UgbmVlZCBh IHdheSB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlIHNvdXJjZSBkYXRhIAo+Pj4+Pj4+Pj4gcmFuZ2UK Pj4+Pj4+Pj4+IGlzIGJyb2FkY2FzdC9mdWxsLXJhbmdlLCBzbyBwZXJoYXBzIHRoZSBlbnVtIGxp c3Qgc2hvdWxkIGJlIAo+Pj4+Pj4+Pj4gZXhwYW5kZWQKPj4+Pj4+Pj4+IHRvIGFsbCBjb21iaW5h dGlvbnMgb2YgQlQuNjAxL0JULjcwOSArIGJyb2FkY2FzdC9mdWxsLXJhbmdlLgo+Pj4+Pj4+PiBT b3VuZHMgcmVhc29uYWJsZS4gTm90IHRoYXQgbXVjaCBmdWxsIHJhbmdlIFlDYkNyIHN0dWZmIG91 dCB0aGVyZQo+Pj4+Pj4+PiBwZXJoYXBzLiBXZWxsLCBhcGFydCBmcm9tIGpwZWdzIEkgc3VwcG9z ZS4gQnV0IG5vIGhhcm0gaW4gYmVpbmcgCj4+Pj4+Pj4+IGFibGUKPj4+Pj4+Pj4gdG8gZGVhbCB3 aXRoIGl0Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gKEknbSBub3Qgc3VyZSB3aGF0IHRoZSBjYW5vbmlj YWwgbmFtaW5nIGZvciAKPj4+Pj4+Pj4+IGJyb2FkY2FzdC9mdWxsLXJhbmdlIGlzLAo+Pj4+Pj4+ Pj4gd2UgY2FsbCB0aGVtIG5hcnJvdyBhbmQgd2lkZSkKPj4+Pj4+Pj4gV2UgdGVuZCB0byBjYWxs IHRoZW0gZnVsbCB2cy4gbGltaXRlZCByYW5nZS4gVGhhdCdzIGhvdyBvdXIKPj4+Pj4+Pj4gIkJy b2FkY2FzdCBSR0IiIHByb3BlcnR5IGlzIGRlZmluZWQgYXMgd2VsbC4KPj4+Pj4+Pj4KPj4+Pj4+ PiBPSywgdXNpbmcgdGhlIHNhbWUgb25lcyBzb3VuZHMgc2Vuc2libGUuCj4+Pj4+Pj4KPj4+Pj4+ Pj4+PiBBbmQgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZSB0aGluZyBmb3IgdGhlIGNydGMgc3R1ZmYg aXMgCj4+Pj4+Pj4+Pj4gcHJvYmFibHkgbm90Cj4+Pj4+Pj4+Pj4gZ29pbmcgdG8gZW5kIHdlbGwu IExpa2UgRGFuaWVsIHNhaWQgd2UgYWxyZWFkeSBoYXZlIHRoZQo+Pj4+Pj4+Pj4+ICdCcm9hZGNh c3QgUkdCJyBwcm9wZXJ0eSBtdWRkeWluZyB0aGUgd2F0ZXJzIHRoZXJlLCBhbmQgdGhhdCAKPj4+ Pj4+Pj4+PiBzdHVmZgo+Pj4+Pj4+Pj4+IGFsc28gdGllcyBpbiB3aXRoIHdoYXQgY29sb3JzcGFj ZSB3ZSBzaWduYWwgdG8gdGhlIHNpbmsgdmlhCj4+Pj4+Pj4+Pj4gaW5mb2ZyYW1lcy93aGF0ZXZl ciB0aGUgRFAgdGhpbmcgd2FzIGNhbGxlZC4gU28gbXkgZ3V0IAo+Pj4+Pj4+Pj4+IGZlZWxpbmcg aXMKPj4+Pj4+Pj4+PiB0aGF0IHRyeWluZyB0byB1c2UgdGhlIHNhbWUgcHJvcGVydHkgZXZlcnl3 aGVyZSB3aWxsIGp1c3QgZW5kIHVwCj4+Pj4+Pj4+Pj4gbWVzc3kuCj4+Pj4+Pj4+PiBZZWFoLCBh Z3JlZWQuIElmL3doZW4gc29tZW9uZSB3YW50cyB0byBhZGQgQ1NDIG9uIHRoZSBvdXRwdXQgCj4+ Pj4+Pj4+PiBvZiBhIENSVEMKPj4+Pj4+Pj4+IChhZnRlciBHQU1NQSksIHdlIGNhbiBhZGQgYSBu ZXcgcHJvcGVydHkuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhhdCBtYWtlcyBtZSB3b25kZXIgYWJv dXQgY2FsbGluZyB0aGlzIG9uZSAKPj4+Pj4+Pj4+IFNPVVJDRV9ZQ0JDUl9UT19SR0JfQ1NDIHRv Cj4+Pj4+Pj4+PiBiZSBleHBsaWNpdCB0aGF0IGl0IGRlc2NyaWJlcyB0aGUgc291cmNlIGRhdGEu IFRoZW4gd2UgY2FuIAo+Pj4+Pj4+Pj4gbGF0ZXIgYWRkCj4+Pj4+Pj4+PiBTSU5LX1JHQl9UT19Z Q0JDUl9DU0MsIGFuZCBpdCB3aWxsIGJlIHJlYXNvbmFibHkgb2J2aW91cyB0aGF0IGl0cwo+Pj4+ Pj4+Pj4gdmFsdWUgZGVzY3JpYmVzIHRoZSBvdXRwdXQgZGF0YSByYXRoZXIgdGhhbiB0aGUgaW5w dXQgZGF0YS4KPj4+Pj4+Pj4gU291cmNlIGFuZCBzaW5rIGhhdmUgYSBzbGlnaHQgY29ubm90YXRp b24gaW4gbXkgbWluZCB3cnQuIHRoZSAKPj4+Pj4+Pj4gYm94IHRoYXQKPj4+Pj4+Pj4gcHJvZHVj ZXMgdGhlIGRpc3BsYXkgc2lnbmFsIGFuZCB0aGUgYm94IHRoYXQgZWF0cyB0aGUgc2lnbmFsLiAK Pj4+Pj4+Pj4gU28gdHJ5aW5nCj4+Pj4+Pj4+IHRvIHVzZSB0aGUgc2FtZSB0ZXJtcyB0byBkZXNj cmliZSB0aGUgaW50ZXJuYWxzIG9mIHRoZSBwaXBlbGluZSAKPj4+Pj4+Pj4gaW5zaWRlCj4+Pj4+ Pj4+IHRoZSAic291cmNlIGJveCIgbWlndGggbGVhZCB0byBzb21lIGNvbmZ1c2lvbi4gQnV0IHdl IGRvIAo+Pj4+Pj4+PiBwcm9iYWJseSBuZWVkCj4+Pj4+Pj4+IHNvbWUgZGVjZW50IG5hbWVzIGZv ciB0aGVzZSB0byBtYWtlIHRoZSBsYXlvdXQgb2YgdGhlIHBpcGVsaW5lIAo+Pj4+Pj4+PiBjbGVh ci4KPj4+Pj4+Pj4gSW5wdXQvb3V0cHV0IGFyZSB0aGUgb3RoZXIgbmFtZXMgdGhhdCBwb3BwZWQg dG8gbXkgbWluZCBidXQgCj4+Pj4+Pj4+IHRob3NlIGFyZW4ndAo+Pj4+Pj4+PiBuZWNlc3Nhcmls eSBhbnkgYmV0dGVyLiBCdXQgaW4gdGhlIGVuZCBJIHRoaW5rIEkgY291bGQgbGl2ZSAKPj4+Pj4+ Pj4gd2l0aCB3aGF0ZXZlcgo+Pj4+Pj4+PiBuYW1lcyB3ZSBoYXBwZW4gdG8gcGljaywgYXMgbG9u ZyBhcyB3ZSBkb2N1bWVudCB0aGUgcGlwZWxpbmUgCj4+Pj4+Pj4+IGNsZWFybHkuCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IExvbmcgYWdvIEkgZGlkIHdvbmRlciBpZiB3ZSBzaG91bGQganVzdCBzdGFydCBp bmRleGluZyB0aGVzZSAKPj4+Pj4+Pj4gdGhpbmdzCj4+Pj4+Pj4+IHNvbWVob3csIGFuZCB0aGVu IGp1c3QgbG9va2luZyBhdCB0aGUgaW5kZXggc2hvdWxkIHRlbGwgeW91IHRoZSAKPj4+Pj4+Pj4g b3JkZXIKPj4+Pj4+Pj4gb2YgdGhlIG9wZXJhdGlvbnMuIEJ1dCB3ZSBhbHJlYWR5IGhhdmUgdGhl IGN0bS9nYW1tYSB3L28gYW55IAo+Pj4+Pj4+PiBpbmRleGVzIHNvCj4+Pj4+Pj4+IHRoYXQgaWRl YSBwcm9iYWJseSBpc24ndCBzbyBncmVhdCBhbnltb3JlLgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSSB3 YW50IHRvIGF2b2lkIGNvbmZ1c2lvbiBjYXVzZWQgYnkgZW5kaW5nIHVwIHdpdGggdHdvCj4+Pj4+ Pj4+PiB7Q1N9X1RPX3tDU31fQ1NDIHByb3BlcnRpZXMsIHdoZXJlIG9uZSBpcyBkZXNjcmliaW5n IHRoZSBkYXRhIAo+Pj4+Pj4+Pj4gdG8gdGhlCj4+Pj4+Pj4+PiBsZWZ0IG9mIGl0LCBhbmQgdGhl IG90aGVyIGRlc2NyaWJpbmcgdGhlIGRhdGEgdG8gdGhlIHJpZ2h0IG9mIAo+Pj4+Pj4+Pj4gaXQs IHdpdGgKPj4+Pj4+Pj4+IG5vIHJlYWwgd2F5IG9mIHRlbGxpbmcgd2hpY2ggd2F5IGFyb3VuZCBp dCBpcy4KPj4+Pj4+Pj4gTm90IHJlYWxseSBzdXJlIHdoYXQgeW91IG1lYW4uIEl0IHNob3VsZCBh bHdheXMgYmUKPj4+Pj4+Pj4gPGxlZnQ+X3RvXzxyaWdodD5fY3NjLgo+Pj4+Pj4+IEFncmVlZCwg bGVmdC10by1yaWdodC4gQnV0IGZvciBpbnN0YW5jZSBvbiBhIENTQyBwcm9wZXJ0eSAKPj4+Pj4+ PiByZXByZXNlbnRpbmcKPj4+Pj4+PiBhIENSVEMgb3V0cHV0IENTQyAoanVzdCBiZWZvcmUgaGl0 dGluZyB0aGUgY29ubmVjdG9yKSwgd2hpY2ggCj4+Pj4+Pj4gaGFwcGVucwo+Pj4+Pj4+IHRvIGJl IGNvbnZlcnRpbmcgUkdCIHRvIFlDYkNyOgo+Pj4+Pj4+Cj4+Pj4+Pj4gQ1JUQyAtPiBHQU1NQSAt PiBSR0JfVE9fWUNCQ1JfQ1NDCj4+Pj4+Pj4KPj4+Pj4+PiAuLi50aGUgZW51bSB2YWx1ZSAiQlQu NjAxIExpbWl0ZWQiIG1lYW5zIHRoYXQgdGhlIGRhdGEgb24gdGhlIAo+Pj4+Pj4+ICpyaWdodCoK Pj4+Pj4+PiBvZiBSR0JfVE9fWUNCQ1JfQ1NDIGlzICJCVC42MDEgTGltaXRlZCIKPj4+Pj4+Pgo+ Pj4+Pj4+IE9uIHRoZSBvdGhlciBoYW5kIGZvciBhIENTQyBvbiB0aGUgaW5wdXQgb2YgYSBwbGFu ZSwgd2hpY2ggCj4+Pj4+Pj4gaGFwcGVucyB0bwo+Pj4+Pj4+IGJlIGNvbnZlcnRpbmcgWUNiQ3Ig dG8gUkdCOgo+Pj4+Pj4+Cj4+Pj4+Pj4gUkFNIC0+IFlDQkNSX1RPX1JHQl9DU0MgLT4gREVHQU1N QQo+Pj4+Pj4+Cj4+Pj4+Pj4gLi4udGhlIGVudW0gdmFsdWUgIkJULjYwMSBMaW1pdGVkIiBtZWFu cyB0aGF0IHRoZSBkYXRhIG9uIHRoZSAKPj4+Pj4+PiAqbGVmdCoKPj4+Pj4+PiBvZiBZQ0JDUl9U T19SR0JfQ1NDIGlzICJCVC42MDEgTGltaXRlZCIuCj4+Pj4+Pj4KPj4+Pj4+PiBJbmRpY2F0aW5n IGluIHRoZSBwcm9wZXJ0eSBuYW1lIHdoZXRoZXIgaXRzIHZhbHVlIGlzIGRlc2NyaWJpbmcgdGhl Cj4+Pj4+Pj4gZGF0YSBvbiB0aGUgbGVmdCBvciB0aGUgcmlnaHQgaXMgbmVlZGVkIChhbmQgSSBk b24ndCB0aGluayAKPj4+Pj4+PiBpbmZlcnJpbmcKPj4+Pj4+PiB0aGF0ICJpdCdzIGFsd2F5cyB0 aGUgWUNCQ1Igb25lIiBpcyB0aGUgY29ycmVjdCBhcHByb2FjaCkuCj4+Pj4+Pj4KPj4+Pj4+PiBJ biBteSBleGFtcGxlIGFib3ZlLCAiU09VUkNFX3h4eCIgd291bGQgbWVhbiB0aGUgZW51bSB2YWx1 ZSBpcwo+Pj4+Pj4+IGRlc2NyaWJpbmcgdGhlICJzb3VyY2UiIGRhdGEgKGkuZS4gdGhlIGRhdGEg b24gdGhlIGxlZnQpIGFuZAo+Pj4+Pj4+ICJTSU5LX3h4eCIgd291bGQgbWVhbiB0aGUgZW51bSB2 YWx1ZSBpcyBkZXNjcmliaW5nIHRoZSAic2luayIgZGF0YQo+Pj4+Pj4+IChpLmUuIHRoZSBkYXRh IG9uIHRoZSByaWdodCkuIFRoaXMgZG9lc24ndCBuZWNlc3NhcmlseSBuZWVkIHRvIAo+Pj4+Pj4+ IGluZmVyIGEKPj4+Pj4+PiBwYXJ0aWN1bGFyIHBvaW50IGluIHRoZSBwaXBlbGluZS4KPj4+Pj4+ IFJpZ2h0LCBzbyBJIGd1ZXNzIHlvdSB3YW50IHRoZSB2YWx1ZXMgdG8gYmUgbmFtZWQgIjxhPiB0 byA8Yj4iIGFzIAo+Pj4+Pj4gd2VsbD8KPj4+Pj4+IFllcywgSSB0aGluayB3ZSdsbCBiZSB3YW50 aW5nIHRoYXQgYXMgd2VsbC4KPj4+Pj4+Cj4+Pj4+PiBTbyB3aGF0IHdlIG1pZ2h0IG5lZWQgaXMg c29tZXRoaW5nIGxpa2U6Cj4+Pj4+PiBlbnVtIFlDQkNSX1RPX1JHQl9DU0MKPj4+Pj4+ICAgKiBZ Q2JDciBCVC42MDEgbGltaXRlZCB0byBSR0IgQlQuNzA5IGZ1bGwKPj4+Pj4+ICAgKiBZQ2JDciBC VC43MDkgbGltaXRlZCB0byBSR0IgQlQuNzA5IGZ1bGwgPHRoaXMgd291bGQgYmUgdGhlIAo+Pj4+ Pj4gbGlrZWx5IGRlZmF1bHQgdmFsdWUgSU1PPgo+Pj4+Pj4gICAqIFlDYkNyIEJULjYwMSBsaW1p dGVkIHRvIFJHQiBCVC4yMDIwIGZ1bGwKPj4+Pj4+ICAgKiBZQ2JDciBCVC43MDkgbGltaXRlZCB0 byBSR0IgQlQuMjAyMCBmdWxsCj4+Pj4+PiAgICogWUNiQ3IgQlQuMjAyMCBsaW1pdGVkIHRvIFJH QiBCVC4yMDIwIGZ1bGwKPj4+Pj4+Cj4+Pj4+PiBBbmQgdGhhbmtzIHRvIEJULjIwMjAgd2UnbGwg bmVlZCBhIFJHQi0+UkdCIENTQyBwcm9wZXJ0eSBhcyB3ZWxsLiAKPj4+Pj4+IEVnOgo+Pj4+Pj4g ZW51bSBSR0JfVE9fUkdCX0NTQwo+Pj4+Pj4gICAqIGJ5cGFzcyAob3Igc2VwYXJhdGUgNzA5LT43 MDksIDIwMjAtPjIwMjA/KSA8dGhpcyB3b3VsZCBiZSB0aGUgCj4+Pj4+PiBkZWZhdWx0Pgo+Pj4+ Pj4gICAqIFJHQiBCVC43MDkgZnVsbCB0byBSR0IgQlQuMjAyMCBmdWxsCj4KPiBJIGxpa2UgdGhp cyBhcHByb2FjaCwgZnJvbSBhIHBvaW50IG9mIHZpZXcgb2YgYmVpbmcgZXhwbGljaXQgYW5kCj4g ZGlzY292ZXJhYmxlIGJ5IHVzZXJzcGFjZS4gSXQgYWxzbyBoYXBwZW5zIHRvIG1hcCBxdWl0ZSBu aWNlbHkgdG8gb3VyCj4gaGFyZHdhcmUuLi4gd2UgaGF2ZSBhIG1hdHJpeCBiZWZvcmUgZGVnYW1t YSwgc28gd2UgY291bGQgZG8gYQo+IENTQyArIEdhbXV0IGNvbnZlcnNpb24gdGhlcmUgaW4gb25l IGdvLCB3aGljaCBpcyBhcHBhcmVudGx5IG5vdCAxMDAlCj4gbWF0aGVtYXRpY2FsbHkgY29ycmVj dCwgYnV0IGluIGdlbmVyYWwgaXMgZ29vZCBlbm91Z2guCj4KPiAuLi4gaG93ZXZlciBoYXZpbmcg dGFsa2VkIHRoaXMgb3ZlciBhIGJpdCB3aXRoIHNvbWVvbmUgd2hvIHVuZGVyc3RhbmRzCj4gdGhl IGRldGFpbCBhIGxvdCBiZXR0ZXIgdGhhbiBtZSwgaXQgc291bmRzIGxpa2UgdGhlICJjb3JyZWN0 IiB0aGluZyB0bwo+IGRvIGFzIHBlciB0aGUgc3BlYyBpczoKPgo+IENTQyAtPiBERUdBTU1BIC0+ IEdBTVVUCj4KPiBlLmcuCj4KPiBZQ2JDciBidC42MDEgbGltaXRlZCB0byBSR0IgYnQuNjAxIGZ1 bGwgLT4gZGVnYW1tYSAtPgo+ICAgICBSR0IgYnQuNjAxIGZ1bGwgdG8gUkdCIGJ0LjcwOSBmdWxs Cj4KPiBTbyB0aGF0IHNvdW5kcyBsaWtlIHdoYXQgd2UgbmVlZCB0byBzdXBwb3J0IGluIHRoZSBB UEksIGFuZCBhbHNvCj4gc291bmRzIG1vcmUgbGlrZSB0aGUgInNlcGFyYXRlIHByb3BlcnRpZXMi IGFwcHJvYWNoLgpJIGFncmVlLgo+Cj4+Pj4+Pgo+Pj4+Pj4gQWx0ZXJuYXRpdmVzIHdvdWxkIGlu dm9sdmUgdHdvIHByb3BlcnRpZXMgdG8gZGVmaW5lIHRoZSBpbnB1dCBhbmQgCj4+Pj4+PiBvdXRw dXQKPj4+Pj4+IGZyb20gdGhlIENTQyBzZXBhcmF0ZWx5LCBidXQgdGhlbiB5b3UgbG9zZSB0aGUg Y2FwYWJpbGl0eSB0byBzZWUgCj4+Pj4+PiB3aGljaAo+Pj4+Pj4gY29tYmluYXRpb25zIGFyZSBh Y3R1YWxseSBzdXBvb3J0ZWQuCj4+Pj4+IEkgd2FzIHRoaW5raW5nIGFib3V0IHRoaXMgdG9vLCBv ciB3b3VsZCBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gCj4+Pj4+IGNyZWF0ZSB0d28KPj4+Pj4gcHJv cGVydGllczoKPj4+Pj4gLSBvbmUgZm9yIGdhbXV0IG1hcHBpbmcgKGNhc2VzIGxpa2UgUkdCNzA5 LT5SR0IyMDIwKQo+Pj4+PiAtIG90aGVyIG9uZSBmb3IgQ29sb3Igc3BhY2UgY29udmVyc2lvbiAo Y2FzZXMgbGlsZSBZVVYgNzA5IC0+IFJHQiAKPj4+Pj4gNzA5KQo+Pj4+Pgo+Pj4+PiBHYW11dCBt YXBwaW5nIGNhbiByZXByZXNlbnQgYW55IG9mIHRoZSBmaXggZnVuY3Rpb24gbWFwcGluZywgCj4+ Pj4+IHdlcmVhcyBDU0MKPj4+Pj4gY2FuIGJyaW5nIHVwIGFueSBwcm9ncmFtbWFibGUgbWF0cml4 Cj4+Pj4+Cj4+Pj4+IEludGVybmFsbHkgdGhlc2UgcHJvcGVydGllcyBjYW4gdXNlIHRoZSBzYW1l IEhXIHVuaXQgb3IgZXZlbiBzYW1lIAo+Pj4+PiBmdW5jdGlvbi4KPj4+Pj4gRG9lcyBpdCBzb3Vu ZCBhbnkgZ29vZCA/Cj4KPiBJdCBzZWVtcyB0byBtZSB0aGF0IGFjdHVhbGx5IHRoZSB0d28gYXBw cm9hY2hlcyBjYW4gYmUgY29tYmluZWQgaW50bwo+IHRoZSBzYW1lIHRoaW5nOgo+ICAqIFdlIGRl ZmluaXRlbHkgbmVlZCBhIFlDYkNyLXRvLVJHQiBjb252ZXJzaW9uIGJlZm9yZSBkZWdhbW1hCj4g ICAgKGZvciBjb252ZXJ0aW5nIFlVViBkYXRhIHRvIFJHQiwgaW4gc29tZSBmbGF2b3VyKQo+ICAq IFdlIGRlZmluaXRlbHkgbmVlZCBhbiBSR0ItdG8tUkdCIGNvbnZlcnNpb24gYWZ0ZXIgZ2FtbWEg dG8gaGFuZGxlCj4gICAgNzA5IGxheWVycyBibGVuZGVkIHdpdGggUmVjLjIwMjAuCj4gVGhlIGV4 YWN0IGNvbnZlcnNpb24gZWFjaCBvZiB0aG9zZSBwcm9wZXJ0aWVzIHJlcHJlc2VudHMgKENTQyAr IGdhbXV0LAo+IENTQyBvbmx5LCBnYW11dCBvbmx5KSBjYW4gYmUgaW1wbGljaXQgaW4gdGhlIGVu dW0gbmFtZS4KPgo+IEZvciBoYXJkd2FyZSB3aGljaCBoYXMgYSBmaXhlZC1mdW5jdGlvbiBDU0Mg YmVmb3JlIERFR0FNTUEgd2l0aCBhCj4gbWF0cml4IGFmdGVyIERFR0FNTUEsIEknZCBleHBlY3Qg dG8gc2VlIHNvbWV0aGluZyBsaWtlIGJlbG93LiBOb25lIG9mCj4gdGhlIFlDQkNSX1RPX1JHQl9D U0MgdmFsdWVzIGluY2x1ZGUgYSBnYW11dCBjb252ZXJzaW9uLCBiZWNhdXNlIHRoYXQKPiBpcyBp bnN0ZWFkIGV4cG9zZWQgd2l0aCB0aGUgUkdCX1RPX1JHQl9DU0MgcHJvcGVydHkgKHdoaWNoIHJl cHJlc2VudHMKPiB0aGUgaGFyZHdhcmUgbWF0cml4KQo+Cj4gWUNCQ1JfVE9fUkdCX0NTQyAoYmVm b3JlIERFR0FNTUEpOgo+ICAgICBZQ2JDciBCVC42MDEgbGltaXRlZCB0byBSR0IgQlQuNjAxIGZ1 bGwKPiAgICAgWUNiQ3IgQlQuNzA5IGxpbWl0ZWQgdG8gUkdCIEJULjcwOSBmdWxsCj4gICAgIFlD YkNyIEJULjIwMjAgbGltaXRlZCB0byBSR0IgQlQuMjAyMCBmdWxsCj4KPiBSR0JfVE9fUkdCX0NT QyAoYWZ0ZXIgREVHQU1NQSk6Cj4gICAgIFJHQiBCVC42MDEgZnVsbCB0byBSR0IgQlQuNzA5IGZ1 bGwKPiAgICAgUkdCIEJULjcwOSBmdWxsIHRvIFJHQiBCVC4yMDIwIGZ1bGwKPgo+Cj4gT24gdGhl IG90aGVyIGhhbmQsIG9uIGhhcmR3YXJlIHdoaWNoIGRvZXMgYSBDU0MgKyBHYW11dCBjb252ZXJz aW9uIGluCj4gb25lIGdvLCBiZWZvcmUgREVHQU1NQSAobGlrZSBvdXJzKSwgeW91IG1pZ2h0IGhh dmU6Cj4KPiBZQ0JDUl9UT19SR0JfQ1NDIChiZWZvcmUgREVHQU1NQSk6Cj4gICAgIFlDYkNyIEJU LjYwMSBsaW1pdGVkIHRvIFJHQiBCVC42MDEgZnVsbAo+ICAgICBZQ2JDciBCVC42MDEgbGltaXRl ZCB0byBSR0IgQlQuNzA5IGZ1bGwKPiAgICAgWUNiQ3IgQlQuNzA5IGxpbWl0ZWQgdG8gUkdCIEJU LjcwOSBmdWxsCj4gICAgIFlDYkNyIEJULjIwMjAgbGltaXRlZCB0byBSR0IgQlQuMjAyMCBmdWxs Cj4KPiBSR0JfVE9fUkdCX0NTQyAoYWZ0ZXIgREVHQU1NQSk6Cj4gICAgIE5vdCBzdXBwb3J0ZWQK Pgo+IFVzZXJzcGFjZSBjYW4gcGFyc2UgdGhlIHR3byBwcm9wZXJ0aWVzIHRvIGZpZ3VyZSBvdXQg aXRzIG9wdGlvbnMgdG8KPiBnZXQgZnJvbSBkZXNpcmVkIGlucHV0IC0+IGRlc2lyZWQgb3V0cHV0 LiBJdCBpcyBwZXJoYXBzIGEgbGl0dGxlCj4gdmVyYm9zZSwgYnV0IGl0J3MgZGVzY3JpcHRpdmUg YW5kIGZsZXhpYmxlLgo+ClNlZW1zIHRvIGJlIGEgZ29vZCBpZGVhLCBWaWxsZSA/CgotIFNoYXNo YW5rCj4+Pj4gSXQncyBjZXJ0YWlubHkgcG9zc2libGUuIE9uZSBwcm9ibGVtIGlzIHRoYXQgd2Ug Y2FuJ3QgaW5mb3JtIHVzZXJzcGFjZQo+Pj4+IHVwZnJvbnQgd2hpY2ggY29tYmluYXRpb25zIGFy ZSBzdXBwb3J0ZWQuIFdoZXRoZXIgdGhhdCdzIGEgcmVhbCAKPj4+PiBwcm9ibGVtCj4+Pj4gSSdt IG5vdCBzdXJlLiBXaXRoIGF0b21pYyB1c2Vyc3BhY2UgY2FuIG9mIGNvdXJzZSBjaGVjayB1cGZy b250IGlmCj4+Pj4gc29tZXRoaW5nIGNhbiBiZSBkb25lIG9yIG5vdCwgYnV0IHRoZSBtYWluIHBy b2JsZW0gaXMgdGhlbiBjb21pbmcgdXAKPj4+PiB3aXRoIGEgZmFsbGJhY2sgc3RyYXRlZ3kgdGhh dCBkb2Vzbid0IHN1Y2sgdG9vIGJhZGx5Lgo+Pj4+Cj4KPiBUaGUgYXBwcm9hY2ggYWJvdmUgaGVs cHMgbGltaXQgdGhlIHNldCBleHBvc2VkIHRvIHVzZXJzcGFjZSB0byBiZSBvbmx5Cj4gdGhvc2Ug d2hpY2ggYXJlIHN1cHBvcnRlZCAtIGJlY2F1c2UgZGV2aWNlcyB3aGljaCBkb24ndCBoYXZlIHNl cGFyYXRlCj4gaGFyZHdhcmUgZm9yIHRoZSB0d28gc3RhZ2VzIHdvbid0IGV4cG9zZSB2YWx1ZXMg Zm9yIGJvdGguCj4KPj4+PiBBbnl3YXlzLCBJIGRvbid0IHRoaW5rIEkgaGF2ZSBhbnkgc3Ryb25n IGZhdm9yaXRlcyBoZXJlLiBXb3VsZCBiZSBuaWNlCj4+Pj4gdG8gaGVhciB3aGF0IGV2ZXJ5b25l IGVsc2UgdGhpbmtzLgo+Pj4gSSBjb25mZXNzIHRvIGEgbGFjayBvZiBleHBlcmllbmNlIGluIHRo ZSBzdWJqZWN0IGhlcmUsIGJ1dCB3aGF0IGlzIAo+Pj4gdGhlIG1vcmUgY29tbW9uCj4+PiByZXF1 ZXN0IGNvbWluZyBmcm9tIHVzZXJzcGFjZTogY29udmVydGluZyBZVVYgPC0+IFJHQiBidXQga2Vl cGluZyAKPj4+IHRoZSBnYW1tdXQgbWFwcGluZwo+Pj4gc2VwYXJhdGUsIG9yIFlVViAoZ2FtbXV0 IHgpIDwtPiBSR0IgKGdhbW11dCB5KSA/IEluIG90aGVyIHdvcmRzOiBJIAo+Pj4gY2FuIHNlZSB0 aGUgdXNlZnVsbmVzcwo+Pj4gb2YgaGF2aW5nIGFuIGV4cGxpY2l0IHdheSBvZiBkZWNvbXBvc2lu ZyB0aGUgY29sb3IgbWFwcGluZyBwcm9jZXNzIAo+Pj4gYW5kIGNvbnRyb2wgdGhlCj4+PiBwYXJh bWV0ZXJzLCBidXQgaG93IG9mdGVuIGRvIGFwcHMgb3IgY29tcG9zaXRvcnMgZ28gdGhyb3VnaCB0 aGUgCj4+PiB3aG9sZSBjaGFpbj8KPj4gUmlnaHQgbm93LCBtb3JlIG9yIGxlc3MgdGhlIGludGVy ZXN0IGlzIG9uIHRoZSBSR0ItPllVViBjb252ZXJzaW9uIAo+PiBzaWRlLCBjb3ogdGlsbCBub3cg QlQgMjAyMCBnYW11dCB3YXMgbm90IGluCj4+IHBpY3R1cmUuIFJFQyA2MDEgYW5kIDcwOSBoYXZl IHZlcnkgY2xvc2UgZ2FtdXRzLCBzbyBpdCB3YXMgb2sgdG8gCj4+IGJsZW5kIGZyYW1lcyBtb3N0 bHkgd2l0aG91dCBib3RoZXJpbmcgYWJvdXQKPj4gZ2FtdXQsIGJ1dCBnb2luZyBmd2QsIG9uZXMg UkVDIDIwMjAgY29tZXMgaW50byBwaWN0dXJlLCB3ZSBuZWVkIHRvIAo+PiBib3RoZXIgYWJvdXQg bWFwcGluZyBnYW11dHMgdG9vLCBlbHNlCj4+IGJsZW5kaW5nIFJlYzcwOSBidWZmZXJzIGFuZCBS ZWMyMDIwIGJ1ZmZlcnMgdG9nZXRoZXIgd291bGQgY2F1c2UgdmVyeSAKPj4gdmlzaWJsZSBnYW11 dCBtaXNtYXRjaC4KPj4KPj4gU28gY29uc2lkZXJpbmcgZnV0dXJpc3RpYyBkZXZlbG9wbWVudHMs IGl0IG1pZ2h0IGJlIG9rIHRvIGNvbnNpZGVyIAo+PiBib3RoLiBTdGlsbCwgYXMgVmlsbGUgbWVu dGlvbmVkLCBpdCB3b3VsZCBiZSBnb29kCj4+IHRvIGhlYXIgZnJvbSBvdGhlciB0b28uCj4+Cj4K PiBZZWFoIEkgYWdyZWUgdGhhdCB3ZSBkZWZpbml0ZWx5IG5lZWQgdG8gY29uc2lkZXIgYm90aCBm b3IgYW55dGhpbmcgd2UKPiBjb21lIHVwIHdpdGggbm93Lgo+Cj4gQ2hlZXJzLAo+IEJyaWFuCj4K Pj4gLSBTaGFzaGFuawo+Pj4KPj4+IEJlc3QgcmVnYXJkcywKPj4+IExpdml1Cj4+Pgo+Pj4+IC0t IAo+Pj4+IFZpbGxlIFN5cmrDpGzDpAo+Pj4+IEludGVsIE9UQwo+PgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==