From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [RFC 3/4] drm/i915/gen9: Expose top-most universal plane as cursor Date: Thu, 27 Oct 2016 18:55:57 -0400 Message-ID: <1477608957.24403.26.camel@redhat.com> References: <1477522291-10874-1-git-send-email-matthew.d.roper@intel.com> <1477522291-10874-4-git-send-email-matthew.d.roper@intel.com> <1477606532.24403.14.camel@redhat.com> <20161027223540.GK5924@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76B036E2B1 for ; Thu, 27 Oct 2016 22:56:01 +0000 (UTC) In-Reply-To: <20161027223540.GK5924@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE2LTEwLTI3IGF0IDE1OjM1IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+IE9u IFRodSwgT2N0IDI3LCAyMDE2IGF0IDA2OjE1OjMyUE0gLTA0MDAsIEx5dWRlIFBhdWwgd3JvdGU6 Cj4gPiAKPiA+IE9uIFdlZCwgMjAxNi0xMC0yNiBhdCAxNTo1MSAtMDcwMCwgTWF0dCBSb3BlciB3 cm90ZToKPiA+ID4gCj4gPiA+IEdlbjkgaGFzIGEgdHJhZGl0aW9uYWwgY3Vyc29yIHBsYW5lIHRo YXQgaXMgbXV0dWFsbHkgZXhjbHVzaXZlCj4gPiA+IHdpdGgKPiA+ID4gdGhlCj4gPiA+IHN5c3Rl bSdzIHRvcC1tb3N0ICJ1bml2ZXJzYWwiIHBsYW5lOyBpdCBzZWVtcyBsaWtlbHkgdGhhdCB0d28K PiA+ID4gcGxhbmVzCj4gPiA+IGFyZQo+ID4gPiByZWFsbHkgYSBzaW5nbGUgc2hhcmVkIGhhcmR3 YXJlIHVuaXQgd2l0aCB0d28gZGlmZmVyZW50IHJlZ2lzdGVyCj4gPiA+IGludGVyZmFjZXMuwqDC oFRodXMgZmFyIGk5MTUgaGFzIGV4cG9zZWQgYSBjdXJzb3IgcGxhbmUgdG8KPiA+ID4gdXNlcnNw YWNlCj4gPiA+IHRoYXQncyBob29rZWQgdXAgdG8gdGhlIG9sZC1zdHlsZSBjdXJzb3IgcmVnaXN0 ZXJzOyB3ZSBqdXN0Cj4gPiA+IHByZXRlbmRlZAo+ID4gPiB0aGF0IHRoZSB0b3AtbW9zdCB1bml2 ZXJzYWwgcGxhbmUgZGlkbid0IGV4aXN0IGFuZCByZXBvcnRlZCBvbmUKPiA+ID4gZmV3ZXIKPiA+ ID4gInNwcml0ZS9vdmVybGF5IiBwbGFuZXMgZm9yIGVhY2ggcGlwZSB0aGFuIHRoZSBwbGF0Zm9y bQo+ID4gPiB0ZWNobmljYWxseQo+ID4gPiBoYXMuCj4gPiA+IExldCdzIHN3aXRjaCB0aGlzIGFy b3VuZCBzbyB0aGF0IHRoZSBjdXJzb3IgZXhwb3NlZCB0byB1c2Vyc3BhY2UKPiA+ID4gaXMKPiA+ ID4gYWN0dWFsbHkgd2lyZWQgdXAgdG8gdG9wLW1vc3QgdW5pdmVyc2FsIHBsYW5lIHJlZ2lzdGVy cy7CoMKgV2UnbGwKPiA+ID4gY29udGludWUKPiA+ID4gdG8gcHJlc2VudCB0aGUgc2FtZSBjdXJz b3IgQUJJIHRvIHVzZXJzcGFjZSB0aGF0IHdlIGFsd2F5cyBoYXZlLAo+ID4gPiBidXQKPiA+ID4g aW50ZXJuYWxseSB3ZSdsbCBqdXN0IGJlIHByb2dyYW1taW5nIGEgZGlmZmVyZW50IHNldCBvZiBy ZWdpc3RlcnMKPiA+ID4gYW5kCj4gPiA+IGRvaW5nIHNvIGluIGEgd2F5IHRoYXQncyBtb3JlIGNv bnNpc3RlbnQgd2l0aCBob3cgYWxsIHRoZSBvdGhlcgo+ID4gPiBnZW45Cj4gPiA+IHBsYW5lcyB3 b3JrIC0tLSBsZXNzIGN1cnNvci1zcGVjaWZpYyBzcGVjaWFsIGNhc2VzIHRocm91Z2hvdXQgdGhl Cj4gPiA+IGNvZGUuCj4gPiA+IAo+ID4gPiBBc2lkZSBmcm9tIG1ha2luZyB0aGUgY29kZSBhIGJp dCBzaW1wbGVyIChmZXdlciBjdXJzb3Itc3BlY2lmaWMKPiA+ID4gc3BlY2lhbAo+ID4gPiBjYXNl cyksIHRoaXMgd2lsbCBhbHNvIHBhdmUgdGhlIHdheSB0byBldmVudHVhbGx5IGV4cG9zaW5nIHRo ZQo+ID4gPiB0b3AtCj4gPiA+IG1vc3QKPiA+ID4gcGxhbmUgaW4gYSBtb3JlIGZ1bGwtZmVhdHVy ZWQgbWFubmVyIHRvIHVzZXJzcGFjZSBjbGllbnRzIHRoYXQKPiA+ID4gZG9uJ3QKPiA+ID4gbmVl ZCBhIHRyYWRpdGlvbmFsIGN1cnNvciBhbmQgd2lzaCB0byBvcHQgaW50byBoYXZpbmcgYWNjZXNz IHRvCj4gPiA+IGFuCj4gPiA+IGFkZGl0aW9uYWwgc3ByaXRlL292ZXJsYXktc3R5bGUgcGxhbmUg aW5zdGVhZC4KPiA+ID4gCj4gPiA+IEl0J3Mgd29ydGggbm90aW5nIHRoYXQgYSBsb3Qgb2YgdGhl IHNwZWNpYWwtY2FzZWQgY3Vyc29yLXNwZWNpZmljCj4gPiA+IGNvZGUKPiA+ID4gd2FzIGluIHRo ZSBnZW45IHdhdGVybWFyayBwcm9ncmFtbWluZy7CoMKgSXQncyBnb29kIHRvIHNpbXBsaWZ5Cj4g PiA+IHRoYXQKPiA+ID4gY29kZSwKPiA+ID4gYnV0IHdlIHNob3VsZCBrZWVwIGFuIGV5ZSBvdXQg Zm9yIGFueSB1bndhbnRlZCBzaWRlIGVmZmVjdHMgb2YKPiA+ID4gdGhpcwo+ID4gPiBwYXRjaDsg c2luY2Ugc3ByaXRlcy9vdmVybGF5cyB0ZW5kIHRvIGdldCB1c2VkIGxlc3MgdGhhbiBjdXJzb3Jz LAo+ID4gPiBpdCdzCj4gPiA+IHBvc3NpYmxlIHRoYXQgdGhpcyBjb3VsZCBoZWxwIHVzIHVuY292 ZXIgYWRkaXRpb25hbCB1bmRlcnJ1bnMKPiA+ID4gdGhhdAo+ID4gPiBub2JvZHkgaGFkIHJ1biBh Y3Jvc3MgeWV0LsKgwqBPciBpdCBjb3VsZCBoYXZlIHRoZSBvcHBvc2l0ZSBlZmZlY3QKPiA+ID4g YW5kCj4gPiA+IGVsaW1pbmF0ZSBzb21lIG9mIHRoZSB1bmRlcnJ1bnMgdGhhdCB3ZSBoYXZlbid0 IGJlZW4gYWJsZSB0byBnZXQKPiA+ID4gcmlkCj4gPiA+IG9mCj4gPiA+IHlldC4KPiA+IAo+ID4g QWxyaWdodCwgc28gSSBoYWQgdG8gc2l0IG9uIHRoaXMgcGF0Y2ggZm9yIGEgd2hpbGUuIEkgdGhp bmsKPiA+IGV4cG9zaW5nCj4gPiB0aGlzIGFzIGEgbm9ybWFsIHBsYW5lIGlzIGEgZ29vZCBpZGVh OiB0aGUgcmVzdCBvZiB0aGUgd29ybGQganVzdAo+ID4gdXNlcwo+ID4gcGxhbmVzLCBzbyB3ZSBz aG91bGQgdG9vLiBXZSBuZWVkIHRvIGJlICpyZWFsbHkqIGNhcmVmdWwgd2l0aCB0aGlzCj4gPiB0 aG91Z2guIExpa2UgUGF1bG8gc2FpZCB3YXRlcm1hcmtzIGFyZSBzdGlsbCBmcmFnaWxlIGFuZCBo b25lc3RseSBJCj4gPiB3b3VsZG4ndCBiZSBzdXJwcmlzZWQgaWYgd2UgZm91bmQgbW9yZSB1bmRl cnJ1bnMgaGlkaW5nIHNvbWV3aGVyZS4KPiAKPiBBZ3JlZWQuwqDCoFdlJ3JlIHByb2dyYW1taW5n IGEgZGlmZmVyZW50IHN1YnNldCBvZiB0aGUgaW50ZXJuYWwKPiBoYXJkd2FyZQo+IHNvIGV2ZW4g aWYgd2UgZG8gaXQgMTAwJSBwcm9wZXJseSBhY2NvcmRpbmcgdG8gdGhlIHNwZWMsIHdlIGNhbgo+ IGVhc2lseQo+IHVuY292ZXIgcHJldmlvdXNseSBoaWRkZW4gcGFpbnBvaW50cyBpbiB0aGUgaGFy ZHdhcmUgdGhhdCBuZWVkIG5ldwo+IHdvcmthcm91bmRzLgo+IAo+ID4gCj4gPiBGaXJzdCBvZmYs IGFsdGhvdWdoIHRoaXMgd2FzIG1lbnRpb25lZCBpbiBhbiBlLW1haWwgZG93biB0aGUgY2hhaW4s Cj4gPiBJJ20KPiA+IHByZXR0eSBzdXJlIGhhdmluZyBhIDAgYmxvY2sgYWxsb2NhdGlvbiBpcyBk ZWZpbml0ZWx5IG5vdCB3aGF0IHdlCj4gPiB3YW50Lgo+ID4gVGhlIHNwZWMgaXRzZWxmIHNheXMg YSBtaW5pbXVtIG9mIDggYmxvY2tzIGFzc3VtaW5nIGl0J3MgYSBub3JtYWwKPiA+IGN1cnNvciwg c28gaWYgd2UncmUgZ29pbmcgYmVsb3cgdGhhdCB3ZSBkZWZpbml0ZWx5IG5lZWQgdG8gYXQgbGVh c3QKPiA+IG1ha2Ugc3VyZSB0aGF0IGJlaGF2aW9yIGlzbid0IHdyb25nLgo+IAo+IEREQiBhbGxv Y2F0aW9uIHNob3VsZCBvbmx5IGJlIG5lY2Vzc2FyeSBpZiBhIHBsYW5lIGlzIGJlaW5nIHVzZWQK PiAob3RoZXJ3aXNlIHlvdSBoYXZlIG5vIGRhdGEgdG8gZmlsbCB0aGUgYnVmZmVyIHdpdGggYW55 d2F5KS7CoMKgSWYgYQo+IHBsYW5lCgpBaCB3aG9vcHMsIEkgdGhvdWdodCB5b3Ugd2VyZSBpbXBs eWluZyB0aGF0IHdlIGhhZCAwIGJsb2NrIGRkYgphbGxvY2F0aW9uIG9uIGFjdGl2ZSBwbGFuZXMu Cgo+IGlzIG9mZiwgdGhlbiBpdCBzaG91bGRuJ3QgbmVlZCBhbGxvY2F0aW9uIChhbmQgdGhpcyBw YXRjaCBndWFyYW50ZWVzCj4gdGhhdCB0aGUgY3Vyc29yIHdpbGwgX25ldmVyXyBiZSB0dXJuZWQg b24pIEknbSBwcmV0dHkgc3VyZSB3ZSd2ZQo+IGFjdHVhbGx5IGhhZCBzb21lIHRocmVhZHMgd2hl cmUgQXJ0IChvbmUgb2Ygb3VyIGhhcmR3YXJlIGFyY2hpdGVjdHMpCj4gbWVudGlvbmVkIHRoYXQg dGhlIGN1cnNvciBmaXhlZCBhbGxvY2F0aW9uIGlzIGp1c3QgYW4gb3B0aW1pemF0aW9uCj4gYW5k Cj4gaXNuJ3QgaW4gYW55IHdheSByZXF1aXJlZCBldmVuIHdoZW4geW91IGRvIHVzZSB0aGUgY3Vy c29yIGhhcmR3YXJlCj4gcGxhbmUuwqDCoFRoZSBvbmx5IG9uZSBJIGNhbiBmaW5kIHNlYXJjaGlu ZyBub3cgaXMgdGhpcyBvbmU6Cj4gCj4gwqDCoMKgwqDCoMKgwqDCoGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE2LUp1bmUvMDkKPiA5MjU2Lmh0bWwK PiAKPiBidXQgSSBmZWVsIGxpa2UgdGhlcmUgd2FzIGFub3RoZXIgdGhyZWFkIChvciBtYXliZSBh biBJUkMKPiBjb252ZXJzYXRpb24pCj4gd2hlcmUgaGUgdGFsa2VkIGFib3V0IGl0IGEgYml0IG1v cmUuwqDCoEknbGwgc2VlIGlmIEkgY2FuIGZpbmQgdGhlIG9uZQo+IEknbQo+IHRoaW5raW5nIG9m Lgo+IAo+ID4gCj4gPiBUaGUgc2Vjb25kIHRoaW5nIGlzIHRoYXQgdW5mb3J0dW5hdGVseSB0aGlz IHJlZ3Jlc3NlcyBpbiBhIHJhdGhlcgo+ID4gc3RyYW5nZSB3YXkuIE9uIHRoaXMgWDEgeW9nYSB3 LyBhIDRLIHNjcmVlbiAoU0tMIGNoaXBzZXQgb2YKPiA+IGNvdXJzZSksIGlmCj4gPiBJIG1vdmUg dGhlIGN1cnNvciBpbiBmcm9udCBvZiBhIGdyYXkgYmFja2dyb3VuZCBJIGNhbiBzZWUgYSBmYWlu dGx5Cj4gPiB2aXNpYmxlIGJveCBzdGFydGluZyBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1 cnNvciBhbmQgZ29pbmcgdG8KPiA+IHRoZQo+ID4gZW5kIG9mIHRoZSBwbGFuZS4gUmV2ZXJ0aW5n IHRoZSBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KPiAKPiBZZWFoLCBJIG1lbnRpb25lZCB0aGF0 IGluIHRoZSBjb3ZlciBsZXR0ZXIuLi5JIGJlbGlldmUgdGhlIGNvbG9yCj4gY29ycmVjdGlvbiBz ZXR0aW5ncyBhcmUgZGlmZmVyZW50IGZvciB0aGUgdW5pdmVyc2FsIHBsYW5lIHZzIHRoZQo+IGN1 cnNvcgo+IHBsYW5lICh3aGljaCBjYXVzZXMgSUdUIENSQyBtaXNtYXRjaGVzIGF0IHRoZSBtb21l bnQgYW5kIG1heSBiZQo+IHZpc3VhbGx5Cj4gbm90aWNlYWJsZSBpZiB5b3UgaGF2ZSBnb29kIGV5 ZXMpOyB0aGF0IHNob3VsZG4ndCBiZSBoYXJkIHRvIHRyYWNrIApBaCB3aG9vcHMsIG11c3QgaGF2 ZSBtaXNzZWQgdGhhdCBwYXJ0LiBSZWdhcmRsZXNzIHRob3VnaCwgd2Ugc2hvdWxkCnByb2JhYmx5 IGdldCB0aG9zZSBvdXQgb2YgdGhlIHdheSBmaXJzdCBiZWZvcmUgYXBwbHlpbmcgYW55IHBhdGNo ZXMKbGlrZSB0aGlzLiBPdGhlcndpc2UgSSB0aGluayB0aGUgcGF0Y2ggbG9va3MgZ29vZCwgc28g bG9uZyBhcyB3ZSBjYW4KZ2V0IGEgY291cGxlIG9mIHBlb3BsZSB0byB0cnkgaXQgb3V0IG9uIHRo ZWlyIHN5c3RlbXMgZm9yIGEgd2hpbGUgYW5kCnNlZSBpZiBhbnl0aGluZyBicmVha3MuCgo+IGRv d24KPiBhbmQgZml4Lgo+IAo+IAo+IE1hdHQKPiAKPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ ID4gQ2M6IEJvYiBQYWF1d2UgPGJvYi5qLnBhYXV3ZUBpbnRlbC5jb20+Cj4gPiA+IENjOiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4gPiBD YzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPiA+IENjOiBMeXVk ZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuY8KgwqDCoMKgwqDCoHzCoMKgNCAtLQo+ID4gPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmjCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMTEgKysr LQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgfCAzOCAr KysrKysrKystLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j wqDCoMKgwqDCoHwgOTcgKysrKysrKysrKysrLS0tLQo+ID4gPiAtLS0tCj4gPiA+IC0tLS0tLS0t LS0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoMKg wqDCoMKgfMKgwqA3ICsrKwo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmPC oMKgwqDCoMKgwqDCoMKgwqDCoHwgODUgKysrKy0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tCj4gPiA+ IC0tLS0tLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmPCoMKg wqDCoMKgwqB8wqDCoDYgKy0KPiA+ID4gwqA3IGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMo KyksIDE1NSBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPiA+IGluZGV4IDlmNWEzOTIuLjBiYmE0NzIgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+IEBAIC0zNDY5LDEwICszNDY5LDYg QEAgc3RhdGljIGludCBpOTE1X2RkYl9pbmZvKHN0cnVjdCBzZXFfZmlsZQo+ID4gPiAqbSwKPiA+ ID4gdm9pZCAqdW51c2VkKQo+ID4gPiDCoAkJCQnCoMKgwqBlbnRyeS0+c3RhcnQsIGVudHJ5LT5l bmQsCj4gPiA+IMKgCQkJCcKgwqDCoHNrbF9kZGJfZW50cnlfc2l6ZShlbnRyeSkpOwo+ID4gPiDC oAkJfQo+ID4gPiAtCj4gPiA+IC0JCWVudHJ5ID0gJmRkYi0+cGxhbmVbcGlwZV1bUExBTkVfQ1VS U09SXTsKPiA+ID4gLQkJc2VxX3ByaW50ZihtLCAiwqDCoCUtMTNzJTh1JTh1JTh1XG4iLCAiQ3Vy c29yIiwKPiA+ID4gZW50cnktCj4gPiA+ID4gCj4gPiA+ID4gc3RhcnQsCj4gPiA+IC0JCQnCoMKg wqBlbnRyeS0+ZW5kLAo+ID4gPiBza2xfZGRiX2VudHJ5X3NpemUoZW50cnkpKTsKPiA+ID4gwqAJ fQo+ID4gPiDCoAo+ID4gPiDCoAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRleCA0NzE0MDUxLi44M2FhZWQyIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTE3OCw3ICsxNzgs NyBAQCBlbnVtIHBsYW5lIHsKPiA+ID4gwqAJUExBTkVfQSA9IDAsCj4gPiA+IMKgCVBMQU5FX0Is Cj4gPiA+IMKgCVBMQU5FX0MsCj4gPiA+IC0JUExBTkVfQ1VSU09SLAo+ID4gPiArCVBMQU5FX0Qs Cj4gPiA+IMKgCUk5MTVfTUFYX1BMQU5FUywKPiA+ID4gwqB9Owo+ID4gPiDCoCNkZWZpbmUgcGxh bmVfbmFtZShwKSAoKHApICsgJ0EnKQo+ID4gPiBAQCAtMzE2LDkgKzMxNiwxNSBAQCBzdHJ1Y3Qg aTkxNV9ob3RwbHVnIHsKPiA+ID4gwqAJZm9yICgoX19wKSA9IDA7CQkJCQkJCj4gPiA+IAlcCj4g PiA+IMKgCcKgwqDCoMKgwqAoX19wKSA8IElOVEVMX0lORk8oX19kZXZfcHJpdiktCj4gPiA+ID5u dW1fc3ByaXRlc1soX19waXBlKV0gKwo+ID4gPiAxOwlcCj4gPiA+IMKgCcKgwqDCoMKgwqAoX19w KSsrKQo+ID4gPiArCj4gPiA+ICsvKgo+ID4gPiArICogT25seSBpdGVyYXRlIG92ZXIgc3ByaXRl cyBleHBvc2VkIGFzIHNwcml0ZXM7IG9taXQgc3ByaXRlcwo+ID4gPiB0aGF0Cj4gPiA+ICsgKiBh cmUgYmVpbmcgcmVwdXJwb3NlZCB0byBzaW11bGF0ZSBhIGN1cnNvci4KPiA+ID4gKyAqLwo+ID4g PiDCoCNkZWZpbmUgZm9yX2VhY2hfc3ByaXRlKF9fZGV2X3ByaXYsIF9fcCwgX19zKQkJCQo+ID4g PiAJXAo+ID4gPiDCoAlmb3IgKChfX3MpID0gMDsJCQkJCQkKPiA+ID4gCVwKPiA+ID4gLQnCoMKg wqDCoMKgKF9fcykgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fc3ByaXRlc1soX19wKV07 Cj4gPiA+IAkKPiA+ID4gXAo+ID4gPiArCcKgwqDCoMKgwqAoX19zKSA8IElOVEVMX0lORk8oX19k ZXZfcHJpdiktPm51bV9zcHJpdGVzWyhfX3ApXQo+ID4gPiAtCQo+ID4gPiBcCj4gPiA+ICsJwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoSU5URUxfSU5GTyhfX2Rldl9wcml2KS0+aGFzX3JlYWxf Y3Vyc29yID8KPiA+ID4gMCA6Cj4gPiA+IDEpOwlcCj4gPiA+IMKgCcKgwqDCoMKgwqAoX19zKSsr KQo+ID4gPiDCoAo+ID4gPiDCoCNkZWZpbmUgZm9yX2VhY2hfcG9ydF9tYXNrZWQoX19wb3J0LCBf X3BvcnRzX21hc2spIFwKPiA+ID4gQEAgLTY4Nyw2ICs2OTMsNyBAQCBzdHJ1Y3QgaW50ZWxfY3Ny IHsKPiA+ID4gwqAJZnVuYyhoYXNfcHNyKTsgXAo+ID4gPiDCoAlmdW5jKGhhc19yYzYpOyBcCj4g PiA+IMKgCWZ1bmMoaGFzX3JjNnApOyBcCj4gPiA+ICsJZnVuYyhoYXNfcmVhbF9jdXJzb3IpOyBc Cj4gPiA+IMKgCWZ1bmMoaGFzX3Jlc291cmNlX3N0cmVhbWVyKTsgXAo+ID4gPiDCoAlmdW5jKGhh c19ydW50aW1lX3BtKTsgXAo+ID4gPiDCoAlmdW5jKGhhc19zbm9vcCk7IFwKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMKPiA+ID4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5jCj4gPiA+IGluZGV4IGQ2YThm MTEuLmE0NjRlMGUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RldmljZV9pbmZvLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uYwo+ID4gPiBAQCAtMjcxLDIzICsyNzEsMzkgQEAgdm9pZCBpbnRlbF9kZXZpY2Vf aW5mb19ydW50aW1lX2luaXQoc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ID4gPiDCoAllbnVtIHBpcGUgcGlwZTsKPiA+ID4gwqAKPiA+ID4gwqAJLyoKPiA+ID4gLQnC oCogU2t5bGFrZSBhbmQgQnJveHRvbiBjdXJyZW50bHkgZG9uJ3QgZXhwb3NlIHRoZQo+ID4gPiB0 b3Btb3N0Cj4gPiA+IHBsYW5lIGFzIGl0cwo+ID4gPiAtCcKgKiB1c2UgaXMgZXhjbHVzaXZlIHdp dGggdGhlIGxlZ2FjeSBjdXJzb3IgYW5kIHdlIG9ubHkKPiA+ID4gd2FudAo+ID4gPiB0byBleHBv c2UKPiA+ID4gLQnCoCogb25lIG9mIHRob3NlLCBub3QgYm90aC4gVW50aWwgd2UgY2FuIHNhZmVs eSBleHBvc2UKPiA+ID4gdGhlCj4gPiA+IHRvcG1vc3QgcGxhbmUKPiA+ID4gLQnCoCogYXMgYSBE Uk1fUExBTkVfVFlQRV9DVVJTT1Igd2l0aCBhbGwgdGhlIGZlYXR1cmVzCj4gPiA+IGV4cG9zZWQv c3VwcG9ydGVkLAo+ID4gPiAtCcKgKiB3ZSBkb24ndCBleHBvc2UgdGhlIHRvcG1vc3QgcGxhbmUg YXQgYWxsIHRvIHByZXZlbnQKPiA+ID4gQUJJCj4gPiA+IGJyZWFrYWdlCj4gPiA+IC0JwqAqIGRv d24gdGhlIGxpbmUuCj4gPiA+ICsJwqAqIEdlbjkgcGxhdGZvcm1zIGhhdmUgYSB0b3AtbW9zdCB1 bml2ZXJzYWwgKGkuZS4sCj4gPiA+IHNwcml0ZSkKPiA+ID4gcGxhbmUgYW5kIGEKPiA+ID4gKwnC oCogY3Vyc29yIHBsYW5lIHRoYXQgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS7CoMKgSWYgd2UgdXNl Cj4gPiA+IHRoZQo+ID4gPiBjdXJzb3IKPiA+ID4gKwnCoCogcGxhbmUgd2UgcGVybWFuZW50bHkg bG9zZSB0aGUgYWJpbGl0eSB0byBtYWtlIHVzZSBvZgo+ID4gPiB0aGUKPiA+ID4gbW9yZQo+ID4g PiArCcKgKiBmdWxsLWZlYXR1cmVkIHVuaXZlcnNhbCBwbGFuZS7CoMKgU28gaW5zdGVhZCBsZXQn cyB1c2UKPiA+ID4gYWxsCj4gPiA+IG9mIHRoZQo+ID4gPiArCcKgKiB1bml2ZXJzYWwgcGxhbmVz LCBpZ25vcmUgdGhlIGN1cnNvciBwbGFuZSwgYnV0IGhvb2sKPiA+ID4gdGhlCj4gPiA+IHRvcC1t b3N0Cj4gPiA+ICsJwqAqIHVuaXZlcnNhbCBwbGFuZSB1cCB0byB0aGUgbGVnYWN5IGN1cnNvciBp b2N0bCdzIGFuZAo+ID4gPiBleHBvc2UgaXQgdG8KPiA+ID4gKwnCoCogdXNlcnNwYWNlIGFzIERS TV9QTEFORV9UWVBFX0NVUlNPUi7CoMKgVGhpcyB3b24ndAo+ID4gPiByZXN1bHQgaW4KPiA+ID4g YW55Cj4gPiA+ICsJwqAqIHZpc2libGUgYmVoYXZpb3IgY2hhbmdlIHRvIHVzZXJzcGFjZTsgd2Un cmUganVzdAo+ID4gPiBpbnRlcm5hbGx5Cj4gPiA+ICsJwqAqIHByb2dyYW1taW5nIGEgZGlmZmVy ZW50IHNldCBvZiByZWdpc3RlcnMuCj4gPiA+ICsJwqAqCj4gPiA+ICsJwqAqIEZvciB0aGUgcHVy cG9zZXMgb2YgZGV2aWNlX2luZm8sIHdlJ3JlIG9ubHkgY29uY2VybmVkCj4gPiA+IHdpdGggdGhl Cj4gPiA+ICsJwqAqIG51bWJlciBvZiB1bml2ZXJzYWwgcGxhbmVzIHdlJ3JlIHByb2dyYW1taW5n LAo+ID4gPiByZWdhcmRsZXNzCj4gPiA+IG9mIGhvdyB0aGV5Cj4gPiA+ICsJwqAqIGdldCBtYXBw ZWQgdG8gdXNlcnNwYWNlIGludGVyZmFjZXMsIHNvIHdlJ2xsIHJlcG9ydAo+ID4gPiB0aGUKPiA+ ID4gdHJ1ZSBudW1iZXIgb2YKPiA+ID4gKwnCoCogdW5pdmVyc2FsIHBsYW5lcyBmb3IgZ2VuOS4K PiA+ID4gwqAJwqAqLwo+ID4gPiDCoAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiA+ID4g LQkJaW5mby0+bnVtX3Nwcml0ZXNbUElQRV9BXSA9IDI7Cj4gPiA+IC0JCWluZm8tPm51bV9zcHJp dGVzW1BJUEVfQl0gPSAyOwo+ID4gPiAtCQlpbmZvLT5udW1fc3ByaXRlc1tQSVBFX0NdID0gMTsK PiA+ID4gLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8Cj4gPiA+IElTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gPiArCQlpbmZvLT5oYXNfcmVhbF9jdXJzb3IgPSAwOwo+ ID4gPiArCQlpbmZvLT5udW1fc3ByaXRlc1tQSVBFX0FdID0gMzsKPiA+ID4gKwkJaW5mby0+bnVt X3Nwcml0ZXNbUElQRV9CXSA9IDM7Cj4gPiA+ICsJCWluZm8tPm51bV9zcHJpdGVzW1BJUEVfQ10g PSAyOwo+ID4gPiArCX0gZWxzZSBpZiAoSVNfR0VOOShkZXZfcHJpdikpIHsKPiA+ID4gKwkJaW5m by0+aGFzX3JlYWxfY3Vyc29yID0gMDsKPiA+ID4gwqAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYs IHBpcGUpCj4gPiA+IMKgCQkJaW5mby0+bnVtX3Nwcml0ZXNbcGlwZV0gPSAyOwo+ID4gPiAtCWVs c2UKPiA+ID4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8Cj4gPiA+IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gPiA+ICsJCWluZm8tPmhhc19yZWFsX2N1cnNvciA9 IDE7Cj4gPiA+ICsJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCj4gPiA+ICsJCQlpbmZv LT5udW1fc3ByaXRlc1twaXBlXSA9IDI7Cj4gPiA+ICsJfSBlbHNlIHsKPiA+ID4gKwkJaW5mby0+ aGFzX3JlYWxfY3Vyc29yID0gMTsKPiA+ID4gwqAJCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBp cGUpCj4gPiA+IMKgCQkJaW5mby0+bnVtX3Nwcml0ZXNbcGlwZV0gPSAxOwo+ID4gPiArCX0KPiA+ ID4gwqAKPiA+ID4gwqAJaWYgKGk5MTUuZGlzYWJsZV9kaXNwbGF5KSB7Cj4gPiA+IMKgCQlEUk1f SU5GTygiRGlzcGxheSBkaXNhYmxlZCAobW9kdWxlCj4gPiA+IHBhcmFtZXRlcilcbiIpOwo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IGNiN2Rk MTEuLjlhOGMyYjEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiA+ID4gQEAgLTEyMzIsNiArMTIzMiwyMyBAQCB2b2lkIGFzc2VydF9wYW5lbF91bmxvY2tl ZChzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBl KQo+ID4gPiDCoAnCoMKgwqDCoMKgcGlwZV9uYW1lKHBpcGUpKTsKPiA+ID4gwqB9Cj4gPiA+IMKg Cj4gPiA+ICsvKgo+ID4gPiArICogQ3Vyc29yIHN0YXRlIGZvciBwbGF0Zm9ybXMgdGhhdCB1c2Ug YSB1bml2ZXJzYWwgcGxhbmUgYXMgYQo+ID4gPiBjdXJzb3IuCj4gPiA+ICsgKiBQcmltYXJ5IGlz IHVuaXZlcnNhbCAjMCwgb3RoZXJzIGFyZSB1bml2ZXJzYWwgIzEtCj4gPiA+IG51bXNwcml0ZXMu wqDCoEN1cnNvcgo+ID4gPiArICogd2lsbCBiZSB0aGUgZmluYWwgdW5pdmVyc2FsIHBsYW5lIGZv ciB0aGUgcGlwZS4KPiA+ID4gKyAqLwo+ID4gPiArc3RhdGljIGJvb2wKPiA+ID4gK3VuaXZlcnNh bF9jdXJzb3Jfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAr CQnCoMKgwqDCoMKgwqDCoGVudW0gcGlwZSBwaXBlKQo+ID4gPiArewo+ID4gPiArCXVuc2lnbmVk IGludCBwbGFuZW51bSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLQo+ID4gPiA+IAo+ID4gPiA+IG51 bV9zcHJpdGVzW3BpcGVdOwo+ID4gPiArCXUzMiB2YWw7Cj4gPiA+ICsKPiA+ID4gKwl2YWwgPSBJ OTE1X1JFQUQoUExBTkVfQ1RMKHBpcGUsIHBsYW5lbnVtKSk7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1 cm4gdmFsICYgUExBTkVfQ1RMX0VOQUJMRTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiDCoHN0YXRp YyB2b2lkIGFzc2VydF9jdXJzb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gPiDCoAkJCcKgwqBlbnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSkKPiA+ID4gwqB7Cj4gPiA+ IEBAIC0xMjM5LDYgKzEyNTYsOCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfY3Vyc29yKHN0cnVjdAo+ ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gwqAKPiA+ID4gwqAJaWYgKElT Xzg0NUcoZGV2X3ByaXYpIHx8IElTX0k4NjVHKGRldl9wcml2KSkKPiA+ID4gwqAJCWN1cl9zdGF0 ZSA9IEk5MTVfUkVBRChDVVJDTlRSKFBJUEVfQSkpICYKPiA+ID4gQ1VSU09SX0VOQUJMRTsKPiA+ ID4gKwllbHNlIGlmICghSU5URUxfSU5GTyhkZXZfcHJpdiktPmhhc19yZWFsX2N1cnNvcikKPiA+ ID4gKwkJY3VyX3N0YXRlID0gdW5pdmVyc2FsX2N1cnNvcl9zdGF0ZShkZXZfcHJpdiwKPiA+ID4g cGlwZSk7Cj4gPiA+IMKgCWVsc2UKPiA+ID4gwqAJCWN1cl9zdGF0ZSA9IEk5MTVfUkVBRChDVVJD TlRSKHBpcGUpKSAmCj4gPiA+IENVUlNPUl9NT0RFOwo+ID4gPiDCoAo+ID4gPiBAQCAtMTA4NDEs MTUgKzEwODYwLDE2IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QKPiA+ ID4gZHJtX2NydGMgKmNydGMsIHUzMiBiYXNlLAo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Cj4gPiA+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlID0KPiA+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLQo+ID4gPiA+IAo+ID4gPiA+ IHN0YXRlKTsKPiA+ID4gLQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20gPSAmZGV2X3By aXYtCj4gPiA+ID53bS5za2xfcmVzdWx0czsKPiA+ID4gLQljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5l X3dtICpwX3dtID0KPiA+ID4gLQkJJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW1BMQU5F X0NVUlNPUl07Cj4gPiA+IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ID4gwqAJ dWludDMyX3QgY250bCA9IDA7Cj4gPiA+IMKgCj4gPiA+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMgJgo+ID4gPiBkcm1fY3J0Y19tYXNrKGNydGMpKQo+ ID4gPiAtCQlza2xfd3JpdGVfY3Vyc29yX3dtKGludGVsX2NydGMsIHBfd20sICZ3bS0+ZGRiKTsK PiA+ID4gKwkvKgo+ID4gPiArCcKgKiBBbHRob3VnaCBnZW45IGhhcyBsZWdhY3kgY3Vyc29yIHJl Z2lzdGVycywgdGhlaXIgdXNlCj4gPiA+IGlzCj4gPiA+IG11dHVhbGx5Cj4gPiA+ICsJwqAqIGV4 Y2x1c2l2ZSB3aXRoIHRoZSB0b3AtbW9zdCB1bml2ZXJzYWwgcGxhbmUuwqDCoFdlJ2xsCj4gPiA+ IGp1c3QKPiA+ID4gdXNlIHRoZQo+ID4gPiArCcKgKiB1bml2ZXJzYWwgcGxhbmUgdG8gc2ltdWxh dGUgdGhlIGxlZ2FjeSBjdXJzb3IKPiA+ID4gaW50ZXJmYWNlCj4gPiA+IGluc3RlYWQsCj4gPiA+ ICsJwqAqIHdoaWNoIG1lYW5zIHdlJ2xsIG5ldmVyIGVudGVyIGhlcmUgb24gZ2VuOSBwbGF0Zm9y bXMuCj4gPiA+ICsJwqAqLwo+ID4gPiArCVdBUk5fT04oSVNfR0VOOShkZXZfcHJpdikpOwo+ID4g PiDCoAo+ID4gPiDCoAlpZiAocGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJs ZSkgewo+ID4gPiDCoAkJY250bCA9IE1DVVJTT1JfR0FNTUFfRU5BQkxFOwo+ID4gPiBAQCAtMTM1 MjgsNTYgKzEzNTQ4LDYgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdAo+ID4g PiBkcm1fY3J0Ywo+ID4gPiAqY3J0YywKPiA+ID4gwqAJCQkJwqDCoGh3X2RkYl9lbnRyeS0+c3Rh cnQsCj4gPiA+IGh3X2RkYl9lbnRyeS0KPiA+ID4gPiAKPiA+ID4gPiBlbmQpOwo+ID4gPiDCoAkJ fQo+ID4gPiDCoAl9Cj4gPiA+IC0KPiA+ID4gLQkvKgo+ID4gPiAtCcKgKiBjdXJzb3IKPiA+ID4g LQnCoCogSWYgdGhlIGN1cnNvciBwbGFuZSBpc24ndCBhY3RpdmUsIHdlIG1heSBub3QgaGF2ZQo+ ID4gPiB1cGRhdGVkCj4gPiA+IGl0J3MgZGRiCj4gPiA+IC0JwqAqIGFsbG9jYXRpb24uIEluIHRo YXQgY2FzZSBzaW5jZSB0aGUgZGRiIGFsbG9jYXRpb24KPiA+ID4gd2lsbCBiZQo+ID4gPiB1cGRh dGVkCj4gPiA+IC0JwqAqIG9uY2UgdGhlIHBsYW5lIGJlY29tZXMgdmlzaWJsZSwgd2UgY2FuIHNr aXAgdGhpcwo+ID4gPiBjaGVjawo+ID4gPiAtCcKgKi8KPiA+ID4gLQlpZiAoaW50ZWxfY3J0Yy0+ Y3Vyc29yX2FkZHIpIHsKPiA+ID4gLQkJaHdfcGxhbmVfd20gPSAmaHdfd20ucGxhbmVzW1BMQU5F X0NVUlNPUl07Cj4gPiA+IC0JCXN3X3BsYW5lX3dtID0gJnN3X3dtLT5wbGFuZXNbUExBTkVfQ1VS U09SXTsKPiA+ID4gLQo+ID4gPiAtCQkvKiBXYXRlcm1hcmtzICovCj4gPiA+IC0JCWZvciAobGV2 ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPiA+ID4gLQkJCWlmIChza2xf d21fbGV2ZWxfZXF1YWxzKCZod19wbGFuZV93bS0KPiA+ID4gPiAKPiA+ID4gPiB3bVtsZXZlbF0s Cj4gPiA+IC0JCQkJCQkmc3dfcGxhbmVfd20tCj4gPiA+ID4gCj4gPiA+ID4gd21bbGV2ZWxdKSkK PiA+ID4gLQkJCQljb250aW51ZTsKPiA+ID4gLQo+ID4gPiAtCQkJRFJNX0VSUk9SKCJtaXNtYXRj aCBpbiBXTSBwaXBlICVjIGN1cnNvcgo+ID4gPiBsZXZlbCAlZCAoZXhwZWN0ZWQgZT0lZCBiPSV1 IGw9JXUsIGdvdCBlPSVkIGI9JXUgbD0ldSlcbiIsCj4gPiA+IC0JCQkJwqDCoHBpcGVfbmFtZShw aXBlKSwgbGV2ZWwsCj4gPiA+IC0JCQkJwqDCoHN3X3BsYW5lX3dtLQo+ID4gPiA+d21bbGV2ZWxd LnBsYW5lX2VuLAo+ID4gPiAtCQkJCcKgwqBzd19wbGFuZV93bS0KPiA+ID4gPiAKPiA+ID4gPiB3 bVtsZXZlbF0ucGxhbmVfcmVzX2IsCj4gPiA+IC0JCQkJwqDCoHN3X3BsYW5lX3dtLQo+ID4gPiA+ IAo+ID4gPiA+IHdtW2xldmVsXS5wbGFuZV9yZXNfbCwKPiA+ID4gLQkJCQnCoMKgaHdfcGxhbmVf d20tCj4gPiA+ID53bVtsZXZlbF0ucGxhbmVfZW4sCj4gPiA+IC0JCQkJwqDCoGh3X3BsYW5lX3dt LQo+ID4gPiA+IAo+ID4gPiA+IHdtW2xldmVsXS5wbGFuZV9yZXNfYiwKPiA+ID4gLQkJCQnCoMKg aHdfcGxhbmVfd20tCj4gPiA+ID4gCj4gPiA+ID4gd21bbGV2ZWxdLnBsYW5lX3Jlc19sKTsKPiA+ ID4gLQkJfQo+ID4gPiAtCj4gPiA+IC0JCWlmICghc2tsX3dtX2xldmVsX2VxdWFscygmaHdfcGxh bmVfd20tPnRyYW5zX3dtLAo+ID4gPiAtCQkJCQnCoCZzd19wbGFuZV93bS0KPiA+ID4gPnRyYW5z X3dtKSkgewo+ID4gPiAtCQkJRFJNX0VSUk9SKCJtaXNtYXRjaCBpbiB0cmFucyBXTSBwaXBlICVj Cj4gPiA+IGN1cnNvciAoZXhwZWN0ZWQgZT0lZCBiPSV1IGw9JXUsIGdvdCBlPSVkIGI9JXUgbD0l dSlcbiIsCj4gPiA+IC0JCQkJwqDCoHBpcGVfbmFtZShwaXBlKSwKPiA+ID4gLQkJCQnCoMKgc3df cGxhbmVfd20tCj4gPiA+ID50cmFuc193bS5wbGFuZV9lbiwKPiA+ID4gLQkJCQnCoMKgc3dfcGxh bmVfd20tCj4gPiA+ID50cmFuc193bS5wbGFuZV9yZXNfYiwKPiA+ID4gLQkJCQnCoMKgc3dfcGxh bmVfd20tCj4gPiA+ID50cmFuc193bS5wbGFuZV9yZXNfbCwKPiA+ID4gLQkJCQnCoMKgaHdfcGxh bmVfd20tCj4gPiA+ID50cmFuc193bS5wbGFuZV9lbiwKPiA+ID4gLQkJCQnCoMKgaHdfcGxhbmVf d20tCj4gPiA+ID50cmFuc193bS5wbGFuZV9yZXNfYiwKPiA+ID4gLQkJCQnCoMKgaHdfcGxhbmVf d20tCj4gPiA+ID4gCj4gPiA+ID4gdHJhbnNfd20ucGxhbmVfcmVzX2wpOwo+ID4gPiAtCQl9Cj4g PiA+IC0KPiA+ID4gLQkJLyogRERCICovCj4gPiA+IC0JCWh3X2RkYl9lbnRyeSA9Cj4gPiA+ICZo d19kZGIucGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXTsKPiA+ID4gLQkJc3dfZGRiX2VudHJ5ID0g JnN3X2RkYi0KPiA+ID4gPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl07Cj4gPiA+IC0KPiA+ID4g LQkJaWYgKCFza2xfZGRiX2VudHJ5X2VxdWFsKGh3X2RkYl9lbnRyeSwKPiA+ID4gc3dfZGRiX2Vu dHJ5KSkgewo+ID4gPiAtCQkJRFJNX0VSUk9SKCJtaXNtYXRjaCBpbiBEREIgc3RhdGUgcGlwZSAl Ywo+ID4gPiBjdXJzb3IgKGV4cGVjdGVkICgldSwldSksIGZvdW5kICgldSwldSkpXG4iLAo+ID4g PiAtCQkJCcKgwqBwaXBlX25hbWUocGlwZSksCj4gPiA+IC0JCQkJwqDCoHN3X2RkYl9lbnRyeS0+ c3RhcnQsCj4gPiA+IHN3X2RkYl9lbnRyeS0KPiA+ID4gPiAKPiA+ID4gPiBlbmQsCj4gPiA+IC0J CQkJwqDCoGh3X2RkYl9lbnRyeS0+c3RhcnQsCj4gPiA+IGh3X2RkYl9lbnRyeS0KPiA+ID4gPiAK PiA+ID4gPiBlbmQpOwo+ID4gPiAtCQl9Cj4gPiA+IC0JfQo+ID4gPiDCoH0KPiA+ID4gwqAKPiA+ ID4gwqBzdGF0aWMgdm9pZAo+ID4gPiBAQCAtMTUyMTUsMTEgKzE1MTg1LDE4IEBAIHN0YXRpYyBz dHJ1Y3QgZHJtX3BsYW5lCj4gPiA+ICppbnRlbF9jdXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPiA+IMKgCWN1cnNvci0+Y2FuX3NjYWxlID0gZmFsc2U7Cj4gPiA+ IMKgCWN1cnNvci0+bWF4X2Rvd25zY2FsZSA9IDE7Cj4gPiA+IMKgCWN1cnNvci0+cGlwZSA9IHBp cGU7Cj4gPiA+IC0JY3Vyc29yLT5wbGFuZSA9IHBpcGU7Cj4gPiA+IMKgCWN1cnNvci0+ZnJvbnRi dWZmZXJfYml0ID0KPiA+ID4gSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpOwo+ID4gPiAt CWN1cnNvci0+Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmU7Cj4gPiA+IC0J Y3Vyc29yLT51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfY3Vyc29yX3BsYW5lOwo+ID4gPiAt CWN1cnNvci0+ZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfY3Vyc29yX3BsYW5lOwo+ID4g PiArCWlmIChJTlRFTF9JTkZPKGRldiktPmhhc19yZWFsX2N1cnNvcikgewo+ID4gPiArCQljdXJz b3ItPnBsYW5lID0gcGlwZTvCoMKgLyogdW51c2VkPyAqLwo+ID4gPiArCQljdXJzb3ItPmNoZWNr X3BsYW5lID0gaW50ZWxfY2hlY2tfY3Vyc29yX3BsYW5lOwo+ID4gPiArCQljdXJzb3ItPnVwZGF0 ZV9wbGFuZSA9Cj4gPiA+IGludGVsX3VwZGF0ZV9jdXJzb3JfcGxhbmU7Cj4gPiA+ICsJCWN1cnNv ci0+ZGlzYWJsZV9wbGFuZSA9Cj4gPiA+IGludGVsX2Rpc2FibGVfY3Vyc29yX3BsYW5lOwo+ID4g PiArCX0gZWxzZSB7Cj4gPiA+ICsJCWN1cnNvci0+cGxhbmUgPSBJTlRFTF9JTkZPKGRldiktCj4g PiA+ID5udW1fc3ByaXRlc1twaXBlXSAtCj4gPiA+IDE7Cj4gPiA+ICsJCWN1cnNvci0+Y2hlY2tf cGxhbmUgPSBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmU7Cj4gPiA+ICsJCWN1cnNvci0+dXBkYXRl X3BsYW5lID0gc2tsX3VwZGF0ZV9wbGFuZTsKPiA+ID4gKwkJY3Vyc29yLT5kaXNhYmxlX3BsYW5l ID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gPiA+ICsJfQo+ID4gPiDCoAo+ID4gPiDCoAlyZXQgPSBk cm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2LCAmY3Vyc29yLT5iYXNlLCAwLAo+ID4gPiDCoAkJ CQnCoMKgwqDCoMKgwqDCoCZpbnRlbF9wbGFuZV9mdW5jcywKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+ID4gaW5kZXggYzMxZmRkZC4uNTA4NzRlMiAxMDA2NDQKPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gQEAgLTE3OTAsNiArMTc5MCwxMyBAQCBp bnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1Y3QKPiA+ID4gZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ID4gPiDCoAkJCcKgwqDCoMKgwqDCoHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KTsKPiA+ID4gwqB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKTsKPiA+ID4gwqB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0Cj4gPiA+IGludGVsX2ZsaXBfd29yayAqd29yayk7Cj4g PiA+ICtpbnQgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ID4gPiArCQkJwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpjcnRj X3N0YXRlLAo+ID4gPiArCQkJwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Rh dGUpOwo+ID4gPiArdm9pZCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9w bGFuZSwKPiA+ID4gKwkJwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gPiA+ICsJCcKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZQo+ID4gPiAqcGxhbmVfc3RhdGUpOwo+ID4gPiArdm9pZCBza2xfZGlzYWJsZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1fY3J0Ywo+ID4gPiAqY3J0Yyk7 Cj4gPiA+IMKgCj4gPiA+IMKgLyogaW50ZWxfdHYuYyAqLwo+ID4gPiDCoHZvaWQgaW50ZWxfdHZf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gPiA+IGluZGV4IDZmMTllNjAuLmU3NWY2ZDggMTAwNjQ0Cj4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+ID4gPiBAQCAtMjg2Myw5ICsyODYzLDcgQEAgYm9vbCBpbGtfZGlz YWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZQo+ID4gPiAqZGV2KQo+ID4gPiDCoAo+ID4gPiDC oC8qCj4gPiA+IMKgICogUmV0dXJuIHRoZSBpbmRleCBvZiBhIHBsYW5lIGluIHRoZSBTS0wgRERC IGFuZCB3bSByZXN1bHQKPiA+ID4gYXJyYXlzLsKgwqBQcmltYXJ5Cj4gPiA+IC0gKiBwbGFuZSBp cyBhbHdheXMgaW4gc2xvdCAwLCBjdXJzb3IgaXMgYWx3YXlzIGluIHNsb3QKPiA+ID4gSTkxNV9N QVhfUExBTkVTLTEsIGFuZAo+ID4gPiAtICogb3RoZXIgdW5pdmVyc2FsIHBsYW5lcyBhcmUgaW4g aW5kaWNlcyAxLi5uLsKgwqBOb3RlIHRoYXQgdGhpcwo+ID4gPiBtYXkKPiA+ID4gbGVhdmUgdW51 c2VkCj4gPiA+IC0gKiBpbmRpY2VzIGJldHdlZW4gdGhlIHRvcCAic3ByaXRlIiBwbGFuZSBhbmQg dGhlIGN1cnNvci4KPiA+ID4gKyAqIHBsYW5lIGlzIGFsd2F5cyBpbiBzbG90IDAgYW5kIG90aGVy IHVuaXZlcnNhbCBwbGFuZXMgYXJlIGluCj4gPiA+IGluZGljZXMgMS4ubi4KPiA+ID4gwqAgKi8K PiA+ID4gwqBzdGF0aWMgaW50Cj4gPiA+IMKgc2tsX3dtX3BsYW5lX2lkKGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmUpCj4gPiA+IEBAIC0yODc0LDcgKzI4NzIsNiBAQCBza2xfd21fcGxh bmVfaWQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lCj4gPiA+ICpwbGFuZSkKPiA+ID4gwqAJY2Fz ZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgo+ID4gPiDCoAkJcmV0dXJuIDA7Cj4gPiA+IMKgCWNh c2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+ID4gPiAtCQlyZXR1cm4gUExBTkVfQ1VSU09SOwo+ ID4gPiDCoAljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Cj4gPiA+IMKgCQlyZXR1cm4gcGxh bmUtPnBsYW5lICsgMTsKPiA+ID4gwqAJZGVmYXVsdDoKPiA+ID4gQEAgLTMxMjgsMTQgKzMxMjUs NiBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdAo+ID4gPiBkcm1f ZGV2aWNlICpkZXYsCj4gPiA+IMKgCWFsbG9jLT5lbmQgPSBhbGxvYy0+c3RhcnQgKyBwaXBlX3Np emU7Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ID4gPiAtc3RhdGljIHVuc2lnbmVkIGludCBza2xfY3Vy c29yX2FsbG9jYXRpb24oaW50IG51bV9hY3RpdmUpCj4gPiA+IC17Cj4gPiA+IC0JaWYgKG51bV9h Y3RpdmUgPT0gMSkKPiA+ID4gLQkJcmV0dXJuIDMyOwo+ID4gPiAtCj4gPiA+IC0JcmV0dXJuIDg7 Cj4gPiA+IC19Cj4gPiA+IC0KPiA+ID4gwqBzdGF0aWMgdm9pZCBza2xfZGRiX2VudHJ5X2luaXRf ZnJvbV9odyhzdHJ1Y3Qgc2tsX2RkYl9lbnRyeQo+ID4gPiAqZW50cnksCj4gPiA+IHUzMiByZWcp Cj4gPiA+IMKgewo+ID4gPiDCoAllbnRyeS0+c3RhcnQgPSByZWcgJiAweDNmZjsKPiA+ID4gQEAg LTMxNjYsMTAgKzMxNTUsNiBAQCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdAo+ID4g PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gwqAJCQkJCQnCoMKgwqB2YWwpOwo+ ID4gPiDCoAkJfQo+ID4gPiDCoAo+ID4gPiAtCQl2YWwgPSBJOTE1X1JFQUQoQ1VSX0JVRl9DRkco cGlwZSkpOwo+ID4gPiAtCQlza2xfZGRiX2VudHJ5X2luaXRfZnJvbV9odygmZGRiLQo+ID4gPiA+ IAo+ID4gPiA+IHBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0sCj4gPiA+IC0JCQkJCcKgwqDCoHZh bCk7Cj4gPiA+IC0KPiA+ID4gwqAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBw b3dlcl9kb21haW4pOwo+ID4gPiDCoAl9Cj4gPiA+IMKgfQo+ID4gPiBAQCAtMzIyNyw4ICszMjEy LDYgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QKPiA+ID4gaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ID4gPiDCoAo+ID4gPiDCoAlpZiAoIWludGVsX3BzdGF0 ZS0+YmFzZS52aXNpYmxlKQo+ID4gPiDCoAkJcmV0dXJuIDA7Cj4gPiA+IC0JaWYgKHBzdGF0ZS0+ cGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQo+ID4gPiAtCQlyZXR1cm4gMDsK PiA+ID4gwqAJaWYgKHkgJiYgZm9ybWF0ICE9IERSTV9GT1JNQVRfTlYxMikKPiA+ID4gwqAJCXJl dHVybiAwOwo+ID4gPiDCoAo+ID4gPiBAQCAtMzM4Niw3ICszMzY5LDcgQEAgc2tsX2FsbG9jYXRl X3BpcGVfZGRiKHN0cnVjdAo+ID4gPiBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpjc3RhdGUsCj4g PiA+IMKgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiA+ID4gwqAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gPiDCoAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAq YWxsb2MgPSAmY3N0YXRlLT53bS5za2wuZGRiOwo+ID4gPiAtCXVpbnQxNl90IGFsbG9jX3NpemUs IHN0YXJ0LCBjdXJzb3JfYmxvY2tzOwo+ID4gPiArCXVpbnQxNl90IGFsbG9jX3NpemUsIHN0YXJ0 Owo+ID4gPiDCoAl1aW50MTZfdCAqbWluaW11bSA9IGNzdGF0ZS0+d20uc2tsLm1pbmltdW1fYmxv Y2tzOwo+ID4gPiDCoAl1aW50MTZfdCAqeV9taW5pbXVtID0gY3N0YXRlLT53bS5za2wubWluaW11 bV95X2Jsb2NrczsKPiA+ID4gwqAJdW5zaWduZWQgaW50IHRvdGFsX2RhdGFfcmF0ZTsKPiA+ID4g QEAgLTM0MTIsMTIgKzMzOTUsNiBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0Cj4gPiA+ IGludGVsX2NydGNfc3RhdGUKPiA+ID4gKmNzdGF0ZSwKPiA+ID4gwqAJCXJldHVybiAwOwo+ID4g PiDCoAl9Cj4gPiA+IMKgCj4gPiA+IC0JY3Vyc29yX2Jsb2NrcyA9IHNrbF9jdXJzb3JfYWxsb2Nh dGlvbihudW1fYWN0aXZlKTsKPiA+ID4gLQlkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0u c3RhcnQgPSBhbGxvYy0+ZW5kIC0KPiA+ID4gY3Vyc29yX2Jsb2NrczsKPiA+ID4gLQlkZGItPnBs YW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0uZW5kID0gYWxsb2MtPmVuZDsKPiA+ID4gLQo+ID4gPiAt CWFsbG9jX3NpemUgLT0gY3Vyc29yX2Jsb2NrczsKPiA+ID4gLQo+ID4gPiDCoAkvKiAxLiBBbGxv Y2F0ZSB0aGUgbWluaW51bSByZXF1aXJlZCBibG9ja3MgZm9yIGVhY2gKPiA+ID4gYWN0aXZlCj4g PiA+IHBsYW5lICovCj4gPiA+IMKgCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFu ZSwgcHN0YXRlLCBpKSB7Cj4gPiA+IMKgCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lKTsKPiA+ID4gQEAgLTM0MzEsMTcgKzM0MDgsMTIgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRi KHN0cnVjdAo+ID4gPiBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpjc3RhdGUsCj4gPiA+IMKgCQkJ eV9taW5pbXVtW2lkXSA9IDA7Cj4gPiA+IMKgCQkJY29udGludWU7Cj4gPiA+IMKgCQl9Cj4gPiA+ IC0JCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpIHsKPiA+ID4gLQkJ CW1pbmltdW1baWRdID0gMDsKPiA+ID4gLQkJCXlfbWluaW11bVtpZF0gPSAwOwo+ID4gPiAtCQkJ Y29udGludWU7Cj4gPiA+IC0JCX0KPiA+ID4gwqAKPiA+ID4gwqAJCW1pbmltdW1baWRdID0gc2ts X2RkYl9taW5fYWxsb2MocHN0YXRlLCAwKTsKPiA+ID4gwqAJCXlfbWluaW11bVtpZF0gPSBza2xf ZGRiX21pbl9hbGxvYyhwc3RhdGUsIDEpOwo+ID4gPiDCoAl9Cj4gPiA+IMKgCj4gPiA+IC0JZm9y IChpID0gMDsgaSA8IFBMQU5FX0NVUlNPUjsgaSsrKSB7Cj4gPiA+ICsJZm9yIChpID0gMDsgaSA8 IEk5MTVfTUFYX1BMQU5FUzsgaSsrKSB7Cj4gPiA+IMKgCQlhbGxvY19zaXplIC09IG1pbmltdW1b aV07Cj4gPiA+IMKgCQlhbGxvY19zaXplIC09IHlfbWluaW11bVtpXTsKPiA+ID4gwqAJfQo+ID4g PiBAQCAtMzg2NiwyNiArMzgzOCw2IEBAIHZvaWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBp bnRlbF9jcnRjCj4gPiA+ICppbnRlbF9jcnRjLAo+ID4gPiDCoAkJCcKgwqDCoMKgJmRkYi0+eV9w bGFuZVtwaXBlXVtwbGFuZV0pOwo+ID4gPiDCoH0KPiA+ID4gwqAKPiA+ID4gLXZvaWQgc2tsX3dy aXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ID4gLQkJCcKg Y29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqd20sCj4gPiA+IC0JCQnCoGNvbnN0IHN0cnVjdCBz a2xfZGRiX2FsbG9jYXRpb24gKmRkYikKPiA+ID4gLXsKPiA+ID4gLQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKPiA+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+ZGV2Owo+ID4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiA+ID4gLQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhf bGV2ZWwoZGV2X3ByaXYpOwo+ID4gPiAtCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKPiA+ID4gLQo+ID4gPiAtCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxl dmVsKyspIHsKPiA+ID4gLQkJc2tsX3dyaXRlX3dtX2xldmVsKGRldl9wcml2LCBDVVJfV00ocGlw ZSwKPiA+ID4gbGV2ZWwpLAo+ID4gPiAtCQkJCcKgwqDCoCZ3bS0+d21bbGV2ZWxdKTsKPiA+ID4g LQl9Cj4gPiA+IC0Jc2tsX3dyaXRlX3dtX2xldmVsKGRldl9wcml2LCBDVVJfV01fVFJBTlMocGlw ZSksICZ3bS0KPiA+ID4gPiAKPiA+ID4gPiB0cmFuc193bSk7Cj4gPiA+IC0KPiA+ID4gLQlza2xf ZGRiX2VudHJ5X3dyaXRlKGRldl9wcml2LCBDVVJfQlVGX0NGRyhwaXBlKSwKPiA+ID4gLQkJCcKg wqDCoMKgJmRkYi0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXSk7Cj4gPiA+IC19Cj4gPiA+IC0K PiA+ID4gwqBib29sIHNrbF93bV9sZXZlbF9lcXVhbHMoY29uc3Qgc3RydWN0IHNrbF93bV9sZXZl bCAqbDEsCj4gPiA+IMKgCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpsMikKPiA+ID4g wqB7Cj4gPiA+IEBAIC00MTIyLDE5ICs0MDc0LDExIEBAIHNrbF9wcmludF93bV9jaGFuZ2VzKGNv bnN0IHN0cnVjdAo+ID4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gwqAJCQlpZiAo c2tsX2RkYl9lbnRyeV9lcXVhbChvbGQsIG5ldykpCj4gPiA+IMKgCQkJCWNvbnRpbnVlOwo+ID4g PiDCoAo+ID4gPiAtCQkJaWYgKGlkICE9IFBMQU5FX0NVUlNPUikgewo+ID4gPiAtCQkJCURSTV9E RUJVR19BVE9NSUMoIltQTEFORTolZDpwbGFuCj4gPiA+IGUKPiA+ID4gJWQlY10gZGRiICglZCAt ICVkKSAtPiAoJWQgLSAlZClcbiIsCj4gPiA+IC0JCQkJCQnCoHBsYW5lLT5iYXNlLmlkLCAKPiA+ ID4gaWQKPiA+ID4gKyAxLAo+ID4gPiAtCQkJCQkJwqBwaXBlX25hbWUocGlwZSkKPiA+ID4gLAo+ ID4gPiAtCQkJCQkJwqBvbGQtPnN0YXJ0LAo+ID4gPiBvbGQtCj4gPiA+ID4gCj4gPiA+ID4gZW5k LAo+ID4gPiAtCQkJCQkJwqBuZXctPnN0YXJ0LAo+ID4gPiBuZXctCj4gPiA+ID4gCj4gPiA+ID4g ZW5kKTsKPiA+ID4gLQkJCX0gZWxzZSB7Cj4gPiA+IC0JCQkJRFJNX0RFQlVHX0FUT01JQygiW1BM QU5FOiVkOmN1cnMKPiA+ID4gb3IKPiA+ID4gJWNdIGRkYiAoJWQgLSAlZCkgLT4gKCVkIC0gJWQp XG4iLAo+ID4gPiAtCQkJCQkJwqBwbGFuZS0+YmFzZS5pZCwKPiA+ID4gLQkJCQkJCcKgcGlwZV9u YW1lKHBpcGUpCj4gPiA+ICwKPiA+ID4gLQkJCQkJCcKgb2xkLT5zdGFydCwKPiA+ID4gb2xkLQo+ ID4gPiA+IAo+ID4gPiA+IGVuZCwKPiA+ID4gLQkJCQkJCcKgbmV3LT5zdGFydCwKPiA+ID4gbmV3 LQo+ID4gPiA+IAo+ID4gPiA+IGVuZCk7Cj4gPiA+IC0JCQl9Cj4gPiA+ICsJCQlEUk1fREVCVUdf QVRPTUlDKCJbUExBTkU6JWQ6cGxhbmUgJWQlY10KPiA+ID4gZGRiCj4gPiA+ICglZCAtICVkKSAt PiAoJWQgLSAlZClcbiIsCj4gPiA+ICsJCQkJCcKgcGxhbmUtPmJhc2UuaWQsIGlkICsgMSwKPiA+ ID4gKwkJCQkJwqBwaXBlX25hbWUocGlwZSksCj4gPiA+ICsJCQkJCcKgb2xkLT5zdGFydCwgb2xk LT5lbmQsCj4gPiA+ICsJCQkJCcKgbmV3LT5zdGFydCwgbmV3LT5lbmQpOwo+ID4gPiDCoAkJfQo+ ID4gPiDCoAl9Cj4gPiA+IMKgfQo+ID4gPiBAQCAtNDIzNSw5ICs0MTc5LDYgQEAgc3RhdGljIHZv aWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMKPiA+ID4gKmNydGMpCj4gPiA+IMKgCQlm b3JfZWFjaF91bml2ZXJzYWxfcGxhbmUoZGV2X3ByaXYsIHBpcGUsIHBsYW5lKQo+ID4gPiDCoAkJ CXNrbF93cml0ZV9wbGFuZV93bShpbnRlbF9jcnRjLCAmcGlwZV93bS0KPiA+ID4gPiAKPiA+ID4g PiBwbGFuZXNbcGxhbmVdLAo+ID4gPiDCoAkJCQkJwqDCoMKgJnJlc3VsdHMtPmRkYiwKPiA+ID4g cGxhbmUpOwo+ID4gPiAtCj4gPiA+IC0JCXNrbF93cml0ZV9jdXJzb3Jfd20oaW50ZWxfY3J0Yywg JnBpcGVfd20tCj4gPiA+ID4gCj4gPiA+ID4gcGxhbmVzW1BMQU5FX0NVUlNPUl0sCj4gPiA+IC0J CQkJwqDCoMKgwqAmcmVzdWx0cy0+ZGRiKTsKPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4gPiDCoAlz a2xfY29weV93bV9mb3JfcGlwZShod192YWxzLCByZXN1bHRzLCBwaXBlKTsKPiA+ID4gQEAgLTQz NTAsMTggKzQyOTEsMTIgQEAgdm9pZCBza2xfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0Cj4g PiA+IGRybV9jcnRjCj4gPiA+ICpjcnRjLAo+ID4gPiDCoAkJd20gPSAmb3V0LT5wbGFuZXNbaWRd Owo+ID4gPiDCoAo+ID4gPiDCoAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsg bGV2ZWwrKykgewo+ID4gPiAtCQkJaWYgKGlkICE9IFBMQU5FX0NVUlNPUikKPiA+ID4gLQkJCQl2 YWwgPSBJOTE1X1JFQUQoUExBTkVfV00ocGlwZSwKPiA+ID4gaWQsCj4gPiA+IGxldmVsKSk7Cj4g PiA+IC0JCQllbHNlCj4gPiA+IC0JCQkJdmFsID0gSTkxNV9SRUFEKENVUl9XTShwaXBlLAo+ID4g PiBsZXZlbCkpOwo+ID4gPiArCQkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX1dNKHBpcGUsIGlkLAo+ ID4gPiBsZXZlbCkpOwo+ID4gPiDCoAo+ID4gPiDCoAkJCXNrbF93bV9sZXZlbF9mcm9tX3JlZ192 YWwodmFsLCAmd20tCj4gPiA+ID4gCj4gPiA+ID4gd21bbGV2ZWxdKTsKPiA+ID4gwqAJCX0KPiA+ ID4gwqAKPiA+ID4gLQkJaWYgKGlkICE9IFBMQU5FX0NVUlNPUikKPiA+ID4gLQkJCXZhbCA9IEk5 MTVfUkVBRChQTEFORV9XTV9UUkFOUyhwaXBlLAo+ID4gPiBpZCkpOwo+ID4gPiAtCQllbHNlCj4g PiA+IC0JCQl2YWwgPSBJOTE1X1JFQUQoQ1VSX1dNX1RSQU5TKHBpcGUpKTsKPiA+ID4gKwkJdmFs ID0gSTkxNV9SRUFEKFBMQU5FX1dNX1RSQU5TKHBpcGUsIGlkKSk7Cj4gPiA+IMKgCj4gPiA+IMKg CQlza2xfd21fbGV2ZWxfZnJvbV9yZWdfdmFsKHZhbCwgJndtLT50cmFuc193bSk7Cj4gPiA+IMKg CX0KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j Cj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ID4gaW5kZXgg NDNkMDM1MC4uOWU2NDA2YSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPiA+ID4gQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2Vu ZChzdHJ1Y3QgaW50ZWxfY3J0Ywo+ID4gPiAqY3J0Yywgc3RydWN0IGludGVsX2ZsaXBfd29yayAq d29yawo+ID4gPiDCoAl9Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ID4gPiAtc3RhdGljIHZvaWQKPiA+ ID4gK3ZvaWQKPiA+ID4gwqBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9w bGFuZSwKPiA+ID4gwqAJCcKgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gPiA+IMKgCQnCoGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUpCj4gPiA+IEBAIC0yODUsNyArMjg1LDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpkcm1fcGxhbmUsCj4gPiA+IMKgCVBPU1RJTkdfUkVBRChQTEFORV9TVVJGKHBpcGUs IHBsYW5lKSk7Cj4gPiA+IMKgfQo+ID4gPiDCoAo+ID4gPiAtc3RhdGljIHZvaWQKPiA+ID4gK3Zv aWQKPiA+ID4gwqBza2xfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0 cnVjdCBkcm1fY3J0Ywo+ID4gPiAqY3J0YykKPiA+ID4gwqB7Cj4gPiA+IMKgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkcGxhbmUtPmRldjsKPiA+ID4gQEAgLTc1Miw3ICs3NTIsNyBAQCBpbGtf ZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gc3RydWN0Cj4gPiA+ IGRybV9jcnRjICpjcnRjKQo+ID4gPiDCoAlQT1NUSU5HX1JFQUQoRFZTU1VSRihwaXBlKSk7Cj4g PiA+IMKgfQo+ID4gPiDCoAo+ID4gPiAtc3RhdGljIGludAo+ID4gPiAraW50Cj4gPiA+IMKgaW50 ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiDCoAkJ CcKgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+IMKgCQkJwqBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+ID4gLS3CoAo+ID4gQ2hlZXJzLAo+ID4gCUx5 dWRlCj4gCi0tIApDaGVlcnMsCglMeXVkZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK