Thread (19 messages) 19 messages, 5 authors, 2020-06-03

RE: [EXT] Re: [PATCH v9] Add new mac80211 driver mwlwifi.

From: David Lin <hidden>
Date: 2017-02-08 03:21:27

PiBGcm9tOiBzdGV2ZS5kZXJvc2llckBnbWFpbC5jb20gV3JvdGU6DQo+IEhpIERhdmlkLA0KPiAN
Cj4gRmlyc3Qgb2ZmLCBJIHdhbnRlZCB0byBzYXkgdGhhbmsteW91IGZvciB5b3VyIHdvcmsgYW5k
IGVmZm9ydCBpbiB0cnlpbmcgdG8gZ2V0DQo+IG13bHdpZmkgdXBzdHJlYW0uIE15IGNvbW1lbnRz
IGFyZSBpbi1saW5lIHdpdGggbXkgZ2VuZXJhbCBub3Rlcw0KPiBhZnRlcndhcmRzLg0KPiANCj4g
T24gVHVlLCBEZWMgMjAsIDIwMTYgYXQgODoxMSBQTSwgRGF2aWQgTGluIDxkbGluQG1hcnZlbGwu
Y29tPiB3cm90ZToNCj4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21h
cnZlbGwvbXdsd2lmaS9kZWJ1Z2ZzLmgNCj4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZl
bGwvbXdsd2lmaS9kZWJ1Z2ZzLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4
IDAwMDAwMDAuLmI0YzNlYjMNCj4gPiArLyogRGVzY3JpcHRpb246ICBUaGlzIGZpbGUgZGVmaW5l
cyBkZWJ1ZyBmcyByZWxhdGVkIGZ1bmN0aW9ucy4gKi8NCj4gPiArDQo+ID4gKyNpZm5kZWYgX01X
TF9ERUJVR0ZTX0hfDQo+ID4gKyNkZWZpbmUgX01XTF9ERUJVR0ZTX0hfDQo+ID4gKw0KPiA+ICt2
b2lkIG13bF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpOyB2b2lkDQo+ID4g
K213bF9kZWJ1Z2ZzX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7DQo+ID4gKw0KPiAN
Cj4gWW91IHNob3VsZCBndWFyZCB0aGVzZSBzbyB0aGV5IGRlZmluZSB0byBlbXB0eSBmdW5jdGlv
bnMgaWYNCj4gQ09ORklHX0RFQlVHX0ZTIGlzbid0IGVuYWJsZWQgc28gdGhleSBjYW4gYmUgdXNl
ZCBieSBhIGNhbGxlciB3aXRob3V0DQo+IGV4cGxpY2l0IGd1YXJkcy4NCj4gDQoNCkkgd2lsbCBt
b2RpZnkgaXQuDQoNCj4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFy
dmVsbC9td2x3aWZpL2Rldi5oDQo+ID4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213
bHdpZmkvZGV2LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAu
LmM3YjEwYWMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl
c3MvbWFydmVsbC9td2x3aWZpL2Rldi5oDQo+IC4uLg0KPiA+ICtzdHJ1Y3QgbXdsX2FtcGR1X3N0
cmVhbSB7DQo+ID4gKyBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhOw0KPiA+ICsgdTggdGlkOw0K
PiA+ICsgdTggc3RhdGU7DQo+ID4gKyB1OCBpZHg7DQo+ID4gK307DQo+ID4gKw0KPiA+ICsjaWZk
ZWYgQ09ORklHX0RFQlVHX0ZTDQo+ID4gKyNkZWZpbmUgTUFDX1JFR19BRERSX1BDSShvZmZzZXQp
ICAgICAgKChwcml2LT5pb2Jhc2UxICsgMHhBMDAwKSArDQo+IChvZmZzZXQpKQ0KPiA+ICsNCj4g
PiArI2RlZmluZSBNV0xfQUNDRVNTX01BQyAgICAgICAgICAgICAgICAxDQo+ID4gKyNkZWZpbmUg
TVdMX0FDQ0VTU19SRiAgICAgICAgICAgICAgICAgMg0KPiA+ICsjZGVmaW5lIE1XTF9BQ0NFU1Nf
QkJQICAgICAgICAgICAgICAgIDMNCj4gPiArI2RlZmluZSBNV0xfQUNDRVNTX0NBVSAgICAgICAg
ICAgICAgICA0DQo+ID4gKyNkZWZpbmUgTVdMX0FDQ0VTU19BRERSMCAgICAgICAgICAgICAgNQ0K
PiA+ICsjZGVmaW5lIE1XTF9BQ0NFU1NfQUREUjEgICAgICAgICAgICAgIDYNCj4gPiArI2RlZmlu
ZSBNV0xfQUNDRVNTX0FERFIgICAgICAgICAgICAgICA3DQo+ID4gKyNlbmRpZg0KPiANCj4gT0ss
IEkgZ2V0IHRoYXQgeW91J3JlIG9ubHkgdXNpbmcgdGhlIGFib3ZlIGluIHRoZSBkZWJ1Z2ZzIGZ1
bmN0aW9ucywgYnV0IGFzIGZvcg0KPiBnZW5lcmljIHJlZ2lzdGVyIGFjY2VzcyBmdW5jdGlvbnMs
IHRoZXNlIHdvdWxkIGJlIHZhbGlkIG5vIG1hdHRlciBpZg0KPiBDT05GSUdfREVCVUdfRlMgaXMg
ZGVmaW5lZC4gSGF2aW5nIHRoZSBndWFyZCBoZXJlIGp1c3Qgc2VlbXMgdG8NCj4gY29tcGxpY2F0
ZSB0aGluZ3MuDQo+IA0KDQpJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+IA0KPiA+ICsNCj4gPiArc3Ry
dWN0IG13bF9wcml2IHsNCj4gPiArIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3Ow0KPiA+ICsgc3Ry
dWN0IGZpcm13YXJlICpmd191Y29kZTsNCj4gPiArIGJvb2wgZndfZGV2aWNlX3B3cnRibDsNCj4g
PiArIGJvb2wgZm9yYmlkZGVuX3NldHRpbmc7DQo+ID4gKw0KPiA+ICsgc3RydWN0IHRoZXJtYWxf
Y29vbGluZ19kZXZpY2UgKmNkZXY7DQo+ID4gKyB1MzIgdGhyb3R0bGVfc3RhdGU7DQo+ID4gKyB1
MzIgcXVpZXRfcGVyaW9kOw0KPiA+ICsgaW50IHRlbXBlcmF0dXJlOw0KPiA+ICsNCj4gPiArI2lm
ZGVmIENPTkZJR19ERUJVR19GUw0KPiA+ICsgc3RydWN0IGRlbnRyeSAqZGVidWdmc19waHk7DQo+
ID4gKyB1MzIgcmVnX3R5cGU7DQo+ID4gKyB1MzIgcmVnX29mZnNldDsNCj4gPiArIHUzMiByZWdf
dmFsdWU7DQo+ID4gKyBpbnQgdHhfZGVzY19udW07DQo+ID4gKyNlbmRpZg0KPiANCj4gV2UncmUg
c2F2aW5nIGEgZmV3IGJ5dGVzIGhlcmUgYXQgdGhlIGNvc3Qgb2Ygc29tZSBjb21wbGV4aXR5LiBJ
IGNvdWxkIGdvIGVpdGhlcg0KPiB3YXksIGJ1dCBJIGhhdGUgd2hlbiBwcml2IHN0cnVjdHVyZXMg
bXV0YXRlLg0KPiANCg0KSSB3aWxsIHJlbW92ZSB0aGUgY29tcGlsZSBjb250cm9sLg0KDQo+IA0K
PiA+ICsvKiBEZWZpbmVkIGluIG1hYzgwMjExLmMuICovDQo+ID4gK2V4dGVybiBjb25zdCBzdHJ1
Y3QgaWVlZTgwMjExX29wcyBtd2xfbWFjODAyMTFfb3BzOw0KPiANCj4gRG9lcyB0aGlzIG5lZWQg
dG8gYmUgaW4gZGV2Lmg/DQo+IA0KPiANCg0KSXQgY2FuIGJlIG1vdmVkIHRvIG1haW4uYy4NCg0K
PiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZp
L2Z3Y21kLmMNCj4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9md2Nt
ZC5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi45YzNjY2Y5
DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZl
bGwvbXdsd2lmaS9md2NtZC5jDQo+ID4gQEAgLTAsMCArMSwyODM3IEBADQo+ID4gKy8qDQo+ID4g
KyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2LCBNYXJ2ZWxsIEludGVybmF0aW9uYWwgTHRkLg0K
PiA+ICsgKg0KPiA+ICsgKiBUaGlzIHNvZnR3YXJlIGZpbGUgKHRoZSAiRmlsZSIpIGlzIGRpc3Ry
aWJ1dGVkIGJ5IE1hcnZlbGwNCj4gPiArSW50ZXJuYXRpb25hbA0KPiA+ICsgKiBMdGQuIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLA0K
PiA+ICtKdW5lIDE5OTENCj4gPiArICogKHRoZSAiTGljZW5zZSIpLiAgWW91IG1heSB1c2UsIHJl
ZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMNCj4gPiArDQo+ID4gKyNkZWZpbmUgTUFYX1dB
SVRfRldfQ09NUExFVEVfSVRFUkFUSU9OUyAgICAgICAgIDIwMDANCj4gPiArI2RlZmluZSBNQVhf
V0FJVF9HRVRfSFdfU1BFQ1NfSVRFUkFUT05TICAgICAgICAgMw0KPiA+ICsNCj4gPiArc3RydWN0
IGNtZF9oZWFkZXIgew0KPiA+ICsgX19sZTE2IGNvbW1hbmQ7DQo+ID4gKyBfX2xlMTYgbGVuOw0K
PiA+ICt9IF9fcGFja2VkOw0KPiA+ICsNCj4gPiArc3RhdGljIGJvb2wgbXdsX2Z3Y21kX2Noa19h
ZGFwdGVyKHN0cnVjdCBtd2xfcHJpdiAqcHJpdikgew0KPiA+ICsgdTMyIHJlZ3ZhbDsNCj4gPiAr
DQo+ID4gKyByZWd2YWwgPSByZWFkbChwcml2LT5pb2Jhc2UxICsgTUFDUkVHX1JFR19JTlRfQ09E
RSk7DQo+IA0KPiBDb3VsZG4ndCB0aGUgYWJvdmUgYmUgb25lIGxpbmU/DQo+DQoNClllcy4gSSB3
aWxsIG1vZGlmeSBpdC4NCiANCj4gDQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG13bF9md2NtZF9n
ZXRfdHhfcG93ZXJzKHN0cnVjdCBtd2xfcHJpdiAqcHJpdiwgdTE2ICpwb3dsaXN0LA0KPiB1MTYg
Y2gsDQo+ID4gKyAgIHUxNiBiYW5kLCB1MTYgd2lkdGgsIHUxNiBzdWJfY2gpDQo+ID4gK3sNCj4g
PiArIHN0cnVjdCBob3N0Y21kX2NtZF84MDJfMTFfdHhfcG93ZXIgKnBjbWQ7ICBpbnQgaTsNCj4g
PiArDQo+ID4gKyBwY21kID0gKHN0cnVjdCBob3N0Y21kX2NtZF84MDJfMTFfdHhfcG93ZXIgKikm
cHJpdi0+cGNtZF9idWZbMF07DQo+IA0KPiBPZnRlbiBoYXBwZW5zLCBzbyBJIHByb2JhYmx5IHdv
bid0IGNhdGNoIHRoZW0gYWxsLCBidXQgdGhpcyBjb3VsZCBsaWtld2lzZSBiZQ0KPiBkb25lIGlu
IG9uZSBsaW5lLiBUaGVuIGFnYWluLi4uIGxpbmUgbGVuZ3RoIGlzc3Vlcywgc28gNTAvNTAgb24g
dGhhdC4NCj4gDQo+DQoNCkkgd2lsbCBtb2RpZnkgaXQuDQoNCj4gPiArDQo+ID4gK3N0YXRpYyB1
OCBtd2xfZndjbWRfZ2V0XzgwbV9wcmlfY2hubCh1OCBjaGFubmVsKSB7DQo+ID4gKyB1OCBhY3Rf
cHJpbWFyeSA9IEFDVF9QUklNQVJZX0NIQU5fMDsNCj4gPiArDQo+ID4gKyBzd2l0Y2ggKGNoYW5u
ZWwpIHsNCj4gPiArIGNhc2UgMzY6DQo+ID4gKyBhY3RfcHJpbWFyeSA9IEFDVF9QUklNQVJZX0NI
QU5fMDsNCj4gPiArIGJyZWFrOw0KPiA+ICsgY2FzZSA0MDoNCj4gPiArIGFjdF9wcmltYXJ5ID0g
QUNUX1BSSU1BUllfQ0hBTl8xOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDQ0Og0KPiA+ICsg
YWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzI7DQo+ID4gKyBicmVhazsNCj4gPiArIGNh
c2UgNDg6DQo+ID4gKyBhY3RfcHJpbWFyeSA9IEFDVF9QUklNQVJZX0NIQU5fMzsNCj4gPiArIGJy
ZWFrOw0KPiA+ICsgY2FzZSA1MjoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hB
Tl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDU2Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBB
Q1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgNjA6DQo+ID4gKyBh
Y3RfcHJpbWFyeSA9IEFDVF9QUklNQVJZX0NIQU5fMjsNCj4gPiArIGJyZWFrOw0KPiA+ICsgY2Fz
ZSA2NDoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8zOw0KPiA+ICsgYnJl
YWs7DQo+ID4gKyBjYXNlIDEwMDoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hB
Tl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEwNDoNCj4gPiArIGFjdF9wcmltYXJ5ID0g
QUNUX1BSSU1BUllfQ0hBTl8xOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEwODoNCj4gPiAr
IGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8yOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBj
YXNlIDExMjoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8zOw0KPiA+ICsg
YnJlYWs7DQo+ID4gKyBjYXNlIDExNjoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllf
Q0hBTl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEyMDoNCj4gPiArIGFjdF9wcmltYXJ5
ID0gQUNUX1BSSU1BUllfQ0hBTl8xOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEyNDoNCj4g
PiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8yOw0KPiA+ICsgYnJlYWs7DQo+ID4g
KyBjYXNlIDEyODoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8zOw0KPiA+
ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEzMjoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1B
UllfQ0hBTl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDEzNjoNCj4gPiArIGFjdF9wcmlt
YXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8xOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDE0MDoN
Cj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8yOw0KPiA+ICsgYnJlYWs7DQo+
ID4gKyBjYXNlIDE0NDoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8zOw0K
PiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDE0OToNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BS
SU1BUllfQ0hBTl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDE1MzoNCj4gPiArIGFjdF9w
cmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8xOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDE1
NzoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8yOw0KPiA+ICsgYnJlYWs7
DQo+ID4gKyBjYXNlIDE2MToNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8z
Ow0KPiA+ICsgYnJlYWs7DQo+ID4gKyB9DQo+ID4gKw0KPiA+ICsgcmV0dXJuIGFjdF9wcmltYXJ5
Ow0KPiA+ICt9DQo+ID4gKw0KPiANCj4gSWdub3JhbmNlIHNwZWFraW5nIGhlcmUgcGVyaGFwcywg
YnV0IHRoZSBhYm92ZSBsb29rcyBsaWtlIHNvbWV0aGluZyB0aGF0DQo+IG5lYXJseSBldmVyeSBk
cml2ZXIgd291bGQgbmVlZCB0byBkZWFsIHdpdGguIElzbid0IHRoZXJlIGEgaGVscGVyIGZ1bmN0
aW9uIGluDQo+IG1hYzgwMjExIG9yIHNvbWUgYmV0dGVyIHdheSB0byBkbyB0aGlzIHRoYW4gZXhw
bGljaXRseSBkb2luZyBhIHN3aXRjaCBsb2dpYw0KPiBsb29rdXA/DQo+IA0KDQpUaGlzIGlzIHRo
ZSBmdW5jdGlvbiBuZWVkZWQgZm9yIG91ciBob3N0IGNvbW1hbmQuIFRoZXJlIGlzIG5vIGhlbHBl
ciBmdW5jdGlvbiBpbiBtYWM4MDIxMS4NCg0KPiA+ICtpbnQgbXdsX2Z3Y21kX3NldF9uZXdfc3Ru
X2FkZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCj4gPiArICAgICAgc3RydWN0IGllZWU4MDIx
MV92aWYgKnZpZiwNCj4gPiArICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkNCj4gPiAr
ew0KPiA+ICsgc3RydWN0IG13bF9wcml2ICpwcml2ID0gaHctPnByaXY7DQo+ID4gKyBzdHJ1Y3Qg
bXdsX3ZpZiAqbXdsX3ZpZjsNCj4gPiArIHN0cnVjdCBob3N0Y21kX2NtZF9zZXRfbmV3X3N0biAq
cGNtZDsNCj4gPiArIHUzMiByYXRlczsNCj4gPiArDQo+ID4gKyBtd2xfdmlmID0gbXdsX2Rldl9n
ZXRfdmlmKHZpZik7DQo+ID4gKw0KPiA+ICsgcGNtZCA9IChzdHJ1Y3QgaG9zdGNtZF9jbWRfc2V0
X25ld19zdG4gKikmcHJpdi0+cGNtZF9idWZbMF07DQo+ID4gKw0KPiA+ICsgbXV0ZXhfbG9jaygm
cHJpdi0+ZndjbWRfbXV0ZXgpOw0KPiA+ICsNCj4gPiArIG1lbXNldChwY21kLCAweDAwLCBzaXpl
b2YoKnBjbWQpKTsNCj4gPiArIHBjbWQtPmNtZF9oZHIuY21kID0gY3B1X3RvX2xlMTYoSE9TVENN
RF9DTURfU0VUX05FV19TVE4pOw0KPiA+ICsgcGNtZC0+Y21kX2hkci5sZW4gPSBjcHVfdG9fbGUx
NihzaXplb2YoKnBjbWQpKTsgY21kX2hkci5tYWNpZCA9DQo+ID4gKyBwY21kLT5td2xfdmlmLT5t
YWNpZDsNCj4gPiArDQo+ID4gKyBwY21kLT5hY3Rpb24gPSBjcHVfdG9fbGUxNihIT1NUQ01EX0FD
VF9TVEFfQUNUSU9OX0FERCk7DQo+ID4gKyBpZiAodmlmLT50eXBlID09IE5MODAyMTFfSUZUWVBF
X1NUQVRJT04pIHsNCj4gPiArIHBjbWQtPmFpZCA9IDA7DQo+ID4gKyBwY21kLT5zdG5faWQgPSAw
Ow0KPiA+ICsgfSBlbHNlIHsNCj4gPiArIHBjbWQtPmFpZCA9IGNwdV90b19sZTE2KHN0YS0+YWlk
KTsNCj4gPiArIHBjbWQtPnN0bl9pZCA9IGNwdV90b19sZTE2KHN0YS0+YWlkKTsNCj4gPiArIH0N
Cj4gPiArIGV0aGVyX2FkZHJfY29weShwY21kLT5tYWNfYWRkciwgc3RhLT5hZGRyKTsNCj4gPiAr
DQo+ID4gKyBpZiAoaHctPmNvbmYuY2hhbmRlZi5jaGFuLT5iYW5kID09IE5MODAyMTFfQkFORF8y
R0haKSByYXRlcyA9DQo+ID4gKyBzdGEtPnN1cHBfcmF0ZXNbTkw4MDIxMV9CQU5EXzJHSFpdOw0K
PiA+ICsgZWxzZQ0KPiA+ICsgcmF0ZXMgPSBzdGEtPnN1cHBfcmF0ZXNbTkw4MDIxMV9CQU5EXzVH
SFpdIDw8IDU7DQo+ID4gKyBwY21kLT5wZWVyX2luZm8ubGVnYWN5X3JhdGVfYml0bWFwID0gY3B1
X3RvX2xlMzIocmF0ZXMpOw0KPiA+ICsNCj4gPiArIGlmIChzdGEtPmh0X2NhcC5odF9zdXBwb3J0
ZWQpIHsNCj4gPiArIHBjbWQtPnBlZXJfaW5mby5odF9yYXRlc1swXSA9IHN0YS0+aHRfY2FwLm1j
cy5yeF9tYXNrWzBdOw0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLmh0X3JhdGVzWzFdID0gc3RhLT5o
dF9jYXAubWNzLnJ4X21hc2tbMV07DQo+ID4gKyBwY21kLT5wZWVyX2luZm8uaHRfcmF0ZXNbMl0g
PSBzdGEtPmh0X2NhcC5tY3MucnhfbWFza1syXTsNCj4gPiArIHBjbWQtPnBlZXJfaW5mby5odF9y
YXRlc1szXSA9IHN0YS0+aHRfY2FwLm1jcy5yeF9tYXNrWzNdOw0KPiA+ICsgcGNtZC0+cGVlcl9p
bmZvLmh0X2NhcF9pbmZvID0gY3B1X3RvX2xlMTYoc3RhLT5odF9jYXAuY2FwKTsNCj4gPiArIHBj
bWQtPnBlZXJfaW5mby5tYWNfaHRfcGFyYW1faW5mbyA9DQo+ID4gKyAoc3RhLT5odF9jYXAuYW1w
ZHVfZmFjdG9yICYgMykgfA0KPiA+ICsgKChzdGEtPmh0X2NhcC5hbXBkdV9kZW5zaXR5ICYgNykg
PDwgMik7IH0NCj4gPiArDQo+ID4gKyBpZiAoc3RhLT52aHRfY2FwLnZodF9zdXBwb3J0ZWQpIHsN
Cj4gPiArIHBjbWQtPnBlZXJfaW5mby52aHRfbWF4X3J4X21jcyA9DQo+ID4gKyBjcHVfdG9fbGUz
MigqKCh1MzIgKikNCj4gPiArICZzdGEtPnZodF9jYXAudmh0X21jcy5yeF9tY3NfbWFwKSk7DQo+
ID4gKyBwY21kLT5wZWVyX2luZm8udmh0X2NhcCA9IGNwdV90b19sZTMyKHN0YS0+dmh0X2NhcC5j
YXApOw0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLnZodF9yeF9jaGFubmVsX3dpZHRoID0gc3RhLT5i
YW5kd2lkdGg7DQo+ID4gKyB9DQo+ID4gKw0KPiA+ICsgcGNtZC0+aXNfcW9zX3N0YSA9IHN0YS0+
d21lOw0KPiA+ICsgcGNtZC0+cW9zX2luZm8gPSAoKHN0YS0+dWFwc2RfcXVldWVzIDw8IDQpIHwg
KHN0YS0+bWF4X3NwIDw8IDEpKTsNCj4gPiArDQo+ID4gKyBpZiAobXdsX2Z3Y21kX2V4ZWNfY21k
KHByaXYsIEhPU1RDTURfQ01EX1NFVF9ORVdfU1ROKSkgew0KPiA+ICsgbXV0ZXhfdW5sb2NrKCZw
cml2LT5md2NtZF9tdXRleCk7IHdpcGh5X2Vycihody0+d2lwaHksICJmYWlsZWQNCj4gPiArIGV4
ZWN1dGlvblxuIik7IHJldHVybiAtRUlPOyB9DQo+ID4gKw0KPiA+ICsgaWYgKHZpZi0+dHlwZSA9
PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKSB7DQo+ID4gKyBldGhlcl9hZGRyX2NvcHkocGNtZC0+
bWFjX2FkZHIsIG13bF92aWYtPnN0YV9tYWMpOw0KPiA+ICsNCj4gPiArIGlmIChtd2xfZndjbWRf
ZXhlY19jbWQocHJpdiwgSE9TVENNRF9DTURfU0VUX05FV19TVE4pKSB7DQo+ID4gKyBtdXRleF91
bmxvY2soJnByaXYtPmZ3Y21kX211dGV4KTsgd2lwaHlfZXJyKGh3LT53aXBoeSwgImZhaWxlZA0K
PiA+ICsgZXhlY3V0aW9uXG4iKTsgcmV0dXJuIC1FSU87IH0gfQ0KPiANCj4gT0ssIHRpbWUgdG8g
YXNrLiBXaHkgYXJlIHdlIHRlbGxpbmcgdGhlIGZpcm13YXJlIHRoYXQgd2UncmUgY29ubmVjdGVk
IHRvDQo+IG91cnNlbHZlcz8gSSB3b3VsZCBwcmVzdW1lIHRoZSBmaXJtd2FyZSBhbHJlYWR5IGtu
b3dzIG91ciBNQUMgYWRkcmVzcy4NCj4gDQo+IEkgbm90aWNlZCB0aGlzIG9yaWdpbmFsbHkgYmVj
YXVzZSB0aGVyZSdzIGEgbmFzdHkgYnVnIHdpdGggcmVjeWNsaW5nIHRoZQ0KPiBjb21tYW5kIGJ1
ZmZlciAoZm9yIHNkaW8sIGl0J3Mgbm90IHJlbGV2YW50IGZvciB0aGlzIGRyaXZlcikgYW5kIGlu
IGRvaW5nDQo+IGV4cGVyaW1lbnRzIEkgbm90aWNlZCB0aGF0IHRocm91Z2hwdXQgc2lnbmlmaWNh
bnRseSBpbmNyZWFzZXMgaW4gU1RBIG1vZGUgaWYNCj4gd2UganVzdCBsZWF2ZSBvdXQgdGhlIGVu
dGlyZSBjbGF1c2UuDQo+IA0KPiBJbiBicmllZmx5IGV4YW1pbmluZyB0aGUgZmlybXdhcmUgc291
cmNlIEkgc2VlIG5vIHJlYXNvbiB0byBkbyB0aGlzLCBidXQgdGhlcmUncw0KPiBhIGhpZGRlbiBj
aHVuayBhbmQgSSBkb24ndCBrbm93IHdoYXQgdGhlIGhhcmR3YXJlIGl0c2VsZiBkb2VzIHdpdGgg
dGhlIE1BQw0KPiB0YWJsZS4NCj4gDQo+IFNvLCB3aHkgaXMgaXQgbmVjZXNzYXJ5Pw0KPiANCg0K
SSB3aWxsIGNoZWNrLg0KDQo+IA0KPiA+ICtpbnQgbXdsX2Z3Y21kX3NldF9uZXdfc3RuX2RlbChz
dHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCj4gPiArICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYg
KnZpZiwgdTggKmFkZHIpIHsgIHN0cnVjdCBtd2xfcHJpdiAqcHJpdiA9DQo+ID4gK2h3LT5wcml2
OyAgc3RydWN0IG13bF92aWYgKm13bF92aWY7ICBzdHJ1Y3QgaG9zdGNtZF9jbWRfc2V0X25ld19z
dG4NCj4gPiArKnBjbWQ7DQo+ID4gKw0KPiA+ICsgbXdsX3ZpZiA9IG13bF9kZXZfZ2V0X3ZpZih2
aWYpOw0KPiA+ICsNCj4gPiArIHBjbWQgPSAoc3RydWN0IGhvc3RjbWRfY21kX3NldF9uZXdfc3Ru
ICopJnByaXYtPnBjbWRfYnVmWzBdOw0KPiA+ICsNCj4gPiArIG11dGV4X2xvY2soJnByaXYtPmZ3
Y21kX211dGV4KTsNCj4gPiArDQo+ID4gKyBtZW1zZXQocGNtZCwgMHgwMCwgc2l6ZW9mKCpwY21k
KSk7DQo+ID4gKyBwY21kLT5jbWRfaGRyLmNtZCA9IGNwdV90b19sZTE2KEhPU1RDTURfQ01EX1NF
VF9ORVdfU1ROKTsNCj4gPiArIHBjbWQtPmNtZF9oZHIubGVuID0gY3B1X3RvX2xlMTYoc2l6ZW9m
KCpwY21kKSk7IGNtZF9oZHIubWFjaWQgPQ0KPiA+ICsgcGNtZC0+bXdsX3ZpZi0+bWFjaWQ7DQo+
ID4gKw0KPiA+ICsgcGNtZC0+YWN0aW9uID0gY3B1X3RvX2xlMTYoSE9TVENNRF9BQ1RfU1RBX0FD
VElPTl9SRU1PVkUpOw0KPiA+ICsgZXRoZXJfYWRkcl9jb3B5KHBjbWQtPm1hY19hZGRyLCBhZGRy
KTsNCj4gPiArDQo+ID4gKyBpZiAobXdsX2Z3Y21kX2V4ZWNfY21kKHByaXYsIEhPU1RDTURfQ01E
X1NFVF9ORVdfU1ROKSkgew0KPiA+ICsgbXV0ZXhfdW5sb2NrKCZwcml2LT5md2NtZF9tdXRleCk7
IHdpcGh5X2Vycihody0+d2lwaHksICJmYWlsZWQNCj4gPiArIGV4ZWN1dGlvblxuIik7IHJldHVy
biAtRUlPOyB9DQo+ID4gKw0KPiA+ICsgaWYgKHZpZi0+dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9T
VEFUSU9OKSB7DQo+ID4gKyBldGhlcl9hZGRyX2NvcHkocGNtZC0+bWFjX2FkZHIsIG13bF92aWYt
PnN0YV9tYWMpOw0KPiA+ICsNCj4gPiArIGlmIChtd2xfZndjbWRfZXhlY19jbWQocHJpdiwgSE9T
VENNRF9DTURfU0VUX05FV19TVE4pKSB7DQo+ID4gKyBtdXRleF91bmxvY2soJnByaXYtPmZ3Y21k
X211dGV4KTsgd2lwaHlfZXJyKGh3LT53aXBoeSwgImZhaWxlZA0KPiA+ICsgZXhlY3V0aW9uXG4i
KTsgcmV0dXJuIC1FSU87IH0gfQ0KPiA+ICsNCj4gDQo+IERpdHRvLg0KPiANCj4gPiBkaWZmIC0t
Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL2Z3ZGwuYw0KPiA+IGIv
ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL2Z3ZGwuYw0KPiA+IG5ldyBmaWxl
IG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uZjRkNWZhMQ0KPiA+IC0tLSAvZGV2L251
bGwNCj4gPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvZndkbC5j
DQo+IC4uLg0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgbXdsX2Z3ZGxfdHJpZ19wY2ljbWQoc3Ry
dWN0IG13bF9wcml2ICpwcml2KSB7DQo+ID4gK3dyaXRlbChwcml2LT5wcGh5c19jbWRfYnVmLCBw
cml2LT5pb2Jhc2UxICsgTUFDUkVHX1JFR19HRU5fUFRSKTsNCj4gPiArDQo+ID4gKyB3cml0ZWwo
MHgwMCwgcHJpdi0+aW9iYXNlMSArIE1BQ1JFR19SRUdfSU5UX0NPREUpOw0KPiA+ICsNCj4gPiAr
IHdyaXRlbChNQUNSRUdfSDJBUklDX0JJVF9ET09SX0JFTEwsDQo+ID4gKyAgICAgICBwcml2LT5p
b2Jhc2UxICsgTUFDUkVHX1JFR19IMkFfSU5URVJSVVBUX0VWRU5UUyk7IH0NCj4gPiArDQo+ID4g
K3N0YXRpYyB2b2lkIG13bF9md2RsX3RyaWdfcGNpY21kX2Jvb3Rjb2RlKHN0cnVjdCBtd2xfcHJp
diAqcHJpdikgew0KPiA+ICt3cml0ZWwocHJpdi0+cHBoeXNfY21kX2J1ZiwgcHJpdi0+aW9iYXNl
MSArIE1BQ1JFR19SRUdfR0VOX1BUUik7DQo+ID4gKw0KPiA+ICsgd3JpdGVsKDB4MDAsIHByaXYt
PmlvYmFzZTEgKyBNQUNSRUdfUkVHX0lOVF9DT0RFKTsNCj4gPiArDQo+ID4gKyB3cml0ZWwoTUFD
UkVHX0gyQVJJQ19CSVRfRE9PUl9CRUxMLA0KPiA+ICsgICAgICAgcHJpdi0+aW9iYXNlMSArIE1B
Q1JFR19SRUdfSDJBX0lOVEVSUlVQVF9FVkVOVFMpOyB9DQo+ID4gKw0KPiANCj4gVW5sZXNzIEkn
bSBtaXN0YWtlbiB0aGUgYWJvdmUgdHdvIGZ1bmN0aW9ucyBhcmUgMTAwJSBpZGVudGljYWwuIElu
IG15IHZlcnNpb24NCj4gSSBjb2xsYXBzZWQgdGhlbSB0byBhIHNpbmdsZSBvbmUgYW5kIGl0IHdv
cmtzIGZpbmUuDQo+IA0KDQpJIHdpbGwgY2hlY2sgYW5kIG1vZGlmeSBpdC4NCg0KPiA+ICtpbnQg
bXdsX2Z3ZGxfZG93bmxvYWRfZmlybXdhcmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpIHsNCj4g
Li4uDQo+ID4gKw0KPiA+ICsgd2hpbGUgKHNpemVfZndfZG93bmxvYWRlZCA8IGZ3LT5zaXplKSB7
IGxlbiA9IHJlYWRsKHByaXYtPmlvYmFzZTEgKw0KPiA+ICsgMHhjNDApOw0KPiA+ICsNCj4gPiAr
IGlmICghbGVuKQ0KPiA+ICsgYnJlYWs7DQo+ID4gKw0KPiA+ICsgLyogdGhpcyBjb3BpZXMgdGhl
IG5leHQgY2h1bmsgb2YgZncgYmluYXJ5IHRvIGJlIGRlbGl2ZXJlZCAqLw0KPiA+ICsgbWVtY3B5
KChjaGFyICopJnByaXYtPnBjbWRfYnVmWzBdLA0KPiA+ICsgICAgICAgKGZ3LT5kYXRhICsgc2l6
ZV9md19kb3dubG9hZGVkKSwgbGVuKTsNCj4gPiArDQo+ID4gKyAvKiB0aGlzIGZ1bmN0aW9uIHdy
aXRlcyBwZGF0YSB0byBjMTAsIHRoZW4gd3JpdGUgMiB0byBjMTggKi8NCj4gPiArIG13bF9md2Rs
X3RyaWdfcGNpY21kX2Jvb3Rjb2RlKHByaXYpOw0KPiA+ICsNCj4gPiArIC8qIHRoaXMgaXMgYXJi
aXRyYXJ5IHBlciB5b3VyIHBsYXRmb3JtOyB3ZSB1c2UgMHhmZmZmICovDQo+ID4gKyBjdXJyX2l0
ZXJhdGlvbiA9IEZXX01BWF9OVU1fQ0hFQ0tTOw0KPiA+ICsNCj4gPiArIC8qIE5PVEU6IHRoZSBm
b2xsb3dpbmcgYmFjayB0byBiYWNrIGNoZWNrcyBvbiBDMUMgaXMgdGltZQ0KPiA+ICsgKiBzZW5z
aXRpdmUsIGhlbmNlIG1heSBuZWVkIHRvIGJlIHR3ZWFrZWQgZGVwZW5kZW50IG9uIGhvc3QNCj4g
PiArICogcHJvY2Vzc29yLiBUaW1lIGZvciBTQzIgdG8gZ28gZnJvbSB0aGUgd3JpdGUgb2YgZXZl
bnQgMiB0bw0KPiA+ICsgKiBDMUMgPT0gMiBpcyB+MTMwMCBuU2VjLiBIZW5jZSB0aGUgY2hlY2tp
bmdzIG9uIGhvc3QgaGFzIHRvDQo+ID4gKyAqIGNvbnNpZGVyIGhvdyBlZmZpY2llbnQgeW91ciBj
b2RlIGNhbiBiZSB0byBtZWV0IHRoaXMgdGltaW5nLA0KPiA+ICsgKiBvciB5b3UgY2FuIGFsdGVy
bmF0aXZlbHkgdHdlYWsgdGhpcyByb3V0aW5lcyB0byBmaXQgeW91cg0KPiA+ICsgKiBwbGF0Zm9y
bQ0KPiA+ICsgKi8NCj4gPiArIGRvIHsNCj4gPiArIGludF9jb2RlID0gcmVhZGwocHJpdi0+aW9i
YXNlMSArIDB4YzFjKTsgaWYgKGludF9jb2RlICE9IDApIGJyZWFrOw0KPiA+ICsgY29uZF9yZXNj
aGVkKCk7IGN1cnJfaXRlcmF0aW9uLS07IH0gd2hpbGUgKGN1cnJfaXRlcmF0aW9uKTsNCj4gPiAr
DQo+IA0KPiBUaGVyZSdzIHNvbWV0aGluZyBmaXNoeSB3aXRoIHRoZSBhYm92ZS4gSGF2aW5nIHRv
ICJ0d2VhayIgZHJpdmVyIHRpbWluZyBiYXNlZA0KPiBvbiBwbGF0Zm9ybSBpcyBhIGh1Z2UgcmVk
IGZsYWcuIFRoZXJlJ3MgZ290IHRvIGJlIHNvbWV0aGluZyBiZXR0ZXIgdGhhbiB0aGUNCj4gYWJv
dmUuDQo+IA0KDQpJdCB3aWxsIHJlbGVhc2UgQ1BVLg0KDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9k
cml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvbWFjODAyMTEuYw0KPiA+IGIvZHJp
dmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL21hYzgwMjExLmMNCj4gLi4uDQo+ID4g
K3N0YXRpYyBpbnQgbXdsX21hYzgwMjExX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywN
Cj4gPiArICAgICAgIHUzMiBjaGFuZ2VkKQ0KPiA+ICt7DQo+ID4gKyBzdHJ1Y3QgaWVlZTgwMjEx
X2NvbmYgKmNvbmYgPSAmaHctPmNvbmY7ICBpbnQgcmM7DQo+ID4gKw0KPiA+ICsgd2lwaHlfZGVi
dWcoaHctPndpcGh5LCAiY2hhbmdlOiAweCV4XG4iLCBjaGFuZ2VkKTsNCj4gPiArDQo+ID4gKyBp
ZiAoY29uZi0+ZmxhZ3MgJiBJRUVFODAyMTFfQ09ORl9JRExFKSByYyA9DQo+ID4gKyBtd2xfZndj
bWRfcmFkaW9fZGlzYWJsZShodyk7IGVsc2UgcmMgPSBtd2xfZndjbWRfcmFkaW9fZW5hYmxlKGh3
KTsNCj4gPiArDQo+ID4gKyBpZiAocmMpDQo+ID4gKyBnb3RvIG91dDsNCj4gPiArDQo+ID4gKyBp
ZiAoY2hhbmdlZCAmIElFRUU4MDIxMV9DT05GX0NIQU5HRV9DSEFOTkVMKSB7IGludCByYXRlID0g
MDsNCj4gPiArDQo+ID4gKyBpZiAoY29uZi0+Y2hhbmRlZi5jaGFuLT5iYW5kID09IE5MODAyMTFf
QkFORF8yR0haKSB7DQo+IA0KPiBDYXVzZXMgY29tcGlsZSB3YXJuaW5nLiBTaG91bGQgYmUgSUVF
RTgwMjExX0JBTkRfMkdIWi4NCj4gDQoNCk5vLCB5b3UgbmVlZCB0byB1c2UgdXBkYXRlZCBtYWM4
MDIxMS4NCg0KPiANCj4gPiArIG13bF9md2NtZF9zZXRfYXBtb2RlKGh3LCBBUF9NT0RFXzJfNEdI
Wl8xMUFDX01JWEVEKTsNCj4gPiArIG13bF9md2NtZF9zZXRfbGlua2FkYXB0X2NzX21vZGUoaHcs
DQo+ID4gKyBMSU5LX0NTX1NUQVRFX0NPTlNFUlYpOw0KPiA+ICsgcmF0ZSA9IG13bF9yYXRlc18y
NFswXS5od192YWx1ZTsNCj4gPiArIH0gZWxzZSBpZiAoY29uZi0+Y2hhbmRlZi5jaGFuLT5iYW5k
ID09IE5MODAyMTFfQkFORF81R0haKSB7DQo+IA0KPiBDYXVzZXMgY29tcGlsZSB3YXJuaW5nLiBT
aG91bGQgYmUgSUVFRTgwMjExX0JBTkRfNUdIWi4NCj4gDQo+ID4gK3N0YXRpYyB2b2lkIG13bF9t
YWM4MDIxMV9ic3NfaW5mb19jaGFuZ2VkX2FwKHN0cnVjdCBpZWVlODAyMTFfaHcNCj4gKmh3LA0K
PiA+ICsgICAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQo+ID4gKyAgICAgc3RydWN0IGll
ZWU4MDIxMV9ic3NfY29uZiAqaW5mbywNCj4gPiArICAgICB1MzIgY2hhbmdlZCkNCj4gPiArew0K
PiA+ICsgaWYgKGNoYW5nZWQgJiBCU1NfQ0hBTkdFRF9FUlBfUFJFQU1CTEUpDQo+ID4gK213bF9m
d2NtZF9zZXRfcmFkaW9fcHJlYW1ibGUoaHcsDQo+ID4gKyAgICAgdmlmLT5ic3NfY29uZi51c2Vf
c2hvcnRfcHJlYW1ibGUpOw0KPiA+ICsNCj4gPiArIGlmIChjaGFuZ2VkICYgQlNTX0NIQU5HRURf
QkFTSUNfUkFURVMpIHsgaW50IGlkeDsgaW50IHJhdGU7DQo+ID4gKw0KPiA+ICsgLyogVXNlIGxv
d2VzdCBzdXBwb3J0ZWQgYmFzaWMgcmF0ZSBmb3IgbXVsdGljYXN0cw0KPiA+ICsgKiBhbmQgbWFu
YWdlbWVudCBmcmFtZXMgKHN1Y2ggYXMgcHJvYmUgcmVzcG9uc2VzIC0tDQo+ID4gKyAqIGJlYWNv
bnMgd2lsbCBhbHdheXMgZ28gb3V0IGF0IDEgTWIvcykuDQo+ID4gKyAqLw0KPiA+ICsgaWR4ID0g
ZmZzKHZpZi0+YnNzX2NvbmYuYmFzaWNfcmF0ZXMpOyBpZiAoaWR4KSBpZHgtLTsNCj4gPiArDQo+
ID4gKyBpZiAoaHctPmNvbmYuY2hhbmRlZi5jaGFuLT5iYW5kID09IE5MODAyMTFfQkFORF8yR0ha
KQ0KPiANCj4gQ2F1c2VzIGNvbXBpbGUgd2FybmluZy4gU2hvdWxkIGJlIElFRUU4MDIxMV9CQU5E
XzJHSFouDQo+IA0KDQpObywgeW91IG5lZWQgdG8gdXNlIHVwZGF0ZWQgbWFjODAyMTEuDQoNCj4g
DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9t
YWluLmMNCj4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9tYWluLmMN
Cj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAuLi4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L21v
ZHVsZS5oPg0KPiA+ICsjaWZkZWYgQ09ORklHX09GDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZi5o
Pg0KPiA+ICsjZW5kaWYNCj4gDQo+IElzbid0IG9mLmggaW50ZXJuYWxseSBndWFyZGVkPw0KPiAN
Cg0KWWVzLiBJdCBpcyBtZW50aW9uZWQgYnkgSm9oYW5uZXMsIEkgd2lsbCByZW1vdmUgaXQuDQoN
Cj4gPiArDQo+ID4gKyNpbmNsdWRlICJzeXNhZHB0LmgiDQo+ID4gKyNpbmNsdWRlICJkZXYuaCIN
Cj4gPiArI2luY2x1ZGUgImZ3ZGwuaCINCj4gPiArI2luY2x1ZGUgImZ3Y21kLmgiDQo+ID4gKyNp
bmNsdWRlICJ0eC5oIg0KPiA+ICsjaW5jbHVkZSAicnguaCINCj4gPiArI2luY2x1ZGUgImlzci5o
Ig0KPiA+ICsjaW5jbHVkZSAidGhlcm1hbC5oIg0KPiA+ICsjaWZkZWYgQ09ORklHX0RFQlVHX0ZT
DQo+ID4gKyNpbmNsdWRlICJkZWJ1Z2ZzLmgiDQo+ID4gKyNlbmRpZg0KPiANCj4gWW91ciBkZWJ1
Z2ZzLmggc2hvdWxkIGJlIGludGVybmFsbHkgZ3VhcmRlZC4gTW9yZSBsYXRlci4uLg0KPiANCg0K
U2FtZSBhcyBhYm92ZS4NCg0KPiA+ICsNCj4gPiArI2RlZmluZSBNV0xfREVTQyAgICAgICAgICJN
YXJ2ZWxsIDgwMi4xMWFjIFdpcmVsZXNzIE5ldHdvcmsgRHJpdmVyIg0KPiA+ICsjZGVmaW5lIE1X
TF9ERVZfTkFNRSAgICAgIk1hcnZlbGwgODAyLjExYWMgQWRhcHRlciINCj4gPiArDQo+ID4gKyNk
ZWZpbmUgRklMRV9QQVRIX0xFTiAgICA2NA0KPiA+ICsjZGVmaW5lIENNRF9CVUZfU0laRSAgICAg
MHg0MDAwDQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXdsX3BjaV9p
ZF90YmxbXSA9IHsgIHsNCj4gPiArUENJX1ZERVZJQ0UoTUFSVkVMTCwgMHgyYTU1KSwgLmRyaXZl
cl9kYXRhID0gTVdMODg2NCwgfSwgIHsNCj4gPiArUENJX1ZERVZJQ0UoTUFSVkVMTCwgMHgyYjM4
KSwgLmRyaXZlcl9kYXRhID0gTVdMODg5NywgfSwgIHsgfSwgfTsNCj4gPiArDQo+ID4gK3N0YXRp
YyBzdHJ1Y3QgbXdsX2NoaXBfaW5mbyBtd2xfY2hpcF90YmxbXSA9IHsgIFtNV0w4ODY0XSA9IHsN
Cj4gPiArLnBhcnRfbmFtZSA9ICI4OFc4ODY0IiwgIC5md19pbWFnZSA9ICJtd2x3aWZpLzg4Vzg4
NjQuYmluIiwNCj4gPiArLmFudGVubmFfdHggPSBBTlRFTk5BX1RYXzRfQVVUTywgIC5hbnRlbm5h
X3J4ID0NCj4gQU5URU5OQV9SWF80X0FVVE8sDQo+ID4gK30sICBbTVdMODg5N10gPSB7ICAucGFy
dF9uYW1lID0gIjg4Vzg4OTciLCAgLmZ3X2ltYWdlID0NCj4gPiArIm13bHdpZmkvODhXODg5Ny5i
aW4iLCAgLmFudGVubmFfdHggPSBBTlRFTk5BX1RYXzIsICAuYW50ZW5uYV9yeCA9DQo+ID4gK0FO
VEVOTkFfUlhfMiwgIH0sIH07DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4
MDIxMV9jaGFubmVsIG13bF9jaGFubmVsc18yNFtdID0geyAgeyAuYmFuZA0KPiA+ICs9IE5MODAy
MTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDEyLCAuaHdfdmFsdWUgPSAxLCB9LCAgeyAu
YmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDE3LCAuaHdf
dmFsdWUgPSAyLCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVy
X2ZyZXEgPSAyNDIyLCAuaHdfdmFsdWUgPSAzLCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFf
QkFORF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDI3LCAuaHdfdmFsdWUgPSA0LCB9LCAgeyAuYmFu
ZA0KPiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDMyLCAuaHdfdmFs
dWUgPSA1LCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2Zy
ZXEgPSAyNDM3LCAuaHdfdmFsdWUgPSA2LCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFO
RF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDQyLCAuaHdfdmFsdWUgPSA3LCB9LCAgeyAuYmFuZA0K
PiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEgPSAyNDQ3LCAuaHdfdmFsdWUg
PSA4LCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEg
PSAyNDUyLCAuaHdfdmFsdWUgPSA5LCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8y
R0haLCAuY2VudGVyX2ZyZXEgPSAyNDU3LCAuaHdfdmFsdWUgPSAxMCwgfSwgIHsgLmJhbmQNCj4g
PiArPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQ2MiwgLmh3X3ZhbHVlID0g
MTEsIH0sICB7IC5iYW5kDQo+ID4gKz0gTkw4MDIxMV9CQU5EXzJHSFosIC5jZW50ZXJfZnJlcSA9
IDI0NjcsIC5od192YWx1ZSA9IDEyLCB9LCAgeyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF8y
R0haLCAuY2VudGVyX2ZyZXEgPSAyNDcyLCAuaHdfdmFsdWUgPSAxMywgfSwgIHsgLmJhbmQNCj4g
PiArPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQ4NCwgLmh3X3ZhbHVlID0g
MTQsIH0sIH07DQo+ID4gKw0KPiANCj4gU28sIGludGVyZXN0aW5nIHRoaW5nLi4uIHRoZXJlJ3Mg
NjIgdXNlcyBvZiBOTDgwMjExX0JBTkRfeCBpbiB0aGlzIGRyaXZlciwgYnV0DQo+IG9ubHkgdGhl
IGZldyBzcG90cyBJIG1lbnRpb25lZCBjYXVzZSB3YXJuaW5ncy4gSSBub3RpY2UgaW4gdGhlIG1v
c3QgcmVjZW50DQo+IGludGVybmFsIGRyb3AgeW91J3ZlIGNoYW5nZWQgdGhlIGFib3ZlIHRvIElF
RUU4MDIxMV9CQU5EXzJHSFouIEkgd29uZGVyDQo+IGlmIHRoYXQgaXMgd2hhdCBzaG91bGQgYmUg
ZG9uZSBldmVyeXdoZXJlPw0KPiANCg0KUGxlYXNlIHVzZSB1cGRhdGVkIG1hYzgwMjExLg0KDQo+
ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JhdGUgbXdsX3JhdGVzXzI0W10gPSB7
ICB7IC5iaXRyYXRlID0NCj4gPiArMTAsIC5od192YWx1ZSA9IDIsIH0sICB7IC5iaXRyYXRlID0g
MjAsIC5od192YWx1ZSA9IDQsIH0sICB7IC5iaXRyYXRlDQo+ID4gKz0gNTUsIC5od192YWx1ZSA9
IDExLCB9LCAgeyAuYml0cmF0ZSA9IDExMCwgLmh3X3ZhbHVlID0gMjIsIH0sICB7DQo+ID4gKy5i
aXRyYXRlID0gMjIwLCAuaHdfdmFsdWUgPSA0NCwgfSwgIHsgLmJpdHJhdGUgPSA2MCwgLmh3X3Zh
bHVlID0gMTIsDQo+ID4gK30sICB7IC5iaXRyYXRlID0gOTAsIC5od192YWx1ZSA9IDE4LCB9LCAg
eyAuYml0cmF0ZSA9IDEyMCwgLmh3X3ZhbHVlDQo+ID4gKz0gMjQsIH0sICB7IC5iaXRyYXRlID0g
MTgwLCAuaHdfdmFsdWUgPSAzNiwgfSwgIHsgLmJpdHJhdGUgPSAyNDAsDQo+ID4gKy5od192YWx1
ZSA9IDQ4LCB9LCAgeyAuYml0cmF0ZSA9IDM2MCwgLmh3X3ZhbHVlID0gNzIsIH0sICB7IC5iaXRy
YXRlDQo+ID4gKz0gNDgwLCAuaHdfdmFsdWUgPSA5NiwgfSwgIHsgLmJpdHJhdGUgPSA1NDAsIC5o
d192YWx1ZSA9IDEwOCwgfSwgfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWVl
ZTgwMjExX2NoYW5uZWwgbXdsX2NoYW5uZWxzXzUwW10gPSB7ICB7IC5iYW5kDQo+ID4gKz0gTkw4
MDIxMV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IDUxODAsIC5od192YWx1ZSA9IDM2LCB9LCAg
eyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1MjAwLCAu
aHdfdmFsdWUgPSA0MCwgfSwgIHsgLmJhbmQNCj4gPiArPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNl
bnRlcl9mcmVxID0gNTIyMCwgLmh3X3ZhbHVlID0gNDQsIH0sICB7IC5iYW5kDQo+ID4gKz0gTkw4
MDIxMV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IDUyNDAsIC5od192YWx1ZSA9IDQ4LCB9LCAg
eyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1MjYwLCAu
aHdfdmFsdWUgPSA1MiwgfSwgIHsgLmJhbmQNCj4gPiArPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNl
bnRlcl9mcmVxID0gNTI4MCwgLmh3X3ZhbHVlID0gNTYsIH0sICB7IC5iYW5kDQo+ID4gKz0gTkw4
MDIxMV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IDUzMDAsIC5od192YWx1ZSA9IDYwLCB9LCAg
eyAuYmFuZA0KPiA+ICs9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1MzIwLCAu
aHdfdmFsdWUgPSA2NCwgfSwgIHsgLmJhbmQNCj4gPiArPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNl
bnRlcl9mcmVxID0gNTUwMCwgLmh3X3ZhbHVlID0gMTAwLCB9LCAgew0KPiA+ICsuYmFuZCA9IE5M
ODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NTIwLCAuaHdfdmFsdWUgPSAxMDQsIH0s
DQo+ID4gK3sgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTU0MCwg
Lmh3X3ZhbHVlID0gMTA4LCB9LA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5j
ZW50ZXJfZnJlcSA9IDU1NjAsIC5od192YWx1ZSA9IDExMiwgfSwNCj4gPiAreyAuYmFuZCA9IE5M
ODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NTgwLCAuaHdfdmFsdWUgPSAxMTYsIH0s
DQo+ID4gK3sgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTYwMCwg
Lmh3X3ZhbHVlID0gMTIwLCB9LA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5j
ZW50ZXJfZnJlcSA9IDU2MjAsIC5od192YWx1ZSA9IDEyNCwgfSwNCj4gPiAreyAuYmFuZCA9IE5M
ODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NjQwLCAuaHdfdmFsdWUgPSAxMjgsIH0s
DQo+ID4gK3sgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTY2MCwg
Lmh3X3ZhbHVlID0gMTMyLCB9LA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5j
ZW50ZXJfZnJlcSA9IDU2ODAsIC5od192YWx1ZSA9IDEzNiwgfSwNCj4gPiAreyAuYmFuZCA9IE5M
ODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NzAwLCAuaHdfdmFsdWUgPSAxNDAsIH0s
DQo+ID4gK3sgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTcyMCwg
Lmh3X3ZhbHVlID0gMTQ0LCB9LA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5j
ZW50ZXJfZnJlcSA9IDU3NDUsIC5od192YWx1ZSA9IDE0OSwgfSwNCj4gPiAreyAuYmFuZCA9IE5M
ODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NzY1LCAuaHdfdmFsdWUgPSAxNTMsIH0s
DQo+ID4gK3sgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTc4NSwg
Lmh3X3ZhbHVlID0gMTU3LCB9LA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5j
ZW50ZXJfZnJlcSA9IDU4MDUsIC5od192YWx1ZSA9IDE2MSwgfSwNCj4gPiArfTsNCj4gDQo+IERp
dHRvLg0KPiANCj4gLi4uDQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBtd2xfcHJvY2Vzc19vZl9k
dHMoc3RydWN0IG13bF9wcml2ICpwcml2KSB7ICNpZmRlZg0KPiA+ICtDT05GSUdfT0YNCj4gDQo+
IFNvIGEgbW9yZSBjb21tb24gaWRpb20gaW4gdGhlIGRyaXZlcnMgaXM6DQo+ICAgI2lmZGVmIENP
TkZJR19PRg0KPiAgIGRlZmluZSBwcm9jZXNzIG9mX2R0cyBmdW5jdGlvbiB7fQ0KPiAgICNlbHNl
DQo+ICAgZGVmaW5lIEVNUFRZIG9mX2R0cyBmdW5jdGlvbiB7fQ0KPiAgICNlbmRpZg0KPiANCj4g
SSBndWVzcyBpdCdzIHRoZSBzYW1lIGVmZmVjdCBlaXRoZXIgd2F5LiBJIGRvbid0IG11Y2ggY2Fy
ZSBhcyBsb25nIGFzDQo+IG13bF9wcm9jZXNzX29mX2R0cygpIGNhbiBiZSBjYWxsZWQgd2l0aG91
dCBndWFyZHMsIHdoaWNoIGl0IGNhbi4gQnV0IEkgdGhvdWdodA0KPiBJIHNob3VsZCBtZW50aW9u
IGl0IGluY2FzZSBhbnlvbmUgZWxzZSBjYXJlcy4gQW5kIHRoaXMgaXMgbm90IGNvbnNpc3RlbnQg
d2l0aA0KPiBob3cgeW91IGhhdmUgZG9uZSB0aGUgc2FtZSB0aGluZyBmb3IgQ09ORklHX0RFQlVH
X0ZTDQo+IA0KDQpJIHdpbGwgbW9kaWZ5IGl0Lg0KDQo+ID4gKyBzdHJ1Y3QgcHJvcGVydHkgKnBy
b3A7DQo+ID4gKyB1MzIgcHJvcF92YWx1ZTsNCj4gPiArDQo+ID4gKyBwcml2LT5kdF9ub2RlID0N
Cj4gPiArIG9mX2ZpbmRfbm9kZV9ieV9uYW1lKHBjaV9idXNfdG9fT0Zfbm9kZShwcml2LT5wZGV2
LT5idXMpLA0KPiA+ICsgICAgICJtd2x3aWZpIik7DQo+ID4gKyBpZiAoIXByaXYtPmR0X25vZGUp
DQo+ID4gKyByZXR1cm47DQo+ID4gKw0KPiA+ICsgLyogbG9vayBmb3IgYWxsIG1hdGNoaW5nIHBy
b3BlcnR5IG5hbWVzICovDQo+ID4gKyBmb3JfZWFjaF9wcm9wZXJ0eV9vZl9ub2RlKHByaXYtPmR0
X25vZGUsIHByb3ApIHsgaWYNCj4gPiArIChzdHJjbXAocHJvcC0+bmFtZSwgIm1hcnZlbGwsMmdo
eiIpID09IDApDQo+ID4gKyBwcml2LT5kaXNhYmxlXzJnID0gdHJ1ZTsNCj4gPiArIGlmIChzdHJj
bXAocHJvcC0+bmFtZSwgIm1hcnZlbGwsNWdoeiIpID09IDApDQo+ID4gKyBwcml2LT5kaXNhYmxl
XzVnID0gdHJ1ZTsNCj4gPiArIGlmIChzdHJjbXAocHJvcC0+bmFtZSwgIm1hcnZlbGwsY2hhaW5t
YXNrIikgPT0gMCkgeyBwcm9wX3ZhbHVlID0NCj4gPiArIGJlMzJfdG9fY3B1KCooKF9fYmUzMiAq
KXByb3AtPnZhbHVlKSk7IGlmIChwcm9wX3ZhbHVlID09IDIpDQo+ID4gKyBwcml2LT5hbnRlbm5h
X3R4ID0gQU5URU5OQV9UWF8yOw0KPiA+ICsNCj4gPiArIHByb3BfdmFsdWUgPSBiZTMyX3RvX2Nw
dSgqKChfX2JlMzIgKikgKHByb3AtPnZhbHVlICsgNCkpKTsgaWYNCj4gPiArIChwcm9wX3ZhbHVl
ID09IDIpDQo+ID4gKyBwcml2LT5hbnRlbm5hX3J4ID0gQU5URU5OQV9SWF8yOw0KPiA+ICsgfQ0K
PiA+ICsgfQ0KPiA+ICsNCj4gPiArIHByaXYtPnB3cl9ub2RlID0gb2ZfZmluZF9ub2RlX2J5X25h
bWUocHJpdi0+ZHRfbm9kZSwNCj4gPiArICAgICAgIm1hcnZlbGwscG93ZXJ0YWJsZSIpOw0KPiA+
ICsjZW5kaWYNCj4gPiArfQ0KPiANCj4gQUZBSUNULCB0aGVyZSdzIG5vIGRvY3VtZW50YXRpb24g
Zm9yIHRoZXNlIERUIGJpbmRpbmdzLiBUaGUgbXdsd2lmaSBub2RlIGFuZA0KPiB0aGUgbWFydmVs
bCxwb3dlcnRhYmxlIGJvdGggbmVlZCBmdWxsIGRvY3VtZW50YXRpb24gaW4NCj4gRG9jdW1lbnRh
dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzLy4uLiAuDQo+IA0KPiBGcmFua2x5IEkgaGF2ZSBhIGZl
ZWxpbmcgSSdtIGdvaW5nIHRvIG5lZWQgdGhlc2UgRFQgbm9kZXMgYW5kIEknZCBsaWtlIHRvIG5v
dA0KPiBoYXZlIHRvIGd1ZXNzLWFuZC1jaGVjayBiYXNlZCBvbiB0aGUgY29kZS4NCj4gDQoNClBv
d2VyIHRhYmxlIHdvbid0IGJlIHVzZWQgZm9yIGNoaXAgd2l0aCBkZXZpY2UgcG93ZXIgdGFibGUs
IGl0IGlzIG9ubHkgdXNlZCBmb3Igb2xkIHByb2R1Y3RzIG9mIE9wZW5XcnQuIEZvciB1cHN0cmVh
bSwgdGhlIHJlbGF0ZWQgY29kZSBpcyByZW1vdmVkLg0KPG1hcnZlbGwsMmdoej4gaXMgdXNlZCB0
byBkaXNhYmxlIDJnIGJhbmQuDQo8bWFydmVsbCw1Z2h6PiBpcyB1c2VkIHRvIGRpc2FibGUgNWcg
YmFuZC4NCjxtYXJ2ZWxsLCBjaGFpbm1hc2s+IGlzc3VlZCB0byBzcGVjaWZ5IGFudGVubmEgbnVt
YmVyIChpZiBkZWZhdWx0IG51bWJlciBpcyBzdWl0YWJsZSBmb3IgeW91LCB0aGVyZSBpcyBubyBu
ZWVkIHRvIHVzZSB0aGlzIHBhcmFtZXRlcikuIA0KDQo+IC4uLg0KPiANCj4gPiArc3RhdGljIGlu
dCBtd2xfd2xfaW5pdChzdHJ1Y3QgbXdsX3ByaXYgKnByaXYpIHsgIHN0cnVjdCBpZWVlODAyMTFf
aHcNCj4gPiArKmh3OyAgaW50IHJjOyAgaW50IGk7DQo+ID4gKw0KPiA+ICsgaHcgPSBwcml2LT5o
dzsNCj4gPiArDQo+ID4gKyBody0+ZXh0cmFfdHhfaGVhZHJvb20gPSBTWVNBRFBUX01JTl9CWVRF
U19IRUFEUk9PTTsgcXVldWVzID0NCj4gPiArIGh3LT5TWVNBRFBUX1RYX1dNTV9RVUVVRVM7DQo+
ID4gKw0KPiA+ICsgLyogU2V0IHJzc2kgdmFsdWVzIHRvIGRCbSAqLw0KPiA+ICsgaWVlZTgwMjEx
X2h3X3NldChodywgU0lHTkFMX0RCTSk7DQo+ID4gKyBpZWVlODAyMTFfaHdfc2V0KGh3LCBIQVNf
UkFURV9DT05UUk9MKTsNCj4gPiArDQo+ID4gKyAvKiBBc2sgbWFjODAyMTEgbm90IHRvIHRyaWdn
ZXIgUFMgbW9kZQ0KPiA+ICsgKiBiYXNlZCBvbiBQTSBiaXQgb2YgaW5jb21pbmcgZnJhbWVzLg0K
PiA+ICsgKi8NCj4gPiArIGllZWU4MDIxMV9od19zZXQoaHcsIEFQX0xJTktfUFMpOw0KPiA+ICsN
Cj4gPiArIGllZWU4MDIxMV9od19zZXQoaHcsIFNVUFBPUlRTX1BFUl9TVEFfR1RLKTsgaWVlZTgw
MjExX2h3X3NldChodywNCj4gPiArIE1GUF9DQVBBQkxFKTsNCj4gPiArDQo+ID4gKyBody0+d2lw
aHktPmZsYWdzIHw9IFdJUEhZX0ZMQUdfSUJTU19SU047IGZsYWdzIHw9DQo+ID4gKyBody0+d2lw
aHktPldJUEhZX0ZMQUdfSEFTX0NIQU5ORUxfU1dJVENIOw0KPiA+ICsNCj4gPiArIGh3LT53aXBo
eS0+ZmxhZ3MgfD0gV0lQSFlfRkxBR19TVVBQT1JUU19URExTOw0KPiA+ICsNCj4gPiArIGh3LT52
aWZfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBtd2xfdmlmKTsgc3RhX2RhdGFfc2l6ZSA9DQo+
ID4gKyBody0+c2l6ZW9mKHN0cnVjdCBtd2xfc3RhKTsNCj4gPiArDQo+ID4gKyBwcml2LT5hcF9t
YWNpZHNfc3VwcG9ydGVkID0gMHgwMDAwZmZmZjsgc3RhX21hY2lkc19zdXBwb3J0ZWQgPQ0KPiA+
ICsgcHJpdi0+MHgwMDAxMDAwMDsNCj4gDQo+IEhvdyBhYm91dCB3ZSBkb2N1bWVudCB3aGF0IHRo
ZXNlIG1hZ2ljIG51bWJlcnMgYXJlPyBBIG5pY2UgbmFtZWQNCj4gY29uc3RhbnQgYXQgbGVhc3Qg
d291bGQgYmUgbmljZS4NCg0KVGhleSBhcmUgdXNlZCB0byBrZWVwIHN0YXR1cyBvZiB1c2VkIEFQ
IGFuZCBTVEEuDQoNCj4gDQo+ID4gK3N0YXRpYyBpbnQgbXdsX3Byb2JlKHN0cnVjdCBwY2lfZGV2
ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZA0KPiA+ICsqaWQpIHsNCj4gLi4uDQo+
ID4gKyB3aXBoeV9pbmZvKHByaXYtPmh3LT53aXBoeSwgIiVzIFRYIGFudGVubmFzLCAlcyBSWCBh
bnRlbm5hc1xuIiwNCj4gPiArICAgKHByaXYtPmFudGVubmFfdHggPT0gQU5URU5OQV9UWF80X0FV
VE8pID8gIjQiIDogIjIiLA0KPiA+ICsgICAocHJpdi0+YW50ZW5uYV9yeCA9PSBBTlRFTk5BX1JY
XzRfQVVUTykgPyAiNCIgOiAiMiIpOw0KPiA+ICsNCj4gPiArI2lmZGVmIENPTkZJR19ERUJVR19G
Uw0KPiA+ICsgbXdsX2RlYnVnZnNfaW5pdChodyk7DQo+IA0KPiBUaGUgZ3VhcmRzIHNob3VsZCBi
ZSBpbnRlcm5hbCB0byBtd2xfZGVidWdmc19pbml0KCkgc28gd2UgZG9uJ3QgaGF2ZSB0byBndWFy
ZA0KPiBpdCB3aGVuIHdlIGNhbGwgaXQuIE11Y2ggbGlrZSBtd2xfcHJvY2Vzc19vZl9kdHMoKSBp
cyBhYmxlIHRvIGJlIGNhbGxlZCBhbmQNCj4gY29tcGlsZXMgb3V0IGlmIENPTkZJR19PRiBpc24n
dCBkZWZpbmVkLCBtd2xfZGVidWdmc19pbml0KCkgc2hvdWxkIGhhdmUgdGhlDQo+IGd1YXJkcyBp
bnRlcm5hbCB0byBkZWJ1Z2ZzLmgvZGVidWdmcy5jIGFuZCB3ZSBzaG91bGRuJ3QgbmVlZCB0byB3
b3JyeSBhYm91dA0KPiBpdCB3aGVuIHdlIGNhbGwgaXQuDQo+IA0KDQpJIHdpbGwgbW9kaWZ5IGl0
Lg0KDQo+ID4gK3N0YXRpYyB2b2lkIG13bF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsg
IHN0cnVjdCBpZWVlODAyMTFfaHcNCj4gPiArKmh3ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOyAg
c3RydWN0IG13bF9wcml2ICpwcml2Ow0KPiA+ICsNCj4gPiArIGlmICghaHcpDQo+ID4gKyByZXR1
cm47DQo+ID4gKw0KPiA+ICsgcHJpdiA9IGh3LT5wcml2Ow0KPiA+ICsNCj4gPiArIG13bF93bF9k
ZWluaXQocHJpdik7DQo+ID4gKyBwY2lfc2V0X2RydmRhdGEocGRldiwgTlVMTCk7DQo+ID4gKyBp
ZWVlODAyMTFfZnJlZV9odyhodyk7DQo+ID4gKyBwY2lfZGlzYWJsZV9kZXZpY2UocGRldik7DQo+
ID4gKw0KPiA+ICsjaWZkZWYgQ09ORklHX0RFQlVHX0ZTDQo+ID4gKyBtd2xfZGVidWdmc19yZW1v
dmUoaHcpOw0KPiA+ICsjZW5kaWYNCj4gDQo+IEFzIHByZXZpb3VzbHkgY29tbWVudGVkIG9uLg0K
PiANCj4gPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvdGhlcm1h
bC5jDQo+IC4uLg0KPiA+ICtzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX2lucHV0LCAw
NDQ0LA0KPiBtd2xfdGhlcm1hbF9zaG93X3RlbXAsDQo+ID4gKyAgTlVMTCwgMCk7DQo+ID4gKw0K
PiANCj4gU2hvdWxkIHVzZSBTX0lSVUdPIGluc3RlYWQgb2YgbnVtZXJpYyAwNDQ0Lg0KPiANCj4g
T0ssIHRoYXQncyBpdCBmb3Igc3BlY2lmaWNzLiBJIGtub3cgYSBudW1iZXIgb2YgdGhlbSBhcmUg
anVzdCBuaXRzLg0KPiANCg0KWW91IG5lZWQgdG8gbW9kaWZ5IHRoaXMgd2F5IHRvIHBhc3MgY2hl
Y2twYXRjaC5wbC4NCg0KPiBBIGZldyBnZW5lcmFsIGNvbW1lbnRzOg0KPiANCj4gKiBJIHNhdyBp
dCBpdCBxdWl0ZSBhIGJpdCwgYnV0IGRpZG4ndCBjb21tZW50IG9uIGl0IGV2ZXJ5IHRpbWU6IHRo
ZXJlJ3MgbWFueQ0KPiBwbGFjZXMgd2hlcmUgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBjYW4gYmUg
Y29tYmluZWQgd2l0aCBpdHMgaW5pdGlhbA0KPiBhc3NpZ25tZW50Lg0KPiANCj4gKiBJIGhhcHBl
biB0byBjb25jdXIgd2l0aCBKb2hhbm5lcycgY29tbWVudHMgcmVnYXJkaW5nIHRoZSBJRXMgYW5k
IHlvdXINCj4gYmVhY29uIHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBzaWduaWZpY2FudCBpc3N1ZSwg
d2l0aCBwb3RlbnRpYWwgZm9yIGJpZyBidWdzIGRvd24NCj4gdGhlIHJvYWQuIEF0IHRoZSB2ZXJ5
IGxlYXN0LCBpdCdzIGEgbWFpbnRlbmFuY2UgaGVhZGFjaGUuDQo+IA0KPiBGcm9tIG15IHBlcnNw
ZWN0aXZlLCBJJ2QgY29uc2lkZXIgaXQgYSBmaXJtd2FyZSBidWcgaWYgdGhlcmUncyBubyB3YXkg
YXJvdW5kIGl0Lg0KPiBJcyB0aGUgZmlybXdhcmUgZ29pbmcgdG8gc3RyaXAgdGhlIElFcyB0aGF0
IGhvc3RhcGQgaGFwcGVucyB0byBhZGQgdG8gdGhlDQo+IGJlYWNvbnM/IElzIHRoZXJlIHNvbWUg
InBhc3N0aHJvdWdoIiBvciBzb21lIG90aGVyIHdheSB0aGF0IGl0IGNhbiBiZQ0KPiByZWNvbmNp
bGVkPw0KPiANCj4gSSBzdHJvbmdseSBzdXNwZWN0IHRoZXJlJ3MgYmV0dGVyIHdheXMgdG8gaGFu
ZGxlIGl0LCBldmVuIHdpdGhvdXQgY2hhbmdpbmcgdGhlDQo+IGZpcm13YXJlLCBidXQgSSBoYXZl
bid0IHlldCB0YWtlbiBhIGxvb2sgdG8gc2VlIGlmIHRoZXJlIGlzLg0KPiANCj4gSW4gYW55IGNh
c2UsIHdoaWxlIHRoZXJlJ3Mgc3R1ZmYgSSB3b3VsZG4ndCBtaW5kIHNlZWluZyBjaGFuZ2VkLCBJ
IHJhdGhlciBzZWUgaXQNCj4gZ28gaW4gc29vbmVyIHJhdGhlciB0aGFuIGxhdGVyIHNvIEkgYW5k
IG90aGVycyBjYW4gY29udHJpYnV0ZSBvbiB0b3Agb2YgaXQsDQo+IGluc3RlYWQgb2Ygd2FpdGlu
ZyB0byBzZWUgaXQgInBlcmZlY3QiIGZpcnN0Lg0KDQotIFRoZSBvYmplY3RpdmUgaXMgdG8gdXNl
IHRoZSBzYW1lIHByb2R1Y3Rpb24gZmlybXdhcmUgYmluYXJ5IGZvciBib3RoIHRoZSBvcGVuIHNv
dXJjZSBhbmQgcHJvcHJpZXRhcnkgZHJpdmVyLiBTYW1lIGludGVyZmFjZSBpcyBjdXJyZW50bHkg
dXNlZCBieSBwcm9wcmlldGFyeSBkcml2ZXIgZm9yIGhpc3RvcmljYWxseSByZWFzb24sIHdoaWxl
IHRoZSBvcGVuIHNvdXJjZSBIQUwgaXMgYWRhcHRpbmcgdG8gaXQgZm9yIHRoZSBleGlzdGluZyBz
aGlwcGluZyBwcm9kdWN0Lg0KLSBXZSB3aWxsIG1ha2UgY2hhbmdlcyBhbmQgY2xlYW4gdGhpbmdz
IHVwIGluIGZ1dHVyZS4gSSB3aWxsIHNwZW5kIGVmZm9ydCB0byBjb250aW51ZSBpdHMgbWFpbnRl
bmFuY2UgYW5kIGNsZWFuLXVwLg0KDQo+IA0KPiBQbGVhc2UgYWRkIG15IHJldmlld2VkLWJ5LiAg
SWYgd2UncmUgd2FpdGluZyBvbiBhIHYxMCwgZG8geW91IGhhdmUgYW4gRVRBPw0KDQpJdCBsb29r
cyBsaWtlIHRoZXJlIGlzIG5vIG1vcmUgY29tbWVudHMgZm9yIHBhdGNoIHY5LCBJIHdpbGwgc2Vu
ZCBvdXQgcGF0Y2ggdjEwIGVuZCBvZiB0aGlzIG1vbnRoLg0KDQo+IA0KPiBUaGFua3MsDQo+IC0g
U3RldmUNCg==
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help