From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [RFC] drm/amd/display: add SI support to AMD DC Date: Mon, 15 Oct 2018 17:19:40 -0400 Message-ID: <70b01042-3210-dcce-2b9a-a16754db9f10@amd.com> References: <20181008022344.10247-1-issor.oruam@gmail.com> <20181008120423.GA300@freedom> <20181008201706.GA351@freedom> <20181008212236.GA338@freedom> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Mauro Rossi , Sylvain Bertrand , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: alexander.deucher-5C7GfCeVMHo@public.gmane.org, Mike Lothian , =?UTF-8?Q?Christian_K=c3=b6nig?= T24gMjAxOC0xMC0xNSA1OjA2IHAubS4sIEhhcnJ5IFdlbnRsYW5kIHdyb3RlOgo+IE9uIDIwMTgt MTAtMTQgNTo0NyBwLm0uLCBNYXVybyBSb3NzaSB3cm90ZToKPj4gSGksCj4+Cj4+IHJlcG9ydGlu ZyBhYm91dCBzb21lIHByb2dyZXNzIG1hZGUgZHVyaW5nIHRoZSB3ZWVrZW5kLAo+PiB0aGFua3Mg dG8gU3lsdmFpbiBmZWVkYmFjayAmIHN1Z2dlc3Rpb25zLgo+Pgo+PiBJIGhhdmUgcmViYXNlZCBh bmQgdXBkYXRlZCB0aGUgc2VyaWVzIG9uIHRvcCBvZgo+PiBodHRwczovL2NnaXQuZnJlZWRlc2t0 b3Aub3JnL35hZ2Q1Zi9saW51eC8/aD1hbWQtc3RhZ2luZy1kcm0tbmV4dAo+Pj4+IEhlcmUgaXMg dGhlIGFtZF9kY19zaSBicmFuY2g6Cj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXVyb3NzaS9saW51 eC90cmVlL2FtZF9kY19zaSAodXBsb2FkaW5nKQo+PiBOT1RFOiBhcmNoL3g4Ni9rZXJuZWwvdHNj LmMgY2hhbmdlcyBmb3IgNEsgZGlzcGxheSBtb2RlcyBhcmUgbm90Cj4+IHRoZXJlLCBhcyB0aGV5 IGFyZSBub3Qgc3RyaWN0bHkgbmVlZGVkIGZvciBhbWQtZ2Z4Cj4+CgoKV2hhdCB1cGRhdGVzIGRv IHlvdSBoYXZlIHRvIHlvdXIgb3JpZ2luYWwgc2VyaWVzPwoKSWYgdGhlcmUgYXJlIHN1YnN0YW50 aWFsIHVwZGF0ZXMgY2FuIHlvdSBzZW5kIGEgdjIgb2YgeW91ciBzZXJpZXM/CgpJZiBub3QgSSds bCBnbyB0aHJvdWdoIHRoZSB2MS4gVGhlIGJyYW5jaCBpcyBncmVhdCBmb3IgcmV2aWV3IGJ1dCBl bWFpbCBwYXRjaGVzIGFyZSBlYXNpZXIgZm9yIGNvbW1lbnRpbmcuCgoKPj4gQ29weWluZyBhbHNv IEhhcnJ5LCBBbGV4LCBDaHJpc3RpYW4gYW5kIE1pa2UgaW4gb3JkZXIgdG8gZ2V0IHNvbWUKPj4g b2JqZWN0aXZlIGFuZCBpbmZhbGxpYmxlCj4+IGNsdWVzL2ZlZWRiYWNrcyBhYm91dCBibG9ja2lu ZyBwb2ludHMgYW5kIGFib3V0ICJubyBjYXJlIiBpdGVtcy4KPj4KPj4gUGxlYXNlLCBhbHNvIGJp ZyB0aGluZ3MgSSBtYXkgaGF2ZSBtaXNzZWQuCj4+IE0uCj4+Cj4+PiBPbiBNb24sIE9jdCA4LCAy MDE4IGF0IDExOjIzIFBNIDxzeWx2YWluLmJlcnRyYW5kQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pgo+ Pj4gU3lsdmFpbiAtIEkgZGlkIGhhY2sgYSBiaXQgeW91ciBwYXRjaCBzZXQgb24gYW1kLXN0YWdp bmctZHJtLW5leHQgdG8gbWFrZSBpdCBnbyB0aHJvdWdoIHRoZQo+Pj4gYXNpYyBpbml0IGFuZCBJ IG1hbmFnZWQgdG8gZ2V0IGEgeDExIGRpc3BsYXkgd2l0aCBsaW5lcyBraW5kIG9mIGdhcmJsZWQs IGJ1dAo+Pj4geW91IGNhbiBzdGlsbCB1bmRlcnN0YW5kIGVhc2lseSB3aGF0J3Mgb24gdGhlIHNj cmVlbi4KPj4KPj4gSSBmb3Jnb3QgdG8gbWVudGlvbiB0aGF0IHNpbmNlIEknbSBnb3JnZW91c2x5 IHRyeWluZyBBTUQgREMgYWxzbyBvbiBNdWxsaW5zCj4+IEkgaGF2ZSByZXZlcnRlZCBkOWZkYTI0 ICgiImRybS9hbWRncHU6IERvbid0IGRlZmF1bHQgdG8gREMgc3VwcG9ydCBmb3IKPj4gS2F2ZXJp IGFuZCBvbGRlciIpCj4+IGJlY2F1c2Ugb24gTXVsbGlucyBJIGNhbiBib290IHdpdGggSERNSSBh bmQgSERNSS10by1WR0EgY29udmVydGVyCj4+Cj4+IEkgd2FzIGhvcGluZyBmb3IgQU1EIERDIGJl aW5nIHJlLWVuYWJsZWQgZm9yIEthdmVyaSBhbmQgb2xkZXIsCj4+IGJ1dCBJJ20gYXZhaWxhYmxl IHRvIHN1Ym1pdCBuZXcgdmVyc2lvbiBvZiBzcGVjaWZpYyBwYXRjaCBpZiByZXF1aXJlZC4KPj4K PiAKPiBJIHN0aWxsIG5lZWQgdG8gZmluZCB0aW1lIHRvIGdldCB0aHJvdWdoIHlvdXIgcGF0Y2hz ZXQgcHJvcGVybHkuIEp1c3QgYSBxdWljayBub3RlIG9uIHRoaXMuIFRoZXJlIGFyZSBLYWJpbmkv S2F2ZXJpIEFTSUNzIHdpdGggVkdBIGNvbm5lY3RvcnMgaW4gdGhlIG1hcmtldCwgd2hpY2ggdGhl IERDIGNvZGUgZG9lc24ndCBzdXBwb3J0LiBJZiBzb21lb25lIHdyaXRlcyBpdCB3ZSBjYW4gcmUt ZW5hYmxlIGl0IGJ5IGRlZmF1bHQuCj4gCj4gRWl0aGVyIHdheSwgeW91IGNhbiByZXZlcnQgdGhh dCBwYXRjaCBmb3IgeW91ciB0cmVlIG9yIHVzZSBhbWRncHUuZGM9MCBhcyBsb25nIGFzIHlvdSdy ZSBhd2FyZSB0aGF0IFZHQSB3b24ndCB3b3JrIHdpdGggYW1kZ3B1IG9uIHN1Y2ggYSBrZXJuZWwu Cj4gCj4gSGFycnkKPiAKPj4+IFN5bHZhaW4gLSAuLi4gVGhlIGxpbmVzIG1heSBiZSBnYXJibGVk IGluIHlvdXIgZHJpdmVyIGNvZGUgYmVjYXVzZSwKPj4+IGlmIEkgcmVjYWxsIHByb3Blcmx5LCAi bGluZSBidWZmZXIiIHByb2dyYW1pbmcgaW4gZGNlOCBpcyBub3QKPj4+IHRoZSBzYW1lIHRoYW4g aW4gZGNlNiAobG9vayBmb3IgcmVnaXN0ZXJzIHdpdGggdGhlICJMQiIgYWJicmV2aWF0aW9uKS4g T3Igc29tZQo+Pj4gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGZyYW1lIGJ1ZmZlciB0aWxpbmcuCj4+ Cj4+IFNvIHRoZSBwcm9ibGVtIGNvdWxkIGJlIHJlbGF0ZWQgdG8gc29tZSBraW5kIG9mIHNjYW4g bGluZSBvciB0aWxpbmcKPj4gYnVmZmVyIGlzc3VlLAo+PiBhdCB0aGUgbW9tZW50IHRoZSBkY2Vf cmVzb3VjZXMgbW9kZWwgaXMgZ3JhYmJlZCAiQVMgSVMiIGZyb20gRENFOAo+PiByZWdpc3RlcnMv bWFza3MKPj4KCldlIHNob3VsZCBwcm9iYWJseSB1cGRhdGUgdGhlIERDRTYgaGVhZGVycyBhbmQg dXNlIHRob3NlLiBTb21ldGltZXMgcmVnaXN0ZXIgYWRkcmVzc2VzIGNoYW5nZSBpbiBzdWJ0bGUg d2F5cyBhbmQgY2F1c2UgcHJvYmxlbXMgbGF0ZXIgb24gdGhhdCBhcmUgaGFyZCB0byBzcG90LgoK Pj4+Cj4+PiBTeWx2YWluIC0gSSBjaGVja2VkIHRoZSBrZXJuZWwgbG9nLCBhbmQgbGlrZSB5b3Ug c2FpZCwgSSBnb3QgZXJyb3JzIGluIERNX1BQTElCIGR1ZSB0byBhbgo+Pj4gaW52YWxpZCBwb3dl cmxldmVsIGFuZCBhdG9tYmlvcy92YmlvcyB0YWJsZSBwYXJzaW5nIHJlZ2FyZGluZyBjb25uZWN0 b3JzLgo+Pj4gZ2VuZXJhbCBkcG0gaXMgaW4gYW1kZ3B1KG5vIERDKSBmb3IgU0ksIGl0IG1lYW5z IHRoZSBEQ0UgcmVsYXRlZCBkcG0gcGFydCBpbgo+Pj4gY3VycmVudCBTSSBhbWRncHUgY29kZSBw YXRoIHNob3VsZCBiZSAiY29waWVkIiBpbiBEQy4gSXQgaXMgcmVsYXRlZCB2ZXJ5Cj4+PiBwcm9i YWJseSB0byB0aGUgcGFyc2luZyBvZiBWQklPUy9BVE9NQklPUyB0YWJsZXMuCj4+Cj4+IDEwLTA5 IDIxOjEwOjE0LjQyNyAgICAgMCAgICAgMCBFICAgICAgICAgOgo+PiBbZHJtOmRtX3BwX2dldF9z dGF0aWNfY2xvY2tzIFthbWRncHVdXSAqRVJST1IqIERNX1BQTElCOiBpbnZhbGlkCj4+IHBvd2Vy bGV2ZWwgc3RhdGU6IDAhCj4+Cj4+IE5PVEU6IHRoZSBlcnJvciBpcyB0aGUgcmVzdWx0IG9mIFBv d2VycGxheSBkZXBlbmRlbmN5IGludHJvZHVjZWQgYnkKPj4gdXNpbmcgQU1EIERDIGZvciBTSQo+ PiBpdCdzIG5vdCBmYXRhbCBhbmQgaXQgZG9lcyBub3Qgc2VlbSB0byBhZmZlY3QgcGVyZm9ybWFu Y2UgaW4gdGhlIEJlbmNobWFya3MKPj4KPj4gRE9VQlQ6IEkgdGhpbmsgdGhhdCBpdCB3b3VsZCBt YWtlIHNlbnNlIHRvIHNldCAicG93ZXIgbGV2ZWwgMCIgaS5lLgo+PiB0aGUgImxvd2VyIHN0YXRl IiBhcyBzYWZlIGRlZmF1bHQsCj4+IGNvbnNpZGVyaW5nIHRoYXQgcG93ZXJwbGF5IHNtdTYvaHdt Z3IgYXJlIG5vdCBpbXBsZW1lbnRlZCBmb3IgU0kgYW5kCj4+IHNtdTcgQ0lLIGZ1bmN0aW9ucyBk byBub3Qgd29yaywKPj4gdGhlIEFTLUlTIGRwbSBpcyB0aGUgb25seSBhdmFpbGFibGUgb3B0aW9u LiAoYW5kIGl0IHNlYW1zIHRvIGJlCj4+IHdvcmtpbmcsIGxvb2tpbmcgYXQgdGhlIGZyYW1lcmF0 ZXMgMjUwLTI4MCBpbiB0aGUgVjEgVnVsa2FuIGJlbmNobWFyaykKPj4KCkkgd291bGRuJ3Qgd29y cnkgYWJvdXQgdGhpcyB0b28gbXVjaCBmb3Igbm93LiBEQyByZWFsbHkganVzdCB3YW50cyBwb3dl cnBsYXkuIE1pZ2h0IG1ha2Ugc2Vuc2UgdG8ganVzdCBzaWxlbmNlIHRoZSBlcnJvciBwcmludCBp ZiB0aGluZ3Mgc2VlbSB0byB3b3JrIG90aGVyd2lzZS4KCkdyZWF0IHdvcmsgaW4gZ2V0dGluZyB0 aGluZ3MgdXAgYW5kIHJ1bm5pbmcgd2l0aCBEQ0U2IGFuZCB0aGFua3MgZm9yIHNlbmRpbmcgcGF0 Y2hlcyB0byBnZXQgdGhpcyB3b3JrIHVwc3RyZWFtZWQuCgpIYXJyeQoKPj4KPj4KPj4+IDEwLTA5 IDIxOjEwOjE0LjQyNyAgICAgMCAgICAgMCBXIFtkcm1dIGRjZTExMF9saW5rX2VuY29kZXJfY29u c3RydWN0OiBGYWlsZWQgdG8gZ2V0IGVuY29kZXJfY2FwX2luZm8gZnJvbSBWQklPUyB3aXRoIGVy cm9yIGNvZGUgNCEKPj4+IDEwLTA5IDIxOjEwOjE0LjQyNyAgICAgMCAgICAgMCBXIFtkcm1dIGRj ZTExMF9saW5rX2VuY29kZXJfY29uc3RydWN0OiBGYWlsZWQgdG8gZ2V0IGVuY29kZXJfY2FwX2lu Zm8gZnJvbSBWQklPUyB3aXRoIGVycm9yIGNvZGUgNCEKPj4KPj4gTk9URTogdGhlIHdhcm5pbmcg YWxzbyBhcHBlYXJzIHdpdGggVG9uZ2EgYW5kIFZlZ2EsIGl0IGlzIGEgV2FybmluZwo+PiBhbmQg ZG9lcyBub3Qgc2VlbSB0byBjYXVzZSBpc3N1ZXMsIHNvIEkgd291bGQgYXNzdW1lIHRoZXJlIGlz IGEKPj4gZGVmYXVsdCB0cmVhdG1lbnQgaW4gcGxhY2UsCj4+IGlzIHRoaXMgcmVsYXRlZCB0byBt aXNzaW5nIGVuY29kZXIgZm9yIGRybSBjcnRjIG9yIHRvIG90aGVyIGtpbmQgb2YgZW5jb2Rlcj8K Pj4KPj4+IFN5bHZhaW4gLSBEaWQgYWRkIFNJIGhhbmRsaW5nIGluIHNvbWUgcmF2ZW4gZmlybXdh cmUgbG9hZGVyIGZ1bmN0aW9uLgo+Pj4gSW4gZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Ft ZGdwdV9kbS9hbWRncHVfZG0uYywgImxvYWRfZG1jdV9mdyIKPj4+IGZ1bmN0aW9uIGF1Z21lbnRl ZCB3aXRoIFNJIGNoaXAgYXNpY190eXBlLgo+Pgo+PiBJJ3ZlIG1lcmdlZCB0aGUgY2hhbmdlIGlu IHRoZSAodjIpIGJyYW5jaAo+PiBodHRwczovL2dpdGh1Yi5jb20vbWF1cm9zc2kvbGludXgvdHJl ZS9hbWRfZGNfc2kKPj4KPj4+IFN5bHZhaW4gLSBBRkFJSywgdGhlIHJlYWwgdGhpbmcgdGhhdCB5 b3UgYWRkaXRpb25hbGx5IGdldCB3aXRoIERDIGlzIGZyZWVzeW5jLiBCdXQKPj4+IGZyZWVzeW5j IGlzIGFjdHVhbGx5IGdvaW5nIHRvIGJlIGludGVyZXN0aW5nIG9ubHkgaWYgZGlzcGxheXMgYXJl IGFibGUgdG8KPj4+IGdldCB0aGVpciBzeW5jIHJhbmdlIGxvd2VyIGJvdW5kIHRvIDAsIGFuZCBn ZXQgc2lnbmlmaWNhbnQgcG93ZXIgc2F2aW5nCj4+PiB0aGFua3MgdG8gdGhpcy4gRm9yIHRoZSB1 c2UgY2FzZSBvZiB2ZXJ5IGxvdyBkaXNwbGF5IHJlZnJlc2ggcmF0ZSBJIGRvbid0IGV2ZW4KPj4+ IHRoaW5rIGRpc3BsYXlwb3J0IG9yIGhkbWkgY2FuIGRvIHRoYXQsIGFuZCBiZSBwb3dlciBmcmll bmRseSAoeW91IHdvdWxkIGhhdmUKPj4+IHRvIHJldHJhaW4gdGhlIGxpbmsgcHJvYmFibHkgZWFj aCB0aW1lIHlvdSBzZW5kIGEgZnJhbWVidWZmZXIgdG8gdGhlIGRpc3BsYXkpLgo+Pgo+Pgo+PiBJ ZiBmcmVlc3luYyBpcyBhYm91dCByZWR1Y2luZyB0aGUgZnJhbWVyYXRlIHJhdGUgZm9yIHBvd2Vy IHNhdmluZywKPj4gcHJvdmlkZWQgdGhhdCBJJ3ZlIHNlZW4gaXQgYmUgbWVudGlvbmVkIHRoZSBm aXJzdCB0aW1lIGZvciBHQ04gMm5kIGdlbmVyYXRpb24sCj4+IEknbSBub3QgZXhwZWN0aW5nIGZy ZWVzeW5jIGFzIGEgbWFuZGF0b3J5IGNhcGFiaWxpdHkgZm9yIHRoZSBzZXJpZXMuCj4+Cj4+PiBN YXVybyAtLSBkY2U2MF9yZXNvdXJjZXMgd2FzIGhhdmluZyB0b28gbWFueSBidWlsZGluZyBlcnJv cnMgZHVlIHRvIG1pc3NpbmcgRENFNiBtYWNyb3MKPj4+IGluIG9yZGVyIHRvIHRlbXBvcmFyaWx5 IG92ZXJjb21lIHRoZSBwcm9ibGVtIGRjZV84XzBfe2Qsc2hfbWFza30uaCBoZWFkZXJzCj4+PiB3 ZXJlIHVzZWQgZm9yIHRoZSBQb0MKPj4KPj4gU3RpbGwgdG8gbWFueSBidWlsZGluZyBlcnJvcnMg ZHVlIHRvIHF1aXRlIGRpZmZlcmVudCByZWdpc3RlcnMgbmFtaW5nLAo+PiBwb2ludGVycyB0byBH UFUgcmVnaXN0ZXIgaW5mbyAoZWl0aGVyIGluIEdQVW9wZW4gb3IgYnkgbWVhbnMgb2YKPj4gbGlz dGluZyB0aGUgRENFNiB2cyBEQzggZGlmZmVyZW5jZXMpLAo+PiBvciBrZWVwaW5nIHRoZSBEQ0U2 IGlzIGV4YWN0bHkgbGlrZSBEQ0U4IGFzIHJlZ2lzdGVyIGNoYW5nZXMgYXJlCj4+IGFwcGFyZW50 bHkgbm90IG1pc3Npb24gY3JpdGljYWwuCj4+Cj4+PiBNYXVybyAtIGRjL2lycSBzdWZmZXJlZCB0 aGUgc2FtZSBwcm9ibGVtIGRjZV84XzBfe2Qsc2hfbWFza30uaCBoZWFkZXJzCj4+PiB3ZXJlIHVz ZWQgZm9yIHRoZSBQb0MKPj4KPj4gSSBjb3VsZCBub3QgdXBkYXRlIGRjL2lycSBWQkkgVmVydGlj YWwgQmxhbmsgSW50ZXJydXB0LCBiZWNhdXNlIGkKPj4gY2Fubm90IGZpbmQgdGhlIGNvcnJlc3Bv bmRpbmcgSVJRIHJlZ2lzdGVyIGluIGFtZGdwdS9kY2U2IHJlZ2lzdGVycwo+PiBoZWFkZXJzL21h c2sKPj4KPj4gLUNSVENfVkVSVElDQUxfSU5URVJSVVBUMF9DT05UUk9MX19DUlRDX1ZFUlRJQ0FM X0lOVEVSUlVQVDBfSU5UX0VOQUJMRV9NQVNLCj4+ICs/c2VlbXMgdHJpdmlhbCBidXQgd2hvIGtu b3dzIHdoYXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcgaW4gRENFNj8KPj4KPj4gLUNSVENfVkVSVElD QUxfSU5URVJSVVBUMF9DT05UUk9MX19DUlRDX1ZFUlRJQ0FMX0lOVEVSUlVQVDBfQ0xFQVJfTUFT Swo+PiArP3NlZW1zIHRyaXZpYWwgYnV0IHdobyBrbm93cyB3aGF0IGlzIHRoZSBjb3JyZXNwb25k aW5nIGluIERDRTY/Cj4+Cj4+IE5PVEU6IElmIHRoaXMgaXMgdGhlIHZlcnkgYmFzaWMgVkJJIFZl cnRpY2FsIEJsYW5rIEludGVycnVwdCBzaWduYWwKPj4gaGFuZGxpbmcsIHRoZXJlIHNob3VsZCBi ZSBkY2U2IHJlZ2lzdGVycy9tYXNrcywKPj4gYnV0IHNvbWUgaGludC9kb2N1bWVudGF0aW9uIGlz IG5lY2Vzc2FyeSBmb3IgbWUgdG8gZmluZCB0aGVtLgo+Pgo+Pgo+Pj4gTWF1cm8gLSBnZng2IG1h eSByZXF1aXJlIHNvbWUgYWQgaG9jIGluaXRpYWxpemF0aW9uLCBza2lwcGVkIGZvciB0aGUgbW9t ZW50Cj4+Cj4+IEFyZSB0aGVyZSBhZCBob2MgdGlsaW5nIHNldHRpbmdzIHdoaWNoIGFyZSBuZWNl c3Nhcnk/Cj4+Cj4+IFRoZSBPcGVuR0xFUyBhbmQgVnVsa2FuIHJhZHYgYXBwcyBJJ3ZlIHRlc3Rl ZDoKPj4KPj4gQW5kcm9pZCBDVFMgZEVRUC1WSyBvbmx5IDg1IHRlc3RzIGZhaWxlZCBvdmVyIDIy MCcwMDAKPj4gVG95IFpvbWJpZXMgTGl0ZQo+PiBTa3kgRm9yY2UgUmVsb2FkZWQKPj4gVjEgQmVu Y2htYXJrIFBybwo+PiBHRlhiZW5jaAo+PiBBbnR1dHUgM0QKPj4gVmFyaW91cyBPcGVuR0xFUyBk ZW1vcwo+Pgo+PiBIZXJlIEknbSBwbGFubmluZyB0byBwZXJmb3JtIGFsc28gZEVRUC1FR0wsIGRF UVAtR0xFUzIsIGRFUVAtR0xFUzMgc29vbiwKPj4gYnV0IGZlZWRiYWNrcyBmcm9tIGRldmVsb3Bl cnMgYXJlIHZlcnkgd2VsY29tZSBhbmQgYXBwcmVjaWF0ZWQKPj4KPj4+IE1hdXJvIC0gSGFpbmFu IHNwZWNpZmljIGNvZGUgcmVxdWlyZXMgcmV2aWV3LCBhcyBzb21lIGRvY3VtZW50YXRpb24gYW5k IGNvZGUgcGF0aHMKPj4+IHNlZW0gdG8gcG9pbnQgdGhhdCBmYW1pbGl0eSBtYXkgbm90IGhhdmUg RENFNiwgcGxlYXNlIGNvbmZpcm0KPj4KPj4gSGFpbmFuIHNwZWNpZmljcyB3ZXJlIHJlbW92ZWQg YW5kIGFyZSB1bnN1cHBvcnRlZCBpbiB0aGUgbmV3IHNlcmllCj4+IGFzIERDRTYgcGh5c2ljYWwg bW9kdWxlIG5vdCBhdmFpbGFibGUgaW4gSGFpbmFuIHBhcnRzLgo+PiBVbmxlc3MgdGhlIHZpcnR1 YWxfZGNlIG1vZHVsZXMgc3VwcG9ydHMgYXRvbWl0LCBidXQgSSBkb24ndCB0aGluayBzby4KPj4K Pj4+IE1hdXJvIC0gdmlkZW8gZGVjb2RpbmcgYmxvY2tzIGNvZGUgaGF2ZSBub3QgYmVlbiB0b3Vj aGVkCj4+Cj4+IFVWRCBhbmQgVkNFIGZpcm13YXJlcyBhbmQgY29kZSBjaGFuZ2VzIGZvciBTSSB3 ZXJlIG5lY2Vzc2FyeSBiZWZvcmUgdGhlIHNlcmllcwo+PiBhbmQgdGhleSBhcmUgdW5yZWxhdGVk IHRvIEFNRCBEQyBmb3IgU0kgcGF0Y2hlcy4KPj4KPj4+IE1hdXJvIC0gZGMvZGNlL2RjZV9jbG9j a19zb3VyY2Uue2MsaH0gbWF5IGJlIG1pc3Npbmcgc29tZSBTSS9EQ0U2IHNwZWNpZmljcwo+Pgo+ PiBJbiBhbWQtc3RhZ2luZy1kcm0tbmV4dCBkY2VfY2xvY2tfc291cmNlIGlzIGdlbmVyaWMsIFNJ IHNwZWNpZmljcyBhcmUKPj4gbm90IG5lY2Vzc2FyeSBhbnltb3JlLgo+Pgo+Pj4gU3lsdmFpbiAt IEl0IF9zZWVtc18gdGhlcmUgaXMgbm90IHRoYXQgbXVjaCBhZGRpdGlvbmFsIHdvcmsgdG8gZG8g aW4gb3JkZXIgdG8gbWFrZSBpdAo+Pj4gcHJvcGVybHkgd29yay4KPj4+Cj4+Cj4+IE9rLCBsZXQn cyBrZWVwIHRoZSBtb21lbnR1bSBhbmQgY29udGludWUgdGFja2xlIHdpdGggeDExIGRpc3BsYXkg cHJvYmxlbQo+PiBhbmQgYWZ0ZXIgdGhhdCBJJ20gcnVubmlnbiBwaWdsaXQgbm8gcmVncmVzc2lv biB3aXRoIHgxMSBhbmQgd2l0aCB3YXlsYW5kIHRvby4KPj4KPj4+IFRlc3Rpbmcgb24geDExLHdh eWxhbmQgb3Igb3RoZXIgd2F5cwo+Pgo+PiBBbnkgb3RoZXIgdGVzdGluZyB0b29scyB3b3J0aCBh IHJ1bj8KPj4gSW4gY2FzZSB0aGVyZSBpcyBzb21lIEFNRC9HUFVvcGVuIHRlc3RpbmcgdG9vbCB3 aXRoIHVuaXQgdGVzdHMsIHBsZWFzZQo+PiBsZXQgbWUga25vdwo+PiBLaW5kIHJlZ2FyZHMKPj4K Pj4gTWF1cm8KPj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1k LWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==