From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/3] drm/i915: Add format modifiers for Intel Date: Fri, 13 Jan 2017 11:35:56 +0200 Message-ID: <20170113093556.GE31595@intel.com> References: <20170112005118.19146-1-ben@bwidawsk.net> <20170112005118.19146-3-ben@bwidawsk.net> <20170112105120.GV31595@intel.com> <20170112180054.GA26398@mail.bwidawsk.net> <20170112183207.GC31595@intel.com> <20170112185616.GA29760@mail.bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170112185616.GA29760@mail.bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ben Widawsky Cc: Intel GFX , "Kristian H . Kristensen" , DRI Development List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMTIsIDIwMTcgYXQgMTA6NTY6MTdBTSAtMDgwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IE9uIDE3LTAxLTEyIDIwOjMyOjA3LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPk9u IFRodSwgSmFuIDEyLCAyMDE3IGF0IDEwOjAwOjU1QU0gLTA4MDAsIEJlbiBXaWRhd3NreSB3cm90 ZToKPiA+PiBPbiAxNy0wMS0xMiAxMjo1MToyMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4+ ID5PbiBXZWQsIEphbiAxMSwgMjAxNyBhdCAwNDo1MToxN1BNIC0wODAwLCBCZW4gV2lkYXdza3kg d3JvdGU6Cj4gPj4gPj4gVGhpcyB3YXMgYmFzZWQgb24gYSBwYXRjaCBvcmlnaW5hbGx5IGJ5IEty aXN0aWFuLiBJdCBoYXMgYmVlbiBtb2RpZmllZAo+ID4+ID4+IHByZXR0eSBoZWF2aWx5IHRvIHVz ZSB0aGUgbmV3IGNhbGxiYWNrcyBmcm9tIHRoZSBwcmV2aW91cyBwYXRjaC4KPiA+PiA+Pgo+ID4+ ID4+IENjOiBLcmlzdGlhbiBILiBLcmlzdGVuc2VuIDxob2Vnc2JlcmdAZ21haWwuY29tPgo+ID4+ ID4+IFNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPiA+PiA+ PiAtLS0KPiA+PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTA5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPj4gPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICAzMyArKysrKysrKysrLQo+ID4+ID4+ICAyIGZp bGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ID4+ID4+Cj4g Pj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ID4+IGluZGV4IDg3MTVi MTA4M2QxZC4uMjZmM2E5MTFiOTk5IDEwMDY0NAo+ID4+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ID4+ID4+IEBAIC02MSw2ICs2MSwxMSBAQCBzdGF0aWMgY29uc3Qg dWludDMyX3QgaTh4eF9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKPiA+PiA+PiAgCURSTV9GT1JNQVRf WFJHQjg4ODgsCj4gPj4gPj4gIH07Cj4gPj4gPj4KPiA+PiA+PiArc3RhdGljIGNvbnN0IHVpbnQ2 NF90IGk4eHhfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+ID4+ID4+ICsJSTkxNV9GT1JNQVRfTU9E X1hfVElMRUQsCj4gPj4gPgo+ID4+ID5EaWQgd2Ugd2FudCB0byBsaXN0IHRoZSBsaW5lYXIgbW9k aWZpZXIgaW4gdGhlc2UgYXMgd2VsbD8KPiA+PiA+Cj4gPj4KPiA+PiBZZWFoLiBNeSBpbml0aWFs IHJlc3BvbnNlIHdhcyBubywgYnV0IHllcy4gV2Ugc2hvdWxkLiBJIHdhcyB1c2luZwo+ID4+IERS TV9GT1JNQVRfTU9EX05PTkUgaW4gaXRzIHBsYWNlLCBpdCBzaG91bGQgYmUgbGluZWFyLCBhbmQg aXQgc2hvdWxkIGJlIGRlZmluZWQKPiA+PiBpbiB0aGUgYXJyYXkuCj4gPj4KPiA+PiA+PiArCURS TV9GT1JNQVRfTU9EX0lOVkFMSUQKPiA+PiA+PiArfTsKPiA+PiA+PiArCj4gPj4gPj4gIC8qIFBy aW1hcnkgcGxhbmUgZm9ybWF0cyBmb3IgZ2VuID49IDQgKi8KPiA+PiA+PiAgc3RhdGljIGNvbnN0 IHVpbnQzMl90IGk5NjVfcHJpbWFyeV9mb3JtYXRzW10gPSB7Cj4gPj4gPj4gIAlEUk1fRk9STUFU X0M4LAo+ID4+ID4+IEBAIC03MSw2ICs3NiwxMSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgaTk2 NV9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKPiA+PiA+PiAgCURSTV9GT1JNQVRfWEJHUjIxMDEwMTAs Cj4gPj4gPj4gIH07Cj4gPj4gPj4KPiA+PiA+PiArc3RhdGljIGNvbnN0IHVpbnQ2NF90IGk5NjVf Zm9ybWF0X21vZGlmaWVyc1tdID0gewo+ID4+ID4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQs Cj4gPj4gPj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4gPj4gPj4gK307Cj4gPj4gPgo+ID4+ ID5XZSBjb3VsZCBqdXN0IHNoYXJlIHRoZSBpOHh4IGFycmF5LiBUaGUgbmFtZSBvZiB0aGUgYXJy YXkgc2hvdWxkIHBlcmhhcHMKPiA+PiA+YmUgaTl4eF9mb3JtYXRfbW9kaWZpZXJzW10gaW4gdGhh dCBjYXNlLiBUaGF0J3Mgc29ydCBvZiB0aGUgbmFtaW5nCj4gPj4gPmNvbnZlbnRpb24gd2UndmUg YmVlbiBsZWZ0IHdpdGggZm9yIHRoaW5ncyB0aGF0IGFwcGx5IHRvIG1vcmUgb3IgbGVzcwo+ID4+ ID5hbGwgdGhlIHBsYXRmb3Jtcy4KPiA+PiA+Cj4gPj4KPiA+PiBHb3QgaXQgdGhhbmtzLiBUaGlz IGlzIGEgcmVsaWMgZnJvbSBLcmlzdGlhbidzIG9yaWdpbmFsIHBhdGNoIHdoaWNoIHRpZWQgdGhl Cj4gPj4gbW9kaWZpZXJzIHRvIHRoZSBmb3JtYXRzIGluIHBsYWNlLiBJdCBtYWRlIG1vcmUgc2Vu c2UgdGhlcmUgdG8gaGF2ZSBhIHNlcGFyYXRlCj4gPj4gaTh4eAo+ID4+Cj4gPj4gPj4gKwo+ID4+ ID4+ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0gewo+ID4+ ID4+ICAJRFJNX0ZPUk1BVF9DOCwKPiA+PiA+PiAgCURSTV9GT1JNQVRfUkdCNTY1LAo+ID4+ID4+ IEBAIC04Niw2ICs5NiwxMiBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9y bWF0c1tdID0gewo+ID4+ID4+ICAJRFJNX0ZPUk1BVF9WWVVZLAo+ID4+ID4+ICB9Owo+ID4+ID4+ Cj4gPj4gPj4gK3N0YXRpYyBjb25zdCB1aW50NjRfdCBza2xfZm9ybWF0X21vZGlmaWVyc1tdID0g ewo+ID4+ID4+ICsJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCj4gPj4gPgo+ID4+ID5ZZiBtaXNz aW5nPyBhbmQgbGluZWFyCj4gPj4gPgo+ID4+Cj4gPj4gWWVzLCB0aGFua3MuIEknbSBraW5kIG9m IHNjYXJlZCB0byBhZGQgWWYgdG8gYmUgaG9uZXN0IDpQCj4gPj4KPiA+PiA+PiArCUk5MTVfRk9S TUFUX01PRF9YX1RJTEVELAo+ID4+ID4+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ID4+ID4+ ICt9Owo+ID4+ID4+ICsKPiA+PiA+PiAgLyogQ3Vyc29yIGZvcm1hdHMgKi8KPiA+PiA+PiAgc3Rh dGljIGNvbnN0IHVpbnQzMl90IGludGVsX2N1cnNvcl9mb3JtYXRzW10gPSB7Cj4gPj4gPj4gIAlE Uk1fRk9STUFUX0FSR0I4ODg4LAo+ID4+ID4+IEBAIC0xNTE3Myw2ICsxNTE4OSw4NyBAQCB2b2lk IGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gPj4gPj4gIAlr ZnJlZSh0b19pbnRlbF9wbGFuZShwbGFuZSkpOwo+ID4+ID4+ICB9Cj4gPj4gPj4KPiA+PiA+PiAr c3RhdGljIGJvb2wgaTh4eF9tb2Rfc3VwcG9ydGVkKHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3Qg bW9kaWZpZXIpCj4gPj4gPj4gK3sKPiA+PiA+PiArCWlmIChtb2RpZmllciA9PSBEUk1fRk9STUFU X01PRF9OT05FKQo+ID4+ID4+ICsJCXJldHVybiB0cnVlOwo+ID4+ID4+ICsKPiA+PiA+PiArCXN3 aXRjaCAoZm9ybWF0KSB7Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfQzg6Cj4gPj4gPj4gKwlj YXNlIERSTV9GT1JNQVRfUkdCNTY1Ogo+ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1 Ogo+ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ID4+ID4+ICsJCXJldHVybiBt b2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiA+PiA+PiArCWRlZmF1bHQ6Cj4g Pj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4+ID4+ICsJfQo+ID4+ID4+ICt9Cj4gPj4gPj4gKwo+ ID4+ID4+ICtzdGF0aWMgYm9vbCBpOTY1X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1 aW50NjRfdCBtb2RpZmllcikKPiA+PiA+PiArewo+ID4+ID4+ICsJc3dpdGNoIChmb3JtYXQpIHsK PiA+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9DODoKPiA+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9S R0I1NjU6Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4gPj4gPj4gKwljYXNl IERSTV9GT1JNQVRfWEJHUjg4ODg6Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEw MTA6Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4gPj4gPj4gKwkJcmV0 dXJuIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+ID4+ID4+ICsJZGVmYXVs dDoKPiA+PiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gPj4gKwl9Cj4gPj4gPj4gK30KPiA+PiA+ Cj4gPj4gPkhtbS4gVGhlcmUgc2hvdWxkIGJlIG5vIGZvcm1hdCB2cy4gdGlsaW5nIHJlc3RyaWN0 aW9ucyBvbiB0aGVzZQo+ID4+ID5wbGF0Zm9ybXMsIHNvIHByZXN1bWFibHkgYSBzaW1wbGUgInJl dHVybiB0cnVlIiBzaG91bGQgY292ZXIgaXQgYWxsLgo+ID4+ID5UaGF0IGRvZXMgcGVyaGFwcyBy ZW1vdmUgdGhlIHVzZWZ1bG5lc3Mgb2YgdGhlc2UgZnVuY3Rpb25zIGZvcgo+ID4+ID52ZXJpZnlp bmcgdGhhdCB0aGUgZm9ybWF0IG9yIG1vZGlmaWVyIGlzIHN1cHBvcnRlZCBhdCBhbGwKPiA+Pgo+ ID4+IE9uZSBvZiB0aGUgcmVhc29ucyBmb3IgY2hhbmdpbmcgdG8gdGhpcyBjdXJyZW50IGZvcm1h dC1tb2RpZmllciBsb29rdXAgYXQgYWxsCj4gPj4gd2FzIEtyaXN0aWFuJ3MgYXBwcm9hY2ggd2Fz IGNvbnNpZGVyZWQgZnJhZ2lsZS4gSWYgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtYXRzCj4gPj4g YXJlIGFkZGVkLCBvciByZW1vdmVkLCB3ZSdsbCBjYXRjaCBpdCBoZXJlLiBBbHNvLCBpdCBtYXli ZSBsZXQncyB1cyBkbyBzb21ldGhpbmcKPiA+PiBvbiBjdXJzb3IgcGxhbmUgYXQgc29tZSBwb2lu dCAoSSBkb24ndCBhY3R1YWxseSBrbm93KS4gU28geWVhaCwgd2UgY2FuIHJldHVybgo+ID4+IHRy dWUsIGJ1dCBJIGxpa2UgdGhhdCBpdCdzIHNwZWxsZWQgb3V0IGV4cGxpY2l0bHkuIE1ha2VzIGl0 IGVhc3kgdG8gY29tcGFyZSBpdAo+ID4+IHRvIHRoZSBkb2NzIGFzIHdlbGwgdG8gbWFrZSBzdXJl IG91ciBjb2RlIGlzIGNvcnJlY3QuCj4gPj4KPiA+PiBUaGUgYmVuZWZpdCBpcyBvZiBjb3Vyc2Ug SSBjYW4gY29tYmluZSBpOTY1X21vZF9zdXBwb3J0ZWQoKSB3aXRoCj4gPj4gaTh4eF9tb2Rfc3Vw cG9ydGVkKCkKPiA+Pgo+ID4+IEknbSBob25lc3RseSBmaW5lIHdpdGggY2hhbmdpbmcgaXQgYXMg d2VsbCwgSSBqdXN0IGRvbid0IHNlZSBhIGh1Z2UgcmVhc29uIHRvCj4gPj4gY2hhbmdlIGl0IHNp bmNlIEkndmUgYWxyZWFkeSB0eXBlZCBpdCB1cC4gSSdsbCBsZWF2ZSBpdCB0byB5b3UuCj4gPgo+ ID5GZWVsIGZyZWUgdG8ga2VlcCBpdC4gV2UgY2FuIGFsd2F5cyBjaGFuZ2UgaXQgbGF0ZXIgaWYg aXQgYmVjb21lcyB0b28gbXVjaAo+ID53b3JrIHRvIG1haW50YWluIHRoZSBkdXBsaWNhdGVkIGZv cm1hdCBsaXN0cyAodGhlIGZ1bmN0aW9uIGFuZCB0aGUgYXJyYXkpLgo+ID5Ob3QgdGhhdCBJIHJl YWxseSBleHBlY3QgdGhlc2UgbGlzdHMgdG8gYmUgYWxsIHRoYXQgdm9sYXRpbGUuCj4gPgo+ID4+ Cj4gPj4gWyBdIFllcywgY2hhbmdlIGl0Lgo+ID4+IFsgXSBObywgbGVhdmUgaXQuCj4gPj4KPiA+ PiA+YnV0IEkndmUgYmVlbiB0aGlua2luZyB0aGF0IGFkZGZiIHNob3VsZCBwZXJoYXBzIGp1c3Qg aXRlcmF0ZSB0aHJvdWdoIHRoZQo+ID4+ID5mb3JtYXQgYW5kIG1vZGlmaWVyIGxpc3RzIGZvciBl dmVyeSBwbGFuZS4gV291bGQgYXZvaWQgaGF2aW5nIHRvIGVmZmVjdGl2ZWx5Cj4gPj4gPm1haW50 YWluIHRoZSBzYW1lIGxpc3RzIGluIG11bHRpcGxlIHBsYWNlcy4KPiA+PiA+Cj4gPj4KPiA+PiBJ IGRvbid0IHF1aXRlIGZvbGxvdyB0aGlzLiBDYW4geW91IGVsYWJvcmF0ZT8KPiA+Cj4gPkkgd2Fz IGp1c3QgdGhpbmtpbmcgdGhhdCBpbnN0ZWFkIG9mIGFkZGZiIHBhc3NpbmcgaW4gYW4gdW52ZXJp ZmllZCBmb3JtYXQKPiA+dG8gdGhlIGRyaXZlcidzIC5mYl9jcmVhdGUoKSBob29rLCBpdCBjb3Vs ZCBmaXJzdCBnbyB0aHJvdWdoIHRoZSBmb3JtYXQKPiA+bGlzdHMgb2YgZWFjaCBwbGFuZSwgYW5k IG1ha2Ugc3VyZSBhdCBsZWFzdCBvbmUgb2YgdGhlbSBzdXBwb3J0cyB0aGUKPiA+cmVxdWVzdGVk IGZvcm1hdC4gVGhhdCB3YXkgd2UgY291bGQgZWxpbWluYXRlIHRoYXQgZnJhZ2lsZSBwaXhlbF9m b3JtYXQKPiA+c3dpdGNoIHN0YXRlbWVudCBmcm9tIGludGVsX2ZyYW1lYnVmZmVyX2luaXQoKS4K PiA+Cj4gPkJ1dCBpZiB5b3UgcGxhbiBvbiBtYWtpbmcgdGhlIC5mb3JtYXRfbW9kX3N1cHBvcnRl ZCgpIGhvb2tzIDEwMCUKPiA+c3RyaWN0LCB0aGVuIHdlIGNvdWxkIHVzZSB0aGF0IGluc3RlYWQu IFdvdWxkIGF2b2lkIGhhdmluZyB0byB3YWxrCj4gPnRoZSBmb3JtYXQgbGlzdHMgb2YgZXZlcnkg cGxhbmUgYXQgbGVhc3QuCj4gPgo+IAo+IExldCdzIGtlZXAgaXQgdGhlIHdheSB0aGluZ3MgYXJl IGZvciBub3csIG1vc3RseSBiZWNhdXNlIEknbSBsYXp5IGFuZCB0aGlzCj4gd29ya3MuCj4gCj4g Pj4KPiA+PiA+PiArCj4gPj4gPj4gK3N0YXRpYyBib29sIHNrbF9tb2Rfc3VwcG9ydGVkKHVpbnQz Ml90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCj4gPj4gPj4gK3sKPiA+PiA+PiArCXN3aXRj aCAoZm9ybWF0KSB7Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfQzg6Cj4gPj4gPj4gKwljYXNl IERSTV9GT1JNQVRfUkdCNTY1Ogo+ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogo+ID4+ID4+ICsJY2FzZSBEUk1fRk9S TUFUX0FSR0I4ODg4Ogo+ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4Ogo+ID4+ID4+ ICsJCXJldHVybiBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAo+ID4+ID4+ ICsJCQltb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiA+PiA+PiArCWNhc2Ug RFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKPiA+PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEw MTAxMDoKPiA+PiA+PiArCQlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElM RUQ7Cj4gPj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWVVZVjoKPiA+PiA+PiArCWNhc2UgRFJNX0ZP Uk1BVF9ZVllVOgo+ID4+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4gPj4gPj4gKwljYXNl IERSTV9GT1JNQVRfVllVWToKPiA+PiA+Cj4gPj4gPklJUkMgb24gU0tMIHRoZSBvbmx5IHJlc3Ry aWN0aW9ucyBzaG91bGQgYmUgdGhhdCBDQ1MgbW9kaWZpZXJzIGFyZQo+ID4+ID5saW1pdGVkIHRv IDg6ODo4OjggZm9ybWF0cyBvbmx5LiBPdGhlciBtb2RpZmllcnMgc2hvdWxkIHdvcmsKPiA+PiA+ d2l0aCBhbnkgZm9ybWF0Lgo+ID4+ID4KPiA+Pgo+ID4+IFRoaXMgcmVzdHJpY3Rpb24gd2FzIGNv cGllZCBmcm9tIEtyaXN0aWFuJ3MgcGF0Y2guIEkganVzdCBjaGVja2VkIHRoZSBkb2NzIGFuZAo+ ID4+IHlvdSBhcmUgY29ycmVjdC4gU28gdGhpcyBuZWVkcyBZZiBtb2RpZmllciB0b28uIChBc2lk ZSBmcm9tIENDUywgcm90YXRpb24gaXMgdGhlCj4gPj4gb25lIGNhc2U6IHgtdGlsZWQgMTAxMDEw MiBpc24ndCBzdXBwb3J0ZWQpLgo+ID4KPiA+SSBjYW4ndCBzZWUgYW55IGV4dHJhIHJlc3RyaWN0 aW9ucyBmb3IgMTBicGMgZm9ybWF0cy4KPiA+Cj4gPlRoZSBvbmx5IGV4Y2VwdGlvbiBJIHNlZSBm b3IgMC8xODAgZGVncmVlIHJvdGF0aW9uIGlzIEZQMTYgbm90IGJlaW5nCj4gPnN1cHBvcnRlZCB3 aXRoIFlmLiBBbmQgc2luY2Ugd2UgZG9uJ3QgYWN0dWFsbHkgZXhwb3NlIEZQMTYgd2UgZG9uJ3Qg aGF2ZQo+ID50byB3b3JyeSBhYm91dCBpdC4gU28gYXBhcnQgZnJvbSB0aGUgQ0NTKzg6ODo4Ojgg Y2FzZXMgYWxsIG90aGVyCj4gPmZvcm1hdCttb2RpZmllciBjb21ib3Mgc2hvdWxkIGJlIHBlcmZl Y3RseSBmaW5lIEFGQUlDUy4KPiA+Cj4gPk15IGluZm9ybWF0aW9uIHdhcyBnbGVhbmVkIGZyb20g dGhlICJwbGFuZSBjYXBhYmlsaXR5IiB0YWJsZSBpbiB0aGUKPiA+c3BlYywgYnV0IEkgd2Fzbid0 IGFibGUgdG8gaW1tZWRpYXRlbHkgc3BvdCBhbnkgYWRkaXRpb25hbCByZXN0cmljdGlvbgo+ID5p biB0aGUgUExBTkVfQ1RMIHJlZ2lzdGVyIGRlc2NyaXB0aW9uIGVpdGhlci4KPiA+Cj4gCj4gU29y cnkgZm9yIG1ha2luZyB5b3UgdmVyaWZ5IHRoYXQsIEkgdGhpbmsgeW91IGFyZSBjb3JyZWN0IGFu ZCBJJ20gbWlzcmVhZGluZyB0aGUKPiB0YWJsZS4gSSB3YXMganVzdCBsb29raW5nIGF0IHRoZSBz cGVjaWZpYyBjb2x1bW5zOiBMaW5lYXIgYW5kIFgtdGlsZWQgOTAvMjcwCj4gcm90YXRpb24gYXJl bid0IHN1cHBvcnRlZCB3aXRoIDEwMTAxMDIsIGJ1dCB0aGV5IGFyZW4ndCBzdXBwb3J0ZWQgd2l0 aCBhbnkgb3RoZXIKPiBzdXJmYWNlIGZvcm1hdCBlaXRoZXIuCj4gCj4gSG93ZXZlciwgbG9va2lu ZyBhZ2FpbiBub3csIGl0IGxvb2tzIGxpa2UgRFJNX0ZPUk1BVF9DOCBkb2Vzbid0IHN1cHBvcnQg WWYuCgpIbW0uIEluZGVlZC4gVGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIApodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9pbnRlbC1nZngvMjAxNy1KYW51YXJ5LzExNjAyNy5o dG1sCgpNeSBvYnNlcnZhdGlvbiBvbiBhY3R1YWwgaGFyZHdhcmUgd2FzIHRoYXQgWWYgdGlsZSB3 aWR0aCBkaWRuJ3QgbWF0Y2gKd2hhdCB3ZSB3ZXJlIGV4cGVjdGluZyB3aXRoIDhicHAgYW5kIDY0 YnBwIGZvcm1hdHMuIEl0IGRpZCBhY3R1YWxseSB3b3JrCm90aGVyd2lzZSB0aG91Z2guIFBvc3Np Ymx5IHNvbWVvbmUgZWxzZSBub3RpY2VkIHRoZSBzYW1lIHByb2JsZW0gYW5kCiJyZW1vdmVkIiBZ ZiBzdXBwb3J0IGZvciB0aGVzZSBmb3JtYXRzLiBFaXRoZXIgdGhhdCBvciBpdCB3YXMgbGlrZSB0 aGlzCmFsbCB0aGUgdGltZSBhbmQgd2UganVzdCBkaWRuJ3Qgbm90aWNlLiBBbHRob3VnaCBJJ20g c3RpbGwgbm90IDEwMCUgc3VyZQp3aGF0IHRoZSBZZiB0aWxlIHdpZHRoIHNob3VsZCBiZSBzaW5j ZSB0aGUgc3BlYyBpcyBzdXBlcmJseSBjb25mdXNpbmcgb24KdGhpcyB0b3BpYy4KCklmIHdlIHJl amVjdCBZZiBvbiA4YnBwLCB0aGVuIEkgY2FuIHByb2JhYmx5IGp1c3QgZHJvcCB0aGF0IHBhdGNo IG9mCm1pbmUsIGFuZCBzb21lb25lIHdpbGwgZ2V0IHRvIHJldmlzaXQgaXQgd2hlbi9pZiB3ZSBv ZmZpY2lhbGx5IGdldAo4YnBwLzY0YnBwIFlmIHN1cHBvcnQuCgotLSAKVmlsbGUgU3lyasOkbMOk CkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK