From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5109B6E981 for ; Wed, 6 Feb 2019 15:05:25 +0000 (UTC) References: <20190201111544.7920-1-maarten.lankhorst@linux.intel.com> <20190201111544.7920-3-maarten.lankhorst@linux.intel.com> <8d6ab2f0-afbb-6b74-9cf5-877576974320@intel.com> <6dc3d71e-b946-0e6c-60f1-b14b6147a618@intel.com> <4f39c744-a4d8-68ee-39b3-56a60bfd75bf@intel.com> From: Maarten Lankhorst Message-ID: <1cb77ffb-a39c-5676-3642-1f1eb9906c8f@linux.intel.com> Date: Wed, 6 Feb 2019 16:05:22 +0100 MIME-Version: 1.0 In-Reply-To: <4f39c744-a4d8-68ee-39b3-56a60bfd75bf@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 3/4] lib/igt_fb: Add support for Y21x formats as well. 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: "Sharma, Swati2" , igt-dev@lists.freedesktop.org List-ID: T3AgMDYtMDItMjAxOSBvbSAxNToyMSBzY2hyZWVmIFNoYXJtYSwgU3dhdGkyOgo+Cj4gT24gMDYt RmViLTE5IDEyOjE3IFBNLCBTaGFybWEsIFN3YXRpMiB3cm90ZToKPgo+Pgo+PiBPbiAwNS1GZWIt MTkgODowMSBQTSwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4+PiBPcCAwNS0wMi0yMDE5IG9t IDE0OjE0IHNjaHJlZWYgU2hhcm1hLCBTd2F0aTI6Cj4+Pj4gT24gMDEtRmViLTE5IDQ6NDUgUE0s IE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4+PiBUaG9zZSBmb3JtYXRzIGFyZSBwYWNrZWQg bGlrZSBZVVlWLCBidXQgb25seSAxNiBiaXRzIHBlciBjb21wb25lbnQuCj4+Pj4+Cj4+Pj4+IFNp Z25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+Cj4+Pj4+IC0tLQo+Pj4+PiDCoMKgIGluY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJj Yy5oIHzCoMKgIDYgKy0KPj4+Pj4gwqDCoCBsaWIvaWd0X2NvbG9yX2VuY29kaW5nLmPCoMKgwqDC oMKgIHzCoMKgIDMgKwo+Pj4+PiDCoMKgIGxpYi9pZ3RfZmIuY8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfCAxNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ Pj4+PiDCoMKgIDMgZmlsZXMgY2hhbmdlZCwgMTU0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKPj4+Pj4KPj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5o IGIvaW5jbHVkZS9kcm0tdWFwaS9kcm1fZm91cmNjLmgKPj4+Pj4gaW5kZXggYzlhNWU1Nzg3MDMx Li44ZjFiNWY4MzJhMDkgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2Zv dXJjYy5oCj4+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCj4+Pj4+IEBA IC0xNDksMTAgKzE0OSwxNCBAQCBleHRlcm4gIkMiIHsKPj4+Pj4gwqDCoCAjZGVmaW5lIERSTV9G T1JNQVRfWVZZVcKgwqDCoMKgwqDCoMKgIGZvdXJjY19jb2RlKCdZJywgJ1YnLCAnWScsICdVJykg LyogWzMxOjBdIENiMDpZMTpDcjA6WTAgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovCj4+Pj4+IMKg wqAgI2RlZmluZSBEUk1fRk9STUFUX1VZVlnCoMKgwqDCoMKgwqDCoCBmb3VyY2NfY29kZSgnVScs ICdZJywgJ1YnLCAnWScpIC8qIFszMTowXSBZMTpDcjA6WTA6Q2IwIDg6ODo4OjggbGl0dGxlIGVu ZGlhbiAqLwo+Pj4+PiDCoMKgICNkZWZpbmUgRFJNX0ZPUk1BVF9WWVVZwqDCoMKgwqDCoMKgwqAg Zm91cmNjX2NvZGUoJ1YnLCAnWScsICdVJywgJ1knKSAvKiBbMzE6MF0gWTE6Q2IwOlkwOkNyMCA4 Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPj4+Pj4gLQo+Pj4+PiDCoMKgICNkZWZpbmUgRFJNX0ZP Uk1BVF9BWVVWwqDCoMKgwqDCoMKgwqAgZm91cmNjX2NvZGUoJ0EnLCAnWScsICdVJywgJ1YnKSAv KiBbMzE6MF0gQTpZOkNiOkNyIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLwo+Pj4+PiDCoMKgICNk ZWZpbmUgRFJNX0ZPUk1BVF9YWVVWODg4OMKgwqDCoCBmb3VyY2NfY29kZSgnWCcsICdZJywgJ1Un LCAnVicpIC8qIFszMTowXSBYOlk6Q2I6Q3IgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovCj4+Pj4+ IMKgwqAgKy8qIExpa2UgWVVZViwgYnV0IDE2IGJwYywgbG93ZXN0IGJpdHMgdW51c2VkIGxpa2Ug aW4gRFJNX0ZPUk1BVF9QMDFYICovCj4+Pj4+ICsjZGVmaW5lIERSTV9GT1JNQVRfWTIxMMKgwqDC oMKgwqDCoMKgIGZvdXJjY19jb2RlKCdZJywgJzInLCAnMScsICcwJykKPj4+Pj4gKyNkZWZpbmUg RFJNX0ZPUk1BVF9ZMjEywqDCoMKgwqDCoMKgwqAgZm91cmNjX2NvZGUoJ1knLCAnMicsICcxJywg JzInKQo+Pj4+PiArI2RlZmluZSBEUk1fRk9STUFUX1kyMTbCoMKgwqDCoMKgwqDCoCBmb3VyY2Nf Y29kZSgnWScsICcyJywgJzEnLCAnNicpCj4+Pj4+ICsKPj4+Pj4gwqDCoCAvKgo+Pj4+PiDCoMKg wqAgKiBwYWNrZWQgWUNiQ3I0MjAgMngyIHRpbGVkIGZvcm1hdHMKPj4+Pj4gwqDCoMKgICogZmly c3QgNjQgYml0cyB3aWxsIGNvbnRhaW4gWSxDYixDciBjb21wb25lbnRzIGZvciBhIDJ4MiB0aWxl Cj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2NvbG9yX2VuY29kaW5nLmMgYi9saWIvaWd0X2Nv bG9yX2VuY29kaW5nLmMKPj4+Pj4gaW5kZXggYjdhMTJhMWUwN2Y3Li42ZjgyZmNlYzYyZTQgMTAw NjQ0Cj4+Pj4+IC0tLSBhL2xpYi9pZ3RfY29sb3JfZW5jb2RpbmcuYwo+Pj4+PiArKysgYi9saWIv aWd0X2NvbG9yX2VuY29kaW5nLmMKPj4+Pj4gQEAgLTE0NCw2ICsxNDQsOSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGNvbG9yX2VuY29kaW5nX2Zvcm1hdCB7Cj4+Pj4+IMKgwqDCoMKgwqDCoCB7IERS TV9GT1JNQVRfUDAxMCwgNjU0NzIuZiwgNDA5Ni5mLCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYs IDYxNDQwLmYgfSwKPj4+Pj4gwqDCoMKgwqDCoMKgIHsgRFJNX0ZPUk1BVF9QMDEyLCA2NTUyMC5m LCA0MDk2LmYsIDYwMTYwLmYsIDQwOTYuZiwgMzI3NjguZiwgNjE0NDAuZiB9LAo+Pj4+PiDCoMKg wqDCoMKgwqAgeyBEUk1fRk9STUFUX1AwMTYsIDY1NTM1LmYsIDQwOTYuZiwgNjAxNjAuZiwgNDA5 Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+Pj4+ICvCoMKgwqAgeyBEUk1fRk9STUFUX1kyMTAs IDY1NDcyLmYsIDQwOTYuZiwgNjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+ Pj4+ICvCoMKgwqAgeyBEUk1fRk9STUFUX1kyMTIsIDY1NTIwLmYsIDQwOTYuZiwgNjAxNjAuZiwg NDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+Pj4+ICvCoMKgwqAgeyBEUk1fRk9STUFUX1ky MTYsIDY1NTM1LmYsIDQwOTYuZiwgNjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0s Cj4+Pj4+IMKgwqAgfTsKPj4+Pj4gwqDCoCDCoCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbG9yX2Vu Y29kaW5nX2Zvcm1hdCAqbG9va3VwX2ZvdXJjYyh1aW50MzJfdCBmb3VyY2MpCj4+Pj4+IGRpZmYg LS1naXQgYS9saWIvaWd0X2ZiLmMgYi9saWIvaWd0X2ZiLmMKPj4+Pj4gaW5kZXggOGJkMDQyMGZj MmU0Li5jMTRjYzEwZDFiNzMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2xpYi9pZ3RfZmIuYwo+Pj4+PiAr KysgYi9saWIvaWd0X2ZiLmMKPj4+Pj4gQEAgLTE1MSw2ICsxNTEsMTggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3Qgewo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIC5jYWly b19pZCA9IENBSVJPX0ZPUk1BVF9SR0IyNCwKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCAubnVtX3Bs YW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDE2LCB9LAo+Pj4+PiDCoMKgwqDCoMKgwqAgfSwKPj4+ Pj4gK8KgwqDCoCB7IC5uYW1lID0gIlkyMTAiLCAuZGVwdGggPSAtMSwgLmRybV9pZCA9IERSTV9G T1JNQVRfWTIxMCwKPj4+Pj4gK8KgwqDCoMKgwqAgLmNhaXJvX2lkID0gQ0FJUk9fRk9STUFUX1JH Qjk2RiwKPj4+Pj4gK8KgwqDCoMKgwqAgLm51bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBwID0geyAz MiwgfSwKPj4+Pj4gK8KgwqDCoCB9LAo+Pj4+PiArwqDCoMKgIHsgLm5hbWUgPSAiWTIxMiIsIC5k ZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9ZMjEyLAo+Pj4+PiArwqDCoMKgwqDCoCAu Y2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCOTZGLAo+Pj4+PiArwqDCoMKgwqDCoCAubnVtX3Bs YW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDMyLCB9LAo+Pj4+PiArwqDCoMKgIH0sCj4+Pj4+ICvC oMKgwqAgeyAubmFtZSA9ICJZMjE2IiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFU X1kyMTYsCj4+Pj4+ICvCoMKgwqDCoMKgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0I5NkYs Cj4+Pj4+ICvCoMKgwqDCoMKgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsgMzIsIH0s Cj4+Pj4+ICvCoMKgwqAgfSwKPj4+Pj4gwqDCoMKgwqDCoMKgIHsgLm5hbWUgPSAiUDAxMCIsIC5k ZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9QMDEwLAo+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0I5NkYsCj4+Pj4+IMKgwqDCoMKgwqDCoMKg wqAgLm51bV9wbGFuZXMgPSAyLCAucGxhbmVfYnBwID0geyAxNiwgMzIgfSwKPj4+Pj4gQEAgLTU1 Myw2ICs1NjUsMTMgQEAgc3RhdGljIGludCBjcmVhdGVfYm9fZm9yX2ZiKHN0cnVjdCBpZ3RfZmIg KmZiKQo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm Yi0+b2Zmc2V0c1sxXSAvIHNpemVvZih3Y2hhcl90KSk7Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB3bWVtc2V0KHB0ciArIGZiLT5vZmZzZXRzWzFdLCAweDgwMDA4 MDAwLAo+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBE SVZfUk9VTkRfVVAoZmItPmhlaWdodCwyKSAqIGZiLT5zdHJpZGVzWzFdIC8gc2l6ZW9mKHdjaGFy X3QpKTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1kyMTA6 Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9ZMjEyOgo+Pj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfWTIxNjoKPj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3bWVtc2V0KHB0ciArIGZiLT5vZmZzZXRzWzBd LAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZnVsbF9yYW5n ZSA/IDB4ODAwMDAwMDAgOiAweDgwMDAxMDAwLAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZmItPnN0cmlkZXNbMF0gKiBmYi0+cGxhbmVfaGVpZ2h0WzBdIC8g c2l6ZW9mKHdjaGFyX3QpKTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBi cmVhazsKPj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZ2VtX211bm1hcChwdHIsIGZiLT5zaXplKTsKPj4+PiBIaSBN YWFydGVuLAo+Pj4+Cj4+Pj4gV2hpbGUgdGVzdGluZyBZMjEwIHBpeGVsIGZvcm1hdCwgSUdUIGlz IGZhaWxpbmcgd2l0aCBkZWJ1ZyBtZXNzYWdlIHNob3dpbmcgaWd0X2NyZWF0ZV9mYigpIGZhaWx1 cmUKPj4+Pgo+Pj4+IChrbXNfcGxhbmU6Mzk3NCkgaWd0X2ZiLUNSSVRJQ0FMOiBUZXN0IGFzc2Vy dGlvbiBmYWlsdXJlIGZ1bmN0aW9uIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplLCBmaWxlIC4u L2xpYi9pZ3RfZmIuYzoxMDUxOgo+Pj4+IChrbXNfcGxhbmU6Mzk3NCkgaWd0X2ZiLUNSSVRJQ0FM OiBGYWlsZWQgYXNzZXJ0aW9uOiAoX19rbXNfYWRkZmIoZmItPmZkLCBmYi0+Z2VtX2hhbmRsZSwg ZmItPndpZHRoLCBmYi0+aGVpZ2h0LCBmYi0+ZHJtX2Zvcm1hdCwgZmItPnRpbGluZywgZmItPnN0 cmlkZXMsIGZiLT5vZmZzZXRzLCBmYi0+bnVtX3BsYW5lcywgZmxhZ3MsICZmYi0+ZmJfaWQpKSA9 PSAwCj4+Pj4gKGttc19wbGFuZTozOTc0KSBpZ3RfZmItQ1JJVElDQUw6IExhc3QgZXJybm86IDIy LCBJbnZhbGlkIGFyZ3VtZW50Cj4+Pj4KPj4+PiBkbWVzZyBzaG93aW5nIGJhZCBwaXRjaCAxMjgw MCBmb3IgWTIxMCBwaXhlbCBmb3JtYXQKPj4+Pgo+Pj4+IFvCoCA2MzQuMDY2NjA4XSBbZHJtOmRy bV9pbnRlcm5hbF9mcmFtZWJ1ZmZlcl9jcmVhdGVdIGJhZCBwaXRjaCAxMjgwMCBmb3IgcGxhbmUg MAo+Pj4+IFvCoCA2MzQuMTA0NDQ0XSBbSUdUXSBrbXNfcGxhbmU6IGV4aXRpbmcsIHJldD05OQo+ Pj4+Cj4+Pj4gQ2FuIHlvdSBwbGVhc2UgY29uZmlybSB3aGV0aGVyIGNoYW5nZXMgbmVlZHMgdG8g YmUgZG9uZSBmcm9tIGlndCBvciBzb21lIGlzc3VlIHdpdGggWTJ4eCBkcml2ZXIgcGF0Y2hlcz8K Pj4+Pgo+Pj4+PiBAQCAtMjEzOSw2ICsyMTU4LDEyMCBAQCBzdGF0aWMgdm9pZCBjb252ZXJ0X2Zs b2F0X3RvX3AwMVgoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKPj4+Pj4gwqDCoMKgwqDCoMKgIH0K Pj4+Pj4gwqDCoCB9Cj4+Pj4+IMKgwqAgKwo+Pj4+PiArc3RhdGljIHZvaWQgY29udmVydF9ZMjFY X3RvX2Zsb2F0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4+Pj4+ICt7Cj4+Pj4+ICvCoMKgwqAg aW50IGksIGo7Cj4+Pj4+ICvCoMKgwqAgY29uc3QgdWludDE2X3QgKnl1eXY7Cj4+Pj4+ICvCoMKg wqAgdWludDE2X3QgKmJ1ZjsKPj4+Pj4gK8KgwqDCoCBmbG9hdCAqcHRyID0gY3Z0LT5kc3QucHRy Owo+Pj4+PiArwqDCoMKgIHVuc2lnbmVkIGludCBmbG9hdF9zdHJpZGUgPSBjdnQtPmRzdC5mYi0+ c3RyaWRlc1swXSAvIHNpemVvZigqcHRyKTsKPj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgeXV5 dl9zdHJpZGUgPSBjdnQtPnNyYy5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigqeXV5dik7Cj4+Pj4+ ICvCoMKgwqAgc3RydWN0IGlndF9tYXQ0IG0gPSBpZ3RfeWNiY3JfdG9fcmdiX21hdHJpeChjdnQt PnNyYy5mYi0+ZHJtX2Zvcm1hdCwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCwKPj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj dnQtPnNyYy5mYi0+Y29sb3JfZW5jb2RpbmcsCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3Z0LT5zcmMuZmItPmNvbG9yX3Jhbmdl KTsKPj4+Pj4gKwo+Pj4+PiArwqDCoMKgIGlndF9hc3NlcnQoKGN2dC0+c3JjLmZiLT5kcm1fZm9y bWF0ID09IERSTV9GT1JNQVRfWTIxMCB8fAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj dnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1kyMTIgfHwKPj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9Z MjE2KSAmJgo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3Z0LT5kc3QuZmItPmRybV9mb3Jt YXQgPT0gSUdUX0ZPUk1BVF9GTE9BVCk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCB5dXl2ID0gYnVm ID0gY29udmVydF9zcmNfZ2V0KGN2dCk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBmb3IgKGkgPSAw OyBpIDwgY3Z0LT5kc3QuZmItPmhlaWdodDsgaSsrKSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBm b3IgKGogPSAwOyBqIDwgY3Z0LT5kc3QuZmItPndpZHRoIC8gMjsgaisrKSB7Cj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qIENvbnZlcnQgMngxIHBpeGVsIGJsb2NrcyAqLwo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaWd0X3ZlYzQgeXV2WzJdOwo+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaWd0X3ZlYzQgcmdiWzJdOwo+Pj4+PiArCj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1dlswXS5kWzBdID0geXV5dltqICogNCArIDBdOwo+ Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB5dXZbMV0uZFswXSA9IHl1eXZbaiAqIDQgKyAy XTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2WzBdLmRbMV0gPSB5dXZbMV0uZFsx XSA9IHl1eXZbaiAqIDQgKyAxXTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2WzBd LmRbMl0gPSB5dXZbMV0uZFsyXSA9IHl1eXZbaiAqIDQgKyAzXTsKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgeXV2WzBdLmRbM10gPSB5dXZbMV0uZFszXSA9IDEuMGY7Cj4+Pj4+ICsKPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmdiWzBdID0gaWd0X21hdHJpeF90cmFuc2Zvcm0o Jm0sICZ5dXZbMF0pOwo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZ2JbMV0gPSBpZ3Rf bWF0cml4X3RyYW5zZm9ybSgmbSwgJnl1dlsxXSk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgd3JpdGVfcmdiZigmcHRyW2ogKiA2ICsgMF0sICZyZ2JbMF0pOwo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9yZ2JmKCZwdHJbaiAqIDYgKyAzXSwgJnJnYlsx XSk7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKg IGlmIChjdnQtPmRzdC5mYi0+d2lkdGggJiAxKSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHN0cnVjdCBpZ3RfdmVjNCB5dXY7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0 cnVjdCBpZ3RfdmVjNCByZ2I7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg eXV2LmRbMF0gPSB5dXl2W2ogKiA0ICsgMF07Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHl1di5kWzFdID0geXV5dltqICogNCArIDFdOwo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB5dXYuZFsyXSA9IHl1eXZbaiAqIDQgKyAzXTsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgeXV2LmRbM10gPSAxLjBmOwo+Pj4+PiArCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJnYiA9IGlndF9tYXRyaXhfdHJhbnNmb3JtKCZtLCAmeXV2KTsKPj4+Pj4gKwo+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9yZ2JmKCZwdHJbaiAqIDYgKyAwXSwgJnJnYik7Cj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHB0ciAr PSBmbG9hdF9zdHJpZGU7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB5dXl2ICs9IHl1eXZfc3RyaWRl Owo+Pj4+PiArwqDCoMKgIH0KPj4+Pj4gKwo+Pj4+PiArwqDCoMKgIGNvbnZlcnRfc3JjX3B1dChj dnQsIGJ1Zik7Cj4+Pj4+ICt9Cj4+Pj4+ICsKPj4+Pj4gK3N0YXRpYyB2b2lkIGNvbnZlcnRfZmxv YXRfdG9fWTIxWChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+Pj4+PiArewo+Pj4+PiArwqDCoMKg IGludCBpLCBqOwo+Pj4+PiArwqDCoMKgIHVpbnQxNl90ICp5dXl2ID0gY3Z0LT5kc3QucHRyOwo+ Pj4+PiArwqDCoMKgIGNvbnN0IGZsb2F0ICpwdHIgPSBjdnQtPnNyYy5wdHI7Cj4+Pj4+ICvCoMKg wqAgdW5zaWduZWQgZmxvYXRfc3RyaWRlID0gY3Z0LT5zcmMuZmItPnN0cmlkZXNbMF0gLyBzaXpl b2YoKnB0cik7Cj4+Pj4+ICvCoMKgwqAgdW5zaWduZWQgeXV5dl9zdHJpZGUgPSBjdnQtPmRzdC5m Yi0+c3RyaWRlc1swXSAvIHNpemVvZigqeXV5dik7Cj4+Pj4+ICvCoMKgwqAgc3RydWN0IGlndF9t YXQ0IG0gPSBpZ3RfcmdiX3RvX3ljYmNyX21hdHJpeChjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCwK Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBjdnQtPmRzdC5mYi0+ZHJtX2Zvcm1hdCwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdnQtPmRzdC5mYi0+Y29sb3JfZW5j b2RpbmcsCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY3Z0LT5kc3QuZmItPmNvbG9yX3JhbmdlKTsKPj4+Pj4gKwo+Pj4+PiArwqDC oMKgIGlndF9hc3NlcnQoY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQgPT0gSUdUX0ZPUk1BVF9GTE9B VCAmJgo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0 ID09IERSTV9GT1JNQVRfWTIxMCB8fAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdnQt PmRzdC5mYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX1kyMTIgfHwKPj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZMjE2 KSk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgY3Z0LT5kc3QuZmItPmhl aWdodDsgaSsrKSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKGogPSAwOyBqIDwgY3Z0LT5k c3QuZmItPndpZHRoIC8gMjsgaisrKSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8q IENvbnZlcnQgMngxIHBpeGVsIGJsb2NrcyAqLwo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgaWd0X3ZlYzQgcmdiWzJdOwo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgaWd0X3ZlYzQgeXV2WzJdOwo+Pj4+PiArCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJlYWRfcmdiZigmcmdiWzBdLCAmcHRyW2ogKiA2ICsgMF0pOwo+Pj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZWFkX3JnYmYoJnJnYlsxXSwgJnB0cltqICogNiArIDNdKTsKPj4+Pj4g Kwo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB5dXZbMF0gPSBpZ3RfbWF0cml4X3RyYW5z Zm9ybSgmbSwgJnJnYlswXSk7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1dlsxXSA9 IGlndF9tYXRyaXhfdHJhbnNmb3JtKCZtLCAmcmdiWzFdKTsKPj4+Pj4gKwo+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB5dXl2W2ogKiA0ICsgMF0gPSB5dXZbMF0uZFswXTsKPj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV5dltqICogNCArIDJdID0geXV2WzFdLmRbMF07Cj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQgKyAxXSA9ICh5dXZbMF0uZFsxXSAr IHl1dlsxXS5kWzFdKSAvIDIuMGY7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZb aiAqIDQgKyAzXSA9ICh5dXZbMF0uZFsyXSArIHl1dlsxXS5kWzJdKSAvIDIuMGY7Cj4+Pj4+ICvC oMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChjdnQtPmRz dC5mYi0+d2lkdGggJiAxKSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBp Z3RfdmVjNCByZ2I7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpZ3RfdmVj NCB5dXY7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVhZF9yZ2JmKCZy Z2IsICZwdHJbaiAqIDYgKyAwXSk7Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgeXV2ID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0sICZyZ2IpOwo+Pj4+PiArCj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQgKyAwXSA9IHl1di5kWzBdOwo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB5dXl2W2ogKiA0ICsgMV0gPSB5dXYuZFsxXTsKPj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV5dltqICogNCArIDNdID0geXV2LmRbMl07Cj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+ICsKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHB0ciArPSBm bG9hdF9zdHJpZGU7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB5dXl2ICs9IHl1eXZfc3RyaWRlOwo+ Pj4+PiArwqDCoMKgIH0KPj4+Pj4gK30KPj4+Pj4gKwo+Pj4+PiDCoMKgIHN0YXRpYyB2b2lkIGNv bnZlcnRfcGl4bWFuKHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4+Pj4+IMKgwqAgewo+Pj4+PiDC oMKgwqDCoMKgwqAgcGl4bWFuX2Zvcm1hdF9jb2RlX3Qgc3JjX3BpeG1hbiA9IGRybV9mb3JtYXRf dG9fcGl4bWFuKGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0KTsKPj4+Pj4gQEAgLTIyMjEsNiArMjM1 NCwxMSBAQCBzdGF0aWMgdm9pZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+Pj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnZlcnRfcDAxWF90b19mbG9hdChjdnQpOwo+Pj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgIGNhc2UgRFJNX0ZPUk1BVF9ZMjEwOgo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1f Rk9STUFUX1kyMTI6Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfWTIxNjoK Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udmVydF9ZMjFYX3RvX2Zsb2F0KGN2dCk7 Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+Pj4+PiDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIChjdnQtPnNyYy5mYi0+ZHJt X2Zvcm1hdCA9PSBJR1RfRk9STUFUX0ZMT0FUKSB7Cj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg IHN3aXRjaCAoY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQpIHsKPj4+Pj4gQEAgLTIyMjksNiArMjM2 NywxMSBAQCBzdGF0aWMgdm9pZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+Pj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnZlcnRfZmxvYXRfdG9fcDAxWChjdnQpOwo+Pj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgIGNhc2UgRFJNX0ZPUk1BVF9ZMjEwOgo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1f Rk9STUFUX1kyMTI6Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfWTIxNjoK Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udmVydF9mbG9hdF90b19ZMjFYKGN2dCk7 Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+Pj4+PiDCoMKgwqDCoMKgwqAgfQo+Pj4+PiDCoMKgIEBAIC0yNTgzLDYgKzI3 MjYsOSBAQCBib29sIGlndF9mb3JtYXRfaXNfeXV2KHVpbnQzMl90IGRybV9mb3JtYXQpCj4+Pj4+ IMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfUDAxMDoKPj4+Pj4gwqDCoMKgwqDCoMKgIGNh c2UgRFJNX0ZPUk1BVF9QMDEyOgo+Pj4+PiDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1Aw MTY6Cj4+Pj4+ICvCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1kyMTA6Cj4+Pj4+ICvCoMKgwqAgY2Fz ZSBEUk1fRk9STUFUX1kyMTI6Cj4+Pj4+ICvCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1kyMTY6Cj4+ Pj4+IMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfWVVZVjoKPj4+Pj4gwqDCoMKgwqDCoMKg IGNhc2UgRFJNX0ZPUk1BVF9ZVllVOgo+Pj4+PiDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFU X1VZVlk6Cj4+PiBDYW4gSSBnZXQgdGhlIGZ1bGwgSUdUIC8gZG1lc2cgbG9ncz8gSSBjYW4ndCBz ZWUgd2hhdCB0aGUgZmIgZGltZW5zaW9ucyB0aGV5IGFyZS4KPj4KPj4gSUdUIExvZ3M6Cj4+Cj4+ IChrbXNfcGxhbmU6NDk2MCkgSU5GTzogVGVzdGluZyBmb3JtYXQgWTIxMCAoMHgzMDMxMzI1OSkg b24gQS4wCj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2ZiLURFQlVHOiBpZ3RfY3JlYXRlX2ZiX3dp dGhfYm9fc2l6ZSh3aWR0aD0zMjAwLCBoZWlnaHQ9MTgwMCwgZm9ybWF0PTB4MzAzMTMyNTksIHRp bGluZz0weDAsIHNpemU9MCkKPj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfZmItREVCVUc6IGlndF9j cmVhdGVfZmJfd2l0aF9ib19zaXplKGhhbmRsZT0yLCBwaXRjaD0xMjgwMCkKPj4gKGttc19wbGFu ZTo0OTYwKSBpb2N0bF93cmFwcGVycy1ERUJVRzogVGVzdCByZXF1aXJlbWVudCBwYXNzZWQ6IGln dF9oYXNfZmJfbW9kaWZpZXJzKGZkKQo+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9mYi1DUklUSUNB TDogVGVzdCBhc3NlcnRpb24gZmFpbHVyZSBmdW5jdGlvbiBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9f c2l6ZSwgZmlsZSAuLi9saWIvaWd0X2ZiLmM6MTA1MToKPj4gKGttc19wbGFuZTo0OTYwKSBpZ3Rf ZmItQ1JJVElDQUw6IEZhaWxlZCBhc3NlcnRpb246IChfX2ttc19hZGRmYihmYi0+ZmQsIGZiLT5n ZW1faGFuZGxlLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsIGZiLT5kcm1fZm9ybWF0LCBmYi0+dGls aW5nLCBmYi0+c3RyaWRlcywgZmItPm9mZnNldHMsIGZiLT5udW1fcGxhbmVzLCBmbGFncywgJmZi LT5mYl9pZCkpID09IDAKPj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfZmItQ1JJVElDQUw6IExhc3Qg ZXJybm86IDIyLCBJbnZhbGlkIGFyZ3VtZW50Cj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUt SU5GTzogU3RhY2sgdHJhY2U6Cj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKg ICMwIC4uL2xpYi9pZ3RfY29yZS5jOjE0NzQgX19pZ3RfZmFpbF9hc3NlcnQoKQo+PiAoa21zX3Bs YW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjMSAuLi9saWIvaWd0X2ZiLmM6MTA1MyBpZ3Rf Y3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZSgpCj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5G TzrCoMKgICMyIC4uL2xpYi9pZ3RfZmIuYzoxMDc4IGlndF9jcmVhdGVfZmIoKQo+PiAoa21zX3Bs YW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjMyAuLi9saWIvaWd0X2ZiLmM6MTExMyBpZ3Rf Y3JlYXRlX2NvbG9yX2ZiKCkKPj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1JTkZPOsKgwqAg IzQgLi4vdGVzdHMva21zX3BsYW5lLmM6NDE3IHRlc3RfZm9ybWF0X3BsYW5lX2NvbG9yKCkKPj4g KGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1JTkZPOsKgwqAgIzUgLi4vdGVzdHMva21zX3BsYW5l LmM6NTU2IHRlc3RfZm9ybWF0X3BsYW5lKCkKPj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1J TkZPOsKgwqAgIzYgLi4vdGVzdHMva21zX3BsYW5lLmM6NTg3IHRlc3RfcGl4ZWxfZm9ybWF0cygp Cj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICM3IC4uL3Rlc3RzL2ttc19w bGFuZS5jOjYwMiBydW5fdGVzdHNfZm9yX3BpcGVfcGxhbmUoKQo+PiAoa21zX3BsYW5lOjQ5NjAp IGlndF9jb3JlLUlORk86wqDCoCAjOCAuLi90ZXN0cy9rbXNfcGxhbmUuYzo2NTcgX19yZWFsX21h aW42NDIoKQo+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjOSAuLi90ZXN0 cy9rbXNfcGxhbmUuYzo2NDIgbWFpbigpCj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5G TzrCoMKgICMxMCAuLi9jc3UvbGliYy1zdGFydC5jOjMyNSBfX2xpYmNfc3RhcnRfbWFpbigpCj4+ IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICMxMSBbX3N0YXJ0KzB4MjldCj4+ IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICMxMiBbPHVua25vd24+KzB4MF0K Pj4gKioqKsKgIEVORMKgICoqKioKPj4KPj4gRG1lc2cgTG9nczogQXR0YWNoZWQgeTIxMF9kbWVz Z19mYWlsdXJlLnR4dAo+Pgo+IFNhbWUgZmFpbHVyZSBleGlzdHMgZm9yIGFsbCB0aGUgWTJ4eCBm b3JtYXRzIFkyMTAvWTIxMi9ZMjE2LgoKU2VlbXMgbGlrZSBhIGJ1ZyB3aXRoIHlvdXIgZm9ybWF0 IGRlZmluaXRpb24gaW4gdGhlIGtlcm5lbD8KClkyMTAgaXMgWTAgVSBZMSBWLCBmb3IgYSB0b3Rh bCBvZiA2NCBiaXRzIHBlciAyIFkgcGl4ZWxzLgoKcGl0Y2ggaXMgc2V0IHRvIDEyODAwIC8gNCA9 IDMyMDAuIFRoaXMgaXMgZXhhY3RseSB0aGUgbWluaW11bSwgc28gc2hvdWxkIHBhc3MuLgoKSSds bCBoYXZlIHRvIHJlYmFzZSB0aGUgSUdUIHBhdGNoZXMsIGJ1dCBhcyBmYXIgYXMgSSBjYW4gdGVs bCB0aGV5J3JlIGNvcnJlY3QsIGFuZCB5b3UgaGF2ZSBhIGJ1ZyBpbiB5b3VyIGltcGxlbWVudGF0 aW9uLiA6KQoKfk1hYXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dgo=