From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3] drm/i915/dp: DP audio API changes for MST Date: Fri, 12 Aug 2016 08:18:49 +0300 Message-ID: <20160812051849.GT4329@intel.com> References: <20160810142118.GT4329@intel.com> <1470858117-2321-1-git-send-email-dhinakaran.pandiyan@intel.com> <20160811062631.GW4329@intel.com> <1470900299.21929.14.camel@dk-H97M-D3H> <20160811073911.GE4329@intel.com> <1470976951.10941.30.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470976951.10941.30.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "tiwai@suse.de" , "Kp, Jeeja" , "alsa-devel@alsa-project.org" , "intel-gfx@lists.freedesktop.org" , "libin.yang@linux.intel.com" List-Id: alsa-devel@alsa-project.org T24gRnJpLCBBdWcgMTIsIDIwMTYgYXQgMDQ6Mjg6MDlBTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVGh1LCAyMDE2LTA4LTExIGF0IDEwOjM5ICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUaHUsIEF1ZyAxMSwgMjAxNiBhdCAwNzoxMDozOUFNICsw MDAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3cm90ZToKPiA+ID4gT24gVGh1LCAyMDE2LTA4LTEx IGF0IDA5OjI2ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBB dWcgMTAsIDIwMTYgYXQgMTI6NDE6NTdQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5kaXlhbiB3cm90 ZToKPiA+ID4gPiA+IERQIE1TVCBwcm92aWRlcyB0aGUgY2FwYWJpbGl0eSB0byBzZW5kIG11bHRp cGxlIHZpZGVvIGFuZCBhdWRpbyBzdHJlYW1zCj4gPiA+ID4gPiB0aHJvdWdoIGEgc2luZ2xlIHBv cnQuIFRoaXMgcmVxdWlyZXMgdGhlIEFQSSdzIGJldHdlZW4gaTkxNSBhbmQgYXVkaW8KPiA+ID4g PiA+IGRyaXZlcnMgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBtdWx0aXBsZSBhdWRpbyBjYXBhYmxl IGRpc3BsYXlzIHRoYXQgY2FuIGJlCj4gPiA+ID4gPiBjb25uZWN0ZWQgdG8gYSBwb3J0LiBDdXJy ZW50bHkgb25seSB0aGUgcG9ydCBpZGVudGl0eSBpcyBzaGFyZWQgaW4gdGhlCj4gPiA+ID4gPiBB UElzLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgTVNUIHdpdGggYW4gYWRkaXRpb25hbCBw YXJhbWV0ZXIKPiA+ID4gPiA+ICdpbnQgcGlwZScuICBUaGUgZXhpc3RpbmcgcGFyYW1ldGVyICdw b3J0JyBkb2VzIG5vdCBjaGFuZ2UgaXQncyBtZWFuaW5nLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBw aXBlID0KPiA+ID4gPiA+IAlNU1QJOiBkaXNwbGF5IHBpcGUgdGhhdCB0aGUgc3RyZWFtIG9yaWdp bmF0ZXMgZnJvbQo+ID4gPiA+ID4gCU5vbi1NU1QJOiAtMQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBB ZmZlY3RlZCBBUElzOgo+ID4gPiA+ID4gc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcwo+ ID4gPiA+ID4gLSAgICAgICBpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwg aW50IHBvcnQsIGludCByYXRlKTsKPiA+ID4gPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShz dHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwKPiA+ID4gPiA+ICsJICAgICBpbnQg cmF0ZSk7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0gICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgYm9vbCAqZW5hYmxlZCwKPiA+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7Cj4gPiA+ID4g PiArICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBw aXBlLAo+ID4gPiA+ID4gKwkJICAgICAgIGJvb2wgKmVuYWJsZWQsIHVuc2lnbmVkIGNoYXIgKmJ1 ZiwgaW50IG1heF9ieXRlcyk7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IHN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9hdWRpb19vcHMKPiA+ID4gPiA+IC0gICAgICAgdm9pZCAoKnBpbl9lbGRfbm90 aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KTsKPiA+ID4gPiA+ICsgICAgICAgdm9pZCAo KnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7Cj4g PiA+ID4gPiAKPiA+ID4gPiA+IFRoaXMgcGF0Y2ggbWFrZXMgZHVtbXkgY2hhbmdlcyBpbiB0aGUg YXVkaW8gZHJpdmVycyAoTGliaW4pIGZvciBidWlsZCB0bwo+ID4gPiA+ID4gc3VjY2VlZC4gVGhl IGF1ZGlvIHNpZGUgZHJpdmVycyB3aWxsIHNlbmQgdGhlIHJpZ2h0ICdwaXBlJyB2YWx1ZXMgaW4K PiA+ID4gPiA+IHBhdGNoZXMgdGhhdCB3aWxsIGZvbGxvdy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4g djI6Cj4gPiA+ID4gPiBSZW5hbWVkIHRoZSBuZXcgQVBJIHBhcmFtZXRlciBmcm9tICdkZXZfaWQn IHRvICdwaXBlJy4gKEppbSwgVmlsbGUpCj4gPiA+ID4gPiBJbmNsdWRlZCBBc29jIGRyaXZlciBB UEkgY29tcGF0aWJpbGl0eSBjaGFuZ2VzIGZyb20gSmVlamEuCj4gPiA+ID4gPiBBZGRlZCBXQVJO X09OKCkgZm9yIGludmFsaWQgcGlwZSBpbiBnZXRfc2F2ZWRfZW5jb2RlcigpLiAoVGFrYXNoaSkK PiA+ID4gPiA+IEFkZGVkIGNvbW1lbnQgZm9yIGF2X2VuY19tYXBbXSBkZWZpbml0aW9uLiAoVGFr YXNoaSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gdjM6Cj4gPiA+ID4gPiBGaXhlZCBsb2dpYyBlcnJv ciBpbnRyb2R1Y2VkIHdoaWxlIHJlbmFtaW5nICdkZXZfaWQnIGFzICdwaXBlJyAoVmlsbGUpCj4g PiA+ID4gPiBSZW5hbWVkIGdldF9zYXZlZF9lbmNvZGVyKCkgdG8gZ2V0X3NhdmVkX2VuYygpIHRv IHJlZHVjZSBsaW5lIGxlbmd0aAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBE aGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4g PiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgfCAg MyArLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA5MyAr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gIGluY2x1ZGUv ZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiArLS0KPiA+ID4gPiA+ICBpbmNsdWRlL3Nv dW5kL2hkYV9pOTE1LmggICAgICAgICAgIHwgMTEgKysrLS0KPiA+ID4gPiA+ICBzb3VuZC9oZGEv aGRhY19pOTE1LmMgICAgICAgICAgICAgIHwgIDkgKystLQo+ID4gPiA+ID4gIHNvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jICAgICAgICAgfCAgNyArLS0KPiA+ID4gPiA+ICBzb3VuZC9zb2MvY29k ZWNzL2hkYWNfaGRtaS5jICAgICAgIHwgIDIgKy0KPiA+ID4gPiA+ICA3IGZpbGVzIGNoYW5nZWQs IDg2IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+IGluZGV4IGMzNmQxNzYuLjhlNGE4OGYgMTAw NjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gPiBAQCAt MjAzNiw3ICsyMDM2LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gPiA+ID4gIAkv KiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwo+ID4gPiA+ID4gIAlib29sIGNo dl9waHlfYXNzZXJ0WzJdOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsKPiA+ID4gPiA+ICsJLyogVXNlZCB0 byBzYXZlIHRoZSBwaXBlLXRvLWVuY29kZXIgbWFwcGluZyBmb3IgYXVkaW8gKi8KPiA+ID4gPiA+ ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOwo+ID4g PiA+ID4gIAo+ID4gPiA+ID4gIAkvKgo+ID4gPiA+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBk cmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaAo+ID4gPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+ID4gPiBpbmRleCBlZjIwODc1Li5h NzQ2N2VhIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXVkaW8uYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8u Ywo+ID4gPiA+ID4gQEAgLTUwMCw2ICs1MDAsNyBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gPiA+ICAJc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25l bnQ7Cj4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gPiA+ID4gIAllbnVtIHBvcnQgcG9ydCA9 IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCWNvbm5lY3RvciA9IGRybV9zZWxlY3RfZWxk KGVuY29kZXIpOwo+ID4gPiA+ID4gIAlpZiAoIWNvbm5lY3RvcikKPiA+ID4gPiA+IEBAIC01MjQs MTIgKzUyNSwxOCBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9f Y29ubmVjdG9yID0gY29ubmVjdG9yOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIAkvKiByZWZlcnJl ZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8KPiA+ID4gPiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21h cFtwb3J0XSA9IGludGVsX2VuY29kZXI7Cj4gPiA+ID4gPiArCWRldl9wcml2LT5hdl9lbmNfbWFw W3BpcGVdID0gaW50ZWxfZW5jb2RlcjsKPiA+ID4gPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwkvKiBhdWRpbyBkcml2ZXJzIGV4 cGVjdCBwaXBlID0gLTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLwo+ID4gPiA+ID4gKwlp ZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNUKQo+ID4gPiA+ID4g KwkJcGlwZSA9IC0xOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAt PmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkKPiA+ID4gPiA+ IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1 ZGlvX3B0ciwgKGludCkgcG9ydCk7Cj4gPiA+ID4gPiArCQlhY29tcC0+YXVkaW9fb3BzLT5waW5f ZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gPiA+ID4gPiArCQkJCQkJ IChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4g PiA+ICAvKioKPiA+ID4gPiA+IEBAIC01NDIsMjIgKzU0OSwyOSBAQCB2b2lkIGludGVsX2F1ZGlv X2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4g PiA+ICB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKPiA+ID4gPiA+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+ID4gPiA+ID4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ID4gPiA+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+ID4gPiAg CXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29t cG9uZW50Owo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ID4gPiA+ICAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiA+ID4gPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXku YXVkaW9fY29kZWNfZGlzYWJsZSkKPiA+ID4gPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlv X2NvZGVjX2Rpc2FibGUoaW50ZWxfZW5jb2Rlcik7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCW11 dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+ID4gPiAgCWludGVsX2VuY29kZXIt PmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7Cj4gPiA+ID4gPiAtCWRldl9wcml2LT5kaWdfcG9ydF9t YXBbcG9ydF0gPSBOVUxMOwo+ID4gPiA+ID4gKwlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9 IE5VTEw7Cj4gPiA+ID4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ ID4gPiA+ICAKPiA+ID4gPiA+ICsJLyogYXVkaW8gZHJpdmVycyBleHBlY3QgcGlwZSA9IC0xIHRv IGluZGljYXRlIE5vbi1NU1QgY2FzZXMgKi8KPiA+ID4gPiA+ICsJaWYgKGludGVsX2VuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQX01TVCkKPiA+ID4gPiA+ICsJCXBpcGUgPSAtMTsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpCj4gPiA+ID4gPiAtCQlhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBv cnQpOwo+ID4gPiA+ID4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAt PmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ID4gPiA+ID4gKwkJCQkJCSAoaW50KSBwb3J0LCAoaW50 KSBwaXBlKTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgLyoqCj4gPiA+ID4g PiBAQCAtNjMyLDE1ICs2NDYsMzkgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9n ZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiA+ID4gPiAgCXJldHVybiBkZXZf cHJpdi0+Y2RjbGtfZnJlcTsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtc3Rh dGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmlj ZSAqZGV2LAo+ID4gPiA+ID4gLQkJCQkJCWludCBwb3J0LCBpbnQgcmF0ZSkKPiA+ID4gPiA+ICtz dGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9zYXZlZF9lbmMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmF2X2VuY19tYXBbXSwKPiA+ID4gPiA+ICsJCQkJCSAgICAgICBpbnQgcG9ydCwgaW50 IHBpcGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXI7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCWlmIChXQVJOX09OKHBpcGUgPj0gSTkxNV9NQVhf UElQRVMpKQo+ID4gPiA+ID4gKwkJcmV0dXJuIE5VTEw7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr CS8qIE1TVCAqLwo+ID4gPiA+ID4gKwlpZiAocGlwZSAhPSAtMSkKPiA+ID4gPiAKPiA+ID4gPiBJ J2QgbWFrZSB0aGF0IDwgMAo+ID4gPiA+IAo+ID4gPiBUaGFua3MgZm9yIHJldmlld2luZy4KPiA+ ID4gRG8geW91IG1lYW4gdGhpcz8gLSBoYW5kbGUgdGhlIG5vbi1NU1QgYnJhbmNoIGZpcnN0IHdp dGggCj4gPiA+IAo+ID4gPiBpZiAocGlwZSA8IDApeyAKPiA+ID4gCWZvcl9lYWNoX3BpcGUoKXsK PiA+ID4gCj4gPiA+IAkJLi4uCj4gPiA+IAl9Cj4gPiA+IH0KPiA+ID4gZWxzZSAKPiA+ID4gCXJl dHVybiBhdl9lbmNfbWFwW3BpcGVdOwo+ID4gCj4gPiBTb3JyeSwgbm8uIEkgbGlrZSB5b3VyIGN1 cnJlbnQgY29kZSBzdHJ1Y3R1cmUsIHNvIHdoYXQgSSByZWFsbHkgbWVhbnQKPiA+IHdhcyAncGlw ZSA+PSAwJywgc286Cj4gPiAKPiA+IGlmIChwaXBlID49IDApCj4gPiAJcmV0dXJuIC4uLgo+ID4g Cj4gPiBmb3JfZWFjaF9waXBlKCkKPiA+IAkuLi4KPiA+IAkKPiA+IAo+IAo+IEknbGwgbWFrZSB0 aGlzIGNoYW5nZS4KPiAKPiA+ID4gCj4gPiA+ID4gPiArCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBl XTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyogTm9uLU1TVCAqLwo+ID4gPiA+ID4gKwlmb3Ig KHBpcGUgPSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7Cj4gPiA+ID4g Cj4gPiA+ID4gZm9yX2VhY2hfcGlwZSgpIHdvdWxkIGJlIG5pY2VyLgo+ID4gPiA+IAo+ID4gPiA+ ID4gKwkJaWYgKCFhdl9lbmNfbWFwW3BpcGVdKQo+ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKwkJZW5jb2RlciA9ICZhdl9lbmNfbWFwW3BpcGVdLT5iYXNlOwo+ ID4gPiA+ID4gKwkJaWYgKHBvcnQgPT0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5wb3J0KQo+ ID4gPiA+ID4gKwkJCXJldHVybiBhdl9lbmNfbWFwW3BpcGVdOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiBOVUxMOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICtzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0 ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ID4gPiA+ID4gKwkJCQkJCWludCBwaXBl LCBpbnQgcmF0ZSkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4gPiA+ID4gPiAgCXN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YzsKPiA+ID4gPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gPiA+ID4g PiAgCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9f Y29tcG9uZW50Owo+ID4gPiA+ID4gLQllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKPiA+ ID4gPiA+ICAJdTMyIHRtcDsKPiA+ID4gPiA+ICAJaW50IG47Cj4gPiA+ID4gPiAgCWludCBlcnIg PSAwOwo+ID4gPiA+ID4gQEAgLTY1NCwyNSArNjkyLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICAJaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X3Bvd2VyKGRldik7Cj4gPiA+ ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+ID4gPiArCj4gPiA+ ID4gPiAgCS8qIDEuIGdldCB0aGUgcGlwZSAqLwo+ID4gPiA+ID4gLQlpbnRlbF9lbmNvZGVyID0g ZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsKPiA+ID4gPiA+IC0JLyogaW50ZWxfZW5jb2Rl ciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KPiA+ID4gPiA+ICsJaW50ZWxfZW5jb2RlciA9 IGdldF9zYXZlZF9lbmMoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIHBpcGUpOwo+ID4gPiA+ ID4gIAlpZiAoIWludGVsX2VuY29kZXIgfHwgIWludGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fAo+ ID4gPiA+ID4gIAkgICAgaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkg ewo+ID4gPiA+IAo+ID4gPiA+IERpZCB3ZSBoYXZlIGEgZm9sbG93dXAgcGxhbm5lZCB0byBkZWFs IHdpdGggTVNUIGhlcmU/IEkga25vdyB0aGVyZSdzCj4gPiA+ID4gdGhhdCBTU1QgTS9OIHBhdGNo IGZsb2F0aW5nIGFyb3VuZCwgYnV0IEkgdGhpbmsgd2UnbGwgd2FudCBpdCBmb3IgTVNUCj4gPiA+ ID4gdG9vLgo+ID4gPiA+IAo+ID4gPiBMb29rcyBsaWtlIExpYmluIFlhbmcgaXMgd29ya2luZyBv biB0aGUgRFAgcGF0Y2gsIEkgd2lsbCBjaGVjayB3aXRoIGhpbS4KPiA+ID4gCj4gPiA+ID4gPiAt CQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiTm90IHZhbGlkIGZvciBwb3J0ICVjXG4iLCBwb3J0 X25hbWUocG9ydCkpOwo+ID4gPiA+ID4gIAkJZXJyID0gLUVOT0RFVjsKPiA+ID4gPiA+ICAJCWdv dG8gdW5sb2NrOwo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qIHBpcGUg cGFzc2VkIGZyb20gdGhlIGF1ZGlvIGRyaXZlciB3aWxsIGJlIC0xIGZvciBOb24tTVNUIGNhc2Ug Ki8KPiA+ID4gPiA+ICAJY3J0YyA9IHRvX2ludGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5j cnRjKTsKPiA+ID4gPiA+ICAJcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiA+ID4gPiAtCWlmIChwaXBl ID09IElOVkFMSURfUElQRSkgewo+ID4gPiA+ID4gLQkJRFJNX0RFQlVHX0tNUygibm8gcGlwZSBm b3IgdGhlIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7Cj4gPiA+ID4gPiAtCQllcnIgPSAt RU5PREVWOwo+ID4gPiA+ID4gLQkJZ290byB1bmxvY2s7Cj4gPiA+ID4gPiAtCX0KPiA+ID4gPiA+ ICAKPiA+ID4gPiA+IC0JRFJNX0RFQlVHX0tNUygicGlwZSAlYyBjb25uZWN0cyBwb3J0ICVjXG4i LAo+ID4gPiA+ID4gLQkJCQkgIHBpcGVfbmFtZShwaXBlKSwgcG9ydF9uYW1lKHBvcnQpKTsKPiA+ ID4gPiA+ICAJbW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ID4g PiA+ICAKPiA+ID4gPiA+ICAJLyogcG9ydCBtdXN0IGJlIHZhbGlkIG5vdywgb3RoZXJ3aXNlIHRo ZSBwaXBlIHdpbGwgYmUgaW52YWxpZCAqLwo+ID4gPiA+ID4gQEAgLTcwOCw3ICs3NDEsNyBAQCBz dGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2 aWNlICpkZXYsCj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIHN0YXRpYyBpbnQg aTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0 LAo+ID4gPiA+ID4gLQkJCQkJYm9vbCAqZW5hYmxlZCwKPiA+ID4gPiA+ICsJCQkJCWludCBwaXBl LCBib29sICplbmFibGVkLAo+ID4gPiA+ID4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQg bWF4X2J5dGVzKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsKPiA+ID4gPiA+IEBAIC03MTcsMTYgKzc1 MCwyMCBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRl dmljZSAqZGV2LCBpbnQgcG9ydCwKPiA+ID4gPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7Cj4gPiA+ ID4gPiAgCj4gPiA+ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+ ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4g PiA+ID4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ID4g PiA+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlcikgewo+ID4gPiA+ID4gLQkJcmV0ID0gMDsKPiA+ID4g PiA+IC0JCSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7 Cj4gPiA+ID4gPiAtCQlpZiAoKmVuYWJsZWQpIHsKPiA+ID4gPiA+IC0JCQllbGQgPSBpbnRlbF9l bmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKPiA+ID4gPiA+IC0JCQlyZXQgPSBkcm1fZWxk X3NpemUoZWxkKTsKPiA+ID4gPiA+IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMs IHJldCkpOwo+ID4gPiA+ID4gLQkJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpbnRlbF9lbmNv ZGVyID0gZ2V0X3NhdmVkX2VuYyhkZXZfcHJpdi0+YXZfZW5jX21hcCwgcG9ydCwgcGlwZSk7Cj4g PiA+ID4gPiArCWlmICghaW50ZWxfZW5jb2Rlcikgewo+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tN UygiTm90IHZhbGlkIGZvciBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwo+ID4gPiA+IAo+ ID4gPiA+IFByaW50IHRoZSBwaXBlIG5hbWUgdG9vLCBpZiB3ZSBoYXZlIGEgdmFsaWQgcGlwZT8K PiA+ID4gPiAKPiA+ID4gPiA+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsK PiA+ID4gPiA+ICsJCXJldHVybiByZXQ7Cj4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ICsKPiA+ID4g PiA+ICsJcmV0ID0gMDsKPiA+ID4gPiA+ICsJKmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRp b19jb25uZWN0b3IgIT0gTlVMTDsKPiA+ID4gPiA+ICsJaWYgKCplbmFibGVkKSB7Cj4gPiA+ID4g PiArCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKPiA+ID4gPiA+ ICsJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOwo+ID4gPiA+ID4gKwkJbWVtY3B5KGJ1ZiwgZWxk LCBtaW4obWF4X2J5dGVzLCByZXQpKTsKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29t cG9uZW50LmgKPiA+ID4gPiA+IGluZGV4IGI0NmZhMGUuLjU0NWM2ZTAgMTAwNjQ0Cj4gPiA+ID4g PiAtLS0gYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gPiA+ID4gPiArKysgYi9pbmNs dWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gPiA+ID4gPiBAQCAtNjQsNyArNjQsNyBAQCBzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiA+ID4gPiA+ICAJICogQ2FsbGVkIGZyb20g YXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUKPiA+ID4gPiA+ICAJICog c2FtcGxlIHJhdGUsIGl0IHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHNldCBuL2N0cwo+ID4g PiA+ID4gIAkgKi8KPiA+ID4gPiA+IC0JaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2 aWNlICosIGludCBwb3J0LCBpbnQgcmF0ZSk7Cj4gPiA+ID4gPiArCWludCAoKnN5bmNfYXVkaW9f cmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGludCByYXRlKTsKPiA+ ID4gPiA+ICAJLyoqCj4gPiA+ID4gPiAgCSAqIEBnZXRfZWxkOiBmaWxsIHRoZSBhdWRpbyBzdGF0 ZSBhbmQgRUxEIGJ5dGVzIGZvciB0aGUgZ2l2ZW4gcG9ydAo+ID4gPiA+ID4gIAkgKgo+ID4gPiA+ ID4gQEAgLTc3LDcgKzc3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7Cj4g PiA+ID4gPiAgCSAqIE5vdGUgdGhhdCB0aGUgcmV0dXJuZWQgc2l6ZSBtYXkgYmUgb3ZlciBAbWF4 X2J5dGVzLiAgVGhlbiBpdAo+ID4gPiA+ID4gIAkgKiBpbXBsaWVzIHRoYXQgb25seSBhIHBhcnQg b2YgRUxEIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgYnVmZmVyLgo+ID4gPiA+ID4gIAkgKi8KPiA+ ID4gPiA+IC0JaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgYm9vbCAq ZW5hYmxlZCwKPiA+ID4gPiA+ICsJaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQg cG9ydCwgaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsCj4gPiA+ID4gPiAgCQkgICAgICAgdW5zaWdu ZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1 ZGlvX29wcyB7Cj4gPiA+ID4gPiAgCSAqIHN0YXR1cyBhY2NvcmRpbmdseSAoZXZlbiB3aGVuIHRo ZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCj4gPiA+ID4gPiAgCSAqIG1vZGUpLgo+ ID4gPiA+ID4gIAkgKi8KPiA+ID4gPiA+IC0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0KTsKPiA+ID4gPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2 b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7Cj4gPiA+ID4gPiAgfTsKPiA+ID4g PiA+ICAKPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5k L2hkYV9pOTE1LmggYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiA+ID4gPiA+IGluZGV4IDc5 NmNhYmYuLjA3ZmQ2NGUgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL3NvdW5kL2hkYV9p OTE1LmgKPiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+ID4gPiA+ID4g QEAgLTEwLDggKzEwLDkgQEAKPiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1 cChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwo+ID4gPiA+ID4gIGludCBzbmRf aGRhY19kaXNwbGF5X3Bvd2VyKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4g PiA+ID4gPiAgdm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVz KTsKPiA+ID4gPiA+IC1pbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKTsKPiA+ID4gPiA+IC1pbnQgc25k X2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3Qg bmlkLAo+ID4gPiA+ID4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNf ZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gPiA+ICsJCQkgICAgIGludCBwaXBl LCBpbnQgcmF0ZSk7Cj4gPiA+ID4gPiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0 IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHBpcGUsCj4gPiA+ID4gPiAg CQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsK PiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsK PiA+ID4gPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsK PiA+ID4gPiA+IEBAIC0yOSwxMyArMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFj X2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gPiA+ID4gPiAgewo+ID4gPiA+ ID4gIH0KPiA+ID4gPiA+ICBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywKPiA+ID4gPiA+IC0JCQkJCSAgIGhkYV9uaWRf dCBuaWQsIGludCByYXRlKQo+ID4gPiA+ID4gKwkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IHBp cGUsIGludCByYXRlKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4g PiAgfQo+ID4gPiA+ID4gIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQo c3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gPiA+IC0JCQkJ CSBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsCj4gPiA+ID4gPiAtCQkJCQkgaW50 IG1heF9ieXRlcykKPiA+ID4gPiA+ICsJCQkJCSBpbnQgcGlwZSwgYm9vbCAqYXVkaW9fZW5hYmxl ZCwKPiA+ID4gPiA+ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gPiA+ID4g PiAgewo+ID4gPiA+ID4gIAlyZXR1cm4gLUVOT0RFVjsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvc291bmQvaGRhL2hkYWNfaTkxNS5jIGIvc291bmQvaGRhL2hkYWNfaTkxNS5j Cj4gPiA+ID4gPiBpbmRleCBjOWFmMDIyLi5iOTk5OTRiIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEv c291bmQvaGRhL2hkYWNfaTkxNS5jCj4gPiA+ID4gPiArKysgYi9zb3VuZC9oZGEvaGRhY19pOTE1 LmMKPiA+ID4gPiA+IEBAIC0yMDEsNyArMjAxLDggQEAgc3RhdGljIGludCBwaW4ycG9ydChzdHJ1 Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgcGluX25pZCkKPiA+ID4gPiA+ICAgKiBU aGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSBy YXRlLgo+ID4gPiA+ID4gICAqIFJldHVybnMgemVybyBmb3Igc3VjY2Vzcywgb3IgYSBuZWdhdGl2 ZSBlcnJvciBjb2RlLgo+ID4gPiA+ID4gICAqLwo+ID4gPiA+ID4gLWludCBzbmRfaGRhY19zeW5j X2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50 IHJhdGUpCj4gPiA+ID4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRh Y19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gPiA+ID4gKwkJCSAgICAgaW50IHBp cGUsIGludCByYXRlKQo+ID4gPiA+IAo+ID4gPiA+IEkgdGhvdWdodCB5b3UnZCBzdGlsbCB3YW50 IHRvIGNhbGwgaXQgJ2Rldl9pZCcgb24gdGhlIGhkYSBzaWRlLCBhbmQganVzdAo+ID4gPiA+IGRv IHRoZSBkZXZfaWQtPnBpcGUgY29udmVyc2lvbiBoZXJlIG5leHQgdG8gdGhlIHBpbi0+cG9ydCBj b252ZXJzaW9uPwo+ID4gPiA+IEp1c3QgZmlndXJlZCB0aGF0IHdvdWxkIGJlIGxlc3MgY29uZnVz aW5nIGZvciBwZW9wbGUgd2hvIGFyZSBqdXN0IGZhbWlsaWFyCj4gPiA+ID4gd2l0aCBoZGEgYW5k IG5vdCBpOTE1Lgo+ID4gPiA+IAo+ID4gPiBZZWFoLCB0aGF0IG1ha2VzIHNlbnNlLiAKPiA+ID4g Cj4gPiA+ID4gQW55d2F5cywgdGhlIHBhdGNoIGxvb2tzIHByZXR0eSBnb29kIHRvIG1lIGZyb20g dGhlIGk5MTUgUE9WLiBXaGV0aGVyCj4gPiA+ID4geW91IHdhbnQgdG8gZG8gdGhvc2Ugc21hbGwg Y2hhbmdlcyBJIHByb3Bvc2VkIGlzIHVwIHRvIHlvdSwgYW5kIGVpdGhlcgo+ID4gPiA+IHdheSB0 aGUgaTkxNSBwYXJ0cyBhcmUKPiA+ID4gPiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAKPiA+ID4gCj4gPiA+IEkgaGF2 ZSBhc3N1bWVkIGVuY190b19kaWdfcG9ydCgpIHdvcmtzIGZvciBNU1QgZW5jb2RlcnMuIERvIHlv dSB0aGluawo+ID4gPiBpdCdzIGdvb2QgaWRlYSB0byBoYXZlIHRoaXMKPiA+ID4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaW50ZWwtZ2Z4LzIwMTYtQXVndXN0LzEwMjk5 NC5odG1sCj4gPiA+IG5vdz8KPiA+IAo+ID4gT2ggSSBmb3Jnb3QgYWJvdXQgdGhhdCBwYXJ0LiBJ J20gbm90IHJlYWxseSBleGNpdGVkIGFib3V0IHRoYXQgcGF0Y2guCj4gPiBJJ2QgcHJlZmVyIHRo YXQgcGVvcGxlIGhhdmUgdG8gdGhpbmsgYSBiaXQgd2hlbiBkZWFsaW5nIHdpdGggTVNUCj4gPiBl bmNvZGVycywgb3RoZXJ3aXNlIHRoZXkgbWlnaHQgYXNzdW1lIHRoZXkgd29yayBqdXN0IGxpa2Ug YW55IG90aGVyCj4gPiBlbmNvZGVyLgo+ID4gCj4gPiBTbyBJJ2QgcHJlZmVyIHRoYXQgeW91IGV4 cGxpY2l0bHkgaGFuZGxlIHRoZSBNU1QgY2FzZSB3aGVuIGxvb2tpbmcgdXAKPiA+IHRoZSBlbmNv ZGVyLiBGb3IgeW91ciBhdWRpbyB1c2UgY2FzZSwgSSB0aGluayB5b3UganVzdCBuZWVkIHRoZSAn cG9ydCcKPiA+IGluZm9ybWF0aW9uIGZyb20gdGhlIGRpZ19wb3J0LCBubz8gSSB0aGluayBtYWtp bmcgdGhhdCBwYXJ0IGdlbmVyaWMgaXNuJ3QKPiA+IGEgaHVnZSBwcm9ibGVtIHNpbmNlIHRoYXQg d2F5IGF0IGxlYXN0IHlvdSdyZSBub3QgZ2V0dGluZyB5b3VyIGhhbmRzCj4gPiAgb24gYSBkaWdf cG9ydCBzdHJ1Y3R1cmUgdGhhdCB5b3UgZG9uJ3QgcmVhbGx5IG93bi4KPiA+IAo+ID4gU28geW91 IGNvdWxkIGFsbW9zdCB1c2UgaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoKSwgZXhjZXB0IHVz aW5nIGEKPiA+IERESSBzcGVjaWZpYyBmdW5jdGlvbiBpbiBnZW5lcmljIGNvZGUgaXNuJ3QgdmVy eSBuaWNlLiBXZSBjb3VsZCBleHRyYWN0Cj4gPiB0aGUgZ2VuZXJpYyBwYXJ0IHRvIGEgc2VwYXJh dGUgZnVuY3Rpb24sIGxpa2Ugc286Cj4gPiAKPiA+IGVudW0gcG9ydCBpbnRlbF9lbmNvZGVyX2dl dF9wb3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gewo+ID4gICAgICAgICBz d2l0Y2ggKGVuY29kZXItPnR5cGUpIHsKPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfRFBf TVNUOgo+ID4gICAgICAgICAgICAgICAgIHJldHVybiBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNl KS0+cHJpbWFyeS0+cG9ydDsKPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gPiAg ICAgICAgIGNhc2UgSU5URUxfT1VUUFVUX0VEUDoKPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQ VVRfSERNSToKPiA+ICAgICAgICAgY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPiA+ICAgICAg ICAgICAgICAgICByZXR1cm4gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKS0+cG9ydDsK PiA+ICAgICAgICAgZGVmYXVsdDoKPiA+ICAgICAgICAgICAgICAgICBNSVNTSU5HX0NBU0UoZW5j b2Rlci0+dHlwZSk7Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIFBPUlRfQTsKPiA+ICAgICAg ICAgfQo+ID4gfQo+ID4gCj4gPiBlbnVtIHBvcnQgaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiB7Cj4gPiAgICAgICAgIHN3aXRjaCAo ZW5jb2Rlci0+dHlwZSkgewo+ID4gICAgICAgICBjYXNlIElOVEVMX09VVFBVVF9BTkFMT0c6Cj4g PiAJCXJldHVybiBQT1JUX0U7Cj4gPiAgICAgICAgIGRlZmF1bHQ6Cj4gPiAJCXJldHVybiBpbnRl bF9lbmNvZGVyX2dldF9wb3J0KGVuY29kZXIpOwo+ID4gICAgICAgICB9Cj4gPiB9Cj4gCj4gCj4g SSBsaWtlIHRoZSBpZGVhIG9mIG5vdCBwYXNzaW5nIHRoZSBwb2ludGVyIHRvIGludGVsX2RpZ19w b3J0LiBCdXQsIHRoZQo+IGdlbmVyaWMgbmFtaW5nIG9mIGludGVsX2VuY29kZXJfZ2V0X3BvcnQo KSBzb3VuZHMgbGlrZSBpdCBzaG91bGQgaGFuZGxlCj4gRERJIGFuZCBOb24tRERJIHBsYXRmb3Jt cy4gQ2FuIHdlIGp1c3QgaGF2ZSBpbnRlbF9lbmNvZGVyX2dldF9wb3J0KCk/Cj4gSU9XLCByZW5h bWUgaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoKSB0byBpbnRlbF9lbmNvZGVyX2dldF9wb3J0 KCkgYW5kCj4gbW92ZSBpdCBvdXQgb2YgaW50ZWxfZGRpLmM/CgpUaGF0J3Mgd2hhdCBJIGp1c3Qg ZGVzY3JpYmVkIGVzc2VudGlhbGx5LiBUaGUgb25seSBjYXRjaCBpcyB0aGF0IHRoZSBGREkKcG9y dCBFIGNhc2Ugc2hvdWxkIHN0YXkgaW4gdGhlIERESSBjb2RlIGFuZCBub3QgYmUgbW92ZWQgdG8g Z2VuZXJpYwpjb2RlLiBIZW5jZSBJIHN1Z2dlc3RlZCBzcGxpdHRpbmcgaXQgdXAuCgo+IAo+IAo+ ID4gCj4gPiBvciB5b3UgY291bGQganVzdCB5b3VyIG93biBmdW5jdGlvbiBmb3IgaW50ZWxfYXVk aW8uYyBhdCB0aGlzIHRpbWUsIGxpa2U6Cj4gPiAKPiA+IHN0YXRpYyBlbnVtIHBvcnQgZW5jb2Rl cl9nZXRfcG9ydChlbmNvZGVyKQo+ID4gewo+ID4gCWlmIChlbmNvZGVyLT50eXBlID09IE1TVDsK PiA+IAkJcmV0dXJuIGVuY190b19tc3QoKS4uLjsKPiA+IAllbHNlCj4gPiAJCXJldHVybiBlbmNf dG9fZGlnX3BvcnQoKS4uLjsKPiA+IH0KPiA+IAkKPiA+IAo+ID4gCj4gPiA+ICAKPiA+ID4gPiA+ ICB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsKPiA+ID4g PiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29t cG9uZW50Owo+ID4gPiA+ID4gQEAgLTIxMiw3ICsyMTMsNyBAQCBpbnQgc25kX2hkYWNfc3luY19h dWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBy YXRlKQo+ID4gPiA+ID4gIAlwb3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7Cj4gPiA+ID4gPiAg CWlmIChwb3J0IDwgMCkKPiA+ID4gPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gPiA+ID4gLQly ZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIHJhdGUp Owo+ID4gPiA+ID4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFjb21wLT5k ZXYsIHBvcnQsIHBpcGUsIHJhdGUpOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICBFWFBPUlRfU1lN Qk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4g QEAgLTIzNiw3ICsyMzcsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlv X3JhdGUpOwo+ID4gPiA+ID4gICAqIHRodXMgaXQgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIElm IGl0J3Mgb3ZlciBAbWF4X2J5dGVzLCBpdCBpbXBsaWVzCj4gPiA+ID4gPiAgICogdGhhdCBvbmx5 IGEgcGFydCBvZiBFTEQgYnl0ZXMgaGF2ZSBiZWVuIGZldGNoZWQuCj4gPiA+ID4gPiAgICovCj4g PiA+ID4gPiAtaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpj b2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gPiA+ICtpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2Vs ZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcGlwZSwKPiA+ ID4gPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhf Ynl0ZXMpCj4gPiA+ID4gPiAgewo+ID4gPiA+ID4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNv ZGVjLT5idXM7Cj4gPiA+ID4gPiBAQCAtMjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRhY19hY29t cF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiA+ ID4gPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsKPiA+ID4gPiA+ICAJaWYgKHBvcnQg PCAwKQo+ID4gPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gPiAtCXJldHVybiBhY29t cC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCj4gPiA+ID4g PiArCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIHBpcGUsIGF1 ZGlvX2VuYWJsZWQsCj4gPiA+ID4gPiAgCQkJCSAgIGJ1ZmZlciwgbWF4X2J5dGVzKTsKPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfYWNvbXBfZ2V0X2Vs ZCk7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgYi9z b3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYwo+ID4gPiA+ID4gaW5kZXggZDBkNWFkOC4uNjc4OTBk ZiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gPiA+ ID4gPiArKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYwo+ID4gPiA+ID4gQEAgLTE0ODUs NyArMTQ4NSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZWxkX3ZpYV9hY29tcChzdHJ1Y3QgaGRhX2Nv ZGVjICpjb2RlYywKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+ bG9jayk7Cj4gPiA+ID4gPiAgCWVsZC0+bW9uaXRvcl9wcmVzZW50ID0gZmFsc2U7Cj4gPiA+ID4g PiAtCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwgcGVyX3Bpbi0+ cGluX25pZCwKPiA+ID4gPiA+ICsJc2l6ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVj LT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLCAtMSwKPiA+ID4gPiA+ICAJCQkJICAgICAgJmVsZC0+ bW9uaXRvcl9wcmVzZW50LCBlbGQtPmVsZF9idWZmZXIsCj4gPiA+ID4gPiAgCQkJCSAgICAgIEVM RF9NQVhfU0laRSk7Cj4gPiA+ID4gPiAgCWlmIChzaXplID4gMCkgewo+ID4gPiA+ID4gQEAgLTE3 MzksNyArMTczOSw4IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19oZG1pX3BsYXliYWNrX3BjbV9wcmVw YXJlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sCj4gPiA+ID4gPiAgCS8qIENhbGwgc3lu Y19hdWRpb19yYXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxseSBpZiBuZWNlc3NhcnkgKi8K PiA+ID4gPiA+ICAJLyogVG9kbzogYWRkIERQMS4yIE1TVCBhdWRpbyBzdXBwb3J0IGxhdGVyICov Cj4gPiA+ID4gPiAgCWlmIChjb2RlY19oYXNfYWNvbXAoY29kZWMpKQo+ID4gPiA+ID4gLQkJc25k X2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25pZCwgcnVudGltZS0+cmF0 ZSk7Cj4gPiA+ID4gPiArCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBw aW5fbmlkLCAtMSwKPiA+ID4gPiA+ICsJCQkJCSBydW50aW1lLT5yYXRlKTsKPiA+ID4gPiA+ICAK PiA+ID4gPiA+ICAJbm9uX3BjbSA9IGNoZWNrX25vbl9wY21fcGVyX2N2dChjb2RlYywgY3Z0X25p ZCk7Cj4gPiA+ID4gPiAgCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ID4gPiA+ID4gQEAg LTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3Bvd2VyX3N0YXRlKHN0 cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgZmcsCj4gPiA+ID4gPiAgCXNuZF9oZGFf Y29kZWNfc2V0X3Bvd2VyX3RvX2FsbChjb2RlYywgZmcsIHBvd2VyX3N0YXRlKTsKPiA+ID4gPiA+ ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3Rp Znkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCkKPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnRl bF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSkKPiA+ ID4gPiA+ICB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBoZGFfY29kZWMgKmNvZGVjID0gYXVkaW9fcHRy Owo+ID4gPiA+ID4gIAlpbnQgcGluX25pZDsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9z b2MvY29kZWNzL2hkYWNfaGRtaS5jIGIvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYwo+ID4g PiA+ID4gaW5kZXggMmFiYjc0Mi4uY2Y1N2FiMyAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL3NvdW5k L3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKPiA+ID4gPiA+ICsrKyBiL3NvdW5kL3NvYy9jb2RlY3Mv aGRhY19oZG1pLmMKPiA+ID4gPiA+IEBAIC0xMzY2LDcgKzEzNjYsNyBAQCBzdGF0aWMgaW50IGhk YWNfaGRtaV9wYXJzZV9hbmRfbWFwX25pZChzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICplZGV2LAo+ ID4gPiA+ID4gIAlyZXR1cm4gaGRhY19oZG1pX2luaXRfZGFpX21hcChlZGV2KTsKPiA+ID4gPiA+ ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtc3RhdGljIHZvaWQgaGRhY19oZG1pX2VsZF9ub3Rp ZnlfY2Iodm9pZCAqYXB0ciwgaW50IHBvcnQpCj4gPiA+ID4gPiArc3RhdGljIHZvaWQgaGRhY19o ZG1pX2VsZF9ub3RpZnlfY2Iodm9pZCAqYXB0ciwgaW50IHBvcnQsIGludCBwaXBlKQo+ID4gPiA+ ID4gIHsKPiA+ID4gPiA+ICAJc3RydWN0IGhkYWNfZXh0X2RldmljZSAqZWRldiA9IGFwdHI7Cj4g PiA+ID4gPiAgCXN0cnVjdCBoZGFjX2hkbWlfcHJpdiAqaGRtaSA9IGVkZXYtPnByaXZhdGVfZGF0 YTsKPiA+ID4gPiA+IC0tIAo+ID4gPiA+ID4gMi41LjAKPiA+ID4gPiAKPiA+ID4gCj4gPiAKPiAK Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=