SGV5IGNvb2whCgpJJ2xsIGdvIHRlc3QgdGhpcyBvdXQgc29vbi4KCldvdWxkIHlvdSBtaW5kIHRo
cm93aW5nIGl0IGluIGEgYnVnemlsbGEgdGlja2V0PwoKLWEKCgpPbiAxNiBKdW5lIDIwMTQgMTI6
MjEsIEVkd2FyZCBUb21hc3ogTmFwaWVyYcWCYSA8dHJhc3pAZnJlZWJzZC5vcmc+IHdyb3RlOgo+
IEhpLiAgUGF0Y2ggYmVsb3cgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgVVNCIHN0b3BzIHdv
cmtpbmcgYWZ0ZXIKPiBfc2Vjb25kXyBzdXNwZW5kL3Jlc3VtZSwgd2hpY2ggaGFwcGVucyBvbiB2
YXJpb3VzIFRoaW5rUGFkIG1vZGVscy4KPiBQbGVhc2UgdGVzdCwgYW5kIHJlcG9ydCBib3RoIHN1
Y2Nlc3Mgc3RvcmllcyBhbmQgZmFpbHVyZXMuICBJZiBub3RoaW5nCj4gY29tZXMgdXAsIEknbGwg
Y29tbWl0IGl0IGluIGEgd2VlayBvciBzby4KPgo+IChCdHcsIGhhcyBhbnlvbmUgZW5jb3VudGVy
ZWQgdGhlIHByb2JsZW0gb24gaGFyZHdhcmUgb3RoZXIgdGhhbiBUaGlua1BhZHM/KQo+Cj4KPiBJ
bmRleDogc3lzL2Rldi9hY3BpX3N1cHBvcnQvYWNwaV9pYm0uYwo+ID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAtLS0g
c3lzL2Rldi9hY3BpX3N1cHBvcnQvYWNwaV9pYm0uYyAgICAgKHJldmlzaW9uIDI2NzQxNykKPiAr
Kysgc3lzL2Rldi9hY3BpX3N1cHBvcnQvYWNwaV9pYm0uYyAgICAgKHdvcmtpbmcgY29weSkKPiBA
QCAtMTY5LDYgKzE2OSw5IEBAIHN0cnVjdCBhY3BpX2libV9zb2Z0YyB7Cj4gICAgICAgICBpbnQg
ICAgICAgICAgICAgbGlnaHRfZ2V0X3N1cHBvcnRlZDsKPiAgICAgICAgIGludCAgICAgICAgICAg
ICBsaWdodF9zZXRfc3VwcG9ydGVkOwo+Cj4gKyAgICAgICAvKiBVU0IgcG93ZXIgd29ya2Fyb3Vu
ZCAqLwo+ICsgICAgICAgQUNQSV9IQU5ETEUgICAgIHBvd2VyX2hhbmRsZTsKPiArCj4gICAgICAg
ICAvKiBsZWQoNCkgaW50ZXJmYWNlICovCj4gICAgICAgICBzdHJ1Y3QgY2RldiAgICAgKmxlZF9k
ZXY7Cj4gICAgICAgICBpbnQgICAgICAgICAgICAgbGVkX2J1c3k7Cj4gQEAgLTM2NSw2ICszNjgs
NyBAQCBhY3BpX2libV9hdHRhY2goZGV2aWNlX3QgZGV2KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3Qg
YWNwaV9pYm1fc29mdGMgICAqc2M7Cj4gICAgICAgICBkZXZjbGFzc190ICAgICAgICAgICAgICBl
Y19kZXZjbGFzczsKPiArICAgICAgIEFDUElfU1RBVFVTICAgICAgICAgICAgIHN0YXR1czsKPgo+
ICAgICAgICAgQUNQSV9GVU5DVElPTl9UUkFDRSgoY2hhciAqKSh1aW50cHRyX3QpIF9fZnVuY19f
KTsKPgo+IEBAIC00NDgsNiArNDUyLDE3IEBAIGFjcGlfaWJtX2F0dGFjaChkZXZpY2VfdCBkZXYp
Cj4gICAgICAgICBpZiAoc2MtPmxpZ2h0X3NldF9zdXBwb3J0ZWQpCj4gICAgICAgICAgICAgICAg
IHNjLT5sZWRfZGV2ID0gbGVkX2NyZWF0ZV9zdGF0ZShpYm1fbGVkLCBzYywgInRoaW5rbGlnaHQi
LCBzYy0+bGlnaHRfdmFsKTsKPgo+ICsgICAgICAgLyoKPiArICAgICAgICAqIE9idGFpbiBhIGhh
bmRsZSB0byB0aGUgcG93ZXIgcmVzb3VyY2UgYXZhaWxhYmxlIG9uIG1hbnkgbW9kZWxzLgo+ICsg
ICAgICAgICogVGhpcyBtdXN0IGJlIHR1cm5lZCBvbiBtYW51YWxseSB1cG9uIHJlc3VtZS4gT3Ro
ZXJ3aXNlIHRoZSBzeXN0ZW0KPiArICAgICAgICAqIG1heSwgZm9yIGluc3RhbmNlLCByZXN1bWUg
ZnJvbSBTMyB3aXRoIHVzYig0KSBwb3dlcmVkIGRvd24uCj4gKyAgICAgICAgKi8KPiArICAgICAg
IHN0YXR1cyA9IEFjcGlHZXRIYW5kbGUoc2MtPmhhbmRsZSwgIlxcX1NCLlBDSTAuTFBDLkVDLlBV
QlMiLCAmc2MtPnBvd2VyX2hhbmRsZSk7Cj4gKyAgICAgICBpZiAoQUNQSV9GQUlMVVJFKHN0YXR1
cykpIHsKPiArICAgICAgICAgICAgICAgZGV2aWNlX3ByaW50ZihkZXYsICJGYWlsZWQgdG8gZ2V0
IHBvd2VyIGhhbmRsZVxuIik7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAoc3RhdHVzKTsKPiAr
ICAgICAgIH0KPiArCj4gICAgICAgICByZXR1cm4gKDApOwo+ICB9Cj4KPiBAQCAtNDc2LDYgKzQ5
MSw3IEBAIHN0YXRpYyBpbnQKPiAgYWNwaV9pYm1fcmVzdW1lKGRldmljZV90IGRldikKPiAgewo+
ICAgICAgICAgc3RydWN0IGFjcGlfaWJtX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2
KTsKPiArICAgICAgIEFDUElfU1RBVFVTIHN0YXR1czsKPgo+ICAgICAgICAgQUNQSV9GVU5DVElP
Tl9UUkFDRSgoY2hhciAqKSh1aW50cHRyX3QpIF9fZnVuY19fKTsKPgo+IEBAIC00OTUsNiArNTEx
LDE1IEBAIGFjcGlfaWJtX3Jlc3VtZShkZXZpY2VfdCBkZXYpCj4KPiAgICAgICAgICAgICAgICAg
YWNwaV9pYm1fc3lzY3RsX3NldChzYywgaSwgdmFsKTsKPiAgICAgICAgIH0KPiArICAgICAgIGlm
IChzYy0+cG93ZXJfaGFuZGxlICE9IE5VTEwpIHsKPiArICAgICAgICAgICAgICAgc3RhdHVzID0g
QWNwaUV2YWx1YXRlT2JqZWN0KHNjLT5wb3dlcl9oYW5kbGUsCj4gKyAgICAgICAgICAgICAgICAg
ICAiX09OIiwgTlVMTCwgTlVMTCk7Cj4gKyAgICAgICAgICAgICAgIGlmIChBQ1BJX0ZBSUxVUkUo
c3RhdHVzKSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldmljZV9wcmludGYoZGV2LCAi
ZmFpbGVkIHRvIHN3aXRjaCAlcyBvbiAtICVzXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhY3BpX25hbWUoc2MtPnBvd2VyX2hhbmRsZSksCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEFjcGlGb3JtYXRFeGNlcHRpb24oc3RhdHVzKSk7Cj4gKyAgICAgICAgICAgICAgIH0K
PiArICAgICAgIH0KPiAgICAgICAgIEFDUElfU0VSSUFMX0VORChpYm0pOwo+Cj4gICAgICAgICBy
ZXR1cm4gKDApOwo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCj4gZnJlZWJzZC1jdXJyZW50QGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdAo+IGh0dHA6Ly9s
aXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtY3VycmVudAo+IFRvIHVu
c3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLWN1cnJlbnQtdW5zdWJzY3JpYmVA
ZnJlZWJzZC5vcmciCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCmZyZWVic2QtY3VycmVudEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3Rz
LmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1jdXJyZW50ClRvIHVuc3Vic2Ny
aWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLWN1cnJlbnQtdW5zdWJzY3JpYmVAZnJlZWJz
ZC5vcmci