From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH i-g-t] igt/kms_rotation_crc: Add horizontal flip subtest. Date: Tue, 19 Dec 2017 13:49:40 -0800 Message-ID: <20171219214940.6jpahc7trjfxyvju@intel.com> References: <1511391955-11715-1-git-send-email-anusha.srivatsa@intel.com> <83F5C7385F545743AD4FB2A62F75B0733382B640@ORSMSX107.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E75B6E34F for ; Tue, 19 Dec 2017 21:49:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <83F5C7385F545743AD4FB2A62F75B0733382B640@ORSMSX107.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Srivatsa, Anusha" Cc: Joseph Garvey , intel-gfx , "Strano, Luis" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBEZWMgMTksIDIwMTcgYXQgMTI6MjA6MThBTSArMDAwMCwgU3JpdmF0c2EsIEFudXNo YSB3cm90ZToKPiAKPiAKPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+RnJvbTogZGFu aWVsLnZldHRlckBmZndsbC5jaCBbbWFpbHRvOmRhbmllbC52ZXR0ZXJAZmZ3bGwuY2hdIE9uIEJl aGFsZiBPZiBEYW5pZWwKPiA+VmV0dGVyCj4gPlNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAxNCwg MjAxNyAyOjE0IEFNCj4gPlRvOiBTcml2YXRzYSwgQW51c2hhIDxhbnVzaGEuc3JpdmF0c2FAaW50 ZWwuY29tPjsgU3RyYW5vLCBMdWlzCj4gPjxsdWlzLnN0cmFub0BpbnRlbC5jb20+OyBMYXR2YWxh LCBQZXRyaSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+OyBMb2ZzdGVkdCwKPiA+TWFydGEgPG1h cnRhLmxvZnN0ZWR0QGludGVsLmNvbT47IFNhYXJpbmVuLCBKYW5pIDxqYW5pLnNhYXJpbmVuQGlu dGVsLmNvbT4KPiA+Q2M6IGludGVsLWdmeCA8aW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zz47IEpvc2VwaCBHYXJ2ZXkKPiA+PGpvc2VwaDEuZ2FydmV5QGludGVsLmNvbT4KPiA+U3ViamVj dDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSCBpLWctdF0gaWd0L2ttc19yb3RhdGlvbl9jcmM6IEFk ZCBob3Jpem9udGFsIGZsaXAKPiA+c3VidGVzdC4KPiA+Cj4gPk9uIFRodSwgTm92IDIzLCAyMDE3 IGF0IDEyOjA1IEFNLCBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ Cj4gPndyb3RlOgo+ID4+IEZyb206IEpvc2VwaCBHYXJ2ZXkgPGpvc2VwaDEuZ2FydmV5QGludGVs LmNvbT4KPiA+Pgo+ID4+IFRlc3QgdGhhdCBob3Jpem9udGFsIGZsaXAgd29ya3Mgd2l0aCBzdXBw b3J0ZWQgcm90YXRpb25zLiBJbmNsdWRlcyBhCj4gPj4gZml4IGZvciB0aGUgdW5yb3RhdGVkIGZi IHdoaWNoIHdhcyBub3QgYmVpbmcgcG9zaXRpb25lZCBjb3JyZWN0bHkgd2l0aAo+ID4+IHBvcnRy YWl0IGFuZCBsYW5kc2NhcGUgcmVjdGFuZ2xlcy4KPiA+Pgo+ID4+IHYyOihmcm9tIEFudXNoYSkK PiA+PiAtIENoYW5nZSAxODAgZGVncmVlIHJvdGF0aW9uIHRvIGZvbGxvdyB0aGUgcmVzdCwgdXNl IGlndF9zd2FwKCksIG1ha2UKPiA+PiBmbGlwIHZhcmlhYmxlIGEgYm9vbC4gRm9ybWF0IHRoZSBw YXRjaCBjb3JyZWN0bHkgKFZpbGxlLCBQZXRyaQo+ID4+IExhdHZhbGEpCj4gPj4KPiA+PiB2Mzog KEZyb20gQW51c2hhKQo+ID4+IC0gQ29ycmVjdCB0aGUgbmFtZSBvZiBzdWJ0ZXN0cyBpbiBvcmRl ciB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZiBuYW1lcwo+ID4+IChBcmVrKQo+ID4+Cj4gPj4gU2ln bmVkLW9mZi1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+ ID4+IFNpZ25lZC1vZmYtYnk6IEpvc2VwaCBHYXJ2ZXkgPGpvc2VwaDEuZ2FydmV5QGludGVsLmNv bT4KPiA+PiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+PiBDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gPj4g Q2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KPiA+Cj4gPkkg ZGlkbid0IHNlZSB0aGlzIHBhdGNoIGZseSBieSBvcmlnaW5hbGx5LCBidXQgbm93IE1hcnRhIHBv aW50ZWQgb3V0IHRoYXQgdGhpcyBza2lwcwo+ID5ldmVyeXdoZXJlLiBXZSBuZWVkIHRvIHJld29y ayBpdC4KPiA+Cj4gPkdlbmVyYWwgcHJpbmNpcGxlIGlzIHRoYXQgaW4ga21zIHRlc3RzIHdlIHNo b3VsZCBfbm90XyBoYXZlIGFueSBwbGF0Zm9ybS9mZWF0dXJlCj4gPmNoZWNrcyBlbmNvZGVkIGlu IHRoZSB0ZXN0LiBJbnN0ZWFkLCB0aGUgdGVzdGNhc2Ugc2hvdWxkIGNoZWNrIHByb3BlcnRpZXMg dG8KPiA+ZmlndXJlIG91dCB3aGV0aGVyIHNvbWV0aGluZyBzaG91bGQgd29yayBvciBub3QuCj4g Pgo+ID4KPiA+PiAtLS0KPiA+PiAgbGliL2lndF9rbXMuYyAgICAgICAgICAgIHwgICAyICstCj4g Pj4gIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICB8ICAgNSArKwo+ID4+ICB0ZXN0cy9rbXNfcm90 YXRpb25fY3JjLmMgfCAxOTgKPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLQo+ID4+ICAzIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCA0 MSBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGli L2lndF9rbXMuYyBpbmRleCBhNTcyZmM2Li4zMDM0ZTQ0Cj4gPj4gMTAwNjQ0Cj4gPj4gLS0tIGEv bGliL2lndF9rbXMuYwo+ID4+ICsrKyBiL2xpYi9pZ3Rfa21zLmMKPiA+PiBAQCAtMzA1MCw3ICsz MDUwLDcgQEAgdm9pZCBpZ3RfZmJfc2V0X3NpemUoc3RydWN0IGlndF9mYiAqZmIsCj4gPj4gaWd0 X3BsYW5lX3QgKnBsYW5lLAo+ID4+Cj4gPj4gIHN0YXRpYyBjb25zdCBjaGFyICpyb3RhdGlvbl9u YW1lKGlndF9yb3RhdGlvbl90IHJvdGF0aW9uKSAgewo+ID4+IC0gICAgICAgc3dpdGNoIChyb3Rh dGlvbikgewo+ID4+ICsgICAgICAgc3dpdGNoIChyb3RhdGlvbiAmIElHVF9ST1RBVElPTl9NQVNL KSB7Cj4gPj4gICAgICAgICBjYXNlIElHVF9ST1RBVElPTl8wOgo+ID4+ICAgICAgICAgICAgICAg ICByZXR1cm4gIjDCsCI7Cj4gPj4gICAgICAgICBjYXNlIElHVF9ST1RBVElPTl85MDoKPiA+PiBk aWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21zLmggaW5kZXggOGRjMTE4Yy4u YjgzYTgyOAo+ID4+IDEwMDY0NAo+ID4+IC0tLSBhL2xpYi9pZ3Rfa21zLmgKPiA+PiArKysgYi9s aWIvaWd0X2ttcy5oCj4gPj4gQEAgLTI4MSw4ICsyODEsMTMgQEAgdHlwZWRlZiBlbnVtIHsKPiA+ PiAgICAgICAgIElHVF9ST1RBVElPTl85MCAgPSAxIDw8IDEsCj4gPj4gICAgICAgICBJR1RfUk9U QVRJT05fMTgwID0gMSA8PCAyLAo+ID4+ICAgICAgICAgSUdUX1JPVEFUSU9OXzI3MCA9IDEgPDwg MywKPiA+PiArICAgICAgIElHVF9SRUZMRUNUX1ggICAgPSAxIDw8IDQsCj4gPj4gKyAgICAgICBJ R1RfUkVGTEVDVF9ZICAgID0gMSA8PCA1LAo+ID4+ICB9IGlndF9yb3RhdGlvbl90Owo+ID4+Cj4g Pj4gKyNkZWZpbmUgSUdUX1JPVEFUSU9OX01BU0sgXAo+ID4+ICsgICAgICAgKElHVF9ST1RBVElP Tl8wIHwgSUdUX1JPVEFUSU9OXzkwIHwgSUdUX1JPVEFUSU9OXzE4MCB8Cj4gPj4gK0lHVF9ST1RB VElPTl8yNzApCj4gPj4gKwo+ID4+ICB0eXBlZGVmIHN0cnVjdCB7Cj4gPj4gICAgICAgICAvKjwg cHJpdmF0ZSA+Ki8KPiA+PiAgICAgICAgIGlndF9waXBlX3QgKnBpcGU7Cj4gPj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyBiL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyBp bmRleAo+ID4+IDVhZWM4ZmEuLjllMTM2NjcgMTAwNjQ0Cj4gPj4gLS0tIGEvdGVzdHMva21zX3Jv dGF0aW9uX2NyYy5jCj4gPj4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jCj4gPj4gQEAg LTMyLDYgKzMyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgewo+ID4+ICAgICAgICAgaWd0X2Rpc3BsYXlf dCBkaXNwbGF5Owo+ID4+ICAgICAgICAgc3RydWN0IGlndF9mYiBmYjsKPiA+PiAgICAgICAgIHN0 cnVjdCBpZ3RfZmIgZmJfcmVmZXJlbmNlOwo+ID4+ICsgICAgICAgc3RydWN0IGlndF9mYiBmYl91 bnJvdGF0ZWQ7Cj4gPj4gICAgICAgICBzdHJ1Y3QgaWd0X2ZiIGZiX21vZGVzZXQ7Cj4gPj4gICAg ICAgICBzdHJ1Y3QgaWd0X2ZiIGZiX2ZsaXA7Cj4gPj4gICAgICAgICBpZ3RfY3JjX3QgcmVmX2Ny YzsKPiA+PiBAQCAtNDMsOCArNDQsNTkgQEAgdHlwZWRlZiBzdHJ1Y3Qgewo+ID4+ICAgICAgICAg dWludDMyX3Qgb3ZlcnJpZGVfZm10Owo+ID4+ICAgICAgICAgdWludDY0X3Qgb3ZlcnJpZGVfdGls aW5nOwo+ID4+ICAgICAgICAgYm9vbCBmbGlwczsKPiA+PiArICAgICAgIGludCBkZXZpZDsKPiA+ PiAgfSBkYXRhX3Q7Cj4gPj4KPiA+PiArdHlwZWRlZiBzdHJ1Y3Qgewo+ID4+ICsgICAgICAgZmxv YXQgcjsKPiA+PiArICAgICAgIGZsb2F0IGc7Cj4gPj4gKyAgICAgICBmbG9hdCBiOwo+ID4+ICt9 IHJnYl9jb2xvcl90Owo+ID4+ICsKPiA+PiArc3RhdGljIHZvaWQgc2V0X2NvbG9yKHJnYl9jb2xv cl90ICpjb2xvciwgZmxvYXQgciwgZmxvYXQgZywgZmxvYXQgYikKPiA+PiArewo+ID4+ICsgICAg ICAgY29sb3ItPnIgPSByOwo+ID4+ICsgICAgICAgY29sb3ItPmcgPSBnOwo+ID4+ICsgICAgICAg Y29sb3ItPmIgPSBiOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgdm9pZCByb3RhdGVfY29s b3JzKHJnYl9jb2xvcl90ICp0bCwgcmdiX2NvbG9yX3QgKnRyLCByZ2JfY29sb3JfdCAqYnIsCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICByZ2JfY29sb3JfdCAqYmwsIGlndF9yb3RhdGlv bl90IHJvdGF0aW9uKSB7Cj4gPj4gKyAgICAgICByZ2JfY29sb3JfdCBibF90bXAsIGJyX3RtcCwg dGxfdG1wLCB0cl90bXA7Cj4gPj4gKwo+ID4+ICsgICAgICAgaWYgKHJvdGF0aW9uICYgSUdUX1JF RkxFQ1RfWCkgewo+ID4+ICsgICAgICAgICAgICAgICBpZ3Rfc3dhcCgqdGwsICp0cik7Cj4gPj4g KyAgICAgICAgICAgICAgIGlndF9zd2FwKCpibCwgKmJyKTsKPiA+PiArICAgICAgIH0KPiA+PiAr Cj4gPj4gKyAgICAgICBpZiAocm90YXRpb24gJiBJR1RfUk9UQVRJT05fOTApIHsKPiA+PiArICAg ICAgICAgICAgICAgYmxfdG1wID0gKmJsOwo+ID4+ICsgICAgICAgICAgICAgICBicl90bXAgPSAq YnI7Cj4gPj4gKyAgICAgICAgICAgICAgIHRsX3RtcCA9ICp0bDsKPiA+PiArICAgICAgICAgICAg ICAgdHJfdG1wID0gKnRyOwo+ID4+ICsgICAgICAgICAgICAgICAqdGwgPSB0cl90bXA7Cj4gPj4g KyAgICAgICAgICAgICAgICpibCA9IHRsX3RtcDsKPiA+PiArICAgICAgICAgICAgICAgKnRyID0g YnJfdG1wOwo+ID4+ICsgICAgICAgICAgICAgICAqYnIgPSBibF90bXA7Cj4gPj4gKyAgICAgICB9 IGVsc2UgaWYgKHJvdGF0aW9uICYgSUdUX1JPVEFUSU9OXzE4MCkgewo+ID4+ICsgICAgICAgICAg ICAgICBpZ3Rfc3dhcCgqdGwsICpicik7Cj4gPj4gKyAgICAgICAgICAgICAgIGlndF9zd2FwKCp0 ciwgKmJsKTsKPiA+PiArICAgICAgIH0gZWxzZSBpZiAocm90YXRpb24gJiBJR1RfUk9UQVRJT05f MjcwKSB7Cj4gPj4gKyAgICAgICAgICAgICAgIGJsX3RtcCA9ICpibDsKPiA+PiArICAgICAgICAg ICAgICAgYnJfdG1wID0gKmJyOwo+ID4+ICsgICAgICAgICAgICAgICB0bF90bXAgPSAqdGw7Cj4g Pj4gKyAgICAgICAgICAgICAgIHRyX3RtcCA9ICp0cjsKPiA+PiArICAgICAgICAgICAgICAgKnRs ID0gYmxfdG1wOwo+ID4+ICsgICAgICAgICAgICAgICAqYmwgPSBicl90bXA7Cj4gPj4gKyAgICAg ICAgICAgICAgICp0ciA9IHRsX3RtcDsKPiA+PiArICAgICAgICAgICAgICAgKmJyID0gdHJfdG1w Owo+ID4+ICsgICAgICAgfQo+ID4+ICt9Cj4gPj4gKwo+ID4+ICsjZGVmaW5lIFJHQl9DT0xPUihj b2xvcikgXAo+ID4+ICsgICAgICAgY29sb3IuciwgY29sb3IuZywgY29sb3IuYgo+ID4+ICsKPiA+ PiAgc3RhdGljIHZvaWQKPiA+PiAgcGFpbnRfc3F1YXJlcyhkYXRhX3QgKmRhdGEsIGlndF9yb3Rh dGlvbl90IHJvdGF0aW9uLAo+ID4+ICAgICAgICAgICAgICAgc3RydWN0IGlndF9mYiAqZmIsIGZs b2F0IG8pIEBAIC01MiwzNSArMTA0LDIxIEBACj4gPj4gcGFpbnRfc3F1YXJlcyhkYXRhX3QgKmRh dGEsIGlndF9yb3RhdGlvbl90IHJvdGF0aW9uLAo+ID4+ICAgICAgICAgY2Fpcm9fdCAqY3I7Cj4g Pj4gICAgICAgICB1bnNpZ25lZCBpbnQgdyA9IGZiLT53aWR0aDsKPiA+PiAgICAgICAgIHVuc2ln bmVkIGludCBoID0gZmItPmhlaWdodDsKPiA+PiArICAgICAgIHJnYl9jb2xvcl90IHRsLCB0ciwg YmwsIGJyOwo+ID4+Cj4gPj4gICAgICAgICBjciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdm eF9mZCwgZmIpOwo+ID4+Cj4gPj4gLSAgICAgICBpZiAocm90YXRpb24gPT0gSUdUX1JPVEFUSU9O XzE4MCkgewo+ID4+IC0gICAgICAgICAgICAgICBjYWlyb190cmFuc2xhdGUoY3IsIHcsIGgpOwo+ ID4+IC0gICAgICAgICAgICAgICBjYWlyb19yb3RhdGUoY3IsIE1fUEkpOwo+ID4+IC0gICAgICAg fQo+ID4+ICsgICAgICAgc2V0X2NvbG9yKCZ0bCwgbywgMC4wZiwgMC4wZik7Cj4gPj4gKyAgICAg ICBzZXRfY29sb3IoJnRyLCAwLjBmLCBvLCAwLjBmKTsKPiA+PiArICAgICAgIHNldF9jb2xvcigm YnIsIG8sIG8sIG8pOwo+ID4+ICsgICAgICAgc2V0X2NvbG9yKCZibCwgMC4wZiwgMC4wZiwgbyk7 Cj4gPj4KPiA+PiAtICAgICAgIGlmIChyb3RhdGlvbiA9PSBJR1RfUk9UQVRJT05fOTApIHsKPiA+ PiAtICAgICAgICAgICAgICAgLyogUGFpbnQgNCBzcXVhcmVzIHdpdGggd2lkdGggPT0gaGVpZ2h0 IGluIEdyZWVuLCBXaGl0ZSwKPiA+PiAtICAgICAgICAgICAgICAgQmx1ZSwgUmVkIENsb2Nrd2lz ZSBvcmRlciB0byBsb29rIGxpa2UgMjcwIGRlZ3JlZSByb3RhdGVkKi8KPiA+PiAtICAgICAgICAg ICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCB3IC8gMiwgaCAvIDIsIDAuMCwgbywgMC4w KTsKPiA+PiAtICAgICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAv IDIsIGggLyAyLCBvLCBvLCBvKTsKPiA+PiAtICAgICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9y KGNyLCAwLCBoIC8gMiwgdyAvIDIsIGggLyAyLCBvLCAwLjAsIDAuMCk7Cj4gPj4gLSAgICAgICAg ICAgICAgIGlndF9wYWludF9jb2xvcihjciwgdyAvIDIsIGggLyAyLCB3IC8gMiwgaCAvIDIsIDAu MCwgMC4wLCBvKTsKPiA+PiAtICAgICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT0gSUdUX1JPVEFU SU9OXzI3MCkgewo+ID4+IC0gICAgICAgICAgICAgICAvKiBQYWludCA0IHNxdWFyZXMgd2l0aCB3 aWR0aCA9PSBoZWlnaHQgaW4gQmx1ZSwgUmVkLAo+ID4+IC0gICAgICAgICAgICAgICBHcmVlbiwg V2hpdGUgQ2xvY2t3aXNlIG9yZGVyIHRvIGxvb2sgbGlrZSA5MCBkZWdyZWUgcm90YXRlZCovCj4g Pj4gLSAgICAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgMCwgMCwgdyAvIDIsIGggLyAy LCAwLjAsIDAuMCwgbyk7Cj4gPj4gLSAgICAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwg dyAvIDIsIDAsIHcgLyAyLCBoIC8gMiwgbywgMC4wLCAwLjApOwo+ID4+IC0gICAgICAgICAgICAg ICBpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIGggLyAyLCB3IC8gMiwgaCAvIDIsIG8sIG8sIG8pOwo+ ID4+IC0gICAgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAv IDIsIGggLyAyLCAwLjAsIG8sIDAuMCk7Cj4gPj4gLSAgICAgICB9IGVsc2Ugewo+ID4+IC0gICAg ICAgICAgICAgICAvKiBQYWludCB3aXRoIDQgc3F1YXJlcyBvZiBSZWQsIEdyZWVuLCBXaGl0ZSwg Qmx1ZSBDbG9ja3dpc2UgKi8KPiA+PiAtICAgICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNy LCAwLCAwLCB3IC8gMiwgaCAvIDIsIG8sIDAuMCwgMC4wKTsKPiA+PiAtICAgICAgICAgICAgICAg aWd0X3BhaW50X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAvIDIsIGggLyAyLCAwLjAsIG8sIDAuMCk7 Cj4gPj4gLSAgICAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgMCwgaCAvIDIsIHcgLyAy LCBoIC8gMiwgMC4wLCAwLjAsIG8pOwo+ID4+IC0gICAgICAgICAgICAgICBpZ3RfcGFpbnRfY29s b3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAvIDIsIGggLyAyLCBvLCBvLCBvKTsKPiA+PiAtICAgICAg IH0KPiA+PiArICAgICAgIHJvdGF0ZV9jb2xvcnMoJnRsLCAmdHIsICZiciwgJmJsLCByb3RhdGlv bik7Cj4gPj4gKwo+ID4+ICsgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCB3IC8gMiwg aCAvIDIsIFJHQl9DT0xPUih0bCkpOwo+ID4+ICsgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCB3 IC8gMiwgMCwgdyAvIDIsIGggLyAyLCBSR0JfQ09MT1IodHIpKTsKPiA+PiArICAgICAgIGlndF9w YWludF9jb2xvcihjciwgMCwgaCAvIDIsIHcgLyAyLCBoIC8gMiwgUkdCX0NPTE9SKGJsKSk7Cj4g Pj4gKyAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAvIDIsIGggLyAy LAo+ID4+ICsgUkdCX0NPTE9SKGJyKSk7Cj4gPj4KPiA+PiAgICAgICAgIGNhaXJvX2Rlc3Ryb3ko Y3IpOwo+ID4+ICB9Cj4gPj4gQEAgLTE0MSw2ICsxNzksNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVf ZmJzKGRhdGFfdCAqZGF0YSkKPiA+Pgo+ID4+ICAgICAgICAgaWd0X3JlbW92ZV9mYihkYXRhLT5n ZnhfZmQsICZkYXRhLT5mYik7Cj4gPj4gICAgICAgICBpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmdmeF9m ZCwgJmRhdGEtPmZiX3JlZmVyZW5jZSk7Cj4gPj4gKyAgICAgICBpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmdmeF9mZCwgJmRhdGEtPmZiX3Vucm90YXRlZCk7Cj4gPj4KPiA+PiAgICAgICAgIGlmIChkYXRh LT5mYl9mbGlwLmZiX2lkKQo+ID4+ICAgICAgICAgICAgICAgICBpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmdmeF9mZCwgJmRhdGEtPmZiX2ZsaXApOyBAQAo+ID4+IC0yMTIsMTcgKzI1MSwxMiBAQCBzdGF0 aWMgdm9pZCBwcmVwYXJlX2ZicyhkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdAo+ID4qb3V0cHV0 LAo+ID4+ICAgICAgICAgICogRm9yIDkwLzI3MCwgd2Ugd2lsbCB1c2UgY3JlYXRlIHNtYWxsZXIg ZmIgc28gdGhhdCB0aGUgcm90YXRlZAo+ID4+ICAgICAgICAgICogZnJhbWUgY2FuIGZpdCBpbgo+ ID4+ICAgICAgICAgICovCj4gPj4gLSAgICAgICBpZiAoZGF0YS0+cm90YXRpb24gPT0gSUdUX1JP VEFUSU9OXzkwIHx8Cj4gPj4gLSAgICAgICAgICAgZGF0YS0+cm90YXRpb24gPT0gSUdUX1JPVEFU SU9OXzI3MCkgewo+ID4+ICsgICAgICAgaWYgKGRhdGEtPnJvdGF0aW9uICYgKElHVF9ST1RBVElP Tl85MCB8IElHVF9ST1RBVElPTl8yNzApKSB7Cj4gPj4gICAgICAgICAgICAgICAgIHRpbGluZyA9 IGRhdGEtPm92ZXJyaWRlX3RpbGluZyA/Ogo+ID4+IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJ TEVEOwo+ID4+Cj4gPj4gICAgICAgICAgICAgICAgIGlndF9zd2FwKHcsIGgpOwo+ID4+ICAgICAg ICAgfQo+ID4+Cj4gPj4gLSAgICAgICBpZ3RfY3JlYXRlX2ZiKGRhdGEtPmdmeF9mZCwgdywgaCwg cGl4ZWxfZm9ybWF0LCB0aWxpbmcsICZkYXRhLT5mYik7Cj4gPj4gLQo+ID4+IC0gICAgICAgaWd0 X3BsYW5lX3NldF9yb3RhdGlvbihwbGFuZSwgSUdUX1JPVEFUSU9OXzApOwo+ID4+IC0KPiA+PiAg ICAgICAgIC8qCj4gPj4gICAgICAgICAgKiBDcmVhdGUgYSByZWZlcmVuY2Ugc29mdHdhcmUgcm90 YXRlZCBmbGlwIGZyYW1lYnVmZmVyLgo+ID4+ICAgICAgICAgICovCj4gPj4gQEAgLTI1NSw4ICsy ODksMjAgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9mYnMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0 X3QKPiA+Km91dHB1dCwKPiA+PiAgICAgICAgIGlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRh LT5waXBlX2NyYywgJmRhdGEtPnJlZl9jcmMpOwo+ID4+Cj4gPj4gICAgICAgICAvKgo+ID4+ICsg ICAgICAgICogUHJlcGFyZSB0aGUgbm9uLXJvdGF0ZWQgcmVmZXJlbmNlIGZiLgo+ID4+ICsgICAg ICAgICovCj4gPj4gKyAgICAgICBpZ3RfY3JlYXRlX2ZiKGRhdGEtPmdmeF9mZCwgcmVmX3csIHJl Zl9oLCBwaXhlbF9mb3JtYXQsIHRpbGluZywgJmRhdGEtCj4gPj5mYl91bnJvdGF0ZWQpOwo+ID4+ ICsgICAgICAgcGFpbnRfc3F1YXJlcyhkYXRhLCBJR1RfUk9UQVRJT05fMCwgJmRhdGEtPmZiX3Vu cm90YXRlZCwgMS4wKTsKPiA+PiArICAgICAgIGlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZkYXRh LT5mYl91bnJvdGF0ZWQpOwo+ID4+ICsgICAgICAgaWd0X3BsYW5lX3NldF9yb3RhdGlvbihwbGFu ZSwgSUdUX1JPVEFUSU9OXzApOwo+ID4+ICsgICAgICAgaWYgKHBsYW5lLT50eXBlICE9IERSTV9Q TEFORV9UWVBFX0NVUlNPUikKPiA+PiArICAgICAgICAgICAgICAgaWd0X3BsYW5lX3NldF9wb3Np dGlvbihwbGFuZSwgZGF0YS0+cG9zX3gsIGRhdGEtPnBvc195KTsKPiA+PiArICAgICAgIGlndF9k aXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgZGlzcGxheS0+aXNfYXRvbWljID8KPiA+PiArIENPTU1J VF9BVE9NSUMgOiBDT01NSVRfVU5JVkVSU0FMKTsKPiA+PiArCj4gPj4gKyAgICAgICAvKgo+ID4+ ICAgICAgICAgICogUHJlcGFyZSB0aGUgcGxhbmUgd2l0aCBhbiBub24tcm90YXRlZCBmYiBsZXQg dGhlIGh3IHJvdGF0ZSBpdC4KPiA+PiAgICAgICAgICAqLwo+ID4+ICsgICAgICAgaWd0X2NyZWF0 ZV9mYihkYXRhLT5nZnhfZmQsIHcsIGgsIHBpeGVsX2Zvcm1hdCwgdGlsaW5nLAo+ID4+ICsgJmRh dGEtPmZiKTsKPiA+PiAgICAgICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgSUdUX1JPVEFUSU9OXzAs ICZkYXRhLT5mYiwgMS4wKTsKPiA+PiAgICAgICAgIGlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZk YXRhLT5mYik7Cj4gPj4KPiA+PiBAQCAtMzIyLDcgKzM2OCw3IEBAIHN0YXRpYyB2b2lkIHdhaXRf Zm9yX3BhZ2VmbGlwKGludCBmZCkKPiA+PiAgICAgICAgIGlndF9hc3NlcnQoZHJtSGFuZGxlRXZl bnQoZmQsICZldmN0eCkgPT0gMCk7ICB9Cj4gPj4KPiA+PiAtc3RhdGljIHZvaWQgdGVzdF9wbGFu ZV9yb3RhdGlvbihkYXRhX3QgKmRhdGEsIGludCBwbGFuZV90eXBlKQo+ID4+ICtzdGF0aWMgdm9p ZCBfX3Rlc3RfcGxhbmVfcm90YXRpb24oZGF0YV90ICpkYXRhLCBpbnQgcGxhbmVfdHlwZSwgYm9v bAo+ID4+ICt0ZXN0X2JhZF9mb3JtYXQpCj4gPj4gIHsKPiA+PiAgICAgICAgIGlndF9kaXNwbGF5 X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiA+PiAgICAgICAgIGlndF9vdXRwdXRfdCAq b3V0cHV0Owo+ID4+IEBAIC0zNDgsNiArMzk0LDkgQEAgc3RhdGljIHZvaWQgdGVzdF9wbGFuZV9y b3RhdGlvbihkYXRhX3QgKmRhdGEsIGludAo+ID5wbGFuZV90eXBlKQo+ID4+ICAgICAgICAgICAg ICAgICBpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4gPj4gICAgICAgICAgICAgICAgIGludCBpOwo+ID4+ Cj4gPj4gKyAgICAgICAgICAgICAgIGlmIChJU19DSEVSUllWSUVXKGRhdGEtPmRldmlkKSAmJiBw aXBlICE9IFBJUEVfQikKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ Cj4gPlRoaXMgY2hlY2sgaGVyZSBtdXN0IGJlIHJlbW92ZWQuCj4gT0suCj4gPj4gKwo+ID4+ICAg ICAgICAgICAgICAgICBpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gPj4KPiA+ PiAgICAgICAgICAgICAgICAgcGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1 dCwgcGxhbmVfdHlwZSk7Cj4gPj4gQEAgLTM2OSwxNCArNDE4LDEyIEBAIHN0YXRpYyB2b2lkIHRl c3RfcGxhbmVfcm90YXRpb24oZGF0YV90ICpkYXRhLCBpbnQKPiA+cGxhbmVfdHlwZSkKPiA+PiAg ICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZGVidWcoIlRlc3RpbmcgY2FzZSAlaSBvbiBwaXBl ICVzXG4iLCBpLAo+ID5rbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSk7Cj4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgcHJlcGFyZV9mYnMoZGF0YSwgb3V0cHV0LCBwbGFuZSwgaSk7Cj4gPj4KPiA+ PiAtICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGNv bW1pdCk7Cj4gPj4gLQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV9zZXRf cm90YXRpb24ocGxhbmUsIGRhdGEtPnJvdGF0aW9uKTsKPiA+PiAtICAgICAgICAgICAgICAgICAg ICAgICBpZiAoZGF0YS0+cm90YXRpb24gPT0gSUdUX1JPVEFUSU9OXzkwIHx8IGRhdGEtPnJvdGF0 aW9uID09Cj4gPklHVF9ST1RBVElPTl8yNzApCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg aWYgKGRhdGEtPnJvdGF0aW9uICYgKElHVF9ST1RBVElPTl85MCB8Cj4gPj4gKyBJR1RfUk9UQVRJ T05fMjcwKSkKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV9z ZXRfc2l6ZShwbGFuZSwKPiA+PiBkYXRhLT5mYi5oZWlnaHQsIGRhdGEtPmZiLndpZHRoKTsKPiA+ Pgo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21t aXQyKGRpc3BsYXksIGNvbW1pdCk7Cj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRh dGEtPm92ZXJyaWRlX2ZtdCB8fCBkYXRhLT5vdmVycmlkZV90aWxpbmcpIHsKPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICBpZiAodGVzdF9iYWRfZm9ybWF0ICYmIChkYXRhLT5vdmVycmlkZV9m bXQgfHwKPiA+PiArIGRhdGEtPm92ZXJyaWRlX3RpbGluZykpIHsKPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlndF9hc3NlcnRfZXEocmV0LCAtRUlOVkFMKTsKPiA+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4+ICAgICAgICAgICAgICAg ICAgICAgICAgIH0KPiA+PiBAQCAtNDIxLDYgKzQ2OCwxNiBAQCBzdGF0aWMgdm9pZCB0ZXN0X3Bs YW5lX3JvdGF0aW9uKGRhdGFfdCAqZGF0YSwgaW50Cj4gPnBsYW5lX3R5cGUpCj4gPj4gICAgICAg ICBpZ3RfcmVxdWlyZV9mKHZhbGlkX3Rlc3RzLCAibm8gdmFsaWQgY3J0Yy9jb25uZWN0b3IKPiA+ PiBjb21iaW5hdGlvbnMgZm91bmRcbiIpOyAgfQo+ID4+Cj4gPj4gK3N0YXRpYyBpbmxpbmUgdm9p ZCB0ZXN0X2JhZF9wbGFuZV9yb3RhdGlvbihkYXRhX3QgKmRhdGEsIGludAo+ID4+ICtwbGFuZV90 eXBlKSB7Cj4gPj4gKyAgICAgICBfX3Rlc3RfcGxhbmVfcm90YXRpb24oZGF0YSwgcGxhbmVfdHlw ZSwgdHJ1ZSk7IH0KPiA+PiArCj4gPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB0ZXN0X3BsYW5lX3Jv dGF0aW9uKGRhdGFfdCAqZGF0YSwgaW50IHBsYW5lX3R5cGUpCj4gPj4gK3sKPiA+PiArICAgICAg IF9fdGVzdF9wbGFuZV9yb3RhdGlvbihkYXRhLCBwbGFuZV90eXBlLCBmYWxzZSk7IH0KPiA+PiAr Cj4gPj4gIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfcm90YXRpb25feXRpbGVkX29iaihkYXRhX3Qg KmRhdGEsCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGln dF9vdXRwdXRfdCAqb3V0cHV0LAo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgcGxhbmVfdHlwZSkgQEAgLTYxMyw2Cj4gPj4gKzY3MCw4IEBAIHN0YXRp YyBjb25zdCBjaGFyICpwbGFuZV90ZXN0X3N0cih1bnNpZ25lZCBwbGFuZSkgIHN0YXRpYwo+ID4+ IGNvbnN0IGNoYXIgKnJvdF90ZXN0X3N0cihpZ3Rfcm90YXRpb25fdCByb3QpICB7Cj4gPj4gICAg ICAgICBzd2l0Y2ggKHJvdCkgewo+ID4+ICsgICAgICAgY2FzZSBJR1RfUk9UQVRJT05fMDoKPiA+ PiArICAgICAgICAgICAgICAgcmV0dXJuICIwIjsKPiA+PiAgICAgICAgIGNhc2UgSUdUX1JPVEFU SU9OXzkwOgo+ID4+ICAgICAgICAgICAgICAgICByZXR1cm4gIjkwIjsKPiA+PiAgICAgICAgIGNh c2UgSUdUX1JPVEFUSU9OXzE4MDoKPiA+PiBAQCAtNjI0LDYgKzY4MywyMCBAQCBzdGF0aWMgY29u c3QgY2hhciAqcm90X3Rlc3Rfc3RyKGlndF9yb3RhdGlvbl90IHJvdCkKPiA+PiAgICAgICAgIH0K PiA+PiAgfQo+ID4+Cj4gPj4gK3N0YXRpYyBjb25zdCBjaGFyICp0aWxpbmdfdGVzdF9zdHIodWlu dDY0X3QgdGlsaW5nKSB7Cj4gPj4gKyAgICAgICBzd2l0Y2ggKHRpbGluZykgewo+ID4+ICsgICAg ICAgY2FzZSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiA+PiArICAgICAgICAgICAg ICAgcmV0dXJuICJ4LXRpbGVkIjsKPiA+PiArICAgICAgIGNhc2UgTE9DQUxfSTkxNV9GT1JNQVRf TU9EX1lfVElMRUQ6Cj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiAieS10aWxlZCI7Cj4gPj4g KyAgICAgICBjYXNlIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRDoKPiA+PiArICAgICAg ICAgICAgICAgcmV0dXJuICJ5Zi10aWxlZCI7Cj4gPj4gKyAgICAgICBkZWZhdWx0Ogo+ID4+ICsg ICAgICAgICAgICAgICBpZ3RfYXNzZXJ0KDApOwo+ID4+ICsgICAgICAgfQo+ID4+ICt9Cj4gPj4g Kwo+ID4+ICBzdGF0aWMgY29uc3QgY2hhciAqZmxpcF90ZXN0X3N0cih1bnNpZ25lZCBmbGlwcykg IHsKPiA+PiAgICAgICAgIGlmIChmbGlwcykKPiA+PiBAQCAtNjM3LDcgKzcxMCw3IEBAIGlndF9t YWluCj4gPj4gICAgICAgICBzdHJ1Y3Qgcm90X3N1YnRlc3Qgewo+ID4+ICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBwbGFuZTsKPiA+PiAgICAgICAgICAgICAgICAgaWd0X3JvdGF0aW9uX3Qgcm90 Owo+ID4+IC0gICAgICAgICAgICAgICB1bnNpZ25lZCBmbGlwczsKPiA+PiArICAgICAgICAgICAg ICAgYm9vbCBmbGlwczsKPiA+PiAgICAgICAgIH0gKnN1YnRlc3QsIHN1YnRlc3RzW10gPSB7Cj4g Pj4gICAgICAgICAgICAgICAgIHsgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgSUdUX1JPVEFUSU9O XzkwLCAwIH0sCj4gPj4gICAgICAgICAgICAgICAgIHsgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwg SUdUX1JPVEFUSU9OXzE4MCwgMCB9LCBAQAo+ID4+IC02NTQsNiArNzI3LDM1IEBAIGlndF9tYWlu Cj4gPj4gICAgICAgICAgICAgICAgIHsgRFJNX1BMQU5FX1RZUEVfQ1VSU09SLCBJR1RfUk9UQVRJ T05fMTgwLCAwIH0sCj4gPj4gICAgICAgICAgICAgICAgIHsgMCwgMCwgMH0KPiA+PiAgICAgICAg IH07Cj4gPj4gKwo+ID4+ICsgICAgICAgc3RydWN0IHJlZmxlY3RfeCB7Cj4gPj4gKyAgICAgICAg ICAgICAgIHVpbnQ2NF90IHRpbGluZzsKPiA+PiArICAgICAgICAgICAgICAgaWd0X3JvdGF0aW9u X3Qgcm90Owo+ID4+ICsgICAgICAgICAgICAgICBib29sIGZsaXBzOwo+ID4+ICsgICAgICAgfSAq cmVmbGVjdF94LCByZWZsZWN0X3hfc3VidGVzdHNbXSA9IHsKPiA+PiArICAgICAgICAgICAgICAg eyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgSUdUX1JPVEFUSU9OXzAsIDAgfSwKPiA+ PiArICAgICAgICAgICAgICAgeyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgSUdUX1JP VEFUSU9OXzE4MCwgMCB9LAo+ID4+ICsgICAgICAgICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFU X01PRF9ZX1RJTEVELCBJR1RfUk9UQVRJT05fMCwgMCB9LAo+ID4+ICsgICAgICAgICAgICAgICB7 IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVELCBJR1RfUk9UQVRJT05fOTAsIDAgfSwKPiA+ PiArICAgICAgICAgICAgICAgeyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwgSUdUX1JP VEFUSU9OXzE4MCwgMCB9LAo+ID4+ICsgICAgICAgICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFU X01PRF9ZX1RJTEVELCBJR1RfUk9UQVRJT05fMjcwLCAwIH0sCj4gPj4gKyAgICAgICAgICAgICAg IHsgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVELCBJR1RfUk9UQVRJT05fMCwgMCB9LAo+ ID4+ICsgICAgICAgICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCwgSUdU X1JPVEFUSU9OXzkwLCAwIH0sCj4gPj4gKyAgICAgICAgICAgICAgIHsgTE9DQUxfSTkxNV9GT1JN QVRfTU9EX1lmX1RJTEVELCBJR1RfUk9UQVRJT05fMTgwLCAwIH0sCj4gPj4gKyAgICAgICAgICAg ICAgIHsgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVELCBJR1RfUk9UQVRJT05fMjcwLCAw IH0sCj4gPj4gKyAgICAgICAgICAgICAgIHsgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQs IElHVF9ST1RBVElPTl8wLCAxIH0sCj4gPj4gKyAgICAgICAgICAgICAgIHsgTE9DQUxfSTkxNV9G T1JNQVRfTU9EX1hfVElMRUQsIElHVF9ST1RBVElPTl8xODAsIDEgfSwKPiA+PiArICAgICAgICAg ICAgICAgeyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwgSUdUX1JPVEFUSU9OXzAsIDEg fSwKPiA+PiArICAgICAgICAgICAgICAgeyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwg SUdUX1JPVEFUSU9OXzkwLCAxIH0sCj4gPj4gKyAgICAgICAgICAgICAgIHsgTE9DQUxfSTkxNV9G T1JNQVRfTU9EX1lfVElMRUQsIElHVF9ST1RBVElPTl8xODAsIDEgfSwKPiA+PiArICAgICAgICAg ICAgICAgeyBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwgSUdUX1JPVEFUSU9OXzI3MCwg MSB9LAo+ID4+ICsgICAgICAgICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxF RCwgSUdUX1JPVEFUSU9OXzAsIDEgfSwKPiA+PiArICAgICAgICAgICAgICAgeyBMT0NBTF9JOTE1 X0ZPUk1BVF9NT0RfWWZfVElMRUQsIElHVF9ST1RBVElPTl85MCwgMSB9LAo+ID4+ICsgICAgICAg ICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCwgSUdUX1JPVEFUSU9OXzE4 MCwgMSB9LAo+ID4+ICsgICAgICAgICAgICAgICB7IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9U SUxFRCwgSUdUX1JPVEFUSU9OXzI3MCwgMSB9LAo+ID4+ICsgICAgICAgICAgICAgICB7IDAsIDAs IDAgfQo+ID4+ICsgICAgICAgfTsKPiA+PiArCj4gPj4gICAgICAgICBkYXRhX3QgZGF0YSA9IHt9 Owo+ID4+ICAgICAgICAgaW50IGdlbiA9IDA7Cj4gPj4KPiA+PiBAQCAtNjYxLDcgKzc2Myw4IEBA IGlndF9tYWluCj4gPj4KPiA+PiAgICAgICAgIGlndF9maXh0dXJlIHsKPiA+PiAgICAgICAgICAg ICAgICAgZGF0YS5nZnhfZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9JTlRFTCk7 Cj4gPj4gLSAgICAgICAgICAgICAgIGdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2Rldmlk KGRhdGEuZ2Z4X2ZkKSk7Cj4gPj4gKyAgICAgICAgICAgICAgIGRhdGEuZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGRhdGEuZ2Z4X2ZkKTsKPiA+PiArICAgICAgICAgICAgICAgZ2VuID0gaW50 ZWxfZ2VuKGRhdGEuZGV2aWQpOwo+ID4+Cj4gPj4gICAgICAgICAgICAgICAgIGttc3Rlc3Rfc2V0 X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiA+Pgo+ID4+IEBAIC02OTgsNyArODAxLDcgQEAgaWd0X21h aW4KPiA+PiAgICAgICAgICAgICAgICAgZGF0YS5wb3NfeSA9IDA7Cj4gPj4gICAgICAgICAgICAg ICAgIGRhdGEucm90YXRpb24gPSBJR1RfUk9UQVRJT05fOTA7Cj4gPj4gICAgICAgICAgICAgICAg IGRhdGEub3ZlcnJpZGVfZm10ID0gRFJNX0ZPUk1BVF9SR0I1NjU7Cj4gPj4gLSAgICAgICAgICAg ICAgIHRlc3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ ID4+ICsgICAgICAgICAgICAgICB0ZXN0X2JhZF9wbGFuZV9yb3RhdGlvbigmZGF0YSwKPiA+PiAr IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4+ICAgICAgICAgfQo+ID4+Cj4gPj4gICAgICAg ICBpZ3Rfc3VidGVzdF9mKCJiYWQtdGlsaW5nIikgewo+ID4+IEBAIC03MDYsNyArODA5LDcgQEAg aWd0X21haW4KPiA+PiAgICAgICAgICAgICAgICAgZGF0YS5vdmVycmlkZV9mbXQgPSAwOwo+ID4+ ICAgICAgICAgICAgICAgICBkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFUSU9OXzkwOwo+ID4+ICAg ICAgICAgICAgICAgICBkYXRhLm92ZXJyaWRlX3RpbGluZyA9IExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkU7Cj4gPj4gLSAgICAgICAgICAgICAgIHRlc3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERS TV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4+ICsgICAgICAgICAgICAgICB0ZXN0X2JhZF9wbGFu ZV9yb3RhdGlvbigmZGF0YSwKPiA+PiArIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4+ICAg ICAgICAgfQo+ID4+Cj4gPj4gICAgICAgICBpZ3Rfc3VidGVzdF9mKCJwcmltYXJ5LXJvdGF0aW9u LTkwLVktdGlsZWQiKSB7IEBAIC03MjksNgo+ID4+ICs4MzIsMjEgQEAgaWd0X21haW4KPiA+PiAg ICAgICAgICAgICAgICAgaWd0X3JlcXVpcmVfZih2YWxpZF90ZXN0cywgIm5vIHZhbGlkIGNydGMv Y29ubmVjdG9yIGNvbWJpbmF0aW9ucwo+ID5mb3VuZFxuIik7Cj4gPj4gICAgICAgICB9Cj4gPj4K PiA+PiArICAgICAgIGZvciAocmVmbGVjdF94ID0gcmVmbGVjdF94X3N1YnRlc3RzOyByZWZsZWN0 X3gtPnRpbGluZzsgcmVmbGVjdF94KyspIHsKPiA+PiArICAgICAgICAgICAgICAgaWd0X3N1YnRl c3RfZigicHJpbWFyeS0lcy1yZWZsZWN0LXgtJXMlcyIsCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGlsaW5nX3Rlc3Rfc3RyKHJlZmxlY3RfeC0+dGlsaW5nKSwKPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByb3RfdGVzdF9zdHIocmVmbGVjdF94LT5yb3QpLAo+ ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsaXBfdGVzdF9zdHIocmVmbGVjdF94 LT5mbGlwcykpIHsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBpZ3RfcmVxdWlyZShnZW4g Pj0gMTAgfHwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSVNfQ0hF UlJZVklFVyhkYXRhLmRldmlkKSAmJiByZWZsZWN0X3gtPnJvdCA9PQo+ID5JR1RfUk9UQVRJT05f MAo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiByZWZsZWN0X3gt PnRpbGluZyA9PQo+ID4+ICsgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpKTsKPiA+Cj4g PlRoaXMgY2hlY2sgaGVyZSBhbHNvIG11c3QgYmUgcmVtb3ZlZCBhbmQgaW5zdGVhZCB3ZSBuZWVk IHRvIGNoZWNrIHdoZXRoZXIgdGhlCj4gPnJvdGF0aW9uIHByb3BlcnR5IHN1cHBvcnRzIHRoZSBj b21iaW5hdGlvbiBvZiByb3RhdGlvbi9mbGlwcGluZyB0aGF0IHdlIHdhbnQgdG8KPiA+dGVzdC4K PiA+Cj4gPkFudXNoYSwgY2FuIHlvdSBwbHMgZm9sbG93IHVwIHdpdGggdGhpcz8KPiA+Cj4gPkNj J2luZyBMdWlzIHRvbyB0byBrZWVwIHRyYWNrIG9mIHRoaXMuCj4gU3VyZSBEYW5pZWwsIFRoYW5r cyBhIGxvdCBmb3IgeW91ciBmZWVkYmFjay4KPiBXaWxsIHJvbGwgdXAgYSBuZXcgdmVyc2lvbiBv ZiB0aGlzLgoKSXQgaXMgYWxyZWFkeSBtZXJnZWQgc28gYSBwYXRjaCB0byBmaXggaXMKbmVlZGVk IGluc3RlYWQgb2YgYSBuZXcgdmVyc2lvbi4KCj4gCj4gQW51c2hhIAo+ID5UaGFua3MsIERhbmll bAo+ID4KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnJvdGF0aW9uID0gKElHVF9S RUZMRUNUX1ggfCByZWZsZWN0X3gtPnJvdCk7Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ZGF0YS5vdmVycmlkZV90aWxpbmcgPSByZWZsZWN0X3gtPnRpbGluZzsKPiA+PiArICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLmZsaXBzID0gcmVmbGVjdF94LT5mbGlwczsKPiA+PiArICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKTsKPiA+PiArICAgICAgICAgICAgICAgfQo+ID4+ICsgICAgICAgfQo+ID4+ICsK PiA+PiAgICAgICAgIGlndF9zdWJ0ZXN0X2YoImV4aGF1c3QtZmVuY2VzIikgewo+ID4+ICAgICAg ICAgICAgICAgICBlbnVtIHBpcGUgcGlwZTsKPiA+PiAgICAgICAgICAgICAgICAgaWd0X291dHB1 dF90ICpvdXRwdXQ7Cj4gPj4gLS0KPiA+PiAyLjcuNAo+ID4+Cj4gPj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4gPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPgo+ID4KPiA+ Cj4gPi0tCj4gPkRhbmllbCBWZXR0ZXIKPiA+U29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCj4gPis0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdm eCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==