From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80FB1890BE for ; Wed, 12 Sep 2018 07:25:44 +0000 (UTC) From: "Lisovskiy, Stanislav" Date: Wed, 12 Sep 2018 07:25:38 +0000 Message-ID: References: <20180910100318.3747-1-stanislav.lisovskiy@intel.com> <20180911125003.GZ5565@intel.com> <6673c3508863be8cdbfedb9453e6330bfeb13273.camel@intel.com> <20180911154738.GJ5565@intel.com> In-Reply-To: <20180911154738.GJ5565@intel.com> Content-Language: en-US Content-ID: <4DDE54C31286324988576B3ED27F5B70@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v5] lib/igt_fb: Added XYUV format support for testing List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "ville.syrjala@linux.intel.com" Cc: "igt-dev@lists.freedesktop.org" , "Syrjala, Ville" , "Peres, Martin" List-ID: T24gVHVlLCAyMDE4LTA5LTExIGF0IDE4OjQ3ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFR1ZSwgU2VwIDExLCAyMDE4IGF0IDAxOjIyOjIzUE0gKzAwMDAsIExpc292c2tpeSwg U3RhbmlzbGF2IHdyb3RlOg0KPiA+IE9uIFR1ZSwgMjAxOC0wOS0xMSBhdCAxNTo1MCArMDMwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOg0KPiA+ID4gT24gVHVlLCBTZXAgMTEsIDIwMTggYXQgMDg6 MjY6MjlBTSArMDAwMCwgTGlzb3Zza2l5LCBTdGFuaXNsYXYNCj4gPiA+IHdyb3RlOg0KPiA+ID4g PiBPbiBNb24sIDIwMTgtMDktMTAgYXQgMTM6MDMgKzAzMDAsIFN0YW5pc2xhdiBMaXNvdnNraXkg d3JvdGU6DQo+ID4gPiA+ID4gWFlVViBmb3JtYXQgc3VwcG9ydCBoYXMgYmVlbiBhZGRlZCB0byBE Uk0sIG1vZGlmaWVkDQo+ID4gPiA+ID4gSUdUIHRvIHJlZmxlY3QgdGhvc2UgY2hhbmdlcy4NCj4g PiA+ID4gPiANCj4gPiA+ID4gPiB2MjogRml4ZWQgbWVyZ2UgY29uZmxpY3QsIHN0YXJ0ZWQgdG8g dXNlIG5ldyB5dXY8PT5yZ2INCj4gPiA+ID4gPiAgICAgY29udmVyc2lvbiBmdW5jdGlvbnMuDQo+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gdjM6IEZpeGVkIGttc19hdmFpbGFibGVfbW9kZXNfY3JjIHRl c3QgdG8gc3VwcG9ydCBuZXcgWFlVVg0KPiA+ID4gPiA+ICAgICBmb3JtYXQuIEZpeGVkIGEgcHJv YmxlbSwgd2hlcmUgdGVzdCBjb21wbGFpbnMgdGhhdCB0d28NCj4gPiA+ID4gPiAgICAgb3V0cHV0 cyBtaWdodCB1c2Ugc2FtZSBwaXBlIGF0IHRoZSBzYW1lIHRpbWUuDQo+ID4gPiA+ID4gDQo+ID4g PiA+ID4gdjQ6IEZpeGVkIGNvbnZlcnRpb24gcHJvY2VkdXJlIGluIGlndF9mYiB0byBzdXBwb3J0 IFhZVVYNCj4gPiA+ID4gPiAgICAgcHJvcGVybHkuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gdjU6 IEZpeGVkIGEgY29kaW5nIHR5cG8uDQo+ID4gPiA+IA0KPiA+ID4gPiBNaW5vciBjb21tZW50OiB0 aGlzIGNoYW5nZSB3aWxsIGZhaWwgYWxsIHRlc3QgY2FzZXMgd2hlcmUNCj4gPiA+ID4gZHJtTW9k ZUFkZEZCMiBpcyBjYWxsZWQgd2l0aCBEUk1fRk9STUFUX1hZVVYgdW50aWwNCj4gPiA+ID4gY29y cmVzcG9uZGVudA0KPiA+ID4gPiBrZXJuZWwgcGF0Y2ggaXMgbm90IGluIHVzZSwgYXMgbWFueSBp Z3QgdGVzdCBjYXNlcyBkbyBub3QgY2hlY2sNCj4gPiA+ID4gaWYgdGhhdCBrZXJuZWwgZm9ybWF0 IGlzIHN1cHBvcnRlZCBvciBub3QsIHNvIGRybU1vZGVBZGRGQjINCj4gPiA+ID4gd2lsbA0KPiA+ ID4gPiBzaW1wbHkgZmFpbC4NCj4gPiA+IA0KPiA+ID4gV2hpY2ggdGVzdHMgYXJlIHRob3NlPyBU aGV5IHNob3VsZCBiZSBmaXhlZC4NCj4gPiANCj4gPiBUaG9zZSBhcmU6DQo+ID4gDQo+ID4gIGln dEBrbXNfZmxpcEBiYXNpYy1mbGlwLXZzLWRwbXMNCj4gPiAgDQo+ID4gIGlndEBrbXNfZmxpcEBi YXNpYy1mbGlwLXZzLW1vZGVzZXQNCj4gPiAgDQo+ID4gIGlndEBrbXNfZmxpcEBiYXNpYy1mbGlw LXZzLXdmX3ZibGFuaw0KPiA+ICANCj4gPiAgaWd0QGttc19mbGlwQGJhc2ljLXBsYWluLWZsaXAN Cj4gPiAgDQo+ID4gIGlndEBrbXNfc2V0bW9kZUBiYXNpYy1jbG9uZS1zaW5nbGUtY3J0Yw0KPiA+ IA0KPiA+IFByb2JhYmx5IGdvb2QgaWRlYSB0byBmaXggaXQgc28gdGhhdCBpdCBjaG9vc2VzIG9u bHkgZm9ybWF0cw0KPiA+IHNwZWNpZmllZCBpbiBkcm1fcGxhbmUtPmZvcm1hdHMgYW5kIGlndF9m Yl9zdXBwb3J0ZWRfZm9ybWF0LCBsaWtlDQo+ID4gaW4NCj4gPiBrbXNfcGxhbmUuIA0KPiA+IE90 aGVyd2lzZSBmb3IgZXhhbXBsZSBpbiBrbXNfZmxpcCwgaXQgdXNlcw0KPiA+IGlndF9icHBfZGVw dGhfdG9fZHJtX2Zvcm1hdA0KPiA+IHdoaWNoIGNob29zZXMgYW55IGZvcm1hdCB3aXRoIG1hdGNo aW5nIGJwcCBhbmQgZGVwdGgsIHdoaWNoIGluIGNhc2UNCj4gPiBvZg0KPiA+IFhSR0I4ODg4LCBh bHNvIGlzIHRoZSBzYW1lIGZvciBYWVVWLg0KPiANCj4gSUlSQyBhbGwgWVVWIGZvcm1hdHMgc2hv dWxkIGhhdmUgYSBkZXB0aCBvZiAtMSBpbiB0aGF0IHRhYmxlLCBwcmV0dHkNCj4gbXVjaCBleGFj dGx5IGZvciB0aGlzIHJlYXNvbi4gWW91IG5ldmVyIHdhbnQgdG8gcGljayBhbiBZVVYgZm9ybWF0 DQo+IHdoZW4NCj4ganVzdCBzcGVjaWZ5aW5nIGRlcHRoL2JwcC4NCg0KT2ssIHRoaXMgc291bmRz IG11Y2ggZWFzaWVyLiBJIHdpbGwgY2hhbmdlIGl0IHRvIC0xIHRoZW4gYW5kIGNoZWNrDQp0aGF0 IGl0IHN0aWxsIHdvcmtzIGFmdGVyIHRoYXQuDQoNCj4gDQo+ID4gIA0KPiA+IA0KPiA+ID4gPiA+ IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlA aW50ZWwNCj4gPiA+ID4gPiAuY29tDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4g PiAtLS0NCj4gPiA+ID4gPiAgaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNjLmggfCAgMSArDQo+ ID4gPiA+ID4gIGxpYi9pZ3RfZmIuYyAgICAgICAgICAgICAgICAgIHwgODkNCj4gPiA+ID4gPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDkwIGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNjLmggYi9pbmNsdWRlL2RybS0NCj4gPiA+ID4g PiB1YXBpL2RybV9mb3VyY2MuaA0KPiA+ID4gPiA+IGluZGV4IGUwNDYxM2QzLi4wYmY2NmRlMiAx MDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaA0KPiA+ ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oDQo+ID4gPiA+ID4gQEAg LTExMiw2ICsxMTIsNyBAQCBleHRlcm4gIkMiIHsNCj4gPiA+ID4gPiAgI2RlZmluZSBEUk1fRk9S TUFUX1ZZVVkJCWZvdXJjY19jb2RlKCdWJywgJ1knLA0KPiA+ID4gPiA+ICdVJywNCj4gPiA+ID4g PiAnWScpIC8qIFszMTowXSBZMTpDYjA6WTA6Q3IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLw0K PiA+ID4gPiA+ICANCj4gPiA+ID4gPiAgI2RlZmluZSBEUk1fRk9STUFUX0FZVVYJCWZvdXJjY19j b2RlKCdBJywgJ1knLA0KPiA+ID4gPiA+ICdVJywNCj4gPiA+ID4gPiAnVicpIC8qIFszMTowXSBB Olk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovDQo+ID4gPiA+ID4gKyNkZWZpbmUgRFJN X0ZPUk1BVF9YWVVWCQlmb3VyY2NfY29kZSgnWCcsICdZJywNCj4gPiA+ID4gPiAnVScsDQo+ID4g PiA+ID4gJ1YnKSAvKiBbMzE6MF0gWDpZOkNiOkNyIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLw0K PiA+ID4gPiA+ICANCj4gPiA+ID4gPiAgLyoNCj4gPiA+ID4gPiAgICogMiBwbGFuZSBSR0IgKyBB DQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYw0KPiA+ ID4gPiA+IGluZGV4IGFlNzFkOTY3Li5iNjBiNzNiNCAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9s aWIvaWd0X2ZiLmMNCj4gPiA+ID4gPiArKysgYi9saWIvaWd0X2ZiLmMNCj4gPiA+ID4gPiBAQCAt NzIsNiArNzIsMTAgQEAgc3RhdGljIHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3Qgew0KPiA+ID4g PiA+ICAJICAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCMTZfNTY1LA0KPiA+ID4gPiA+ICAJ ICAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDE2LCB9LA0KPiA+ID4gPiA+ICAJfSwN Cj4gPiA+ID4gPiArCXsgLm5hbWUgPSAiWFlVViIsIC5kZXB0aCA9IDI0LCAuZHJtX2lkID0NCj4g PiA+ID4gPiBEUk1fRk9STUFUX1hZVVYsDQo+ID4gPiA+ID4gKwkgIC5jYWlyb19pZCA9IENBSVJP X0ZPUk1BVF9SR0IyNCwNCj4gPiA+ID4gPiArCSAgLm51bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBw ID0geyAzMiwgfSwNCj4gPiA+ID4gPiArCX0sDQo+ID4gPiA+ID4gIAl7IC5uYW1lID0gIlhSR0I4 ODg4IiwgLmRlcHRoID0gMjQsIC5kcm1faWQgPQ0KPiA+ID4gPiA+IERSTV9GT1JNQVRfWFJHQjg4 ODgsDQo+ID4gPiA+ID4gIAkgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0IyNCwNCj4gPiA+ ID4gPiAgCSAgLm51bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBwID0geyAzMiwgfSwNCj4gPiA+ID4g PiBAQCAtNDE1LDYgKzQxOSwxMCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ib19mb3JfZmIoaW50IGZk LCBpbnQNCj4gPiA+ID4gPiB3aWR0aCwNCj4gPiA+ID4gPiBpbnQgaGVpZ2h0LA0KPiA+ID4gPiA+ ICAJCQkJbWVtc2V0KHB0ciArIG9mZnNldHNbMV0sDQo+ID4gPiA+ID4gMHg4MCwNCj4gPiA+ID4g PiAgCQkJCSAgICAgICBjYWxjdWxhdGVkX3N0cmlkZSAqDQo+ID4gPiA+ID4gaGVpZ2h0LzIpOw0K PiA+ID4gPiA+ICAJCQkJYnJlYWs7DQo+ID4gPiA+ID4gKwkJCWNhc2UgRFJNX0ZPUk1BVF9YWVVW Og0KPiA+ID4gPiA+ICsJCQkJd21lbXNldChwdHIsIGZ1bGxfcmFuZ2UgPw0KPiA+ID4gPiA+IDB4 MDAwZjgwODANCj4gPiA+ID4gPiA6IDB4MDAwZjgwODAsDQo+ID4gPiA+ID4gKwkJCQkJY2FsY3Vs YXRlZF9zdHJpZGUgKg0KPiA+ID4gPiA+IGhlaWdodCAvDQo+ID4gPiA+ID4gc2l6ZW9mKHdjaGFy X3QpKTsNCj4gPiA+ID4gPiArCQkJCWJyZWFrOw0KPiA+ID4gPiA+ICAJCQljYXNlIERSTV9GT1JN QVRfWVVZVjoNCj4gPiA+ID4gPiAgCQkJY2FzZSBEUk1fRk9STUFUX1lWWVU6DQo+ID4gPiA+ID4g IAkJCQl3bWVtc2V0KHB0ciwgZnVsbF9yYW5nZSA/DQo+ID4gPiA+ID4gMHg4MDAwODAwMA0KPiA+ ID4gPiA+IDogMHg4MDEwODAxMCwNCj4gPiA+ID4gPiBAQCAtMTUwMCw2ICsxNTA4LDc5IEBAIHN0 YXRpYyB2b2lkDQo+ID4gPiA+ID4gY29udmVydF9udjEyX3RvX3JnYjI0KHN0cnVjdA0KPiA+ID4g PiA+IGlndF9mYiAqZmIsIHN0cnVjdCBmYl9jb252ZXJ0X2JsaXRfdXBsbw0KPiA+ID4gPiA+ICAJ ZnJlZShidWYpOw0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ICtzdGF0aWMg dm9pZCBjb252ZXJ0X3l1djQ0NF90b19yZ2IyNChzdHJ1Y3QgaWd0X2ZiICpmYiwNCj4gPiA+ID4g PiBzdHJ1Y3QNCj4gPiA+ID4gPiBmYl9jb252ZXJ0X2JsaXRfdXBsb2FkICpibGl0KQ0KPiA+ID4g PiA+ICt7DQo+ID4gPiA+ID4gKwlpbnQgaSwgajsNCj4gPiA+ID4gPiArCXVpbnQ4X3QgKnl1djI0 Ow0KPiA+ID4gPiA+ICsJdWludDhfdCAqcmdiMjQgPSBibGl0LT5yZ2IyNC5tYXA7DQo+ID4gPiA+ ID4gKwl1bnNpZ25lZCByZ2IyNF9zdHJpZGUgPSBibGl0LT5yZ2IyNC5zdHJpZGUsDQo+ID4gPiA+ ID4gcGxhbmFyX3N0cmlkZSA9DQo+ID4gPiA+ID4gYmxpdC0+bGluZWFyLnN0cmlkZTsNCj4gPiA+ ID4gPiArCXVpbnQ4X3QgKmJ1ZiA9IG1hbGxvYyhibGl0LT5saW5lYXIuc2l6ZSk7DQo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaWd0X21hdDQgbSA9IGlndF95Y2Jjcl90b19yZ2JfbWF0cml4KGZiLQ0KPiA+ ID4gPiA+ID4gY29sb3JfZW5jb2RpbmcsDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gKwkJCQkJCSAg ICBmYi0NCj4gPiA+ID4gPiA+IGNvbG9yX3JhbmdlKTsNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gKwkvKg0KPiA+ID4gPiA+ICsJICogUmVhZGluZyBmcm9tIHRoZSBCTyBpcyBh d2Z1bGx5IHNsb3cgYmVjYXVzZSBvZg0KPiA+ID4gPiA+IGxhY2sNCj4gPiA+ID4gPiBvZg0KPiA+ ID4gPiA+IHJlYWQgY2FjaGluZywNCj4gPiA+ID4gPiArCSAqIGl0J3MgZmFzdGVyIHRvIGNvcHkg dGhlIHdob2xlIEJPIHRvIGEgdGVtcG9yYXJ5DQo+ID4gPiA+ID4gYnVmZmVyDQo+ID4gPiA+ID4g YW5kIGNvbnZlcnQNCj4gPiA+ID4gPiArCSAqIGZyb20gdGhlcmUuDQo+ID4gPiA+ID4gKwkgKi8N Cj4gPiA+ID4gPiArCWlndF9tZW1jcHlfZnJvbV93YyhidWYsIGJsaXQtPmxpbmVhci5tYXAsIGJs aXQtDQo+ID4gPiA+ID4gPiBsaW5lYXIuc2l6ZSk7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gKwl5 dXYyNCA9ICZidWZbYmxpdC0+bGluZWFyLm9mZnNldHNbMF1dOw0KPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiArCWZvciAoaSA9IDA7IGkgPCBmYi0+cGxhbmVfaGVpZ2h0WzBdOyBpKyspIHsNCj4gPiA+ ID4gPiArCQlmb3IgKGogPSAwOyBqIDwgZmItPnBsYW5lX3dpZHRoWzBdOyBqKyspIHsNCj4gPiA+ ID4gPiArCQkJZmxvYXQgeSwgdSwgdjsNCj4gPiA+ID4gPiArCQkJc3RydWN0IGlndF92ZWM0IHl1 djsNCj4gPiA+ID4gPiArCQkJc3RydWN0IGlndF92ZWM0IHJnYjsNCj4gPiA+ID4gPiArDQo+ID4g PiA+ID4gKwkJCXYgPSB5dXYyNFtpICogcGxhbmFyX3N0cmlkZSArDQo+ID4gPiA+ID4gaipzaXpl b2YodWludDMyX3QpXTsNCj4gPiA+ID4gPiArCQkJdSA9IHl1djI0W2kgKiBwbGFuYXJfc3RyaWRl ICsNCj4gPiA+ID4gPiBqKnNpemVvZih1aW50MzJfdCkgKyAxXTsNCj4gPiA+ID4gPiArCQkJeSA9 IHl1djI0W2kgKiBwbGFuYXJfc3RyaWRlICsNCj4gPiA+ID4gPiBqKnNpemVvZih1aW50MzJfdCkg KyAyXTsNCj4gPiA+ID4gPiArCQkJeXV2LmRbMF0gPSB5Ow0KPiA+ID4gPiA+ICsJCQl5dXYuZFsx XSA9IHU7DQo+ID4gPiA+ID4gKwkJCXl1di5kWzJdID0gdjsNCj4gPiA+ID4gPiArCQkJeXV2LmRb M10gPSAxLjBmOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCQkJcmdiID0gaWd0X21hdHJpeF90 cmFuc2Zvcm0oJm0sDQo+ID4gPiA+ID4gJnl1dik7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJ CQl3cml0ZV9yZ2IoJnJnYjI0W2kgKiByZ2IyNF9zdHJpZGUgKw0KPiA+ID4gPiA+IGoqc2l6ZW9m KHVpbnQzMl90KV0sICZyZ2IpOw0KPiA+ID4gPiA+ICsJCX0NCj4gPiA+ID4gPiArCX0NCj4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gKwlmcmVlKGJ1Zik7DQo+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBjb252ZXJ0X3JnYjI0X3RvX3l1 djQ0NChzdHJ1Y3QgaWd0X2ZiICpmYiwNCj4gPiA+ID4gPiBzdHJ1Y3QNCj4gPiA+ID4gPiBmYl9j b252ZXJ0X2JsaXRfdXBsb2FkICpibGl0KQ0KPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gKwlpbnQg aSwgajsNCj4gPiA+ID4gPiArCXVpbnQ4X3QgKnJnYjI0Ow0KPiA+ID4gPiA+ICsJdWludDhfdCAq eXV2NDQ0ID0gYmxpdC0+bGluZWFyLm1hcDsNCj4gPiA+ID4gPiArCXVuc2lnbmVkIHJnYjI0X3N0 cmlkZSA9IGJsaXQtPnJnYjI0LnN0cmlkZSwNCj4gPiA+ID4gPiBwbGFuYXJfc3RyaWRlID0NCj4g PiA+ID4gPiBibGl0LT5saW5lYXIuc3RyaWRlOw0KPiA+ID4gPiA+ICsJc3RydWN0IGlndF9tYXQ0 IG0gPSBpZ3RfcmdiX3RvX3ljYmNyX21hdHJpeChmYi0NCj4gPiA+ID4gPiA+IGNvbG9yX2VuY29k aW5nLA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ICsJCQkJCQkgICAgZmItDQo+ID4gPiA+ID4gPiBj b2xvcl9yYW5nZSk7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJcmdiMjQg PSBibGl0LT5yZ2IyNC5tYXA7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJZm9yIChpID0gMDsg aSA8IGZiLT5wbGFuZV9oZWlnaHRbMF07IGkrKykgew0KPiA+ID4gPiA+ICsJCWZvciAoaiA9IDA7 IGogPCBmYi0+cGxhbmVfd2lkdGhbMF07IGorKykgew0KPiA+ID4gPiA+ICsJCQlzdHJ1Y3QgaWd0 X3ZlYzQgcmdiOw0KPiA+ID4gPiA+ICsJCQlzdHJ1Y3QgaWd0X3ZlYzQgeXV2Ow0KPiA+ID4gPiA+ ICsJCQlmbG9hdCB5LCB1LCB2Ow0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCQkJcmVhZF9yZ2Io JnJnYiwgJnJnYjI0W2kgKg0KPiA+ID4gPiA+IHJnYjI0X3N0cmlkZSArDQo+ID4gPiA+ID4gaipz aXplb2YodWludDMyX3QpXSk7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJCQl5dXYgPSBpZ3Rf bWF0cml4X3RyYW5zZm9ybSgmbSwNCj4gPiA+ID4gPiAmcmdiKTsNCj4gPiA+ID4gPiArDQo+ID4g PiA+ID4gKwkJCXl1djQ0NFtpICogcGxhbmFyX3N0cmlkZSArDQo+ID4gPiA+ID4gaipzaXplb2Yo dWludDMyX3QpXSA9IHl1di5kWzJdOw0KPiA+ID4gPiA+ICsJCQl5dXY0NDRbaSAqIHBsYW5hcl9z dHJpZGUgKw0KPiA+ID4gPiA+IGoqc2l6ZW9mKHVpbnQzMl90KSArIDFdID0geXV2LmRbMV07DQo+ ID4gPiA+ID4gKwkJCXl1djQ0NFtpICogcGxhbmFyX3N0cmlkZSArDQo+ID4gPiA+ID4gaipzaXpl b2YodWludDMyX3QpICsgMl0gPSB5dXYuZFswXTsNCj4gPiA+ID4gPiArCQl9DQo+ID4gPiA+ID4g Kwl9DQo+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIHN0YXRpYyB2b2lkIGNvbnZlcnRfcmdiMjRfdG9fbnYx MihzdHJ1Y3QgaWd0X2ZiICpmYiwgc3RydWN0DQo+ID4gPiA+ID4gZmJfY29udmVydF9ibGl0X3Vw bG9hZCAqYmxpdCkNCj4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ICAJaW50IGksIGo7DQo+ID4gPiA+ ID4gQEAgLTE3NTYsNiArMTgzNyw5IEBAIHN0YXRpYyB2b2lkDQo+ID4gPiA+ID4gZGVzdHJveV9j YWlyb19zdXJmYWNlX19jb252ZXJ0KHZvaWQNCj4gPiA+ID4gPiAqYXJnKQ0KPiA+ID4gPiA+ICAJ Y2FzZSBEUk1fRk9STUFUX1ZZVVk6DQo+ID4gPiA+ID4gIAkJY29udmVydF9yZ2IyNF90b195dXl2 KGZiLCBibGl0LA0KPiA+ID4gPiA+IHl1eXZfc3dpenpsZShmYi0NCj4gPiA+ID4gPiA+IGRybV9m b3JtYXQpKTsNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAgCQlicmVhazsNCj4gPiA+ID4gPiArCWNh c2UgRFJNX0ZPUk1BVF9YWVVWOg0KPiA+ID4gPiA+ICsJCWNvbnZlcnRfcmdiMjRfdG9feXV2NDQ0 KGZiLCBibGl0KTsNCj4gPiA+ID4gPiArCQlicmVhazsNCj4gPiA+ID4gPiAgCWRlZmF1bHQ6DQo+ ID4gPiA+ID4gIAkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiQ29udmVyc2lvbiBub3QNCj4gPiA+ID4g PiBpbXBsZW1lbnRlZA0KPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+IGZvcm1hdHMgMHgleFxuIiwN Cj4gPiA+ID4gPiAgCQkJICAgICBmYi0+ZHJtX2Zvcm1hdCk7DQo+ID4gPiA+ID4gQEAgLTE4MDks NiArMTg5Myw5IEBAIHN0YXRpYyB2b2lkDQo+ID4gPiA+ID4gY3JlYXRlX2NhaXJvX3N1cmZhY2Vf X2NvbnZlcnQoaW50DQo+ID4gPiA+ID4gZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQ0KPiA+ID4gPiA+ ICAJY2FzZSBEUk1fRk9STUFUX1ZZVVk6DQo+ID4gPiA+ID4gIAkJY29udmVydF95dXl2X3RvX3Jn YjI0KGZiLCBibGl0LA0KPiA+ID4gPiA+IHl1eXZfc3dpenpsZShmYi0NCj4gPiA+ID4gPiA+IGRy bV9mb3JtYXQpKTsNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAgCQlicmVhazsNCj4gPiA+ID4gPiAr CWNhc2UgRFJNX0ZPUk1BVF9YWVVWOg0KPiA+ID4gPiA+ICsJCWNvbnZlcnRfeXV2NDQ0X3RvX3Jn YjI0KGZiLCBibGl0KTsNCj4gPiA+ID4gPiArCQlicmVhazsNCj4gPiA+ID4gPiAgCWRlZmF1bHQ6 DQo+ID4gPiA+ID4gIAkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiQ29udmVyc2lvbiBub3QNCj4gPiA+ ID4gPiBpbXBsZW1lbnRlZA0KPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+IGZvcm1hdHMgMHgleFxu IiwNCj4gPiA+ID4gPiAgCQkJICAgICBmYi0+ZHJtX2Zvcm1hdCk7DQo+ID4gPiA+ID4gQEAgLTE4 MjUsNiArMTkxMiw3IEBAIHN0YXRpYyB2b2lkDQo+ID4gPiA+ID4gY3JlYXRlX2NhaXJvX3N1cmZh Y2VfX2NvbnZlcnQoaW50DQo+ID4gPiA+ID4gZmQsIHN0cnVjdCBpZ3RfZmIgKmZiKQ0KPiA+ID4g PiA+ICAJCQkJICAgIGJsaXQsDQo+ID4gPiA+ID4gZGVzdHJveV9jYWlyb19zdXJmYWNlX19jb252 ZXJ0KTsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4g IC8qKg0KPiA+ID4gPiA+ICAgKiBpZ3RfZ2V0X2NhaXJvX3N1cmZhY2U6DQo+ID4gPiA+ID4gICAq IEBmZDogb3BlbiBkcm0gZmlsZSBkZXNjcmlwdG9yDQo+ID4gPiA+ID4gQEAgLTIwMTEsNiArMjA5 OSw3IEBAIGJvb2wgaWd0X2Zvcm1hdF9pc195dXYodWludDMyX3QNCj4gPiA+ID4gPiBkcm1fZm9y bWF0KQ0KPiA+ID4gPiA+ICAJY2FzZSBEUk1fRk9STUFUX1lWWVU6DQo+ID4gPiA+ID4gIAljYXNl IERSTV9GT1JNQVRfVVlWWToNCj4gPiA+ID4gPiAgCWNhc2UgRFJNX0ZPUk1BVF9WWVVZOg0KPiA+ ID4gPiA+ICsJY2FzZSBEUk1fRk9STUFUX1hZVVY6DQo+ID4gPiA+ID4gIAkJcmV0dXJuIHRydWU7 DQo+ID4gPiA+ID4gIAlkZWZhdWx0Og0KPiA+ID4gPiA+ICAJCXJldHVybiBmYWxzZTsNCj4gPiA+ ID4gDQo+ID4gPiA+IC0tIA0KPiA+ID4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gPiA+IA0KPiA+ID4g PiBMaXNvdnNraXkgU3RhbmlzbGF2DQo+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+IGlndC1kZXYgbWFpbGluZyBsaXN0DQo+ID4g PiA+IGlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gPiA+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg0KPiA+ID4gDQo+ID4gPiAN Cj4gPiANCj4gPiAtLSANCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gDQo+ID4gTGlzb3Zza2l5IFN0 YW5pc2xhdg0KPiANCj4gDQotLSANCkJlc3QgUmVnYXJkcywNCg0KTGlzb3Zza2l5IFN0YW5pc2xh dgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2 IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK