From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH xf86-video-intel v6] sna: Added AYUV format support for textured and sprite video adapters. Date: Fri, 9 Nov 2018 15:24:47 +0200 Message-ID: <20181109132447.GF9144@intel.com> References: <20181102100603.2990-1-stanislav.lisovskiy@intel.com> <20181108174726.GC9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id CC8946E044 for ; Fri, 9 Nov 2018 13:24:51 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Lisovskiy, Stanislav" Cc: "intel-gfx@lists.freedesktop.org" , "Heikkila, Juha-pekka" , "Peres, Martin" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMDksIDIwMTggYXQgMTA6MTg6NTBBTSArMDIwMCwgTGlzb3Zza2l5LCBTdGFu aXNsYXYgd3JvdGU6Cj4gT24gVGh1LCAyMDE4LTExLTA4IGF0IDE5OjQ3ICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAwMiwgMjAxOCBhdCAxMjowNjowM1BNICsw MjAwLCBTdGFuaXNsYXYgTGlzb3Zza2l5IHdyb3RlOgo+ID4gPiB2MjogUmVuYW1lZCBEUk1fRk9S TUFUX1hZVVYgdG8gRFJNX0ZPUk1BVF9YWVVWODg4OC4KPiA+ID4gICAgIEFkZGVkIGNvbW1lbnQg YWJvdXQgQVlVViBieXRlIG9yZGVyaW5nIGluIEdzdHJlYW1lci4KPiA+ID4gCj4gPiA+IHYzOiBS ZW1vdmVkIHNuYV9jb21wb3NpdGVfb3AgZmxhZ3MgcmVsYXRlZCBjaGFuZ2UgdG8gdGhlIHNlcGFy YXRlCj4gPiA+IHBhdGNoLgo+ID4gPiAKPiA+ID4gdjQ6IEZpeGVkIHJldmlldyBjb21tZW50cywg ZG9uZSBjb2RlIHJlZmFjdG9yaW5nCj4gPiA+IAo+ID4gPiB2NTogRml4ZWQgZm9sbG93aW5nIHJl dmlldyBjb21tZW50czoKPiA+ID4gICAgIC0gRml4ZWQgY29tbWVudCBpbiBzaGFkZXIgY29kZSBm b3IgYXl1diBrZXJuZWwuCj4gPiA+ICAgICAtIEZpeGVkIG5hbWluZyB0byBWSURFT19BWVVWX0JU NjAxL0JUNzA5IGZvciBheXV2IGtlcm5lbHMuCj4gPiA+ICAgICAtIFJlbW92ZWQgZHVwbGljYXRl IGdlbjlfa2VybmVsIHBhcmFtZXRlciwgbGVmdCBmcm9tIHByZXZpb3VzCj4gPiA+IHBhdGNoZXMK PiA+ID4gICAgIC0gQWRkZWQgY29sb3JzcGFjZSBoYW5kbGluZyBmb3IgbmV3IEFZVVYga2VybmVs Cj4gPiA+ICAgICAtIEZpeGVkIG5hbWluZyBvZiBzbmFfY29weV9wYWNrZWRfZGF0YV9heXV2IHRv Cj4gPiA+IHNuYV9jb3B5X2F5dXZfZGF0YQo+ID4gPiAgICAgLSBTdGFydGVkIHVzaW5nIHN0YW5k YXJkIGJzd2FwXzMyIGZ1bmN0aW9uIGZvciBieXRlIHN3YXBwaW5nIGluCj4gPiA+IHNuYV9jb3B5 X2F5dXZfZGF0YQo+ID4gPiAgICAgLSBSZW1vdmVkIHJlZHVuZGFudCBjb2RlIGluIHNuYV9jb3B5 X2F5dXZfZGF0YSBzbyB0aGF0IGl0IGxvb2tzCj4gPiA+IG1vcmUgbmVhdAo+ID4gPiAgICAgLSBG aXhlZCBYVklNQUdFX0FZVVYgc3RydWN0dXJlIGluaXRpYWxpemF0aW9uIHRvIGNvbnRhaW4gcHJv cGVyCj4gPiA+IGJ5dGUgc2VxdWVuY2UgZm9yIEdTVAo+ID4gPiAgICAgLSBGaXhlZCBib2d1cyBj b21tZW50IGFib3V0IHN1YnNhbXBsaW5nIGZvciBEUk1fRk9STUFUX1hZVVY4ODg4Cj4gPiA+ICAg ICAtIEZpeGVkIEFZVVYgYWR2ZXJ0aXNlbWVudCBmb3IgYWxsIHBsYXRmb3Jtcwo+ID4gPiAgICAg LSBSZW1vdmVkIHVubmVjZXNzYXJ5IFJHQjg4OCBkZWNsYXJhdGlvbi4KPiA+ID4gCj4gPiA+IHY2 Ogo+ID4gPiAgICAgLSBGaXhlZCBzdXJmYWNlIGZvcm1hdCBub3QgdG8gdXNlIGFscGhhIGFzIHN1 cHBvc2VkCj4gPiA+ICAgICAtIE5vdyBkb2luZyBieXRlIHN3YXBwaW5nIGFsd2F5cyBkdXJpbmcg Y29weQo+ID4gPiAgICAgLSBDaGFuZ2VkIGhhY2ssIHJlcXVpcmVkIGZvciBHU1QgdG8gd29yayB0 byBiZSBhdCBvbmUgcGxhY2UKPiA+ID4gICAgIC0gRml4ZWQgaW52YWxpZCBzYW1wbGluZyB2YWx1 ZXMgZm9yIFhWSU1BR0VfQVlVVgo+ID4gPiAgICAgLSBGaXhlZCBzcHJpdGUgZm9ybWF0IGNoZWNr aW5nIG9yZGVyIGFuZCBpbWFnZXNfYXl1dgo+ID4gPiBkZWZpbml0aW9uLgo+ID4gPiAKPiA+ID4g U2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBp bnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgc3JjL3JlbmRlcl9wcm9ncmFtL01ha2VmaWxlLmFt ICAgICAgICAgICAgICAgIHwgIDIgKwo+ID4gPiAgLi4uL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2Jf YXl1di5nOGEgICAgICAgICAgIHwgNzYKPiA+ID4gKysrKysrKysrKysrKysrKwo+ID4gPiAgLi4u L2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIgICAgICAgICAgIHwgIDggKysKPiA+ID4g IHNyYy9zbmEvZ2VuOV9yZW5kZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKyst Cj4gPiA+ICBzcmMvc25hL3NuYV9yZW5kZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MyArCj4gPiA+ICBzcmMvc25hL3NuYV92aWRlby5jICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA4OQo+ID4gPiArKysrKysrKysrKysrKysrKystCj4gPiA+ICBzcmMvc25hL3NuYV92aWRlby5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKwo+ID4gPiAgc3JjL3NuYS9zbmFf dmlkZW9fc3ByaXRlLmMgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKy0KPiA+ID4gIHNyYy9z bmEvc25hX3ZpZGVvX3RleHR1cmVkLmMgICAgICAgICAgICAgICAgICB8ICA3ICsrCj4gPiA+ICA5 IGZpbGVzIGNoYW5nZWQsIDI0NCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ID4gPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0Cj4gPiA+IHNyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3Nh bXBsZV9hcmdiX2F5dXYuZzhhCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQKPiA+ID4gc3JjL3Jl bmRlcl9wcm9ncmFtL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIKPiA+ID4gCj4gPiA+ IGRpZmYgLS1naXQgYS9zcmMvcmVuZGVyX3Byb2dyYW0vTWFrZWZpbGUuYW0KPiA+ID4gYi9zcmMv cmVuZGVyX3Byb2dyYW0vTWFrZWZpbGUuYW0KPiA+ID4gaW5kZXggZGM1ODEzOGYuLmUzNWZmYTUy IDEwMDY0NAo+ID4gPiAtLS0gYS9zcmMvcmVuZGVyX3Byb2dyYW0vTWFrZWZpbGUuYW0KPiA+ID4g KysrIGIvc3JjL3JlbmRlcl9wcm9ncmFtL01ha2VmaWxlLmFtCj4gPiA+IEBAIC0xOTYsNiArMTk2 LDcgQEAgSU5URUxfRzdCID0JCQkJXAo+ID4gPiAgSU5URUxfRzhBID0JCQkJXAo+ID4gPiAgCWV4 YV93bV9zcmNfYWZmaW5lLmc4YSAJCVwKPiA+ID4gIAlleGFfd21fc3JjX3NhbXBsZV9hcmdiLmc4 YSAJXAo+ID4gPiArCWV4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGEgXAo+ID4gPiAgCWV4 YV93bV9zcmNfc2FtcGxlX252MTIuZzhhIAlcCj4gPiA+ICAJZXhhX3dtX3NyY19zYW1wbGVfcGxh bmFyLmc4YSAJXAo+ID4gPiAgCWV4YV93bV93cml0ZS5nOGEgCQlcCj4gPiA+IEBAIC0yMDUsNiAr MjA2LDcgQEAgSU5URUxfRzhBID0JCQkJXAo+ID4gPiAgCj4gPiA+ICBJTlRFTF9HOEIgPQkJCQlc Cj4gPiA+ICAJZXhhX3dtX3NyY19hZmZpbmUuZzhiIAkJXAo+ID4gPiArCWV4YV93bV9zcmNfc2Ft cGxlX2FyZ2JfYXl1di5nOGIgXAo+ID4gPiAgCWV4YV93bV9zcmNfc2FtcGxlX2FyZ2IuZzhiIAlc Cj4gPiA+ICAJZXhhX3dtX3NyY19zYW1wbGVfbnYxMi5nOGIgCVwKPiA+ID4gIAlleGFfd21fc3Jj X3NhbXBsZV9wbGFuYXIuZzhiIAlcCj4gPiA+IGRpZmYgLS1naXQgYS9zcmMvcmVuZGVyX3Byb2dy YW0vZXhhX3dtX3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4YQo+ID4gPiBiL3NyYy9yZW5kZXJfcHJv Z3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhCj4gPiA+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwLi5jMGI4NGMyZQo+ID4gPiAtLS0gL2Rldi9udWxs Cj4gPiA+ICsrKyBiL3NyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5 dXYuZzhhCj4gPiA+IEBAIC0wLDAgKzEsNzYgQEAKPiA+ID4gKy8qCj4gPiA+ICsgKiBDb3B5cmln aHQgwqkgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiArICoKPiA+ID4gKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCj4gPiA+ IG9idGFpbmluZyBhCj4gPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCj4gPiA+ICJTb2Z0d2FyZSIpLAo+ID4gPiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQKPiA+ID4gbGltaXRhdGlvbgo+ID4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsCj4gPiA+IHN1YmxpY2Vuc2UsCj4g PiA+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8KPiA+ID4gd2hvbSB0aGUKPiA+ID4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCj4gPiA+IGNvbmRpdGlvbnM6Cj4g PiA+ICsgKgo+ID4gPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UKPiA+ID4gKGluY2x1ZGluZyB0aGUgbmV4dAo+ID4gPiArICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsCj4gPiA+ IHBvcnRpb25zIG9mIHRoZQo+ID4gPiArICogU29mdHdhcmUuCj4gPiA+ICsgKgo+ID4gPiArICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsCj4gPiA+IEVYUFJFU1MgT1IKPiA+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiA+ID4gTUVSQ0hBTlRBQklMSVRZLAo+ ID4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdF TUVOVC4gIElOIE5PCj4gPiA+IEVWRU5UIFNIQUxMCj4gPiA+ICsgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKPiA+ID4gREFNQUdFUyBP UiBPVEhFUgo+ID4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gPiA+IEFSSVNJTkcKPiA+ID4gKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+ ID4gT1RIRVIgREVBTElOR1MKPiA+ID4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiA+ID4gKyAqCj4g PiA+ICsgKiBBdXRob3JzOgo+ID4gPiArICogICAgV2FuZyBaaGVueXUgPHpoZW55dS56LndhbmdA aW50ZWwuY29tPgo+ID4gPiArICogICAgS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+ Cj4gPiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArLyogU2FtcGxlIHRoZSBzcmMgc3VyZmFjZSAqLwo+ ID4gPiArCj4gPiA+ICtpbmNsdWRlKGBleGFfd20uZzRpJykKPiA+ID4gKwo+ID4gPiArdW5kZWZp bmUoYHNyY19tc2cnKQo+ID4gPiArdW5kZWZpbmUoYHNyY19tc2dfaW5kJykKPiA+ID4gKwo+ID4g PiArZGVmaW5lKGBzcmNfbXNnJywgICAgICAgYGc2NScpCj4gPiA+ICtkZWZpbmUoYHNyY19tc2df aW5kJywgICBgNjUnKQo+ID4gPiArCj4gPiA+ICsvKiBwcmVwYXJlIHNhbXBsZXIgcmVhZCBiYWNr IGdYIHJlZ2lzdGVyLCB3aGljaCB3b3VsZCBiZSB3cml0dGVuCj4gPiA+IGJhY2sgdG8gb3V0cHV0 ICovCj4gPiA+ICsKPiA+ID4gKy8qIHVzZSBzaW1kMTYgc2FtcGxlciwgcGFyYW0gMCBpcyB1LCBw YXJhbSAxIGlzIHYuICovCj4gPiA+ICsvKiAncGF5bG9hZCcgbG9hZGluZywgYXNzdW1pbmcgdGV4 IGNvb3JkIHN0YXJ0IGZyb20gZzQgKi8KPiA+ID4gKwo+ID4gPiArLyogbG9hZCBhcmdiICovCj4g PiA+ICttb3YgKDEpIGcwLjg8MT5VRAkweDAwMDAwMDAwVUQgeyBhbGlnbjEgbWFza19kaXNhYmxl IH07Cj4gPiA+ICttb3YgKDgpIHNyY19tc2c8MT5VRCBnMDw4LDgsMT5VRCB7IGFsaWduMSB9OyAv KiBjb3B5IHRvIG1zZyBzdGFydAo+ID4gPiByZWcqLwo+ID4gPiArCj4gPiA+ICsvKiBzcmNfbXNn IHdpbGwgYmUgY29waWVkIHdpdGggZzAsIGFzIGl0IGNvbnRhaW5zIHNlbmQgZGVzYyAqLwo+ID4g PiArLyogZW1pdCBzYW1wbGVyICdzZW5kJyBjbWQgKi8KPiA+ID4gK3NlbmQgKDE2KSBzcmNfbXNn X2luZAkvKiBtc2cgcmVnIGluZGV4ICovCj4gPiA+ICsJc3JjX3NhbXBsZV9iYXNlPDE+VVcgLyog cmVhZGJhY2sgKi8KPiA+ID4gKwludWxsCj4gPiA+ICsJc2FtcGxlciAoMSwwLEYpCS8qIHNhbXBs ZXIgbWVzc2FnZSBkZXNjcmlwdGlvbiwKPiA+ID4gKGJpbmRpbmdfdGFibGUsc2FtcGxlcl9pbmRl eCxkYXRhdHlwZSkKPiA+ID4gKwkJCQkvKiBoZXJlKHNyYy0+ZHN0KSB3ZSBzaG91bGQgdXNlCj4g PiA+IHNyY19zYW1wbGVyIGFuZCBzcmNfc3VyZmFjZSAqLwo+ID4gPiArCW1sZW4gNSBybGVuIDgg eyBhbGlnbjEgfTsgICAvKiByZXF1aXJlZCBtZXNzYWdlIGxlbiA1LAo+ID4gPiByZWFkYmFjayBs ZW4gOCAqLwo+ID4gPiArCj4gPiA+ICsvKgo+ID4gPiArICogSGF2ZSB0byBjaGFuZ2UgYnl0ZXMg b3JkZXIsIGJlY2F1c2UgdGhlIG9ubHkKPiA+ID4gKyAqIHBsYXllciB3aGljaCBzdXBwb3J0cyBB WVVWIGZvcm1hdCBjdXJyZW50bHkgaXMKPiA+ID4gKyAqIEdzdHJlYW1lciBhbmQgaXQgc3VwcG9y dHMgaW4gYmFkIHdheSwgZXZlbiB0aG91Z2gKPiA+ID4gKyAqIHNwZWMgc2F5cyBNU0I6QVlVViwg d2UgZ2V0IHRoZSBieXRlcyBvcHBvc2l0ZSB3YXkuCj4gPiA+ICsgKiBXZSBzd2FwIGJ5dGVzIGJv dGggZm9yIHNwcml0ZSBhbmQgdGV4dHVyZSBtb2RlcyBkdXJpbmcgY29weS4KPiA+ID4gKyAqIFNv IGhlcmUgd2UgZ2V0IGFyZ2Igd2hpY2ggdGhlbiBiZWNvbWVzIDFiZ3IuCj4gPiA+ICsgKi8KPiA+ ID4gK21vdiAoMTYpIHNyY19zYW1wbGVfYTwxPlVEIHNyY19zYW1wbGVfYjwxPlVEICB7IGFsaWdu MSB9Owo+ID4gPiArbW92ICgxNikgc3JjX3NhbXBsZV9iPDE+VUQgc3JjX3NhbXBsZV9nPDE+VUQg IHsgYWxpZ24xIH07Cj4gPiA+ICttb3YgKDE2KSBzcmNfc2FtcGxlX2c8MT5VRCBzcmNfc2FtcGxl X3I8MT5VRCAgeyBhbGlnbjEgfTsKPiA+ID4gK21vdiAoMTYpIHNyY19zYW1wbGVfcjwxPlVEIHNy Y19zYW1wbGVfYTwxPlVEICB7IGFsaWduMSB9Owo+ID4gPiArbW92ICgxNikgc3JjX3NhbXBsZV9h PDE+RiAxLjBGOwo+ID4gPiArCj4gPiA+ICsKPiA+ID4gKwo+ID4gPiArCj4gPiA+ICsKPiA+ID4g Kwo+ID4gPiArCj4gPiA+ICsKPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9yZW5kZXJfcHJvZ3JhbS9l eGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhiCj4gPiA+IGIvc3JjL3JlbmRlcl9wcm9ncmFt L2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAuLmYzYWM0OTU5Cj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ ID4gKysrIGIvc3JjL3JlbmRlcl9wcm9ncmFtL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5n OGIKPiA+ID4gQEAgLTAsMCArMSw4IEBACj4gPiA+ICsgICB7IDB4MDAwMDAwMDEsIDB4MjAwODA2 MGMsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKPiA+ID4gKyAgIHsgMHgwMDYwMDAwMSwgMHgy ODIwMDIwOCwgMHgwMDhkMDAwMCwgMHgwMDAwMDAwMCB9LAo+ID4gPiArICAgeyAweDAyODAwMDMx LCAweDIxYzAwYTQ4LCAweDA2MDAwODIwLCAweDBhOGMwMDAxIH0sCj4gPiA+ICsgICB7IDB4MDA4 MDAwMDEsIDB4MjI4MDAyMDgsIDB4MDAyMDAyNDAsIDB4MDAwMDAwMDAgfSwKPiA+ID4gKyAgIHsg MHgwMDgwMDAwMSwgMHgyMjQwMDIwOCwgMHgwMDIwMDIwMCwgMHgwMDAwMDAwMCB9LAo+ID4gPiAr ICAgeyAweDAwODAwMDAxLCAweDIyMDAwMjA4LCAweDAwMjAwMWMwLCAweDAwMDAwMDAwIH0sCj4g PiA+ICsgICB7IDB4MDA4MDAwMDEsIDB4MjFjMDAyMDgsIDB4MDAyMDAyODAsIDB4MDAwMDAwMDAg fSwKPiA+ID4gKyAgIHsgMHgwMDgwMDAwMSwgMHgyMjgwM2VlOCwgMHgzODAwMDAwMCwgMHgzZjgw MDAwMCB9LAo+ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL3NuYS9nZW45X3JlbmRlci5jIGIvc3JjL3Nu YS9nZW45X3JlbmRlci5jCj4gPiA+IGluZGV4IGViMjJiNjQyLi45MDcwN2IxZiAxMDA2NDQKPiA+ ID4gLS0tIGEvc3JjL3NuYS9nZW45X3JlbmRlci5jCj4gPiA+ICsrKyBiL3NyYy9zbmEvZ2VuOV9y ZW5kZXIuYwo+ID4gPiBAQCAtMTI5LDYgKzEyOSwyMCBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QK PiA+ID4gcHNfa2VybmVsX3BsYW5hcl9idDcwOVtdWzRdID0gewo+ID4gPiAgI2luY2x1ZGUgImV4 YV93bV93cml0ZS5nOGIiCj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgY29uc3QgdWlu dDMyX3QgcHNfa2VybmVsX2F5dXZfYnQ2MDFbXVs0XSA9IHsKPiA+ID4gKyNpbmNsdWRlICJleGFf d21fc3JjX2FmZmluZS5nOGIiCj4gPiA+ICsjaW5jbHVkZSAiZXhhX3dtX3NyY19zYW1wbGVfYXJn Yl9heXV2Lmc4YiIKPiA+ID4gKyNpbmNsdWRlICJleGFfd21feXV2X3JnYl9idDYwMS5nOGIiCj4g PiA+ICsjaW5jbHVkZSAiZXhhX3dtX3dyaXRlLmc4YiIKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4g K3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19rZXJuZWxfYXl1dl9idDcwOVtdWzRdID0gewo+ID4g PiArI2luY2x1ZGUgImV4YV93bV9zcmNfYWZmaW5lLmc4YiIKPiA+ID4gKyNpbmNsdWRlICJleGFf d21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhiIgo+ID4gPiArI2luY2x1ZGUgImV4YV93bV95dXZf cmdiX2J0NzA5Lmc4YiIKPiA+ID4gKyNpbmNsdWRlICJleGFfd21fd3JpdGUuZzZiIgo+ID4gPiAr fTsKPiA+ID4gKwo+ID4gPiAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX2tlcm5lbF9udjEyX2J0 NzA5W11bNF0gPSB7Cj4gPiA+ICAjaW5jbHVkZSAiZXhhX3dtX3NyY19hZmZpbmUuZzhiIgo+ID4g PiAgI2luY2x1ZGUgImV4YV93bV9zcmNfc2FtcGxlX252MTIuZzhiIgo+ID4gPiBAQCAtMTc3LDYg KzE5MSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd21fa2VybmVsX2luZm8gewo+ID4gPiAgCUtF Uk5FTChWSURFT19QTEFOQVJfQlQ3MDksIHBzX2tlcm5lbF9wbGFuYXJfYnQ3MDksIDcpLAo+ID4g PiAgCUtFUk5FTChWSURFT19OVjEyX0JUNzA5LCBwc19rZXJuZWxfbnYxMl9idDcwOSwgNyksCj4g PiA+ICAJS0VSTkVMKFZJREVPX1BBQ0tFRF9CVDcwOSwgcHNfa2VybmVsX3BhY2tlZF9idDcwOSwg MiksCj4gPiA+ICsJS0VSTkVMKFZJREVPX0FZVVZfQlQ2MDEsIHBzX2tlcm5lbF9heXV2X2J0NjAx LCAyKSwKPiA+ID4gKwlLRVJORUwoVklERU9fQVlVVl9CVDcwOSwgcHNfa2VybmVsX2F5dXZfYnQ3 MDksIDIpLAo+ID4gPiAgCUtFUk5FTChWSURFT19SR0IsIHBzX2tlcm5lbF9yZ2IsIDIpLAo+ID4g PiAgI2VuZGlmCj4gPiA+ICB9Owo+ID4gPiBAQCAtMjU1Miw3ICsyNTY4LDYgQEAgZ2VuOV9yZW5k ZXJfY29tcG9zaXRlKHN0cnVjdCBzbmEgKnNuYSwKPiA+ID4gIAkJCQkJCQkgICAgIHRtcC0KPiA+ ID4gPm1hc2suYm8gIT0gTlVMTCwKPiA+ID4gIAkJCQkJCQkgICAgIHRtcC0KPiA+ID4gPmhhc19j b21wb25lbnRfYWxwaGEsCj4gPiA+ICAJCQkJCQkJICAgICB0bXAtCj4gPiA+ID5pc19hZmZpbmUp Owo+ID4gPiAtCj4gPiA+ICAJdG1wLT5ibHQgICA9IGdlbjlfcmVuZGVyX2NvbXBvc2l0ZV9ibHQ7 Cj4gPiA+ICAJdG1wLT5ib3ggICA9IGdlbjlfcmVuZGVyX2NvbXBvc2l0ZV9ib3g7Cj4gPiA+ICAJ dG1wLT5ib3hlcyA9IGdlbjlfcmVuZGVyX2NvbXBvc2l0ZV9ib3hlc19fYmx0Owo+ID4gPiBAQCAt Mzg1Myw2ICszODY4LDggQEAgc3RhdGljIHZvaWQgZ2VuOV9lbWl0X3ZpZGVvX3N0YXRlKHN0cnVj dCBzbmEKPiA+ID4gKnNuYSwKPiA+ID4gIAkJCXNyY19zdXJmX2Zvcm1hdFswXSA9Cj4gPiA+IFNV UkZBQ0VGT1JNQVRfQjhHOFI4WDhfVU5PUk07Cj4gPiA+ICAJCWVsc2UgaWYgKGZyYW1lLT5pZCA9 PSBGT1VSQ0NfVVlWWSkKPiA+ID4gIAkJCXNyY19zdXJmX2Zvcm1hdFswXSA9Cj4gPiA+IFNVUkZB Q0VGT1JNQVRfWUNSQ0JfU1dBUFk7Cj4gPiA+ICsJCWVsc2UgaWYgKGlzX2F5dXZfZm91cmNjKGZy YW1lLT5pZCkpCj4gPiA+ICsJCQlzcmNfc3VyZl9mb3JtYXRbMF0gPQo+ID4gPiBTVVJGQUNFRk9S TUFUX0I4RzhSOFg4X1VOT1JNOwo+ID4gPiAgCQllbHNlCj4gPiA+ICAJCQlzcmNfc3VyZl9mb3Jt YXRbMF0gPQo+ID4gPiBTVVJGQUNFRk9STUFUX1lDUkNCX05PUk1BTDsKPiA+ID4gIAo+ID4gPiBA QCAtMzkwMyw2ICszOTIwLDExIEBAIHN0YXRpYyB1bnNpZ25lZCBzZWxlY3RfdmlkZW9fa2VybmVs KGNvbnN0Cj4gPiA+IHN0cnVjdCBzbmFfdmlkZW8gKnZpZGVvLAo+ID4gPiAgCWNhc2UgRk9VUkND X1JHQjU2NToKPiA+ID4gIAkJcmV0dXJuIEdFTjlfV01fS0VSTkVMX1ZJREVPX1JHQjsKPiA+ID4g IAo+ID4gPiArCWNhc2UgRk9VUkNDX0FZVVY6Cj4gPiA+ICsJCXJldHVybiB2aWRlby0+Y29sb3Jz cGFjZSA/Cj4gPiA+ICsJCQlHRU45X1dNX0tFUk5FTF9WSURFT19BWVVWX0JUNzA5IDoKPiA+ID4g KwkJCUdFTjlfV01fS0VSTkVMX1ZJREVPX0FZVVZfQlQ2MDE7Cj4gPiA+ICsKPiA+ID4gIAlkZWZh dWx0Ogo+ID4gPiAgCQlyZXR1cm4gdmlkZW8tPmNvbG9yc3BhY2UgPwo+ID4gPiAgCQkJR0VOOV9X TV9LRVJORUxfVklERU9fUEFDS0VEX0JUNzA5IDoKPiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9zbmEv c25hX3JlbmRlci5oIGIvc3JjL3NuYS9zbmFfcmVuZGVyLmgKPiA+ID4gaW5kZXggYTRlNWI1NmEu Ljg5MWZjOTA1IDEwMDY0NAo+ID4gPiAtLS0gYS9zcmMvc25hL3NuYV9yZW5kZXIuaAo+ID4gPiAr KysgYi9zcmMvc25hL3NuYV9yZW5kZXIuaAo+ID4gPiBAQCAtNjE3LDYgKzYxNyw5IEBAIGVudW0g ewo+ID4gPiAgCUdFTjlfV01fS0VSTkVMX1ZJREVPX05WMTJfQlQ3MDksCj4gPiA+ICAJR0VOOV9X TV9LRVJORUxfVklERU9fUEFDS0VEX0JUNzA5LAo+ID4gPiAgCj4gPiA+ICsJR0VOOV9XTV9LRVJO RUxfVklERU9fQVlVVl9CVDYwMSwKPiA+ID4gKwlHRU45X1dNX0tFUk5FTF9WSURFT19BWVVWX0JU NzA5LAo+ID4gPiArCj4gPiA+ICAJR0VOOV9XTV9LRVJORUxfVklERU9fUkdCLAo+ID4gPiAgCUdF TjlfV01fS0VSTkVMX0NPVU5UCj4gPiA+ICB9Owo+ID4gPiBkaWZmIC0tZ2l0IGEvc3JjL3NuYS9z bmFfdmlkZW8uYyBiL3NyYy9zbmEvc25hX3ZpZGVvLmMKPiA+ID4gaW5kZXggNTU0MDVmODEuLmQ0 ZWQ4NDY0IDEwMDY0NAo+ID4gPiAtLS0gYS9zcmMvc25hL3NuYV92aWRlby5jCj4gPiA+ICsrKyBi L3NyYy9zbmEvc25hX3ZpZGVvLmMKPiA+ID4gQEAgLTU5LDYgKzU5LDcgQEAKPiA+ID4gICNpbmNs dWRlICJpbnRlbF9vcHRpb25zLmgiCj4gPiA+ICAKPiA+ID4gICNpbmNsdWRlIDx4Zjg2eHYuaD4K PiA+ID4gKyNpbmNsdWRlIDxieXRlc3dhcC5oPgo+ID4gPiAgCj4gPiA+ICAjaWZkZWYgU05BX1hW TUMKPiA+ID4gICNkZWZpbmUgX1NOQV9YVk1DX1NFUlZFUl8KPiA+ID4gQEAgLTI4MSw2ICsyODIs NyBAQCBzbmFfdmlkZW9fZnJhbWVfc2V0X3JvdGF0aW9uKHN0cnVjdCBzbmFfdmlkZW8KPiA+ID4g KnZpZGVvLAo+ID4gPiAgCX0gZWxzZSB7Cj4gPiA+ICAJCXN3aXRjaCAoZnJhbWUtPmlkKSB7Cj4g PiA+ICAJCWNhc2UgRk9VUkNDX1JHQjg4ODoKPiA+ID4gKwkJY2FzZSBGT1VSQ0NfQVlVVjoKPiA+ ID4gIAkJCWlmIChyb3RhdGlvbiAmIChSUl9Sb3RhdGVfOTAgfAo+ID4gPiBSUl9Sb3RhdGVfMjcw KSkgewo+ID4gPiAgCQkJCWZyYW1lLT5waXRjaFswXSA9IEFMSUdOKChoZWlnaHQgPDwKPiA+ID4g MiksIGFsaWduKTsKPiA+ID4gIAkJCQlmcmFtZS0+c2l6ZSA9IChpbnQpZnJhbWUtPnBpdGNoWzBd IAo+ID4gPiAqIHdpZHRoOwo+ID4gPiBAQCAtNTg0LDYgKzU4Niw4OSBAQCBzbmFfY29weV9wYWNr ZWRfZGF0YShzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywKPiA+ID4gIAl9Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gK3N0YXRpYyB2b2lkCj4gPiA+ICtzbmFfY29weV9heXV2X2RhdGEoc3RydWN0IHNu YV92aWRlbyAqdmlkZW8sCj4gPiA+ICsJCSAgIGNvbnN0IHN0cnVjdCBzbmFfdmlkZW9fZnJhbWUg KmZyYW1lLAo+ID4gPiArCQkgICBjb25zdCB1aW50OF90ICpidWYsCj4gPiA+ICsJCSAgIHVpbnQ4 X3QgKmRzdCwKPiA+ID4gKwkJICAgYm9vbCByZXZlcnNlX2J5dGVzKQo+ID4gCj4gPiBXaHkgdGhp cyBwYXJhbWV0ZXI/IEl0J3MgYWx3YXlzIHRydWUgbm8/Cj4gCj4gWWVzLCBpdCBpcyBjdXJyZW50 bHkgYWx3YXlzIHRydWUuIEkganVzdCB0aG91Z2h0IHdlIG1pZ2h0IHdhbnQKPiB0byBoYXZlIGEg d2F5IHRvIG1hbmlwdWxhdGUgdGhpcyBieXRlIG9yZGVyIHRoaW5nIGlmIHNvbWUgb3RoZXIKPiBw bGF5ZXIgZXhjZXB0IEdzdHJlYW1lciBpcyB1c2VkIGFuZCBpdCBoYXMgYSBjb3JyZWN0IG9yZGVy LgoKSWYgdGhhdCBoYXBwZW5zIGl0J3MgZWFzeSBlbm91Z2ggdG8gcHJvdmlkZSBhIHNlY29uZCBj b3B5IHJvdXRpbmUuCgo+IAo+ID4gCj4gPiA+ICt7Cj4gPiA+ICsJaW50IHBpdGNoID0gZnJhbWUt PndpZHRoIDw8IDI7Cj4gPiA+ICsJY29uc3QgdWludDhfdCAqc3JjLCAqczsKPiA+ID4gKwljb25z dCB1aW50MzJfdCAqc3JjX2R3Owo+ID4gPiArCXVpbnQzMl90ICpkc3RfZHcgPSAodWludDMyX3Qg Kilkc3Q7Cj4gPiA+ICsJaW50IHgsIHksIHcsIGg7Cj4gPiA+ICsJaW50IGksIGo7Cj4gPiA+ICsJ dWludDMyX3QgZHc7Cj4gPiA+ICsKPiA+ID4gKwlpZiAodmlkZW8tPnRleHR1cmVkKSB7Cj4gPiA+ ICsJCS8qIFhYWCBzdXBwb3J0IGNvcHlpbmcgY3JvcHBlZCBleHRlbnRzICovCj4gPiA+ICsJCXgg PSB5ID0gMDsKPiA+ID4gKwkJdyA9IGZyYW1lLT53aWR0aDsKPiA+ID4gKwkJaCA9IGZyYW1lLT5o ZWlnaHQ7Cj4gPiA+ICsJfSBlbHNlIHsKPiA+ID4gKwkJeCA9IGZyYW1lLT5pbWFnZS54MTsKPiA+ ID4gKwkJeSA9IGZyYW1lLT5pbWFnZS55MTsKPiA+ID4gKwkJdyA9IGZyYW1lLT5pbWFnZS54MiAt IGZyYW1lLT5pbWFnZS54MTsKPiA+ID4gKwkJaCA9IGZyYW1lLT5pbWFnZS55MiAtIGZyYW1lLT5p bWFnZS55MTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlzcmMgPSBidWYgKyAoeSAqIHBpdGNo KSArICh4IDw8IDIpOwo+ID4gPiArCXNyY19kdyA9ICh1aW50MzJfdCAqKXNyYzsKPiA+ID4gKwo+ ID4gPiArCWlmIChyZXZlcnNlX2J5dGVzKSB7Cj4gPiA+ICsJCS8qCj4gPiA+ICsJCSAqIEhhdmUg dG8gcmV2ZXJzZSBieXRlcyBvcmRlciwgYmVjYXVzZSB0aGUgb25seQo+ID4gPiArCQkgKiBwbGF5 ZXIgd2hpY2ggc3VwcG9ydHMgQVlVViBmb3JtYXQgY3VycmVudGx5IGlzCj4gPiA+ICsJCSAqIEdz dHJlYW1lciBhbmQgaXQgc3VwcG9ydHMgaW4gYmFkIHdheSwgZXZlbgo+ID4gPiB0aG91Z2gKPiA+ ID4gKwkJICogc3BlYyBzYXlzIE1TQjpBWVVWLCB3ZSBnZXQgdGhlIGJ5dGVzIG9wcG9zaXRlCj4g PiA+IHdheS4KPiA+ID4gKwkJICovCj4gPiA+ICsJCWZvciAoaSA9IDA7IGkgPCBoOyBpKyspIHsK PiA+ID4gKwkJCWZvciAoaiA9IDA7IGogPCB3OyBqKyspIHsKPiA+ID4gKwkJCQl1aW50MzJfdCBy ZXZlcnNlX2R3Owo+ID4gPiArCQkJCWR3ID0gc3JjX2R3W2kgKiB3ICsgal07Cj4gPiA+ICsJCQkJ cmV2ZXJzZV9kdyA9IGJzd2FwXzMyKGR3KTsKPiA+ID4gKwkJCQlkc3RfZHdbaSAqIHcgKyBqXSA9 IHJldmVyc2VfZHc7Cj4gPiA+ICsJCQl9Cj4gPiA+ICsJCX0KPiA+ID4gKwl9Cj4gPiAKPiA+IFR3 byBsb29wcyB0aHJvdWdoIHRoZSBkYXRhIGlzbid0IHF1aXRlIHdoYXQgSSB3YXMgdGhpbmtpbmcu Cj4gPiAKPiA+ID4gKwo+ID4gPiArCXN3aXRjaCAoZnJhbWUtPnJvdGF0aW9uKSB7Cj4gPiA+ICsJ Y2FzZSBSUl9Sb3RhdGVfMDoKPiA+ID4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ID4g PiArCQkJZm9yIChqID0gMDsgaiA8IHc7IGorKykgewo+ID4gPiArCQkJCWR3ID0gZHN0X2R3W2kg KiB3ICsgal07Cj4gPiA+ICsJCQkJZHN0X2R3W2kgKiB3ICsgal0gPSBkdzsKPiA+IAo+ID4gV2hh dCBJIGhhZCBpbiBtaW5kIHdhcyBqdXN0Cj4gPiAKPiA+IGRzdF9kd1suLl0gPSBic3dhcF8zMihz cmNfZHdbLi4uXSk7Cj4gPiAKPiA+IGhlcmUuCj4gCj4gSSB0aGluayB0aGlzIGlzIGhvdyBpdCB3 YXMgaW5pdGlhbGx5IGluIHByZXZpb3VzIHJldmlzaW9ucywgaW4gZWFjaCBvZgo+IHRob3NlIGNh c2UgbGFiZWxzIEkgd2FzIGRvaW5nIGJzd2FwIGluIHNhbWUgbG9vcC4gCj4gSSB0aG91Z2h0IHlv dXIgaWRlYSB3YXMgdG8gcHV0IGl0IHNvbWV3aGF0IHNlcGFyYXRlbHkgOikKPiAKPiBTaG91bGQg SSB0aGVuIHB1dCBpdCBiYWNrIHNvIHRoYXQgdGhpcyBsb29wIGxvb2tzIGxpa2UgdGhpcz8KPiAK PiBmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKSB7Cj4gCWZvciAoaiA9IDA7IGogPCB3OyBqKyspIHsK PiAJCWlmIChyZXZlcnNlX2J5dGVzKQo+IAkJCWRzdF9kd1tpICogdyArIGpdID0gYnN3YXBfMzIo c3JjX2R3W2kgKiB3ICtqXSk7Cj4gCQllbHNlCj4gCQkJZHN0X2R3W2kgKiB3ICsgaiA9IHNyY19k d1tpICogdyArIGpdOwoKTm8uIEkgZG9uJ3QgdGhpbmsgd2Ugd2FudCB0aGUgZXh0cmEgYnJhbmNo IGhlcmUuIEp1c3Qgc3dhcAp1bmNvbmRpdGlvbmFsbHkuCgo+IAl9Cj4gfQo+IAo+IEhvd2V2ZXIg aWYgSSByZW1vdmUgcmV2ZXJzZV9ieXRlcyBwYXJhbWV0ZXIgZnJvbSBoZXJlIC0gd2Ugd2lsbAo+ IGFueXdheSBuZWVkIHRvIGRvIHNvbWV0aGluZyBvbmNlIHNvbWUgb3RoZXIgcGxheWVyIHdpbGwg YXBwZWFyIHRvIGhhdmUKPiBhIGNvcnJlY3QgQVlVViBieXRlIG9yZGVyIG9yIHdlJ2xsIGhhdmUg b25seSBHc3QgcHJvcGVybHkgcGxheWluZyB2aWRlbwo+IHdpdGggdGhpcyBmb3JtYXQuCj4gCj4g PiAKPiA+ID4gKwkJCX0KPiA+ID4gKwkJfQo+ID4gPiArCQlicmVhazsKPiA+ID4gKwljYXNlIFJS X1JvdGF0ZV85MDoKPiA+ID4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ID4gPiArCQkJ Zm9yIChqID0gMDsgaiA8IHc7IGorKykgewo+ID4gPiArCQkJCWR3ID0gZHN0X2R3W2kgKiB3ICsg al07Cj4gPiA+ICsJCQkJZHN0X2R3Wyh3IC0gaiAtIDEpICogaCArIGldID0gZHc7Cj4gPiA+ICsJ CQl9Cj4gPiA+ICsJCX0KPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ICsJY2FzZSBSUl9Sb3RhdGVfMTgw Ogo+ID4gPiArCQlmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKSB7Cj4gPiA+ICsJCQlmb3IgKGogPSAw OyBqIDwgdzsgaisrKSB7Cj4gPiA+ICsJCQkJZHcgPSBkc3RfZHdbaSAqIHcgKyBqXTsKPiA+ID4g KwkJCQlkc3RfZHdbKGggLSBpIC0gMSkgKiB3ICsgdyAtIGogLQo+ID4gPiAxXSA9IGR3Owo+ID4g PiArCQkJfQo+ID4gPiArCQl9Cj4gPiA+ICsJCWJyZWFrOwo+ID4gPiArCWNhc2UgUlJfUm90YXRl XzI3MDoKPiA+ID4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ID4gPiArCQkJZm9yIChq ID0gMDsgaiA8IHc7IGorKykgewo+ID4gPiArCQkJCWR3ID0gZHN0X2R3W2kgKiB3ICsgal07Owo+ ID4gPiArCQkJCWRzdF9kd1sodyAtIGogLSAxKSAqIGggKyBpXSA9IGR3Owo+ID4gPiArCQkJfQo+ ID4gPiArCQl9Cj4gPiA+ICsJCWJyZWFrOwo+ID4gPiArCX0KPiA+ID4gK30KPiA+ID4gKwo+ID4g PiAgYm9vbAo+ID4gPiAgc25hX3ZpZGVvX2NvcHlfZGF0YShzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRl bywKPiA+ID4gIAkJICAgIHN0cnVjdCBzbmFfdmlkZW9fZnJhbWUgKmZyYW1lLAo+ID4gPiBAQCAt NjA0LDcgKzY4OSw3IEBAIHNuYV92aWRlb19jb3B5X2RhdGEoc3RydWN0IHNuYV92aWRlbyAqdmlk ZW8sCj4gPiA+ICAJYXNzZXJ0KGZyYW1lLT5zaXplKTsKPiA+ID4gIAo+ID4gPiAgCS8qIEluIHRo ZSBjb21tb24gY2FzZSwgd2UgY2FuIHNpbXBseSB0aGUgdXBsb2FkIGluIGEKPiA+ID4gc2luZ2xl IHB3cml0ZSAqLwo+ID4gPiAtCWlmIChmcmFtZS0+cm90YXRpb24gPT0gUlJfUm90YXRlXzAgJiYg IXZpZGVvLT50aWxlZCkgewo+ID4gPiArCWlmIChmcmFtZS0+cm90YXRpb24gPT0gUlJfUm90YXRl XzAgJiYgIXZpZGVvLT50aWxlZCAmJgo+ID4gPiAhaXNfYXl1dl9mb3VyY2MoZnJhbWUtPmlkKSkg ewo+ID4gPiAgCQlEQkcoKCIlczogdW5yb3RhdGVkLCB1bnRpbGVkIGZhc3QgcGF0aHM6IGlzLQo+ ID4gPiBwbGFuYXI/PSVkXG4iLAo+ID4gPiAgCQkgICAgIF9fRlVOQ1RJT05fXywgaXNfcGxhbmFy X2ZvdXJjYyhmcmFtZS0+aWQpKSk7Cj4gPiA+ICAJCWlmIChpc19udjEyX2ZvdXJjYyhmcmFtZS0+ aWQpKSB7Cj4gPiA+IEBAIC03MDksNiArNzk0LDggQEAgdXNlX2d0dDogLyogY29weSBkYXRhLCBt dXN0IHVzZSBHVFQgc28gdGhhdCB3ZQo+ID4gPiBrZWVwIHRoZSBvdmVybGF5IHVuY2FjaGVkICov Cj4gPiA+ICAJCXNuYV9jb3B5X252MTJfZGF0YSh2aWRlbywgZnJhbWUsIGJ1ZiwgZHN0KTsKPiA+ ID4gIAllbHNlIGlmIChpc19wbGFuYXJfZm91cmNjKGZyYW1lLT5pZCkpCj4gPiA+ICAJCXNuYV9j b3B5X3BsYW5hcl9kYXRhKHZpZGVvLCBmcmFtZSwgYnVmLCBkc3QpOwo+ID4gPiArCWVsc2UgaWYg KGlzX2F5dXZfZm91cmNjKGZyYW1lLT5pZCkpCj4gPiA+ICsJCXNuYV9jb3B5X2F5dXZfZGF0YSh2 aWRlbywgZnJhbWUsIGJ1ZiwgZHN0LCB0cnVlKTsKPiA+ID4gIAllbHNlCj4gPiA+ICAJCXNuYV9j b3B5X3BhY2tlZF9kYXRhKHZpZGVvLCBmcmFtZSwgYnVmLCBkc3QpOwo+ID4gPiAgCj4gPiA+IGRp ZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRlby5oIGIvc3JjL3NuYS9zbmFfdmlkZW8uaAo+ID4g PiBpbmRleCBiYmQzZjBmZC4uYTNmZmRjMGIgMTAwNjQ0Cj4gPiA+IC0tLSBhL3NyYy9zbmEvc25h X3ZpZGVvLmgKPiA+ID4gKysrIGIvc3JjL3NuYS9zbmFfdmlkZW8uaAo+ID4gPiBAQCAtMzksNiAr MzksNyBAQCBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiA+ID4g ICNkZWZpbmUgRk9VUkNDX1JHQjU2NSAoKDE2IDw8IDI0KSArICgnQicgPDwgMTYpICsgKCdHJyA8 PCA4KSArCj4gPiA+ICdSJykKPiA+ID4gICNkZWZpbmUgRk9VUkNDX1JHQjg4OCAoKDI0IDw8IDI0 KSArICgnQicgPDwgMTYpICsgKCdHJyA8PCA4KSArCj4gPiA+ICdSJykKPiA+ID4gICNkZWZpbmUg Rk9VUkNDX05WMTIgKCgnMicgPDwgMjQpICsgKCcxJyA8PCAxNikgKyAoJ1YnIDw8IDgpICsgJ04n KQo+ID4gPiArI2RlZmluZSBGT1VSQ0NfQVlVViAoKCdWJyA8PCAyNCkgKyAoJ1UnIDw8IDE2KSAr ICgnWScgPDwgOCkgKyAnQScpCj4gPiA+ICAKPiA+ID4gIC8qCj4gPiA+ICAgKiBCZWxvdywgYSBk dW1teSBwaWN0dXJlIHR5cGUgdGhhdCBpcyB1c2VkIGluIFh2UHV0SW1hZ2UKPiA+ID4gQEAgLTc5 LDYgKzgwLDE1IEBAIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ ID4gPiAgCVh2VG9wVG9Cb3R0b20gXAo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICsjZGVmaW5lIFhW SU1BR0VfQVlVViB7IFwKPiA+ID4gKwlGT1VSQ0NfQVlVViwgWHZZVVYsIExTQkZpcnN0LCBcCj4g PiA+ICsJeydBJywgJ1knLCAnVScsICdWJywgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMCwgMHg4MCwg MHgwMCwKPiA+ID4gMHgwMCwgMHhBQSwgMHgwMCwgMHgzOCwgMHg5QiwgMHg3MX0sIFwKPiA+ID4g KwkzMiwgWHZQYWNrZWQsIDEsIDAsIDAsIDAsIDAsIDgsIDgsIDgsIDEsIDEsIDEsIDEsIDEsIDEs IFwKPiA+ID4gKwl7J0EnLCAnWScsICdVJywgJ1YnLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLAo+ID4gPiAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwfSwgXAo+ID4gPiArCVh2VG9wVG9Cb3R0b20gXAo+ID4gPiArfQo+ID4gPiArCj4gPiA+ ICsKPiA+ID4gIHN0cnVjdCBzbmFfdmlkZW8gewo+ID4gPiAgCXN0cnVjdCBzbmEgKnNuYTsKPiA+ ID4gIAo+ID4gPiBAQCAtMTg5LDYgKzE5OSwxNiBAQCBzdGF0aWMgaW5saW5lIGludCBpc19udjEy X2ZvdXJjYyhpbnQgaWQpCj4gPiA+ICAJfQo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMg aW5saW5lIGludCBpc19heXV2X2ZvdXJjYyhpbnQgaWQpCj4gPiA+ICt7Cj4gPiA+ICsJc3dpdGNo IChpZCkgewo+ID4gPiArCWNhc2UgRk9VUkNDX0FZVVY6Cj4gPiA+ICsJCXJldHVybiAxOwo+ID4g PiArCWRlZmF1bHQ6Cj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gK30KPiA+ID4g Kwo+ID4gPiAgYm9vbAo+ID4gPiAgc25hX3ZpZGVvX2NsaXBfaGVscGVyKHN0cnVjdCBzbmFfdmlk ZW8gKnZpZGVvLAo+ID4gPiAgCQkgICAgICBzdHJ1Y3Qgc25hX3ZpZGVvX2ZyYW1lICpmcmFtZSwK PiA+ID4gZGlmZiAtLWdpdCBhL3NyYy9zbmEvc25hX3ZpZGVvX3Nwcml0ZS5jCj4gPiA+IGIvc3Jj L3NuYS9zbmFfdmlkZW9fc3ByaXRlLmMKPiA+ID4gaW5kZXggOGI3YWU4YWUuLjM3ODBkYzBlIDEw MDY0NAo+ID4gPiAtLS0gYS9zcmMvc25hL3NuYV92aWRlb19zcHJpdGUuYwo+ID4gPiArKysgYi9z cmMvc25hL3NuYV92aWRlb19zcHJpdGUuYwo+ID4gPiBAQCAtNDcsNyArNDcsNyBAQAo+ID4gPiAg I2RlZmluZSBEUk1fRk9STUFUX1lVWVYgICAgICAgICBmb3VyY2NfY29kZSgnWScsICdVJywgJ1kn LCAnVicpIC8qCj4gPiA+IFszMTowXSBDcjA6WTE6Q2IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlh biAqLwo+ID4gPiAgI2RlZmluZSBEUk1fRk9STUFUX1VZVlkgICAgICAgICBmb3VyY2NfY29kZSgn VScsICdZJywgJ1YnLCAnWScpIC8qCj4gPiA+IFszMTowXSBZMTpDcjA6WTA6Q2IwIDg6ODo4Ojgg bGl0dGxlIGVuZGlhbiAqLwo+ID4gPiAgI2RlZmluZSBEUk1fRk9STUFUX05WMTIgICAgICAgICBm b3VyY2NfY29kZSgnTicsICdWJywgJzEnLCAnMicpIC8qCj4gPiA+IDJ4MiBzdWJzYW1wbGVkIENy OkNiIHBsYW5lICovCj4gPiA+IC0KPiA+ID4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9YWVVWODg4OCAg ICAgZm91cmNjX2NvZGUoJ1gnLCAnWScsICdVJywgJ1YnKSAvKgo+ID4gPiBbMzE6MF0geDpZOlU6 ViA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPiA+ID4gICNkZWZpbmUgaGFzX2h3X3NjYWxpbmco c25hLCB2aWRlbykgKChzbmEpLT5rZ2VtLmdlbiA8IDA3MSB8fCBcCj4gPiA+ICAJCQkJICAgIChz bmEpLT5rZ2VtLmdlbiA+PSAwMTEwKQo+ID4gPiAgCj4gPiA+IEBAIC03OSw2ICs3OSw4IEBAIHN0 YXRpYyBjb25zdCBYdkltYWdlUmVjIGltYWdlc19yZ2I1NjVbXSA9IHsKPiA+ID4gWFZJTUFHRV9Z VVkyLCBYVklNQUdFX1VZVlksCj4gPiA+ICAJCQkJCSAgICBYVk1DX1JHQjg4OCwKPiA+ID4gWFZN Q19SR0I1NjUgfTsKPiA+ID4gIHN0YXRpYyBjb25zdCBYdkltYWdlUmVjIGltYWdlc19udjEyW10g PSB7IFhWSU1BR0VfWVVZMiwKPiA+ID4gWFZJTUFHRV9VWVZZLAo+ID4gPiAgCQkJCQkgIFhWSU1B R0VfTlYxMiwKPiA+ID4gWFZNQ19SR0I4ODgsIFhWTUNfUkdCNTY1IH07Cj4gPiA+ICtzdGF0aWMg Y29uc3QgWHZJbWFnZVJlYyBpbWFnZXNfYXl1dltdID0geyBYVklNQUdFX0FZVVYsCj4gPiA+IFhW SU1BR0VfWVVZMiwgWFZJTUFHRV9VWVZZLAo+ID4gPiArCQkJCQkgIFhWSU1BR0VfTlYxMiwKPiA+ ID4gWFZNQ19SR0I4ODgsIFhWTUNfUkdCNTY1IH07Cj4gPiA+ICBzdGF0aWMgY29uc3QgWHZBdHRy aWJ1dGVSZWMgYXR0cmlic1tdID0gewo+ID4gPiAgCXsgWHZTZXR0YWJsZSB8IFh2R2V0dGFibGUs IDAsIDEsIChjaGFyICopIlhWX0NPTE9SU1BBQ0UiCj4gPiA+IH0sIC8qIEJULjYwMSwgQlQuNzA5 ICovCj4gPiA+ICAJeyBYdlNldHRhYmxlIHwgWHZHZXR0YWJsZSwgMCwgMHhmZmZmZmYsIChjaGFy Cj4gPiA+ICopIlhWX0NPTE9SS0VZIiB9LAo+ID4gPiBAQCAtMzY0LDYgKzM2NiwxMCBAQCBzbmFf dmlkZW9fc3ByaXRlX3Nob3coc3RydWN0IHNuYSAqc25hLAo+ID4gPiAgCQljYXNlIEZPVVJDQ19V WVZZOgo+ID4gPiAgCQkJZi5waXhlbF9mb3JtYXQgPSBEUk1fRk9STUFUX1VZVlk7Cj4gPiA+ICAJ CQlicmVhazsKPiA+ID4gKwkJY2FzZSBGT1VSQ0NfQVlVVjoKPiA+ID4gKwkJCS8qIGk5MTUgZG9l c24ndCBzdXBwb3J0IGFscGhhLCBzbyB3ZSB1c2UKPiA+ID4gWFlVViAqLwo+ID4gPiArCQkJZi5w aXhlbF9mb3JtYXQgPSBEUk1fRk9STUFUX1hZVVY4ODg4Owo+ID4gPiArCQkJYnJlYWs7Cj4gPiA+ ICAJCWNhc2UgRk9VUkNDX1lVWTI6Cj4gPiA+ICAJCWRlZmF1bHQ6Cj4gPiA+ICAJCQlmLnBpeGVs X2Zvcm1hdCA9IERSTV9GT1JNQVRfWVVZVjsKPiA+ID4gQEAgLTcwNSw3ICs3MTEsMTIgQEAgc3Rh dGljIGludAo+ID4gPiBzbmFfdmlkZW9fc3ByaXRlX3F1ZXJ5KGRkUXVlcnlJbWFnZUF0dHJpYnV0 ZXNfQVJHUykKPiA+ID4gIAkJdG1wICo9ICgqaCA+PiAxKTsKPiA+ID4gIAkJc2l6ZSArPSB0bXA7 Cj4gPiA+ICAJCWJyZWFrOwo+ID4gPiAtCj4gPiA+ICsJY2FzZSBGT1VSQ0NfQVlVVjoKPiA+ID4g KwkJdG1wID0gKncgPDwgMjsKPiA+ID4gKwkJaWYgKHBpdGNoZXMpCj4gPiA+ICsJCQlwaXRjaGVz WzBdID0gdG1wOwo+ID4gPiArCQlzaXplID0gKmggKiB0bXA7Cj4gPiA+ICsJCWJyZWFrOwo+ID4g PiAgCWRlZmF1bHQ6Cj4gPiA+ICAJCSp3ID0gKCp3ICsgMSkgJiB+MTsKPiA+ID4gIAkJKmggPSAo KmggKyAxKSAmIH4xOwo+ID4gPiBAQCAtODA1LDcgKzgxNiwxMCBAQCB2b2lkIHNuYV92aWRlb19z cHJpdGVfc2V0dXAoc3RydWN0IHNuYSAqc25hLAo+ID4gPiBTY3JlZW5QdHIgc2NyZWVuKQo+ID4g PiAgCWFkYXB0b3ItPm5BdHRyaWJ1dGVzID0gQVJSQVlfU0laRShhdHRyaWJzKTsKPiA+ID4gIAlh ZGFwdG9yLT5wQXR0cmlidXRlcyA9IChYdkF0dHJpYnV0ZVJlYyAqKWF0dHJpYnM7Cj4gPiA+ICAK PiA+ID4gLQlpZiAoc25hX2hhc19zcHJpdGVfZm9ybWF0KHNuYSwgRFJNX0ZPUk1BVF9OVjEyKSkg ewo+ID4gPiArCWlmIChzbmFfaGFzX3Nwcml0ZV9mb3JtYXQoc25hLCBEUk1fRk9STUFUX1hZVVY4 ODg4KSkgewo+ID4gPiArCQlhZGFwdG9yLT5wSW1hZ2VzID0gKFh2SW1hZ2VSZWMgKilpbWFnZXNf YXl1djsKPiA+ID4gKwkJYWRhcHRvci0+bkltYWdlcyA9IEFSUkFZX1NJWkUoaW1hZ2VzX2F5dXYp Owo+ID4gPiArCX0gZWxzZSBpZiAoc25hX2hhc19zcHJpdGVfZm9ybWF0KHNuYSwgRFJNX0ZPUk1B VF9OVjEyKSkgewo+ID4gPiAgCQlhZGFwdG9yLT5wSW1hZ2VzID0gKFh2SW1hZ2VSZWMgKilpbWFn ZXNfbnYxMjsKPiA+ID4gIAkJYWRhcHRvci0+bkltYWdlcyA9IEFSUkFZX1NJWkUoaW1hZ2VzX252 MTIpOwo+ID4gPiAgCX0gZWxzZSBpZiAoc25hX2hhc19zcHJpdGVfZm9ybWF0KHNuYSwgRFJNX0ZP Uk1BVF9SR0I1NjUpKQo+ID4gPiB7Cj4gPiA+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRl b190ZXh0dXJlZC5jCj4gPiA+IGIvc3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+ID4gPiBp bmRleCBhNzg0ZmUyZS4uNDZjMjEzZWYgMTAwNjQ0Cj4gPiA+IC0tLSBhL3NyYy9zbmEvc25hX3Zp ZGVvX3RleHR1cmVkLmMKPiA+ID4gKysrIGIvc3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+ ID4gPiBAQCAtNjgsNiArNjgsNyBAQCBzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBnZW40X0ltYWdl c1tdID0gewo+ID4gPiAgCVhWSU1BR0VfSTQyMCwKPiA+ID4gIAlYVklNQUdFX05WMTIsCj4gPiA+ ICAJWFZJTUFHRV9VWVZZLAo+ID4gPiArCVhWSU1BR0VfQVlVViwKPiA+ID4gIAlYVk1DX1lVViwK PiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gQEAgLTMzNyw2ICszMzgsMTIgQEAKPiA+ID4gc25hX3Zp ZGVvX3RleHR1cmVkX3F1ZXJ5KGRkUXVlcnlJbWFnZUF0dHJpYnV0ZXNfQVJHUykKPiA+ID4gIAkJ CXBpdGNoZXNbMF0gPSBzaXplOwo+ID4gPiAgCQlzaXplICo9ICpoOwo+ID4gPiAgCQlicmVhazsK PiA+ID4gKwljYXNlIEZPVVJDQ19BWVVWOgo+ID4gPiArCQlzaXplID0gKncgPDwgMjsKPiA+ID4g KwkJaWYgKHBpdGNoZXMpCj4gPiA+ICsJCQlwaXRjaGVzWzBdID0gc2l6ZTsKPiA+ID4gKwkJc2l6 ZSAqPSAqaDsKPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ICAJY2FzZSBGT1VSQ0NfWFZNQzoKPiA+ID4g IAkJKmggPSAoKmggKyAxKSAmIH4xOwo+ID4gPiAgCQlzaXplID0gc2l6ZW9mKHVpbnQzMl90KTsK PiA+ID4gLS0gCj4gPiA+IDIuMTcuMQo+ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPiAKPiA+IAo+IC0t IAo+IEJlc3QgUmVnYXJkcywKPiAKPiBMaXNvdnNraXkgU3RhbmlzbGF2CgotLSAKVmlsbGUgU3ly asOkbMOkCkludGVsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbnRlbCBGaW5sYW5kIE95ClJlZ2lzdGVyZWQgQWRk cmVzczogUEwgMjgxLCAwMDE4MSBIZWxzaW5raSAKQnVzaW5lc3MgSWRlbnRpdHkgQ29kZTogMDM1 NzYwNiAtIDQgCkRvbWljaWxlZCBpbiBIZWxzaW5raSAKClRoaXMgZS1tYWlsIGFuZCBhbnkgYXR0 YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgp0aGUgc29sZSB1 c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBkaXN0cmlidXRp b24KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBp bnRlbmRlZApyZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBh bGwgY29waWVzLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==