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: Thu, 12 Jan 2017 20:32:07 +0200 Message-ID: <20170112183207.GC31595@intel.com> References: <20170112005118.19146-1-ben@bwidawsk.net> <20170112005118.19146-3-ben@bwidawsk.net> <20170112105120.GV31595@intel.com> <20170112180054.GA26398@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: <20170112180054.GA26398@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 T24gVGh1LCBKYW4gMTIsIDIwMTcgYXQgMTA6MDA6NTVBTSAtMDgwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IE9uIDE3LTAxLTEyIDEyOjUxOjIwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPk9u IFdlZCwgSmFuIDExLCAyMDE3IGF0IDA0OjUxOjE3UE0gLTA4MDAsIEJlbiBXaWRhd3NreSB3cm90 ZToKPiA+PiBUaGlzIHdhcyBiYXNlZCBvbiBhIHBhdGNoIG9yaWdpbmFsbHkgYnkgS3Jpc3RpYW4u IEl0IGhhcyBiZWVuIG1vZGlmaWVkCj4gPj4gcHJldHR5IGhlYXZpbHkgdG8gdXNlIHRoZSBuZXcg Y2FsbGJhY2tzIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoLgo+ID4+Cj4gPj4gQ2M6IEtyaXN0aWFu IEguIEtyaXN0ZW5zZW4gPGhvZWdzYmVyZ0BnbWFpbC5jb20+Cj4gPj4gU2lnbmVkLW9mZi1ieTog QmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMDkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwg IDMzICsrKysrKysrKystCj4gPj4gIDIgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPj4gaW5kZXggODcxNWIxMDgzZDFkLi4yNmYzYTkxMWI5OTkgMTAwNjQ0Cj4gPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gQEAgLTYxLDYgKzYxLDExIEBAIHN0YXRp YyBjb25zdCB1aW50MzJfdCBpOHh4X3ByaW1hcnlfZm9ybWF0c1tdID0gewo+ID4+ICAJRFJNX0ZP Uk1BVF9YUkdCODg4OCwKPiA+PiAgfTsKPiA+Pgo+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qg aTh4eF9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4gPj4gKwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCwKPiA+Cj4gPkRpZCB3ZSB3YW50IHRvIGxpc3QgdGhlIGxpbmVhciBtb2RpZmllciBpbiB0aGVz ZSBhcyB3ZWxsPwo+ID4KPiAKPiBZZWFoLiBNeSBpbml0aWFsIHJlc3BvbnNlIHdhcyBubywgYnV0 IHllcy4gV2Ugc2hvdWxkLiBJIHdhcyB1c2luZwo+IERSTV9GT1JNQVRfTU9EX05PTkUgaW4gaXRz IHBsYWNlLCBpdCBzaG91bGQgYmUgbGluZWFyLCBhbmQgaXQgc2hvdWxkIGJlIGRlZmluZWQKPiBp biB0aGUgYXJyYXkuCj4gCj4gPj4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4gPj4gK307Cj4g Pj4gKwo+ID4+ICAvKiBQcmltYXJ5IHBsYW5lIGZvcm1hdHMgZm9yIGdlbiA+PSA0ICovCj4gPj4g IHN0YXRpYyBjb25zdCB1aW50MzJfdCBpOTY1X3ByaW1hcnlfZm9ybWF0c1tdID0gewo+ID4+ICAJ RFJNX0ZPUk1BVF9DOCwKPiA+PiBAQCAtNzEsNiArNzYsMTEgQEAgc3RhdGljIGNvbnN0IHVpbnQz Ml90IGk5NjVfcHJpbWFyeV9mb3JtYXRzW10gPSB7Cj4gPj4gIAlEUk1fRk9STUFUX1hCR1IyMTAx MDEwLAo+ID4+ICB9Owo+ID4+Cj4gPj4gK3N0YXRpYyBjb25zdCB1aW50NjRfdCBpOTY1X2Zvcm1h dF9tb2RpZmllcnNbXSA9IHsKPiA+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+ID4+ICsJ RFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ID4+ICt9Owo+ID4KPiA+V2UgY291bGQganVzdCBzaGFy ZSB0aGUgaTh4eCBhcnJheS4gVGhlIG5hbWUgb2YgdGhlIGFycmF5IHNob3VsZCBwZXJoYXBzCj4g PmJlIGk5eHhfZm9ybWF0X21vZGlmaWVyc1tdIGluIHRoYXQgY2FzZS4gVGhhdCdzIHNvcnQgb2Yg dGhlIG5hbWluZwo+ID5jb252ZW50aW9uIHdlJ3ZlIGJlZW4gbGVmdCB3aXRoIGZvciB0aGluZ3Mg dGhhdCBhcHBseSB0byBtb3JlIG9yIGxlc3MKPiA+YWxsIHRoZSBwbGF0Zm9ybXMuCj4gPgo+IAo+ IEdvdCBpdCB0aGFua3MuIFRoaXMgaXMgYSByZWxpYyBmcm9tIEtyaXN0aWFuJ3Mgb3JpZ2luYWwg cGF0Y2ggd2hpY2ggdGllZCB0aGUKPiBtb2RpZmllcnMgdG8gdGhlIGZvcm1hdHMgaW4gcGxhY2Uu IEl0IG1hZGUgbW9yZSBzZW5zZSB0aGVyZSB0byBoYXZlIGEgc2VwYXJhdGUKPiBpOHh4Cj4gCj4g Pj4gKwo+ID4+ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1tdID0g ewo+ID4+ICAJRFJNX0ZPUk1BVF9DOCwKPiA+PiAgCURSTV9GT1JNQVRfUkdCNTY1LAo+ID4+IEBA IC04Niw2ICs5NiwxMiBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0 c1tdID0gewo+ID4+ICAJRFJNX0ZPUk1BVF9WWVVZLAo+ID4+ICB9Owo+ID4+Cj4gPj4gK3N0YXRp YyBjb25zdCB1aW50NjRfdCBza2xfZm9ybWF0X21vZGlmaWVyc1tdID0gewo+ID4+ICsJSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQsCj4gPgo+ID5ZZiBtaXNzaW5nPyBhbmQgbGluZWFyCj4gPgo+IAo+ IFllcywgdGhhbmtzLiBJJ20ga2luZCBvZiBzY2FyZWQgdG8gYWRkIFlmIHRvIGJlIGhvbmVzdCA6 UAo+IAo+ID4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gPj4gKwlEUk1fRk9STUFUX01P RF9JTlZBTElECj4gPj4gK307Cj4gPj4gKwo+ID4+ICAvKiBDdXJzb3IgZm9ybWF0cyAqLwo+ID4+ ICBzdGF0aWMgY29uc3QgdWludDMyX3QgaW50ZWxfY3Vyc29yX2Zvcm1hdHNbXSA9IHsKPiA+PiAg CURSTV9GT1JNQVRfQVJHQjg4ODgsCj4gPj4gQEAgLTE1MTczLDYgKzE1MTg5LDg3IEBAIHZvaWQg aW50ZWxfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiA+PiAgCWtmcmVl KHRvX2ludGVsX3BsYW5lKHBsYW5lKSk7Cj4gPj4gIH0KPiA+Pgo+ID4+ICtzdGF0aWMgYm9vbCBp OHh4X21vZF9zdXBwb3J0ZWQodWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllcikKPiA+ PiArewo+ID4+ICsJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX05PTkUpCj4gPj4gKwkJ cmV0dXJuIHRydWU7Cj4gPj4gKwo+ID4+ICsJc3dpdGNoIChmb3JtYXQpIHsKPiA+PiArCWNhc2Ug RFJNX0ZPUk1BVF9DODoKPiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4gPj4gKwljYXNl IERSTV9GT1JNQVRfWFJHQjE1NTU6Cj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6Cj4g Pj4gKwkJcmV0dXJuIG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+ID4+ICsJ ZGVmYXVsdDoKPiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiArCj4g Pj4gK3N0YXRpYyBib29sIGk5NjVfbW9kX3N1cHBvcnRlZCh1aW50MzJfdCBmb3JtYXQsIHVpbnQ2 NF90IG1vZGlmaWVyKQo+ID4+ICt7Cj4gPj4gKwlzd2l0Y2ggKGZvcm1hdCkgewo+ID4+ICsJY2Fz ZSBEUk1fRk9STUFUX0M4Ogo+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiA+PiArCWNh c2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKPiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoK PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKPiA+PiArCWNhc2UgRFJNX0ZPUk1B VF9YQkdSMjEwMTAxMDoKPiA+PiArCQlyZXR1cm4gbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9E X1hfVElMRUQ7Cj4gPj4gKwlkZWZhdWx0Ogo+ID4+ICsJCXJldHVybiBmYWxzZTsKPiA+PiArCX0K PiA+PiArfQo+ID4KPiA+SG1tLiBUaGVyZSBzaG91bGQgYmUgbm8gZm9ybWF0IHZzLiB0aWxpbmcg cmVzdHJpY3Rpb25zIG9uIHRoZXNlCj4gPnBsYXRmb3Jtcywgc28gcHJlc3VtYWJseSBhIHNpbXBs ZSAicmV0dXJuIHRydWUiIHNob3VsZCBjb3ZlciBpdCBhbGwuCj4gPlRoYXQgZG9lcyBwZXJoYXBz IHJlbW92ZSB0aGUgdXNlZnVsbmVzcyBvZiB0aGVzZSBmdW5jdGlvbnMgZm9yCj4gPnZlcmlmeWlu ZyB0aGF0IHRoZSBmb3JtYXQgb3IgbW9kaWZpZXIgaXMgc3VwcG9ydGVkIGF0IGFsbAo+IAo+IE9u ZSBvZiB0aGUgcmVhc29ucyBmb3IgY2hhbmdpbmcgdG8gdGhpcyBjdXJyZW50IGZvcm1hdC1tb2Rp ZmllciBsb29rdXAgYXQgYWxsCj4gd2FzIEtyaXN0aWFuJ3MgYXBwcm9hY2ggd2FzIGNvbnNpZGVy ZWQgZnJhZ2lsZS4gSWYgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtYXRzCj4gYXJlIGFkZGVkLCBv ciByZW1vdmVkLCB3ZSdsbCBjYXRjaCBpdCBoZXJlLiBBbHNvLCBpdCBtYXliZSBsZXQncyB1cyBk byBzb21ldGhpbmcKPiBvbiBjdXJzb3IgcGxhbmUgYXQgc29tZSBwb2ludCAoSSBkb24ndCBhY3R1 YWxseSBrbm93KS4gU28geWVhaCwgd2UgY2FuIHJldHVybgo+IHRydWUsIGJ1dCBJIGxpa2UgdGhh dCBpdCdzIHNwZWxsZWQgb3V0IGV4cGxpY2l0bHkuIE1ha2VzIGl0IGVhc3kgdG8gY29tcGFyZSBp dAo+IHRvIHRoZSBkb2NzIGFzIHdlbGwgdG8gbWFrZSBzdXJlIG91ciBjb2RlIGlzIGNvcnJlY3Qu Cj4gCj4gVGhlIGJlbmVmaXQgaXMgb2YgY291cnNlIEkgY2FuIGNvbWJpbmUgaTk2NV9tb2Rfc3Vw cG9ydGVkKCkgd2l0aAo+IGk4eHhfbW9kX3N1cHBvcnRlZCgpCj4gCj4gSSdtIGhvbmVzdGx5IGZp bmUgd2l0aCBjaGFuZ2luZyBpdCBhcyB3ZWxsLCBJIGp1c3QgZG9uJ3Qgc2VlIGEgaHVnZSByZWFz b24gdG8KPiBjaGFuZ2UgaXQgc2luY2UgSSd2ZSBhbHJlYWR5IHR5cGVkIGl0IHVwLiBJJ2xsIGxl YXZlIGl0IHRvIHlvdS4KCkZlZWwgZnJlZSB0byBrZWVwIGl0LiBXZSBjYW4gYWx3YXlzIGNoYW5n ZSBpdCBsYXRlciBpZiBpdCBiZWNvbWVzIHRvbyBtdWNoCndvcmsgdG8gbWFpbnRhaW4gdGhlIGR1 cGxpY2F0ZWQgZm9ybWF0IGxpc3RzICh0aGUgZnVuY3Rpb24gYW5kIHRoZSBhcnJheSkuCk5vdCB0 aGF0IEkgcmVhbGx5IGV4cGVjdCB0aGVzZSBsaXN0cyB0byBiZSBhbGwgdGhhdCB2b2xhdGlsZS4K Cj4gCj4gWyBdIFllcywgY2hhbmdlIGl0Lgo+IFsgXSBObywgbGVhdmUgaXQuCj4gCj4gPmJ1dCBJ J3ZlIGJlZW4gdGhpbmtpbmcgdGhhdCBhZGRmYiBzaG91bGQgcGVyaGFwcyBqdXN0IGl0ZXJhdGUg dGhyb3VnaCB0aGUKPiA+Zm9ybWF0IGFuZCBtb2RpZmllciBsaXN0cyBmb3IgZXZlcnkgcGxhbmUu IFdvdWxkIGF2b2lkIGhhdmluZyB0byBlZmZlY3RpdmVseQo+ID5tYWludGFpbiB0aGUgc2FtZSBs aXN0cyBpbiBtdWx0aXBsZSBwbGFjZXMuCj4gPgo+IAo+IEkgZG9uJ3QgcXVpdGUgZm9sbG93IHRo aXMuIENhbiB5b3UgZWxhYm9yYXRlPwoKSSB3YXMganVzdCB0aGlua2luZyB0aGF0IGluc3RlYWQg b2YgYWRkZmIgcGFzc2luZyBpbiBhbiB1bnZlcmlmaWVkIGZvcm1hdAp0byB0aGUgZHJpdmVyJ3Mg LmZiX2NyZWF0ZSgpIGhvb2ssIGl0IGNvdWxkIGZpcnN0IGdvIHRocm91Z2ggdGhlIGZvcm1hdAps aXN0cyBvZiBlYWNoIHBsYW5lLCBhbmQgbWFrZSBzdXJlIGF0IGxlYXN0IG9uZSBvZiB0aGVtIHN1 cHBvcnRzIHRoZQpyZXF1ZXN0ZWQgZm9ybWF0LiBUaGF0IHdheSB3ZSBjb3VsZCBlbGltaW5hdGUg dGhhdCBmcmFnaWxlIHBpeGVsX2Zvcm1hdApzd2l0Y2ggc3RhdGVtZW50IGZyb20gaW50ZWxfZnJh bWVidWZmZXJfaW5pdCgpLgoKQnV0IGlmIHlvdSBwbGFuIG9uIG1ha2luZyB0aGUgLmZvcm1hdF9t b2Rfc3VwcG9ydGVkKCkgaG9va3MgMTAwJQpzdHJpY3QsIHRoZW4gd2UgY291bGQgdXNlIHRoYXQg aW5zdGVhZC4gV291bGQgYXZvaWQgaGF2aW5nIHRvIHdhbGsKdGhlIGZvcm1hdCBsaXN0cyBvZiBl dmVyeSBwbGFuZSBhdCBsZWFzdC4KCj4gCj4gPj4gKwo+ID4+ICtzdGF0aWMgYm9vbCBza2xfbW9k X3N1cHBvcnRlZCh1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyKQo+ID4+ICt7Cj4g Pj4gKwlzd2l0Y2ggKGZvcm1hdCkgewo+ID4+ICsJY2FzZSBEUk1fRk9STUFUX0M4Ogo+ID4+ICsJ Y2FzZSBEUk1fRk9STUFUX1JHQjU2NToKPiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoK PiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9YQkdSODg4ODoKPiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9B UkdCODg4ODoKPiA+PiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKPiA+PiArCQlyZXR1cm4g bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKPiA+PiArCQkJbW9kaWZpZXIg PT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7Cj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWFJHQjIx MDEwMTA6Cj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjIxMDEwMTA6Cj4gPj4gKwkJcmV0dXJu IG1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOwo+ID4+ICsJY2FzZSBEUk1fRk9S TUFUX1lVWVY6Cj4gPj4gKwljYXNlIERSTV9GT1JNQVRfWVZZVToKPiA+PiArCWNhc2UgRFJNX0ZP Uk1BVF9VWVZZOgo+ID4+ICsJY2FzZSBEUk1fRk9STUFUX1ZZVVk6Cj4gPgo+ID5JSVJDIG9uIFNL TCB0aGUgb25seSByZXN0cmljdGlvbnMgc2hvdWxkIGJlIHRoYXQgQ0NTIG1vZGlmaWVycyBhcmUK PiA+bGltaXRlZCB0byA4Ojg6ODo4IGZvcm1hdHMgb25seS4gT3RoZXIgbW9kaWZpZXJzIHNob3Vs ZCB3b3JrCj4gPndpdGggYW55IGZvcm1hdC4KPiA+Cj4gCj4gVGhpcyByZXN0cmljdGlvbiB3YXMg Y29waWVkIGZyb20gS3Jpc3RpYW4ncyBwYXRjaC4gSSBqdXN0IGNoZWNrZWQgdGhlIGRvY3MgYW5k Cj4geW91IGFyZSBjb3JyZWN0LiBTbyB0aGlzIG5lZWRzIFlmIG1vZGlmaWVyIHRvby4gKEFzaWRl IGZyb20gQ0NTLCByb3RhdGlvbiBpcyB0aGUKPiBvbmUgY2FzZTogeC10aWxlZCAxMDEwMTAyIGlz bid0IHN1cHBvcnRlZCkuCgpJIGNhbid0IHNlZSBhbnkgZXh0cmEgcmVzdHJpY3Rpb25zIGZvciAx MGJwYyBmb3JtYXRzLgoKVGhlIG9ubHkgZXhjZXB0aW9uIEkgc2VlIGZvciAwLzE4MCBkZWdyZWUg cm90YXRpb24gaXMgRlAxNiBub3QgYmVpbmcKc3VwcG9ydGVkIHdpdGggWWYuIEFuZCBzaW5jZSB3 ZSBkb24ndCBhY3R1YWxseSBleHBvc2UgRlAxNiB3ZSBkb24ndCBoYXZlCnRvIHdvcnJ5IGFib3V0 IGl0LiBTbyBhcGFydCBmcm9tIHRoZSBDQ1MrODo4Ojg6OCBjYXNlcyBhbGwgb3RoZXIKZm9ybWF0 K21vZGlmaWVyIGNvbWJvcyBzaG91bGQgYmUgcGVyZmVjdGx5IGZpbmUgQUZBSUNTLgoKTXkgaW5m b3JtYXRpb24gd2FzIGdsZWFuZWQgZnJvbSB0aGUgInBsYW5lIGNhcGFiaWxpdHkiIHRhYmxlIGlu IHRoZQpzcGVjLCBidXQgSSB3YXNuJ3QgYWJsZSB0byBpbW1lZGlhdGVseSBzcG90IGFueSBhZGRp dGlvbmFsIHJlc3RyaWN0aW9uCmluIHRoZSBQTEFORV9DVEwgcmVnaXN0ZXIgZGVzY3JpcHRpb24g ZWl0aGVyLgoKPiAKPiA+PiArCWRlZmF1bHQ6Cj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4+ICsJ fQo+ID4+ICsKPiA+PiArfQo+ID4+ICsKPiA+PiArc3RhdGljIGJvb2wgaW50ZWxfcGxhbmVfZm9y bWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4gKwkJCQkJICAg ICB1aW50MzJfdCBmb3JtYXQsCj4gPj4gKwkJCQkJICAgICB1aW50NjRfdCBtb2RpZmllcikKPiA+ PiArewo+ID4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShw bGFuZS0+ZGV2KTsKPiA+PiArCj4gPj4gKwlpZiAobW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0Rf Tk9ORSkKPiA+PiArCQlyZXR1cm4gdHJ1ZTsKPiA+PiArCj4gPj4gKwlpZiAoV0FSTl9PTihtb2Rp ZmllciA9PSBEUk1fRk9STUFUX01PRF9JTlZBTElEKSkKPiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4g Pj4gKwo+ID4+ICsJaWYgKFdBUk5fT04ocGxhbmUtPnR5cGUgIT0gRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSAmJgo+ID4+ICsJCSAgICBwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZ KSkKPiA+PiArCSAgICByZXR1cm4gZmFsc2U7Cj4gPj4gKwo+ID4+ICsJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSkKPiA+PiArCQlyZXR1cm4gc2tsX21vZF9zdXBwb3J0ZWQoZm9ybWF0LCBt b2RpZmllcik7Cj4gPj4gKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpCj4gPj4g KwkJcmV0dXJuIGk5NjVfbW9kX3N1cHBvcnRlZChmb3JtYXQsIG1vZGlmaWVyKTsKPiA+PiArCWVs c2UKPiA+PiArCQlyZXR1cm4gaTh4eF9tb2Rfc3VwcG9ydGVkKGZvcm1hdCwgbW9kaWZpZXIpOwo+ ID4+ICsKPiA+PiArCXJldHVybiBmYWxzZTsKPiA+PiArfQo+ID4+ICsKPiA+PiAgY29uc3Qgc3Ry dWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKPiA+PiAgCS51cGRhdGVf cGxhbmUgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4gPj4gIAkuZGlzYWJsZV9w bGFuZSA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUsCj4gPj4gQEAgLTE1MTgyLDYg KzE1Mjc5LDcgQEAgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5j cyA9IHsKPiA+PiAgCS5hdG9taWNfc2V0X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfYXRvbWljX3Nl dF9wcm9wZXJ0eSwKPiA+PiAgCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxhbmVf ZHVwbGljYXRlX3N0YXRlLAo+ID4+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gaW50ZWxfcGxh bmVfZGVzdHJveV9zdGF0ZSwKPiA+PiArCS5mb3JtYXRfbW9kX3N1cHBvcnRlZCA9IGludGVsX3Bs YW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAo+ID4+ICB9Owo+ID4+Cj4gPj4gIHN0YXRpYyBpbnQK PiA+PiBAQCAtMTUzMjQsNiArMTU0MjIsNyBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ID4+ICAJ Y29uc3QgdWludDMyX3QgKmludGVsX3ByaW1hcnlfZm9ybWF0czsKPiA+PiAgCXVuc2lnbmVkIGlu dCBzdXBwb3J0ZWRfcm90YXRpb25zOwo+ID4+ICAJdW5zaWduZWQgaW50IG51bV9mb3JtYXRzOwo+ ID4+ICsJY29uc3QgdWludDY0X3QgKmludGVsX2Zvcm1hdF9tb2RpZmllcnM7Cj4gPj4gIAlpbnQg cmV0Owo+ID4+Cj4gPj4gIAlwcmltYXJ5ID0ga3phbGxvYyhzaXplb2YoKnByaW1hcnkpLCBHRlBf S0VSTkVMKTsKPiA+PiBAQCAtMTUzNjIsMjQgKzE1NDYxLDI4IEBAIGludGVsX3ByaW1hcnlfcGxh bmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBp cGUpCj4gPj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gPj4gIAkJaW50ZWxf cHJpbWFyeV9mb3JtYXRzID0gc2tsX3ByaW1hcnlfZm9ybWF0czsKPiA+PiAgCQludW1fZm9ybWF0 cyA9IEFSUkFZX1NJWkUoc2tsX3ByaW1hcnlfZm9ybWF0cyk7Cj4gPj4gKwkJaW50ZWxfZm9ybWF0 X21vZGlmaWVycyA9IHNrbF9mb3JtYXRfbW9kaWZpZXJzOwo+ID4+Cj4gPj4gIAkJcHJpbWFyeS0+ dXBkYXRlX3BsYW5lID0gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZTsKPiA+PiAgCQlwcmlt YXJ5LT5kaXNhYmxlX3BsYW5lID0gc2t5bGFrZV9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7Cj4gPj4g IAl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Cj4gPj4gIAkJaW50ZWxfcHJp bWFyeV9mb3JtYXRzID0gaTk2NV9wcmltYXJ5X2Zvcm1hdHM7Cj4gPj4gIAkJbnVtX2Zvcm1hdHMg PSBBUlJBWV9TSVpFKGk5NjVfcHJpbWFyeV9mb3JtYXRzKTsKPiA+PiArCQlpbnRlbF9mb3JtYXRf bW9kaWZpZXJzID0gaTk2NV9mb3JtYXRfbW9kaWZpZXJzOwo+ID4+Cj4gPj4gIAkJcHJpbWFyeS0+ dXBkYXRlX3BsYW5lID0gaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4gPj4gIAkJcHJp bWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ID4+ICAJ fSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKPiA+PiAgCQlpbnRlbF9wcmlt YXJ5X2Zvcm1hdHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKPiA+PiAgCQludW1fZm9ybWF0cyA9 IEFSUkFZX1NJWkUoaTk2NV9wcmltYXJ5X2Zvcm1hdHMpOwo+ID4+ICsJCWludGVsX2Zvcm1hdF9t b2RpZmllcnMgPSBpOTY1X2Zvcm1hdF9tb2RpZmllcnM7Cj4gPj4KPiA+PiAgCQlwcmltYXJ5LT51 cGRhdGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ID4+ICAJCXByaW1hcnkt PmRpc2FibGVfcGxhbmUgPSBpOXh4X2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPiA+PiAgCX0gZWxz ZSB7Cj4gPj4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gaTh4eF9wcmltYXJ5X2Zvcm1hdHM7 Cj4gPj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGk4eHhfcHJpbWFyeV9mb3JtYXRzKTsK PiA+PiArCQlpbnRlbF9mb3JtYXRfbW9kaWZpZXJzID0gaTh4eF9mb3JtYXRfbW9kaWZpZXJzOwo+ ID4+Cj4gPj4gIAkJcHJpbWFyeS0+dXBkYXRlX3BsYW5lID0gaTl4eF91cGRhdGVfcHJpbWFyeV9w bGFuZTsKPiA+PiAgCQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gaTl4eF9kaXNhYmxlX3ByaW1h cnlfcGxhbmU7Cj4gPj4gQEAgLTE1Mzg5LDIxICsxNTQ5MiwyMSBAQCBpbnRlbF9wcmltYXJ5X3Bs YW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBw aXBlKQo+ID4+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRy bSwgJnByaW1hcnktPmJhc2UsCj4gPj4gIAkJCQkJICAgICAgIDAsICZpbnRlbF9wbGFuZV9mdW5j cywKPiA+PiAgCQkJCQkgICAgICAgaW50ZWxfcHJpbWFyeV9mb3JtYXRzLCBudW1fZm9ybWF0cywK PiA+PiAtCQkJCQkgICAgICAgTlVMTCwKPiA+PiArCQkJCQkgICAgICAgaW50ZWxfZm9ybWF0X21v ZGlmaWVycywKPiA+PiAgCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKPiA+PiAg CQkJCQkgICAgICAgInBsYW5lIDElYyIsIHBpcGVfbmFtZShwaXBlKSk7Cj4gPj4gIAllbHNlIGlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUgfHwgSVNfRzRYKGRldl9wcml2KSkKPiA+PiAgCQly ZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZwcmltYXJ5LT5i YXNlLAo+ID4+ICAJCQkJCSAgICAgICAwLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4gPj4gIAkJCQkJ ICAgICAgIGludGVsX3ByaW1hcnlfZm9ybWF0cywgbnVtX2Zvcm1hdHMsCj4gPj4gLQkJCQkJICAg ICAgIE5VTEwsCj4gPj4gKwkJCQkJICAgICAgIGludGVsX2Zvcm1hdF9tb2RpZmllcnMsCj4gPj4g IAkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlksCj4gPj4gIAkJCQkJICAgICAgICJw cmltYXJ5ICVjIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiA+PiAgCWVsc2UKPiA+PiAgCQlyZXQgPSBk cm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZwcmltYXJ5LT5iYXNlLAo+ ID4+ICAJCQkJCSAgICAgICAwLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4gPj4gIAkJCQkJICAgICAg IGludGVsX3ByaW1hcnlfZm9ybWF0cywgbnVtX2Zvcm1hdHMsCj4gPj4gLQkJCQkJICAgICAgIE5V TEwsCj4gPj4gKwkJCQkJICAgICAgIGludGVsX2Zvcm1hdF9tb2RpZmllcnMsCj4gPj4gIAkJCQkJ ICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlksCj4gPj4gIAkJCQkJICAgICAgICJwbGFuZSAl YyIsIHBsYW5lX25hbWUocHJpbWFyeS0+cGxhbmUpKTsKPiA+PiAgCWlmIChyZXQpCj4gPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+PiBpbmRleCAxYzJmMjZkODZmNzYuLjE1MmVj ODE5NmQ0MSAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gPj4g QEAgLTk5NCw2ICs5OTQsMTEgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IGlsa19wbGFuZV9mb3Jt YXRzW10gPSB7Cj4gPj4gIAlEUk1fRk9STUFUX1ZZVVksCj4gPj4gIH07Cj4gPj4KPiA+PiArc3Rh dGljIGNvbnN0IHVpbnQ2NF90IGlsa19wbGFuZV9mb3JtYXRfbW9kaWZpZXJzW10gPSB7Cj4gPj4g KwlJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPiA+PiArCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQK PiA+PiArfTsKPiA+PiArCj4gPj4gIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzbmJfcGxhbmVfZm9y bWF0c1tdID0gewo+ID4+ICAJRFJNX0ZPUk1BVF9YQkdSODg4OCwKPiA+PiAgCURSTV9GT1JNQVRf WFJHQjg4ODgsCj4gPj4gQEAgLTEwMDMsNiArMTAwOCwxMSBAQCBzdGF0aWMgY29uc3QgdWludDMy X3Qgc25iX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPiA+PiAgCURSTV9GT1JNQVRfVllVWSwKPiA+PiAg fTsKPiA+Pgo+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qgc25iX3BsYW5lX2Zvcm1hdF9tb2Rp ZmllcnNbXSA9IHsKPiA+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+ID4+ICsJRFJNX0ZP Uk1BVF9NT0RfSU5WQUxJRAo+ID4+ICt9Owo+ID4+ICsKPiA+PiAgc3RhdGljIGNvbnN0IHVpbnQz Ml90IHZsdl9wbGFuZV9mb3JtYXRzW10gPSB7Cj4gPj4gIAlEUk1fRk9STUFUX1JHQjU2NSwKPiA+ PiAgCURSTV9GT1JNQVRfQUJHUjg4ODgsCj4gPj4gQEAgLTEwMTcsNiArMTAyNywxMSBAQCBzdGF0 aWMgY29uc3QgdWludDMyX3Qgdmx2X3BsYW5lX2Zvcm1hdHNbXSA9IHsKPiA+PiAgCURSTV9GT1JN QVRfVllVWSwKPiA+PiAgfTsKPiA+Pgo+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qgdmx2X3Bs YW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPiA+PiArCUk5MTVfRk9STUFUX01PRF9YX1RJTEVE LAo+ID4+ICsJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ID4+ICt9Owo+ID4+ICsKPiA+PiAgc3Rh dGljIHVpbnQzMl90IHNrbF9wbGFuZV9mb3JtYXRzW10gPSB7Cj4gPj4gIAlEUk1fRk9STUFUX1JH QjU2NSwKPiA+PiAgCURSTV9GT1JNQVRfQUJHUjg4ODgsCj4gPj4gQEAgLTEwMjksNiArMTA0NCwx MiBAQCBzdGF0aWMgdWludDMyX3Qgc2tsX3BsYW5lX2Zvcm1hdHNbXSA9IHsKPiA+PiAgCURSTV9G T1JNQVRfVllVWSwKPiA+PiAgfTsKPiA+Pgo+ID4+ICtzdGF0aWMgY29uc3QgdWludDY0X3Qgc2ts X3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPiA+PiArCUk5MTVfRk9STUFUX01PRF9ZX1RJ TEVELAo+ID4+ICsJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCj4gPj4gKwlEUk1fRk9STUFUX01P RF9JTlZBTElECj4gPj4gK307Cj4gPj4gKwo+ID4+ICBzdHJ1Y3QgaW50ZWxfcGxhbmUgKgo+ID4+ ICBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+PiAgCQkJICBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ID4+IEBAIC0xMDM3 LDYgKzEwNTgsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUg PSBOVUxMOwo+ID4+ICAJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9jcnRjczsKPiA+PiAgCWNvbnN0 IHVpbnQzMl90ICpwbGFuZV9mb3JtYXRzOwo+ID4+ICsJY29uc3QgdWludDY0X3QgKm1vZGlmaWVy czsKPiA+PiAgCXVuc2lnbmVkIGludCBzdXBwb3J0ZWRfcm90YXRpb25zOwo+ID4+ICAJaW50IG51 bV9wbGFuZV9mb3JtYXRzOwo+ID4+ICAJaW50IHJldDsKPiA+PiBAQCAtMTA2Myw2ICsxMDg1LDcg QEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPj4KPiA+PiAgCQlwbGFuZV9mb3JtYXRzID0gc2tsX3BsYW5lX2Zvcm1hdHM7Cj4g Pj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNrbF9wbGFuZV9mb3JtYXRzKTsK PiA+PiArCQltb2RpZmllcnMgPSBza2xfcGxhbmVfZm9ybWF0X21vZGlmaWVyczsKPiA+PiAgCX0g ZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKPiA+PiAgCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gZmFsc2U7Cj4gPj4gIAkJaW50 ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAxOwo+ID4+IEBAIC0xMDcyLDYgKzEwOTUsNyBAQCBp bnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+Pgo+ID4+ICAJCXBsYW5lX2Zvcm1hdHMgPSB2bHZfcGxhbmVfZm9ybWF0czsKPiA+PiAg CQludW1fcGxhbmVfZm9ybWF0cyA9IEFSUkFZX1NJWkUodmx2X3BsYW5lX2Zvcm1hdHMpOwo+ID4+ ICsJCW1vZGlmaWVycyA9IHZsdl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+ID4+ICAJfSBlbHNl IGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcpIHsKPiA+PiAgCQlpZiAoSVNfSVZZQlJJREdF KGRldl9wcml2KSkgewo+ID4+ICAJCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiA+ PiBAQCAtMTA4Niw2ICsxMTEwLDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4KPiA+PiAgCQlwbGFuZV9mb3JtYXRzID0g c25iX3BsYW5lX2Zvcm1hdHM7Cj4gPj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpF KHNuYl9wbGFuZV9mb3JtYXRzKTsKPiA+PiArCQltb2RpZmllcnMgPSBzbmJfcGxhbmVfZm9ybWF0 X21vZGlmaWVyczsKPiA+PiAgCX0gZWxzZSB7Cj4gPj4gIAkJaW50ZWxfcGxhbmUtPmNhbl9zY2Fs ZSA9IHRydWU7Cj4gPj4gIAkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAxNjsKPiA+PiBA QCAtMTA5Niw5ICsxMTIxLDExIEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICAJCWlmIChJU19HRU42KGRldl9wcml2KSkg ewo+ID4+ICAJCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5lX2Zvcm1hdHM7Cj4gPj4gIAkJCW51 bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxhbmVfZm9ybWF0cyk7Cj4gPj4gKwkJ CW1vZGlmaWVycyA9IHNuYl9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwo+ID4+ICAJCX0gZWxzZSB7 Cj4gPj4gIAkJCXBsYW5lX2Zvcm1hdHMgPSBpbGtfcGxhbmVfZm9ybWF0czsKPiA+PiAgCQkJbnVt X3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGlsa19wbGFuZV9mb3JtYXRzKTsKPiA+PiArCQkJ bW9kaWZpZXJzID0gaWxrX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnM7Cj4gPj4gIAkJfQo+ID4+ICAJ fQo+ID4+Cj4gPj4gQEAgLTExMjcsMTMgKzExNTQsMTUgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2Ny ZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gIAkJcmV0ID0gZHJt X3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmaW50ZWxfcGxhbmUtPmJhc2Us Cj4gPj4gIAkJCQkJICAgICAgIHBvc3NpYmxlX2NydGNzLCAmaW50ZWxfcGxhbmVfZnVuY3MsCj4g Pj4gIAkJCQkJICAgICAgIHBsYW5lX2Zvcm1hdHMsIG51bV9wbGFuZV9mb3JtYXRzLAo+ID4+IC0J CQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+ID4+ICsJCQkJCSAgICAg ICBtb2RpZmllcnMsCj4gPj4gKwkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX09WRVJMQVksCj4g Pj4gIAkJCQkJICAgICAgICJwbGFuZSAlZCVjIiwgcGxhbmUgKyAyLCBwaXBlX25hbWUocGlwZSkp Owo+ID4+ICAJZWxzZQo+ID4+ICAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2 X3ByaXYtPmRybSwgJmludGVsX3BsYW5lLT5iYXNlLAo+ID4+ICAJCQkJCSAgICAgICBwb3NzaWJs ZV9jcnRjcywgJmludGVsX3BsYW5lX2Z1bmNzLAo+ID4+ICAJCQkJCSAgICAgICBwbGFuZV9mb3Jt YXRzLCBudW1fcGxhbmVfZm9ybWF0cywKPiA+PiAtCQkJCQkgICAgICAgTlVMTCwgRFJNX1BMQU5F X1RZUEVfT1ZFUkxBWSwKPiA+PiArCQkJCQkgICAgICAgbW9kaWZpZXJzLAo+ID4+ICsJCQkJCSAg ICAgICBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAo+ID4+ICAJCQkJCSAgICAgICAic3ByaXRlICVj Iiwgc3ByaXRlX25hbWUocGlwZSwgcGxhbmUpKTsKPiA+PiAgCWlmIChyZXQpCj4gPj4gIAkJZ290 byBmYWlsOwo+ID4+IC0tCj4gPj4gMi4xMS4wCj4gPj4KPiA+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK PiA+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+Cj4gPi0tIAo+ID5W aWxsZSBTeXJqw6Rsw6QKPiA+SW50ZWwgT1RDCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK