From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] Revert "drm/i915/skl: New ddb allocation algorithm" Date: Thu, 15 Jun 2017 23:13:01 +0300 Message-ID: <878tktxb5e.fsf@intel.com> References: <1497376350-3400-1-git-send-email-rodrigo.vivi@intel.com> <20170613180705.GJ19328@mdroper-desk.amr.corp.intel.com> <1497440826.14142.2.camel@gmail.com> <6117a22b-f454-f72b-1dba-59b2790458db@intel.com> <1497509627.3260.1.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 660B76E74C for ; Thu, 15 Jun 2017 20:13:06 +0000 (UTC) In-Reply-To: <1497509627.3260.1.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , Mahesh Kumar , Rodrigo Vivi , Matt Roper Cc: intel-gfx , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxNSBKdW4gMjAxNywgQW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhIDxjb25zZWx2 YW4yQGdtYWlsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCAyMDE3LTA2LTE1IGF0IDA5OjQ0ICswNTMw LCBNYWhlc2ggS3VtYXIgd3JvdGU6Cj4+IEhpIEFuZGVyLAo+PiAKPj4gCj4+IE9uIFdlZG5lc2Rh eSAxNCBKdW5lIDIwMTcgMDU6MTcgUE0sIEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2ZWlyYSB3cm90 ZToKPj4gPiBPbiBUdWUsIDIwMTctMDYtMTMgYXQgMTI6MDYgLTA3MDAsIFJvZHJpZ28gVml2aSB3 cm90ZToKPj4gPiA+IE9uIFR1ZSwgSnVuIDEzLCAyMDE3IGF0IDExOjA3IEFNLCBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPiB3cm90ZToKPj4gPiA+ID4gT24gVHVlLCBKdW4g MTMsIDIwMTcgYXQgMTA6NTI6MzBBTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdyb3RlOgo+PiA+ID4g PiA+IFRoaXMgcmV2ZXJ0cyBjb21taXQgYmI5ZDg1ZjZlOWRlOGZlZjUyMzZjMDc2NTMwZWFiNjdh MmYyNDMxYi4KPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiBOZXcgZGRiIGFsbG9jYXRpb24gYWxnb3Jp dGhtIGlzIGEgc2hvdyBzdG9wcGVyIG9uIG15IFNLTCBzeXN0ZW0uCj4+ID4gPiA+ID4gCj4+ID4g PiA+ID4gQmVzaWRlcyBub3QgYmUgYWJsZSB0byBnZXQgZXh0ZXJuYWwgRFAgNGtANjAgKHRocm91 Z2ggVVNCIHR5cGUgQyksCj4+ID4gPiA+ID4gSXQgZnVsbHkgaGFuZyBteSBzY3JlZW4gd2hlbiB1 bnBsdWdnaW5nIHRoZSBVU0IgdHlwZSBDLgo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IENjOiBNYWhl c2ggS3VtYXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPgo+PiA+ID4gPiA+IENjOiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiA+ID4gPiA+ IENjOiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+PiA+ID4gPiA+IFNp Z25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPj4gPiA+ ID4gCj4+ID4gPiA+IElzIHRoZXJlIGEgYnVnemlsbGEgZW50cnkgd2l0aCBkZXRhaWxzL2xvZ3Mg ZnJvbSB0aGUgZmFpbHVyZSB3ZSBjYW4KPj4gPiA+ID4gcmVmZXIgdG8/Cj4+ID4gPiAKPj4gPiA+ IG5vcGUsIHNpbmNlIEkga25vdyBpdCB3YXMgd29ya2luZyBmZXcgd2Vla3MgYWdvIGFuZCB0aGVu IHN0b3BwZWQKPj4gPiA+IHdvcmtpbmcgSSB3ZW50IGRpcmVjdGx5Cj4+ID4gPiB0byBiaXNlY3Qg c28gSSBjb3VsZCBnZXQgbXkgc3lzdGVtIHVzYWJsZSBxdWlja2x5IGFnYWluLgo+PiA+ID4gCj4+ ID4gPiBCdXQgeWVzLCBJIG5lZWQgdG8gb3BlbiBhIHByb3BlciBidWd6aWxsYSBhbmQgcHJvdmlk ZSBsb2dzLgo+PiA+ID4gU2hvdWxkIHdlIHJldmVydCBmaXJzdCBhbmQgZ3JhYiBsb2dzIGxhdHRl ciBvciB3ZSBhcmUgZ29pbmcgdG8gdHJ5IHRvCj4+ID4gPiBhbmFseXNlIGxvZ3MgYW5kIGZpeD8K Pj4gPiA+IAo+PiA+ID4gQW55d2F5cyB0aGlzIGlzIGEgYmlnIHNob3cgc3RvcHBlciBzbyBJIGJl bGlldmUgd2UgcmV2ZXJ0IGF0IGxlYXN0Cj4+ID4gPiBiZWZvcmUgbmV4dCBwdWxsIHJlcXVlc3Qu Cj4+ID4gCj4+ID4gVGhpcyBwYXRjaCBhbHNvIGNhdXNlcyBhcnRpZmFjdHMgaW4gZHVhbCBzY3Jl ZW4gc2V0dXBzLiBBbGwgdGhlIHNjYW5saW5lcyBiZWxvdwo+PiA+IHRoZSBtb3VzZSBjdXJzb3Ig YXJlIHdyb25nLCBzb21ldGltZXMgY29udGFpbmluZyBhIHNoYWRlIG9mIGdyYXkgYW5kIG90aGVy cwo+PiA+IHJlcGVhdGluZyB0aGUgaW1hZ2UgYWJvdmUuIEkndmUgc2VlbiB0aGlzIGluIEFQTCBh bmQgR0xLIHVzaW5nIERTSStIRE1JLAo+PiA+IGVEUCtIRE1JIGFuZCBEU0krRFAuIEluIHRoZSBE UCBjYXNlLCBob3dldmVyLCB0aGUgc2NyZWVuIGdvZXMgYmxhbmsgYW5kIHJlcG9ydHMKPj4gPiBs YWNrIG9mIHNpZ25hbC4KPj4gPiAKPj4gPiBJJ3ZlIG5vdGljZWQgZmlmbyB1bmRlcnJ1biBtZXNz YWdlcy4gSSBjb21wYXJlZCB0aGUgZGRiIGFsbG9jYXRpb24gaW4gR0xLIHdpdGggYQo+PiA+IHdv cmtpbmcgYW5kIG5vbi13b3JraW5nIGtlcm5lbCwgYnV0IHRoZXkgd2VyZSB0aGUgc2FtZS4KPj4g Cj4+IHlvdXIgb2JzZXJ2YXRpb24gbG9va3MgbGlrZSBvbmUgd2Ugb2JzZXJ2ZWQgaW4gb25lIG9m IHRoZSBMaW51eCB2YXJpYW50IAo+PiBwcm9ncmFtLgo+PiBUaGVyZSB3YXMgYW4gY29uZmlndXJh dGlvbiB3aGVyZSBsb3dlciBXTS1sZXZlbCBoYXZpbmcgaGlnaGVyIEREQiAKPj4gcmVxdWlyZW1l bnQgdGhhbiBoaWdoZXIgbGV2ZWxzLiBXaGljaCB3YXMgbGVhZGluZyB0byBsb3dlciBXTSBsZXZl bHMgCj4+IGdldHRpbmcgZGlzYWJsZWQuCj4+IAo+PiBDYW4geW91IHBsZWFzZSB0cnkgd2l0aCBm b2xsb3dpbmcgcGF0Y2ggdG8gc2VlIGlmIGl0J3Mgc29sdmluZyB0aGUgcHJvYmxlbS4KPj4gCj4+ IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8xNjE1NzEvCj4KPiBJIHRl c3RlZCB0aGF0IGluIG15IEdMSywgYnV0IGl0IGRpZG4ndCBoZWxwLiBTdGlsbCBnZXR0aW5nIGFy dGlmYWN0cyBmb2xsb3dpbmcKPiB0aGUgbW91c2UgY3Vyc29yLgoKSWYgdGhlIHJldmVydCBoZWxw cyB0aGUgR0xLIGNhc2UgYXMgd2VsbCwgcGxlYXNlIGxldCdzIHJldmVydC4gV2UKZ2VuZXJhbGx5 IHdhc3RlIHRvbyBtdWNoIHRpbWUgdHJ5aW5nIHRvIGdldCB0aGluZ3MgZml4ZWQgd2hlbiB0aGUg cmV2ZXJ0CmFuZCByZXR1cm4gdG8gdGhlIGRyYXdpbmcgYm9hcmQgaXMgdGhlIHdheSB0byBnby4K ClJvZHJpZ28sIHBsZWFzZSBhZGQgdGhlIEJ1Z3ppbGxhOiByZWZlcmVuY2UgYW5kIHByb3BlciBG aXhlczogbGluZS4KCkJSLApKYW5pLgoKCj4KPiBBbmRlcgo+Cj4+IFJvZHJpZ28sCj4+IAo+PiBD YW4geW91IHBsZWFzZSBhbHNvIGNoZWNrIGlmIHRoaXMgaXMgdGhlIHNhbWUgcmVhc29uIGZvciB5 b3VyIGZhaWx1cmUuIAo+PiBJJ20gYXJyYW5naW5nIGZvciBhIHN5c3RlbSB3aXRoIFNLTCtVU0Ig dHlwZS1DIERQIDRLQDYwICYgZURQLiB3aWxsIAo+PiBkZWJ1ZyB0aGlzIGZ1cnRoZXIuCj4+IAo+ PiAtTWFoZXNoCj4+IAo+PiA+IAo+PiA+IEFuZGVyCj4+ID4gPiBXaGVuIHlvdSBzYXkgeW91IGNh bid0IGdldCBEUCA0a0A2MCwgYXJlIHlvdSBzZWVpbmcgbWVzc2FnZXMKPj4gPiA+ID4gaW4gZG1l c2cgYWJvdXQgdGhlIHNldHVwIGJlaW5nIG91dHNpZGUgc3lzdGVtIHdhdGVybWFyayBsaW1pdGF0 aW9ucyBvcgo+PiA+ID4gPiBhcmUgeW91IGp1c3QgZ2V0dGluZyBhIGJsYWNrIHNjcmVlbj8KPj4g PiA+IAo+PiA+ID4ganVzdCBnZXR0aW5nIGEgYmxhbmsgc2NyZWVuIG9uIERQIHdoZW4gcGx1Z2dp bmcgdXNiLWMgYW5kIGEgbG9ja2VkLXVwCj4+ID4gPiBzY3JlZW4gb24gZURQIHdoZW4gcmVtb3Zp bmcgdXNiLWMuCj4+ID4gPiAKPj4gPiA+ID4gCj4+ID4gPiA+IE1hdHQKPj4gPiA+ID4gCj4+ID4g PiA+ID4gLS0tCj4+ID4gPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwg MjU3ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+ID4gPiAg IDEgZmlsZSBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pCj4+ID4g PiA+ID4gCj4+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+ID4gPiA+ID4gaW5kZXgg YWE5ZDhjZS4uZGM0Mjc1ZCAxMDA2NDQKPj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+PiA+ID4gPiA+IEBAIC00MTQwLDQxICs0MTQwLDEzIEBAIGludCBza2xfY2hlY2tf cGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPj4gPiA+ ID4gPiAgICAgICAgbWluaW11bVtQTEFORV9DVVJTT1JdID0gc2tsX2N1cnNvcl9hbGxvY2F0aW9u KG51bV9hY3RpdmUpOwo+PiA+ID4gPiA+ICAgfQo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IC1zdGF0 aWMgdm9pZAo+PiA+ID4gPiA+IC1za2xfZW5hYmxlX3BsYW5lX3dtX2xldmVscyhjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQxNl90IHBsYW5lX2RkYiwKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgdWludDE2X3QgbWF4X2xldmVsLAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSkKPj4gPiA+ID4gPiAtewo+PiA+ID4gPiA+ IC0gICAgIGludCBsZXZlbDsKPj4gPiA+ID4gPiAtICAgICAvKgo+PiA+ID4gPiA+IC0gICAgICAq IE5vdyBlbmFibGUgYWxsIGxldmVscyBpbiBXTSBzdHJ1Y3R1cmUgd2hpY2ggY2FuIGJlIGVuYWJs ZWQKPj4gPiA+ID4gPiAtICAgICAgKiB1c2luZyBjdXJyZW50IEREQiBhbGxvY2F0aW9uCj4+ID4g PiA+ID4gLSAgICAgICovCj4+ID4gPiA+ID4gLSAgICAgZm9yIChsZXZlbCA9IGlsa193bV9tYXhf bGV2ZWwoZGV2X3ByaXYpOyBsZXZlbCA+PSAwOyBsZXZlbC0tKSB7Cj4+ID4gPiA+ID4gLSAgICAg ICAgICAgICBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpsZXZlbF93bSA9ICZ3bS0+d21bbGV2ZWxdOwo+ PiA+ID4gPiA+IC0KPj4gPiA+ID4gPiAtICAgICAgICAgICAgIGlmIChsZXZlbCA+IG1heF9sZXZl bCB8fCBsZXZlbF93bS0+cGxhbmVfcmVzX2IgPT0gMAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHx8IGxldmVsX3dtLT5wbGFuZV9yZXNfbCA+PSAzMQo+PiA+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxldmVsX3dtLT5w bGFuZV9yZXNfYiA+PSBwbGFuZV9kZGIpIHsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg ICAgbGV2ZWxfd20tPnBsYW5lX2VuID0gZmFsc2U7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgIGxldmVsX3dtLT5wbGFuZV9yZXNfYiA9IDA7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgIGxldmVsX3dtLT5wbGFuZV9yZXNfbCA9IDA7Cj4+ID4gPiA+ID4gLSAgICAgICAg ICAgICB9IGVsc2Ugewo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBsZXZlbF93bS0+ cGxhbmVfZW4gPSB0cnVlOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgfQo+PiA+ID4gPiA+IC0g ICAgIH0KPj4gPiA+ID4gPiAtfQo+PiA+ID4gPiA+IC0KPj4gPiA+ID4gPiAgIHN0YXRpYyBpbnQK Pj4gPiA+ID4gPiAgIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlLAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgc3RydWN0IHNrbF9waXBl X3dtICpwaXBlX3dtLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBza2xf ZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCj4+ID4gPiA+ID4gICB7Cj4+ID4gPiA+ID4g ICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0 ZTsKPj4gPiA+ID4gPiAgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNl LmNydGM7Cj4+ID4gPiA+ID4gICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+PiA+ID4gPiA+ICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+ID4gPiA+ID4gICAgICAgIGVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPj4gPiA+ID4gPiAgICAgICAgc3RydWN0IHNrbF9kZGJf ZW50cnkgKmFsbG9jID0gJmNzdGF0ZS0+d20uc2tsLmRkYjsKPj4gPiA+ID4gPiBAQCAtNDE4Nyw5 ICs0MTU5LDYgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjLAo+PiA+ID4gPiA+ICAgICAgICB1bnNpZ25lZCBwbGFuZV9kYXRh X3JhdGVbSTkxNV9NQVhfUExBTkVTXSA9IHt9Owo+PiA+ID4gPiA+ICAgICAgICB1bnNpZ25lZCBw bGFuZV95X2RhdGFfcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307Cj4+ID4gPiA+ID4gICAgICAg IHVpbnQxNl90IHRvdGFsX21pbl9ibG9ja3MgPSAwOwo+PiA+ID4gPiA+IC0gICAgIHVpbnQxNl90 IHRvdGFsX2xldmVsX2RkYjsKPj4gPiA+ID4gPiAtICAgICB1aW50MTZfdCBwbGFuZV9ibG9ja3Mg PSAwOwo+PiA+ID4gPiA+IC0gICAgIGludCBtYXhfbGV2ZWwsIGxldmVsOwo+PiA+ID4gPiA+IAo+ PiA+ID4gPiA+ICAgICAgICAvKiBDbGVhciB0aGUgcGFydGl0aW9uaW5nIGZvciBkaXNhYmxlZCBw bGFuZXMuICovCj4+ID4gPiA+ID4gICAgICAgIG1lbXNldChkZGItPnBsYW5lW3BpcGVdLCAwLCBz aXplb2YoZGRiLT5wbGFuZVtwaXBlXSkpOwo+PiA+ID4gPiA+IEBAIC00MjI4LDQ4ICs0MTk3LDEw IEBAIGludCBza2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YywKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4g PiA+ID4gPiAgICAgICAgfQo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IC0gICAgIGFsbG9jX3NpemUg LT0gbWluaW11bVtQTEFORV9DVVJTT1JdOwo+PiA+ID4gPiA+IC0gICAgIGRkYi0+cGxhbmVbcGlw ZV1bUExBTkVfQ1VSU09SXS5zdGFydCA9IGFsbG9jLT5lbmQgLQo+PiA+ID4gPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW1bUExB TkVfQ1VSU09SXTsKPj4gPiA+ID4gPiArICAgICBhbGxvY19zaXplIC09IHRvdGFsX21pbl9ibG9j a3M7Cj4+ID4gPiA+ID4gKyAgICAgZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLnN0YXJ0 ID0gYWxsb2MtPmVuZCAtIG1pbmltdW1bUExBTkVfQ1VSU09SXTsKPj4gPiA+ID4gPiAgICAgICAg ZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5lbmQ7Cj4+ID4gPiA+ ID4gCj4+ID4gPiA+ID4gLSAgICAgZm9yIChsZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3By aXYpOyBsZXZlbCA+PSAwOyBsZXZlbC0tKSB7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICB0b3Rh bF9sZXZlbF9kZGIgPSAwOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgZm9yX2VhY2hfcGxhbmVf aWRfb25fY3J0YyhpbnRlbF9jcnRjLCBwbGFuZV9pZCkgewo+PiA+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICAvKgo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgKiBUT0RPOiBX ZSBzaG91bGQgY2FsY3VsYXRlIHdhdGVybWFyayB2YWx1ZXMgZm9yIFkvVVYKPj4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgICAgICogcGxhbmUgYm90aCBpbiBjYXNlIG9mIE5WMTIgZm9ybWF0 IGFuZCB1c2UgYm90aCB2YWx1ZXMKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICog Zm9yIGRkYiBjYWxjdWxhdGlvbi4gTlYxMiBpcyBkaXNhYmxlZCBhcyBvZiBub3csIFNvCj4+ID4g PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqIHVzaW5nIG9ubHkgc2luZ2xlL1VWIHBsYW5l IHZhbHVlIGhlcmUuCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqLwo+PiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSA9ICZwaXBl X3dtLT5wbGFuZXNbcGxhbmVfaWRdOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB1 aW50MTZfdCBwbGFuZV9yZXNfYiA9IHdtLT53bVtsZXZlbF0ucGxhbmVfcmVzX2I7Cj4+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IG1pbiA9IG1pbmltdW1bcGxhbmVfaWRd ICsgeV9taW5pbXVtW3BsYW5lX2lkXTsKPj4gPiA+ID4gPiAtCj4+ID4gPiA+ID4gLSAgICAgICAg ICAgICAgICAgICAgIGlmIChwbGFuZV9pZCA9PSBQTEFORV9DVVJTT1IpCj4+ID4gPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ID4gPiA+ID4gLQo+PiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICB0b3RhbF9sZXZlbF9kZGIgKz0gbWF4KHBsYW5lX3Jl c19iLCBtaW4pOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgfQo+PiA+ID4gPiA+IC0KPj4gPiA+ ID4gPiAtICAgICAgICAgICAgIC8qCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgKiBJZiBUaGlz IGxldmVsIGNhbiBzdWNjZXNzZnVsbHkgYmUgZW5hYmxlZCB3aXRoIHRoZQo+PiA+ID4gPiA+IC0g ICAgICAgICAgICAgICogcGlwZSdzIGN1cnJlbnQgRERCIGFsbG9jYXRpb24sIHRoZW4gYWxsIGxv d2VyIGxldmVscyBhcmUKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAqIGd1YXJhbnRlZWQgdG8g c3VjY2VlZCBhcyB3ZWxsLgo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICovCj4+ID4gPiA+ID4g LSAgICAgICAgICAgICBpZiAodG90YWxfbGV2ZWxfZGRiIDw9IGFsbG9jX3NpemUpCj4+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiA+ID4gPiA+IC0gICAgIH0KPj4gPiA+ ID4gPiAtCj4+ID4gPiA+ID4gLSAgICAgaWYgKChsZXZlbCA8IDApIHx8ICh0b3RhbF9taW5fYmxv Y2tzID4gYWxsb2Nfc2l6ZSkpIHsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgIERSTV9ERUJVR19L TVMoIlJlcXVlc3RlZCBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gZXhjZWVkcyBzeXN0ZW0gRERCIGxp bWl0YXRpb25zIik7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJtaW5p bXVtIHJlcXVpcmVkICVkLyVkXG4iLCAobGV2ZWwgPCAwKSA/Cj4+ID4gPiA+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdG90YWxfbGV2ZWxfZGRiIDogdG90YWxfbWluX2Jsb2Nrcywg YWxsb2Nfc2l6ZSk7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4g PiA+ID4gPiAtICAgICB9Cj4+ID4gPiA+ID4gLSAgICAgbWF4X2xldmVsID0gbGV2ZWw7Cj4+ID4g PiA+ID4gLSAgICAgYWxsb2Nfc2l6ZSAtPSB0b3RhbF9sZXZlbF9kZGI7Cj4+ID4gPiA+ID4gLQo+ PiA+ID4gPiA+ICAgICAgICAvKgo+PiA+ID4gPiA+ICAgICAgICAgKiAyLiBEaXN0cmlidXRlIHRo ZSByZW1haW5pbmcgc3BhY2UgaW4gcHJvcG9ydGlvbiB0byB0aGUgYW1vdW50IG9mCj4+ID4gPiA+ ID4gICAgICAgICAqIGRhdGEgZWFjaCBwbGFuZSBuZWVkcyB0byBmZXRjaCBmcm9tIG1lbW9yeS4K Pj4gPiA+ID4gPiBAQCAtNDI3OSwyNCArNDIxMCwxMyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4 X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4+ID4gPiA+ID4gICAg ICAgIHRvdGFsX2RhdGFfcmF0ZSA9IHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNz dGF0ZSwKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbmVfZGF0YV9yYXRlLAo+PiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV95X2Rh dGFfcmF0ZSk7Cj4+ID4gPiA+ID4gLSAgICAgLyoKPj4gPiA+ID4gPiAtICAgICAgKiBQTEFORV9D VVJTT1IgZGF0YSByYXRlIGlzIG5vdCBpbmNsdWRlZCBpbiB0b3RhbF9kYXRhX3JhdGUuCj4+ID4g PiA+ID4gLSAgICAgICogSWYgb25seSBjdXJzb3IgcGxhbmUgaXMgZW5hYmxlZCB3ZSBoYXZlIHRv IGVuYWJsZSBpdHMgV00gbGV2ZWxzCj4+ID4gPiA+ID4gLSAgICAgICogZXhwbGljaXRseSBiZWZv cmUgcmV0dXJuaW5nLiBDdXJzb3IgaGFzIGZpeGVkIGRkYiBhbGxvY2F0aW9uLAo+PiA+ID4gPiA+ IC0gICAgICAqIFNvIGl0J3Mgb2sgdG8gYWx3YXlzIGNoZWNrIGN1cnNvciBXTSBlbmFibGluZyBi ZWZvcmUgcmV0dXJuLgo+PiA+ID4gPiA+IC0gICAgICAqLwo+PiA+ID4gPiA+IC0gICAgIHBsYW5l X2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9DVVJT T1JdKTsKPj4gPiA+ID4gPiAtICAgICBza2xfZW5hYmxlX3BsYW5lX3dtX2xldmVscyhkZXZfcHJp diwgcGxhbmVfYmxvY2tzLCBtYXhfbGV2ZWwsCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnBpcGVfd20tPnBsYW5lc1tQTEFORV9DVVJTT1JdKTsKPj4gPiA+ID4g PiAgICAgICAgaWYgKHRvdGFsX2RhdGFfcmF0ZSA9PSAwKQo+PiA+ID4gPiA+ICAgICAgICAgICAg ICAgIHJldHVybiAwOwo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+ICAgICAgICBzdGFydCA9IGFsbG9j LT5zdGFydDsKPj4gPiA+ID4gPiAgICAgICAgZm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhpbnRl bF9jcnRjLCBwbGFuZV9pZCkgewo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBkYXRhX3JhdGUsIHlfZGF0YV9yYXRlOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgdWludDE2 X3QgcGxhbmVfYmxvY2tzID0gMCwgeV9wbGFuZV9ibG9ja3MgPSAwOwo+PiA+ID4gPiA+IC0gICAg ICAgICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPSAmcGlwZV93bS0+cGxhbmVzW3BsYW5l X2lkXTsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgIHVpbnQxNl90IHBsYW5lX3Jlc19iID0gd20t PndtW21heF9sZXZlbF0ucGxhbmVfcmVzX2I7Cj4+ID4gPiA+ID4gKyAgICAgICAgICAgICB1aW50 MTZfdCBwbGFuZV9ibG9ja3MsIHlfcGxhbmVfYmxvY2tzID0gMDsKPj4gPiA+ID4gPiAKPj4gPiA+ ID4gPiAgICAgICAgICAgICAgICBpZiAocGxhbmVfaWQgPT0gUExBTkVfQ1VSU09SKQo+PiA+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ID4gPiA+ID4gQEAgLTQzMDgs MzYgKzQyMjgsMzMgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKHN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAqIHByb21v dGUgdGhlIGV4cHJlc3Npb24gdG8gNjQgYml0cyB0byBhdm9pZCBvdmVyZmxvd2luZywgdGhlCj4+ ID4gPiA+ID4gICAgICAgICAgICAgICAgICogcmVzdWx0IGlzIDwgYXZhaWxhYmxlIGFzIGRhdGFf cmF0ZSAvIHRvdGFsX2RhdGFfcmF0ZSA8IDEKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgKi8K Pj4gPiA+ID4gPiArICAgICAgICAgICAgIHBsYW5lX2Jsb2NrcyA9IG1pbmltdW1bcGxhbmVfaWRd Owo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgcGxhbmVfYmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2 NF90KWFsbG9jX3NpemUgKiBkYXRhX3JhdGUsCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0b3RhbF9kYXRhX3JhdGUpOwo+PiA+ID4gPiA+IAo+PiA+ID4g PiA+ICAgICAgICAgICAgICAgIC8qIExlYXZlIGRpc2FibGVkIHBsYW5lcyBhdCAoMCwwKSAqLwo+ PiA+ID4gPiA+ICAgICAgICAgICAgICAgIGlmIChkYXRhX3JhdGUpIHsKPj4gPiA+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgcGxhbmVfYmxvY2tzID0gbWF4KG1pbmltdW1bcGxhbmVfaWRdLCBw bGFuZV9yZXNfYik7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHBsYW5lX2Jsb2Nr cyArPSBkaXZfdTY0KCh1aW50NjRfdClhbGxvY19zaXplICoKPj4gPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfcmF0ZSwgdG90YWxfZGF0YV9yYXRlKTsK Pj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgIGRkYi0+cGxhbmVbcGlwZV1bcGxhbmVf aWRdLnN0YXJ0ID0gc3RhcnQ7Cj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICBkZGIt PnBsYW5lW3BpcGVdW3BsYW5lX2lkXS5lbmQgPSBzdGFydCArIHBsYW5lX2Jsb2NrczsKPj4gPiA+ ID4gPiAtICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gcGxhbmVfYmxvY2tzOwo+PiA+ID4g PiA+ICAgICAgICAgICAgICAgIH0KPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiArICAgICAgICAgICAg IHN0YXJ0ICs9IHBsYW5lX2Jsb2NrczsKPj4gPiA+ID4gPiArCj4+ID4gPiA+ID4gICAgICAgICAg ICAgICAgLyoKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgKiBhbGxvY2F0aW9uIGZvciB5X3Bs YW5lIHBhcnQgb2YgcGxhbmFyIGZvcm1hdDoKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAqIFRP RE86IE9uY2Ugd2Ugc3RhcnQgY2FsY3VsYXRpbmcgd2F0ZXJtYXJrIHZhbHVlcyBmb3IgWS9VVgo+ PiA+ID4gPiA+IC0gICAgICAgICAgICAgICogcGxhbmUgYm90aCBjb25zaWRlciBpdCBmb3IgaW5p dGlhbCBhbGxvd2VkIHdtIGJsb2Nrcy4KPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgKi8KPj4g PiA+ID4gPiAgICAgICAgICAgICAgICB5X2RhdGFfcmF0ZSA9IHBsYW5lX3lfZGF0YV9yYXRlW3Bs YW5lX2lkXTsKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiArICAgICAgICAgICAgIHlfcGxhbmVfYmxv Y2tzID0geV9taW5pbXVtW3BsYW5lX2lkXTsKPj4gPiA+ID4gPiArICAgICAgICAgICAgIHlfcGxh bmVfYmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUgKiB5X2RhdGFfcmF0ZSwK Pj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX2Rh dGFfcmF0ZSk7Cj4+ID4gPiA+ID4gKwo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIGlmICh5X2Rh dGFfcmF0ZSkgewo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB5X3BsYW5lX2Jsb2Nr cyA9IHlfbWluaW11bVtwbGFuZV9pZF07Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAg IHlfcGxhbmVfYmxvY2tzICs9IGRpdl91NjQoKHVpbnQ2NF90KWFsbG9jX3NpemUgKgo+PiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeV9kYXRhX3JhdGUsIHRv dGFsX2RhdGFfcmF0ZSk7Cj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICBkZGItPnlf cGxhbmVbcGlwZV1bcGxhbmVfaWRdLnN0YXJ0ID0gc3RhcnQ7Cj4+ID4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICBkZGItPnlfcGxhbmVbcGlwZV1bcGxhbmVfaWRdLmVuZCA9IHN0YXJ0ICsg eV9wbGFuZV9ibG9ja3M7Cj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9 IHlfcGxhbmVfYmxvY2tzOwo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIH0KPj4gPiA+ID4gPiAt ICAgICAgICAgICAgIHNrbF9lbmFibGVfcGxhbmVfd21fbGV2ZWxzKGRldl9wcml2LAo+PiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfYmxvY2tz LAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4 X2xldmVsLAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd20pOwo+PiA+ID4gPiA+ICsKPj4gPiA+ID4gPiArICAgICAgICAgICAgIHN0YXJ0ICs9IHlf cGxhbmVfYmxvY2tzOwo+PiA+ID4gPiA+ICAgICAgICB9Cj4+ID4gPiA+ID4gCj4+ID4gPiA+ID4g ICAgICAgIHJldHVybiAwOwo+PiA+ID4gPiA+IEBAIC00NDI3LDkgKzQzNDQsMTEgQEAgc3RhdGlj IHVpbnRfZml4ZWRfMTZfMTZfdCBza2xfd21fbWV0aG9kMih1aW50MzJfdCBwaXhlbF9yYXRlLAo+ PiA+ID4gPiA+ICAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4+ID4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqaW50ZWxfcHN0YXRlLAo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQxNl90IGRkYl9hbGxvY2F0aW9uLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgbGV2ZWwsCj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQxNl90ICpvdXRfYmxvY2tzLCAvKiBvdXQgKi8KPj4gPiA+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRfbGluZXMgLyogb3V0ICovKQo+ PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dF9saW5l cywgLyogb3V0ICovCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCAqZW5hYmxlZCAvKiBvdXQgKi8pCj4+ID4gPiA+ID4gICB7Cj4+ID4gPiA+ID4gICAgICAgIHN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShpbnRlbF9wc3RhdGUtPmJh c2UucGxhbmUpOwo+PiA+ID4gPiA+ICAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpwc3RhdGUgPSAmaW50ZWxfcHN0YXRlLT5iYXNlOwo+PiA+ID4gPiA+IEBAIC00NDUyLDggKzQz NzEsMTAgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gPiA+ID4gICAgICAgIGJvb2wgeV90aWxlZCwg eF90aWxlZDsKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiAgICAgICAgaWYgKGxhdGVuY3kgPT0gMCB8 fAo+PiA+ID4gPiA+IC0gICAgICAgICAhaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjc3RhdGUsIGlu dGVsX3BzdGF0ZSkpCj4+ID4gPiA+ID4gKyAgICAgICAgICFpbnRlbF93bV9wbGFuZV92aXNpYmxl KGNzdGF0ZSwgaW50ZWxfcHN0YXRlKSkgewo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgKmVuYWJs ZWQgPSBmYWxzZTsKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gPiA+ID4g PiArICAgICB9Cj4+ID4gPiA+ID4gCj4+ID4gPiA+ID4gICAgICAgIHlfdGlsZWQgPSBmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKPj4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ7Cj4+ID4gPiA+ ID4gQEAgLTQ1NDEsNiArNDQ2Miw5IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20o Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ID4gPiA+ICAgICAg ICAgICAgICAgIGlmICgoY3BwICogY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwgLyA1MTIgPCAxKSAmJgo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAocGxhbmVfYnl0 ZXNfcGVyX2xpbmUgLyA1MTIgPCAxKSkKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg IHNlbGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Cj4+ID4gPiA+ID4gKyAgICAgICAgICAgICBlbHNl IGlmICgoZGRiX2FsbG9jYXRpb24gJiYgZGRiX2FsbG9jYXRpb24gLwo+PiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBmaXhlZF8xNl8xNl90b191MzJfcm91bmRfdXAocGxhbmVfYmxvY2tz X3Blcl9saW5lKSkgPj0gMSkKPj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgc2VsZWN0 ZWRfcmVzdWx0ID0gbWluX2ZpeGVkXzE2XzE2KG1ldGhvZDEsIG1ldGhvZDIpOwo+PiA+ID4gPiA+ ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxhdGVuY3kgPj0gbGluZXRpbWVfdXMpCj4+ID4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9yZXN1bHQgPSBtaW5fZml4ZWRfMTZf MTYobWV0aG9kMSwgbWV0aG9kMik7Cj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgZWxzZQo+PiA+ ID4gPiA+IEBAIC00NTYwLDQyICs0NDg0LDY0IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxh bmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ID4gPiA+ ICAgICAgICAgICAgICAgIH0KPj4gPiA+ID4gPiAgICAgICAgfQo+PiA+ID4gPiA+IAo+PiA+ID4g PiA+IC0gICAgIGlmIChyZXNfbGluZXMgPj0gMzEgJiYgbGV2ZWwgPT0gMCkgewo+PiA+ID4gPiA+ IC0gICAgICAgICAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBwc3RhdGUtPnBsYW5lOwo+ PiA+ID4gPiA+ICsgICAgIGlmIChyZXNfYmxvY2tzID49IGRkYl9hbGxvY2F0aW9uIHx8IHJlc19s aW5lcyA+IDMxKSB7Cj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAqZW5hYmxlZCA9IGZhbHNlOwo+ PiA+ID4gPiA+IAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiUmVxdWVz dGVkIGRpc3BsYXkgY29uZmlndXJhdGlvbiBleGNlZWRzIHN5c3RlbSB3YXRlcm1hcmsgbGltaXRh dGlvbnNcbiIpOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiW1BMQU5F OiVkOiVzXSBsaW5lcyByZXF1aXJlZCA9ICV1LzMxXG4iLAo+PiA+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwgcmVzX2xpbmVz KTsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiA+ID4gPiA+ICsg ICAgICAgICAgICAgLyoKPj4gPiA+ID4gPiArICAgICAgICAgICAgICAqIElmIHRoZXJlIGFyZSBu byB2YWxpZCBsZXZlbCAwIHdhdGVybWFya3MsIHRoZW4gd2UgY2FuJ3QKPj4gPiA+ID4gPiArICAg ICAgICAgICAgICAqIHN1cHBvcnQgdGhpcyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCj4+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgKi8KPj4gPiA+ID4gPiArICAgICAgICAgICAgIGlmIChsZXZlbCkg ewo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gPiA+ID4gPiAr ICAgICAgICAgICAgIH0gZWxzZSB7Cj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gcHN0YXRlLT5wbGFuZTsKPj4gPiA+ID4gPiArCj4+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIlJlcXVlc3RlZCBkaXNw bGF5IGNvbmZpZ3VyYXRpb24gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25zXG4i KTsKPj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiW1BMQU5F OiVkOiVzXSBibG9ja3MgcmVxdWlyZWQgPSAldS8ldSwgbGluZXMgcmVxdWlyZWQgPSAldS8zMVxu IiwKPj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZS0+ YmFzZS5pZCwgcGxhbmUtPm5hbWUsCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVzX2Jsb2NrcywgZGRiX2FsbG9jYXRpb24sIHJlc19saW5lcyk7Cj4+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiA+ID4gPiA+ICsg ICAgICAgICAgICAgfQo+PiA+ID4gPiA+ICAgICAgICB9Cj4+ID4gPiA+ID4gCj4+ID4gPiA+ID4g ICAgICAgICpvdXRfYmxvY2tzID0gcmVzX2Jsb2NrczsKPj4gPiA+ID4gPiAgICAgICAgKm91dF9s aW5lcyA9IHJlc19saW5lczsKPj4gPiA+ID4gPiArICAgICAqZW5hYmxlZCA9IHRydWU7Cj4+ID4g PiA+ID4gCj4+ID4gPiA+ID4gICAgICAgIHJldHVybiAwOwo+PiA+ID4gPiA+ICAgfQo+PiA+ID4g PiA+IAo+PiA+ID4gPiA+ICAgc3RhdGljIGludAo+PiA+ID4gPiA+ICAgc2tsX2NvbXB1dGVfd21f bGV2ZWxzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKPj4g PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBza2xfcGxhbmVfd20gKndtKQo+PiA+ID4gPiA+ICAgewo+PiA+ID4gPiA+ICsgICAg IHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJh c2UuY3J0Yyk7Cj4+ID4gPiA+ID4gKyAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBpbnRl bF9wc3RhdGUtPmJhc2UucGxhbmU7Cj4+ID4gPiA+ID4gKyAgICAgc3RydWN0IGludGVsX3BsYW5l ICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPj4gPiA+ID4gPiArICAgICB1 aW50MTZfdCBkZGJfYmxvY2tzOwo+PiA+ID4gPiA+ICsgICAgIGVudW0gcGlwZSBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKPj4gPiA+ID4gPiAgICAgICAgaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBp bGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKPj4gPiA+ID4gPiAgICAgICAgaW50IHJldDsKPj4g PiA+ID4gPiAKPj4gPiA+ID4gPiAgICAgICAgaWYgKFdBUk5fT04oIWludGVsX3BzdGF0ZS0+YmFz ZS5mYikpCj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ID4gPiA+ ID4gCj4+ID4gPiA+ID4gKyAgICAgZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRi LT5wbGFuZVtwaXBlXVtpbnRlbF9wbGFuZS0+aWRdKTsKPj4gPiA+ID4gPiArCj4+ID4gPiA+ID4g ICAgICAgIGZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPj4g PiA+ID4gPiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgPSAmd20t PndtW2xldmVsXTsKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICByZXQgPSBz a2xfY29tcHV0ZV9wbGFuZV93bShkZXZfcHJpdiwKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjc3RhdGUsCj4+ID4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfcHN0YXRlLAo+PiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRiX2Jsb2NrcywKPj4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbCwKPj4g PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzdWx0 LT5wbGFuZV9yZXNfYiwKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZyZXN1bHQtPnBsYW5lX3Jlc19sKTsKPj4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPnBsYW5lX3Jlc19sLAo+PiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3VsdC0+cGxh bmVfZW4pOwo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIGlmIChyZXQpCj4+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiA+ID4gPiA+ICAgICAgICB9Cj4+ID4g PiA+ID4gQEAgLTQ2NjEsNyArNDYwNyw4IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiAg ICAgICAgICAgICAgICB3bSA9ICZwaXBlX3dtLT5wbGFuZXNbcGxhbmVfaWRdOwo+PiA+ID4gPiA+ IAo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRl dl9wcml2LCBjc3RhdGUsIGludGVsX3BzdGF0ZSwgd20pOwo+PiA+ID4gPiA+ICsgICAgICAgICAg ICAgcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9wcml2LCBkZGIsIGNzdGF0ZSwKPj4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9w c3RhdGUsIHdtKTsKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICBpZiAocmV0KQo+PiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gPiA+ID4gPiAgICAgICAgICAg ICAgICBza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKGNzdGF0ZSwgJndtLT50cmFuc193bSk7Cj4+ ID4gPiA+ID4gQEAgLTQ3NzQsNDUgKzQ3MjEsNiBAQCBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9v dmVybGFwcyhjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqKmVudHJpZXMsCj4+ID4gPiA+ID4g ICAgICAgIHJldHVybiBmYWxzZTsKPj4gPiA+ID4gPiAgIH0KPj4gPiA+ID4gPiAKPj4gPiA+ID4g PiAtc3RhdGljIGludAo+PiA+ID4gPiA+IC1za2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHN0cnVjdCBza2xfcGlwZV93bSAqb2xkX3BpcGVfd20sCj4+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBp cGVfd20pCj4+ID4gPiA+ID4gLXsKPj4gPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3RhdGU7Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0IGRy bV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+PiA+ID4gPiA+ IC0gICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK Pj4gPiA+ID4gPiAtICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0IHNr bF9kZGJfYWxsb2NhdGlvbiAqbmV3X2RkYiA9ICZpbnRlbF9zdGF0ZS0+d21fcmVzdWx0cy5kZGI7 Cj4+ID4gPiA+ID4gLSAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqY3VyX2RkYiA9ICZk ZXZfcHJpdi0+d20uc2tsX2h3LmRkYjsKPj4gPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZTsKPj4gPiA+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZTsKPj4gPiA+ID4gPiAtICAgICBlbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 Cj4+ID4gPiA+ID4gLQo+PiA+ID4gPiA+IC0gICAgIFdBUk5fT04oIWRybV9hdG9taWNfZ2V0X2V4 aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpKTsKPj4gPiA+ID4gPiAtCj4+ID4gPiA+ID4g LSAgICAgZHJtX2Zvcl9lYWNoX3BsYW5lX21hc2socGxhbmUsIGRldiwgY3N0YXRlLT5iYXNlLnBs YW5lX21hc2spIHsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgIGVudW0gcGxhbmVfaWQgcGxhbmVf aWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSktPmlkOwo+PiA+ID4gPiA+IC0gICAgICAgICAgICAg Y29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20gPSAmcGlwZV93bS0+cGxhbmVzW3BsYW5lX2lk XTsKPj4gPiA+ID4gPiAtICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKm9s ZF93bSA9ICZvbGRfcGlwZV93bS0+cGxhbmVzW3BsYW5lX2lkXTsKPj4gPiA+ID4gPiAtCj4+ID4g PiA+ID4gLSAgICAgICAgICAgICBpZiAoKHNrbF9kZGJfZW50cnlfZXF1YWwoJmN1cl9kZGItPnBs YW5lW3BpcGVdW3BsYW5lX2lkXSwKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZuZXdfZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9pZF0pICYmCj4+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgc2tsX2RkYl9lbnRyeV9lcXVhbCgmY3VyX2RkYi0+eV9wbGFu ZVtwaXBlXVtwbGFuZV9pZF0sCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbmV3X2RkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0pKSAmJgo+PiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICFtZW1jbXAod20sIG9sZF93bSwgc2l6ZW9mKHN0cnVjdCBz a2xfcGxhbmVfd20pKSkKPj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgY29udGludWU7 Cj4+ID4gPiA+ID4gLQo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgcGxhbmVfc3RhdGUgPSBkcm1f YXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+PiA+ID4gPiA+IC0gICAgICAg ICAgICAgaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpCj4+ID4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPj4gPiA+ID4gPiAtICAgICB9Cj4+ ID4gPiA+ID4gLQo+PiA+ID4gPiA+IC0gICAgIHJldHVybiAwOwo+PiA+ID4gPiA+IC19Cj4+ID4g PiA+ID4gLQo+PiA+ID4gPiA+ICAgc3RhdGljIGludCBza2xfdXBkYXRlX3BpcGVfd20oc3RydWN0 IGRybV9jcnRjX3N0YXRlICpjc3RhdGUsCj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3Qgc2tsX3BpcGVfd20gKm9sZF9waXBlX3dtLAo+PiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dt LCAvKiBvdXQgKi8KPj4gPiA+ID4gPiBAQCAtNDgyNiwxNyArNDczNCw2IEBAIHN0YXRpYyBpbnQg c2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlLAo+PiA+ID4g PiA+ICAgICAgICBpZiAocmV0KQo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 Cj4+ID4gPiA+ID4gCj4+ID4gPiA+ID4gLSAgICAgcmV0ID0gc2tsX2FsbG9jYXRlX3BpcGVfZGRi KGludGVsX2NzdGF0ZSwgcGlwZV93bSwgZGRiKTsKPj4gPiA+ID4gPiAtICAgICBpZiAocmV0KQo+ PiA+ID4gPiA+IC0gICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gPiA+ID4gPiAtICAgICAvKgo+ PiA+ID4gPiA+IC0gICAgICAqIFRPRE86IFBsYW5lcyBhcmUgaW5jbHVkZWQgaW4gc3RhdGUgdG8g YXJtIFdNIHJlZ2lzdGVycy4KPj4gPiA+ID4gPiAtICAgICAgKiBTY29wZSB0byBvcHRpbWl6ZSBm dXJ0aGVyLCBieSBqdXN0IHJld3JpdGluZyBwbGFuZSBzdXJmIHJlZ2lzdGVyLgo+PiA+ID4gPiA+ IC0gICAgICAqLwo+PiA+ID4gPiA+IC0gICAgIHJldCA9IHNrbF9kZGJfYWRkX2FmZmVjdGVkX3Bs YW5lcyhpbnRlbF9jc3RhdGUsIG9sZF9waXBlX3dtLCBwaXBlX3dtKTsKPj4gPiA+ID4gPiAtICAg ICBpZiAocmV0KQo+PiA+ID4gPiA+IC0gICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gPiA+ID4g PiAtCj4+ID4gPiA+ID4gICAgICAgIGlmICghbWVtY21wKG9sZF9waXBlX3dtLCBwaXBlX3dtLCBz aXplb2YoKnBpcGVfd20pKSkKPj4gPiA+ID4gPiAgICAgICAgICAgICAgICAqY2hhbmdlZCA9IGZh bHNlOwo+PiA+ID4gPiA+ICAgICAgICBlbHNlCj4+ID4gPiA+ID4gQEAgLTQ4NTksNyArNDc1Niw0 MSBAQCBzdGF0aWMgaW50IHNrbF91cGRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNzdGF0ZSwKPj4gPiA+ID4gPiAgIH0KPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiAgIHN0YXRpYyBp bnQKPj4gPiA+ID4gPiAtc2tsX2luY2x1ZGVfYWZmZWN0ZWRfY3J0Y3Moc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+PiA+ID4gPiA+ICtza2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPj4gPiA+ID4gPiArewo+PiA+ID4gPiA+ ICsgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0 ZTsKPj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsK Pj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjc3RhdGUtPmJhc2UuY3J0 YzsKPj4gPiA+ID4gPiArICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4+ID4gPiA+ID4gKyAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+PiA+ID4gPiA+ICsgICAgIHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsK Pj4gPiA+ID4gPiArICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpuZXdfZGRiID0gJmlu dGVsX3N0YXRlLT53bV9yZXN1bHRzLmRkYjsKPj4gPiA+ID4gPiArICAgICBzdHJ1Y3Qgc2tsX2Rk Yl9hbGxvY2F0aW9uICpjdXJfZGRiID0gJmRldl9wcml2LT53bS5za2xfaHcuZGRiOwo+PiA+ID4g PiA+ICsgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+PiA+ID4gPiA+ ICsgICAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+PiA+ID4gPiA+ICsgICAgIGVudW0gcGlw ZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPj4gPiA+ID4gPiArCj4+ID4gPiA+ID4gKyAgICAg V0FSTl9PTighZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yykp Owo+PiA+ID4gPiA+ICsKPj4gPiA+ID4gPiArICAgICBkcm1fZm9yX2VhY2hfcGxhbmVfbWFzayhw bGFuZSwgZGV2LCBjc3RhdGUtPmJhc2UucGxhbmVfbWFzaykgewo+PiA+ID4gPiA+ICsgICAgICAg ICAgICAgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKS0+aWQ7 Cj4+ID4gPiA+ID4gKwo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgaWYgKHNrbF9kZGJfZW50cnlf ZXF1YWwoJmN1cl9kZGItPnBsYW5lW3BpcGVdW3BsYW5lX2lkXSwKPj4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfZGRiLT5wbGFuZVtwaXBlXVtwbGFu ZV9pZF0pICYmCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgc2tsX2RkYl9lbnRyeV9lcXVh bCgmY3VyX2RkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0sCj4+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X2RkYi0+eV9wbGFuZVtwaXBlXVtwbGFu ZV9pZF0pKQo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPj4gPiA+ ID4gPiArCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICBwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4+ID4gPiA+ID4gKyAgICAgICAgICAgICBp ZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKPj4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIFBUUl9FUlIocGxhbmVfc3RhdGUpOwo+PiA+ID4gPiA+ICsgICAgIH0KPj4gPiA+ID4g PiArCj4+ID4gPiA+ID4gKyAgICAgcmV0dXJuIDA7Cj4+ID4gPiA+ID4gK30KPj4gPiA+ID4gPiAr Cj4+ID4gPiA+ID4gK3N0YXRpYyBpbnQKPj4gPiA+ID4gPiArc2tsX2NvbXB1dGVfZGRiKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gPiA+ID4gPiAgIHsKPj4gPiA+ID4gPiAgICAg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Cj4+ID4gPiA+ID4gICAgICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4gPiA+ ID4gPiBAQCAtNDkyMyw2ICs0ODU0LDE0IEBAIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9waXBlX3dt KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlLAo+PiA+ID4gPiA+ICAgICAgICAgICAgICAg IGNzdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7 Cj4+ID4gPiA+ID4gICAgICAgICAgICAgICAgaWYgKElTX0VSUihjc3RhdGUpKQo+PiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoY3N0YXRlKTsKPj4gPiA+ID4g PiArCj4+ID4gPiA+ID4gKyAgICAgICAgICAgICByZXQgPSBza2xfYWxsb2NhdGVfcGlwZV9kZGIo Y3N0YXRlLCBkZGIpOwo+PiA+ID4gPiA+ICsgICAgICAgICAgICAgaWYgKHJldCkKPj4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gPiA+ID4gPiArCj4+ID4gPiA+ ID4gKyAgICAgICAgICAgICByZXQgPSBza2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoY3N0YXRl KTsKPj4gPiA+ID4gPiArICAgICAgICAgICAgIGlmIChyZXQpCj4+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ID4gPiA+ID4gICAgICAgIH0KPj4gPiA+ID4gPiAK Pj4gPiA+ID4gPiAgICAgICAgcmV0dXJuIDA7Cj4+ID4gPiA+ID4gQEAgLTUwMTIsNyArNDk1MSw3 IEBAIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3N0YXRlLAo+PiA+ID4gPiA+ICAgICAgICAvKiBDbGVhciBhbGwgZGlydHkgZmxhZ3MgKi8KPj4g PiA+ID4gPiAgICAgICAgcmVzdWx0cy0+ZGlydHlfcGlwZXMgPSAwOwo+PiA+ID4gPiA+IAo+PiA+ ID4gPiA+IC0gICAgIHJldCA9IHNrbF9pbmNsdWRlX2FmZmVjdGVkX2NydGNzKHN0YXRlKTsKPj4g PiA+ID4gPiArICAgICByZXQgPSBza2xfY29tcHV0ZV9kZGIoc3RhdGUpOwo+PiA+ID4gPiA+ICAg ICAgICBpZiAocmV0KQo+PiA+ID4gPiA+ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ID4g PiA+ID4gCj4+ID4gPiA+ID4gLS0KPj4gPiA+ID4gPiAxLjkuMQo+PiA+ID4gPiA+IAo+PiA+ID4g PiAKPj4gPiA+ID4gLS0KPj4gPiA+ID4gTWF0dCBSb3Blcgo+PiA+ID4gPiBHcmFwaGljcyBTb2Z0 d2FyZSBFbmdpbmVlcgo+PiA+ID4gPiBJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1l bnQKPj4gPiA+ID4gSW50ZWwgQ29ycG9yYXRpb24KPj4gPiA+ID4gKDkxNikgMzU2LTI3OTUKPj4g PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4g PiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+ID4gPiAKPj4gPiA+IAo+PiA+IAo+PiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ID4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+PiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+PiAK Pj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=