--41945269-1273008710-881446976=:31248
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hi Linus,
Changes:
- bad licenses were removed
- adapted the code to a patch someone else made. We use get_super now
- included documentation about the Coda kernel <--> Cache Manager (Venus)
interface
For information about Coda look at: www.coda.cs.cmu.edu
I will make a release (source & rpms) of the user level stuff this coming
week (I hope).
- Peter -
--41945269-1273008710-881446976=:31248
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="coda-2.1.71.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.971206172256.31248I@carissimi.coda.cs.cmu.edu>
Content-Description: 2.1.71.patch
LS0tIGxpbnV4Lm9yaWcvZnMvY29kYS9maWxlLmMJVHVlIERlYyAgMiAxNzoy
NDowNCAxOTk3DQorKysgbGludXgvZnMvY29kYS9maWxlLmMJV2VkIERlYyAg
MyAyMjozNzo1NCAxOTk3DQpAQCAtMjE5LDcgKzIxOSw3IEBADQogew0KICAg
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYnB0cjsNCiANCi0gICAgICAg
IHNicHRyID0gY29kYV9maW5kX3N1cGVyKGRldik7DQorICAgICAgICBzYnB0
ciA9IGdldF9zdXBlcihkZXYpOw0KIA0KICAgICAgICAgaWYgKCAhc2JwdHIg
KSB7DQogICAgICAgICAgICAgICAgIHByaW50aygiY29kYV9pbm9kZV9ncmFi
OiBjb2RhX2ZpbmRfc3VwZXIgcmV0dXJucyBOVUxMLlxuIik7DQpAQCAtMjM4
LDE0ICsyMzgsMyBAQA0KICAgICAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLXN0
cnVjdCBzdXBlcl9ibG9jayAqY29kYV9maW5kX3N1cGVyKGtkZXZfdCBkZXZp
Y2UpDQotew0KLSAgICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzdXBlcjsN
Ci0NCi0gICAgICAgIGZvciAoc3VwZXIgPSBzdXBlcl9ibG9ja3MgKyAwOyBz
dXBlciA8IHN1cGVyX2Jsb2NrcyArIE5SX1NVUEVSIDsgDQotCSAgICAgc3Vw
ZXIrKykgew0KLSAgICAgICAgICAgICAgICBpZiAoc3VwZXItPnNfZGV2ID09
IGRldmljZSkgDQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1
cGVyOw0KLSAgICAgICAgfQ0KLSAgICAgICAgcmV0dXJuIE5VTEw7DQotfQ0K
LS0tIGxpbnV4Lm9yaWcvZnMvY29kYS9uYW1lY2FjaGUuYwlUdWUgRGVjICAy
IDE3OjI0OjA0IDE5OTcNCisrKyBsaW51eC9mcy9jb2RhL25hbWVjYWNoZS5j
CVdlZCBEZWMgIDMgMjI6NDQ6MjYgMTk5Nw0KQEAgLTEsMTcgKzEsMTIgQEAN
Ci0vKiANCi0gKiBNYWNoIE9wZXJhdGluZyBTeXN0ZW0NCi0gKiBDb3B5cmln
aHQgKGMpIDE5OTAgQ2FybmVnaWUtTWVsbG9uIFVuaXZlcnNpdHkNCi0gKiBD
b3B5cmlnaHQgKGMpIDE5ODkgQ2FybmVnaWUtTWVsbG9uIFVuaXZlcnNpdHkN
Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhlIENNVSBzb2Z0d2FyZSBM
aWNlbnNlIEFncmVlbWVudCBzcGVjaWZpZXMNCi0gKiB0aGUgdGVybXMgYW5k
IGNvbmRpdGlvbnMgZm9yIHVzZSBhbmQgcmVkaXN0cmlidXRpb24uDQotICov
DQotDQogLyoNCi0gKiBUaGlzIGNvZGUgd2FzIHdyaXR0ZW4gZm9yIHRoZSBD
b2RhIGZpbGUgc3lzdGVtIGF0IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5
Lg0KLSAqIENvbnRyaWJ1dGVycyBpbmNsdWRlIERhdmlkIFN0ZWVyZSwgSmFt
ZXMgS2lzdGxlciwgYW5kIE0uIFNhdHlhbmFyYXlhbmFuLg0KKyAqIENhY2hl
IG9wZXJhdGlvbnMgZm9yIENvZGEuDQorICogT3JpZ2luYWwgdmVyc2lvbjog
KEMpIDE5OTYgUGV0ZXIgQnJhYW0gDQorICogUmV3cml0dGVuIGZvciBMaW51
eCAyLjE6IChDKSAxOTk3IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5DQor
ICoNCisgKiBDYXJuZWdpZSBNZWxsb24gZW5jb3VyYWdlcyB1c2VycyBvZiB0
aGlzIGNvZGUgdG8gY29udHJpYnV0ZSBpbXByb3ZlbWVudHMNCisgKiB0byB0
aGUgQ29kYSBwcm9qZWN0LiBDb250YWN0IFBldGVyIEJyYWFtIDxjb2RhQGNz
LmNtdS5lZHU+Lg0KICAqLw0KIA0KLQ0KIC8qDQogICogVGhpcyBtb2R1bGUg
Y29udGFpbnMgdGhlIHJvdXRpbmVzIHRvIGltcGxlbWVudCB0aGUgQ0ZTIG5h
bWUgY2FjaGUuIFRoZQ0KICAqIHB1cnBvc2Ugb2YgdGhpcyBjYWNoZSBpcyB0
byByZWR1Y2UgdGhlIGNvc3Qgb2YgdHJhbnNsYXRpbmcgcGF0aG5hbWVzIA0K
QEAgLTQ2LDcgKzQxLDYgQEANCiAjaW5jbHVkZSA8bGludXgvY29kYV9saW51
eC5oPg0KICNpbmNsdWRlIDxsaW51eC9jb2RhX2Nub2RlLmg+DQogI2luY2x1
ZGUgPGxpbnV4L2NvZGFfbmFtZWNhY2hlLmg+DQotDQogDQogaW50IGNmc25j
X3VzZTsNCiANCi0tLSBsaW51eC5vcmlnL2ZzL2NvZGEvc3lzY3RsLmMJVHVl
IERlYyAgMiAxNzoyNDowNCAxOTk3DQorKysgbGludXgvZnMvY29kYS9zeXNj
dGwuYwlXZWQgRGVjICAzIDIyOjM0OjQ3IDE5OTcNCkBAIC0xLDQgKzEsMTMg
QEANCisvKg0KKyAqIFN5c2N0bCBvcGVyYXRpb25zIGZvciBDb2RhIGZpbGVz
eXN0ZW0NCisgKiBPcmlnaW5hbCB2ZXJzaW9uOiAoQykgMTk5NiBQLiBCcmFh
bSBhbmQgTS4gQ2FsbGFoYW4NCisgKiBSZXdyaXR0ZW4gZm9yIExpbnV4IDIu
MS4gKEMpIDE5OTcgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkNCisgKiAN
CisgKiBDYXJuZWdpZSBNZWxsb24gZW5jb3VyYWdlcyB1c2VycyB0byBjb250
cmlidXRlIGltcHJvdmVtZW50cyB0bw0KKyAqIHRoZSBDb2RhIHByb2plY3Qu
IENvbnRhY3QgUGV0ZXIgQnJhYW0gKGNvZGFAY3MuY211LmVkdSkuDQorICov
DQogLyogc3lzY3RsIGVudHJpZXMgZm9yIENvZGEhICovDQorDQogI2luY2x1
ZGUgPGxpbnV4L2NvbmZpZy5oPg0KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5o
Pg0KICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KLS0tIGxpbnV4Lm9yaWcvaW5j
bHVkZS9saW51eC9jb2RhLmgJVHVlIERlYyAgMiAxNzoyNDowNCAxOTk3DQor
KysgbGludXgvaW5jbHVkZS9saW51eC9jb2RhLmgJV2VkIERlYyAgMyAyMjo0
Nzo0NCAxOTk3DQpAQCAtMSwzICsxLDExIEBADQorLyoNCisgKiBWZW51cyBp
bnRlcmZhY2UgZm9yIENvZGEuDQorICogT3JpZ2luYWwgdmVyc2lvbjogKEMp
IDE5OTYgUGV0ZXIgQnJhYW0gDQorICogUmV3cml0dGVuIGZvciBMaW51eCAy
LjE6IChDKSAxOTk3IENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5DQorICoN
CisgKiBDYXJuZWdpZSBNZWxsb24gZW5jb3VyYWdlcyB1c2VycyBvZiB0aGlz
IGNvZGUgdG8gY29udHJpYnV0ZSBpbXByb3ZlbWVudHMNCisgKiB0byB0aGUg
Q29kYSBwcm9qZWN0LiBDb250YWN0IFBldGVyIEJyYWFtIDxjb2RhQGNzLmNt
dS5lZHU+Lg0KKyAqLw0KIA0KIC8qDQogICoNCi0tLSBsaW51eC5vcmlnL2lu
Y2x1ZGUvbGludXgvY29kYV9jbm9kZS5oCVR1ZSBEZWMgIDIgMTc6MjQ6MDQg
MTk5Nw0KKysrIGxpbnV4L2luY2x1ZGUvbGludXgvY29kYV9jbm9kZS5oCUZy
aSBEZWMgIDUgMDA6MTE6MTggMTk5Nw0KQEAgLTEsMyArMSwxMSBAQA0KKy8q
DQorICogQ25vZGUgZGVmaW5pdGlvbnMgZm9yIENvZGEuDQorICogT3JpZ2lu
YWwgdmVyc2lvbjogKEMpIDE5OTYgUGV0ZXIgQnJhYW0gDQorICogUmV3cml0
dGVuIGZvciBMaW51eCAyLjE6IChDKSAxOTk3IENhcm5lZ2llIE1lbGxvbiBV
bml2ZXJzaXR5DQorICoNCisgKiBDYXJuZWdpZSBNZWxsb24gZW5jb3VyYWdl
cyB1c2VycyBvZiB0aGlzIGNvZGUgdG8gY29udHJpYnV0ZSBpbXByb3ZlbWVu
dHMNCisgKiB0byB0aGUgQ29kYSBwcm9qZWN0LiBDb250YWN0IFBldGVyIEJy
YWFtIDxjb2RhQGNzLmNtdS5lZHU+Lg0KKyAqLw0KIA0KIC8qIHJldmFtcGVk
IGNub2RlLmggZmlsZTogcGxhdGZvcm0gZGVwZW5kZW50LCBrZXJuZWwgb25s
eSEgKi8NCiANCi0tLSBsaW51eC5vcmlnL2luY2x1ZGUvbGludXgvY29kYV9v
cHN0YXRzLmgJVHVlIERlYyAgMiAxNzoyNDowNCAxOTk3DQorKysgbGludXgv
aW5jbHVkZS9saW51eC9jb2RhX29wc3RhdHMuaAlXZWQgRGVjICAzIDIyOjQ1
OjM1IDE5OTcNCkBAIC0xLDM2ICsxLDExIEBADQotI2lmbmRlZiBfQkxVUkJf
DQotI2RlZmluZSBfQkxVUkJfDQogLyoNCi0NCi0gICAgICAgICAgICBDb2Rh
OiBhbiBFeHBlcmltZW50YWwgRGlzdHJpYnV0ZWQgRmlsZSBTeXN0ZW0NCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgMy4xDQotDQot
ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk4Ny0xOTk2IENhcm5lZ2llIE1l
bGxvbiBVbml2ZXJzaXR5DQotICAgICAgICAgICAgICAgICAgICAgICAgIEFs
bCBSaWdodHMgUmVzZXJ2ZWQNCi0NCi1QZXJtaXNzaW9uICB0byAgdXNlLCBj
b3B5LCBtb2RpZnkgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQg
aXRzDQotZG9jdW1lbnRhdGlvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgIHByb3Zp
ZGVkICB0aGF0ICBib3RoICB0aGUgIGNvcHlyaWdodA0KLW5vdGljZSAgYW5k
ICB0aGlzICBwZXJtaXNzaW9uICBub3RpY2UgIGFwcGVhciAgaW4gIGFsbCAg
Y29waWVzICBvZiB0aGUNCi1zb2Z0d2FyZSwgZGVyaXZhdGl2ZSB3b3JrcyBv
ciAgbW9kaWZpZWQgIHZlcnNpb25zLCAgYW5kICBhbnkgIHBvcnRpb25zDQot
dGhlcmVvZiwgYW5kIHRoYXQgYm90aCBub3RpY2VzIGFwcGVhciBpbiBzdXBw
b3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZA0KLXRoYXQgY3JlZGl0IGlzIGdp
dmVuIHRvIENhcm5lZ2llIE1lbGxvbiBVbml2ZXJzaXR5ICBpbiAgYWxsICBk
b2N1bWVudHMNCi1hbmQgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlyZWN0
IG9yIGluZGlyZWN0IHVzZSBvZiB0aGlzIGNvZGUgb3IgaXRzDQotZGVyaXZh
dGl2ZXMuDQotDQotQ09EQSBJUyBBTiBFWFBFUklNRU5UQUwgU09GVFdBUkUg
U1lTVEVNIEFORCBJUyAgS05PV04gIFRPICBIQVZFICBCVUdTLA0KLVNPTUUg
IE9GICBXSElDSCBNQVkgSEFWRSBTRVJJT1VTIENPTlNFUVVFTkNFUy4gIENB
Uk5FR0lFIE1FTExPTiBBTExPV1MNCi1GUkVFIFVTRSBPRiBUSElTIFNPRlRX
QVJFIElOIElUUyAiQVMgSVMiIENPTkRJVElPTi4gICBDQVJORUdJRSAgTUVM
TE9ODQotRElTQ0xBSU1TICBBTlkgIExJQUJJTElUWSAgT0YgIEFOWSAgS0lO
RCAgRk9SICBBTlkgIERBTUFHRVMgV0hBVFNPRVZFUg0KLVJFU1VMVElORyBE
SVJFQ1RMWSBPUiBJTkRJUkVDVExZIEZST00gVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFICBPUiAgT0YNCi1BTlkgREVSSVZBVElWRSBXT1JLLg0KLQ0KLUNh
cm5lZ2llICBNZWxsb24gIGVuY291cmFnZXMgIHVzZXJzICBvZiAgdGhpcyAg
c29mdHdhcmUgIHRvIHJldHVybiBhbnkNCi1pbXByb3ZlbWVudHMgb3IgZXh0
ZW5zaW9ucyB0aGF0ICB0aGV5ICBtYWtlLCAgYW5kICB0byAgZ3JhbnQgIENh
cm5lZ2llDQotTWVsbG9uIHRoZSByaWdodHMgdG8gcmVkaXN0cmlidXRlIHRo
ZXNlIGNoYW5nZXMgd2l0aG91dCBlbmN1bWJyYW5jZS4NCi0qLw0KLQ0KLXN0
YXRpYyBjaGFyICpyY3NpZCA9ICIkSGVhZGVyOiAvYWZzL2NzL3Byb2plY3Qv
Y29kYS1zcmMvY3ZzL2NvZGEva2VybmVsLXNyYy92ZnMvbGludXgvY2ZzX29w
c3RhdHMuaCx2IDQuMSAxOTk3LzAxLzA4IDIxOjUzOjE5IHJ2YiBFeHAgJCI7
DQotI2VuZGlmIC8qX0JMVVJCXyovDQorICogT3BlcmF0aW9ucyBzdGF0aXN0
aWNzIGZvciBDb2RhLg0KKyAqIE9yaWdpbmFsIHZlcnNpb246IChDKSAxOTk2
IFBldGVyIEJyYWFtIA0KKyAqIFJld3JpdHRlbiBmb3IgTGludXggMi4xOiAo
QykgMTk5NyBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQ0KKyAqDQorICog
Q2FybmVnaWUgTWVsbG9uIGVuY291cmFnZXMgdXNlcnMgb2YgdGhpcyBjb2Rl
IHRvIGNvbnRyaWJ1dGUgaW1wcm92ZW1lbnRzDQorICogdG8gdGhlIENvZGEg
cHJvamVjdC4gQ29udGFjdCBQZXRlciBCcmFhbSA8Y29kYUBjcy5jbXUuZWR1
Pi4NCisgKi8NCiANCiANCiAvKg0KLS0tIGxpbnV4Lm9yaWcvaW5jbHVkZS9s
aW51eC9jb2RhX3N5c2N0bC5oCVR1ZSBEZWMgIDIgMTc6MjQ6MDQgMTk5Nw0K
KysrIGxpbnV4L2luY2x1ZGUvbGludXgvY29kYV9zeXNjdGwuaAlXZWQgRGVj
ICAzIDIyOjQ2OjMwIDE5OTcNCkBAIC0xLDIgKzEsMTAgQEANCisvKg0KKyAq
IFN5c2N0bCBvcGVyYXRpb25zIGZvciBDb2RhLg0KKyAqIE9yaWdpbmFsIHZl
cnNpb246IChDKSAxOTk2IFBldGVyIEJyYWFtIA0KKyAqIFJld3JpdHRlbiBm
b3IgTGludXggMi4xOiAoQykgMTk5NyBDYXJuZWdpZSBNZWxsb24gVW5pdmVy
c2l0eQ0KKyAqDQorICogQ2FybmVnaWUgTWVsbG9uIGVuY291cmFnZXMgdXNl
cnMgb2YgdGhpcyBjb2RlIHRvIGNvbnRyaWJ1dGUgaW1wcm92ZW1lbnRzDQor
ICogdG8gdGhlIENvZGEgcHJvamVjdC4gQ29udGFjdCBQZXRlciBCcmFhbSA8
Y29kYUBjcy5jbXUuZWR1Pi4NCisgKi8NCiB2b2lkIGNvZGFfc3lzY3RsX2lu
aXQodm9pZCk7DQogdm9pZCBjb2RhX3N5c2N0bF9jbGVhbih2b2lkKTsNCi0t
LSBsaW51eC5vcmlnL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvY29kYS50
eHQJU2F0IERlYyAgNiAxNjo1MTo1NyAxOTk3DQorKysgbGludXgvRG9jdW1l
bnRhdGlvbi9maWxlc3lzdGVtcy9jb2RhLnR4dAlTYXQgRGVjICA2IDE2OjQ5
OjUzIDE5OTcNCkBAIC0wLDAgKzEsMTQyNyBAQA0KKyAgVGhlIFZlbnVzIGtl
cm5lbCBpbnRlcmZhY2UNCisgIFBldGVyIEouIEJyYWFtDQorICB2MS4wLCBO
b3YgOSwgMTk5Nw0KKw0KKyAgVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhl
IGNvbW11bmljYXRpb24gYmV0d2VlbiBWZW51cyBhbmQga2VybmVsDQorICBs
ZXZlbCBmaWxlIHN5c3RlbSBjb2RlIG5lZWRlZCBmb3IgdGhlIG9wZXJhdGlv
biBvZiB0aGUgQ29kYSBmaWxlc3lzLQ0KKyAgdGVtLiAgVGhpcyB2ZXJzaW9u
IGRvY3VtZW50IGlzIG1lYW50IHRvIGRlc2NyaWJlIHRoZSBjdXJyZW50IGlu
dGVyZmFjZQ0KKyAgKHZlcnNpb24gMS4wKSBhcyB3ZWxsIGFzIGltcHJvdmVt
ZW50cyB3ZSBlbnZpc2FnZS4NCisgIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCisNCisgIFRhYmxlIG9mIENvbnRlbnRzOg0KKw0KKyAgMS4gICAgICBJ
bnRyb2R1Y3Rpb24NCisNCisgIDIuICAgICAgU2VydmljaW5nIENvZGEgZmls
ZXN5c3RlbSBjYWxscw0KKw0KKyAgMy4gICAgICBUaGUgbWVzc2FnZSBsYXll
cg0KKw0KKyAgMy4xLiAgICBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzDQorDQor
ICA0LiAgICAgIFRoZSBpbnRlcmZhY2UgYXQgdGhlIGNhbGwgbGV2ZWwNCisN
CisgIDQuMS4gICAgRGF0YSBzdHJ1Y3R1cmVzIHNoYXJlZCBieSB0aGUga2Vy
bmVsIGFuZCBWZW51cw0KKw0KKyAgNC4yLiAgICBUaGUgcGlvY3RsIGludGVy
ZmFjZQ0KKw0KKyAgNC4zLiAgICByb290DQorDQorICA0LjQuICAgIGxvb2t1
cA0KKw0KKyAgNC41LiAgICBnZXRhdHRyDQorDQorICA0LjYuICAgIHNldGF0
dHINCisNCisgIDQuNy4gICAgYWNjZXNzDQorDQorICA0LjguICAgIGNyZWF0
ZQ0KKw0KKyAgNC45LiAgICBta2Rpcg0KKw0KKyAgNC4xMC4gICBsaW5rDQor
DQorICA0LjExLiAgIHN5bmxpbmsNCisNCisgIDQuMTIuICAgcmVtb3ZlDQor
DQorICA0LjEzLiAgIHJtZGlyDQorDQorICA0LjE0LiAgIHJlYWRsaW5rDQor
DQorICA0LjE1LiAgIG9wZW4NCisNCisgIDQuMTYuICAgY2xvc2UNCisNCisg
IDQuMTcuICAgaW9jdGwNCisNCisgIDQuMTguICAgcmVuYW1lDQorDQorICA0
LjE5LiAgIHJlYWRkaXINCisNCisgIDQuMjAuICAgdmdldA0KKw0KKyAgNC4y
MS4gICBmc3luYw0KKw0KKyAgNC4yMi4gICBpbmFjdGl2ZQ0KKw0KKyAgNC4y
My4gICByZHdyDQorDQorICA0LjI0LiAgIG9keW1vdW50DQorDQorICA0LjI1
LiAgIG9keV9sb29rdXANCisNCisgIDQuMjYuICAgb2R5X2V4cGFuZA0KKw0K
KyAgNC4yNy4gICBwcmVmZXRjaA0KKw0KKyAgNC4yOC4gICBzaWduYWwNCisN
CisgIDUuICAgICAgVGhlIG1pbmljYWNoZSBhbmQgZG93bmNhbGxzDQorDQor
ICA1LjEuICAgIElOVkFMSURBVEUNCisNCisgIDUuMi4gICAgRkxVU0gNCisN
CisgIDUuMy4gICAgUFVSR0VVU0VSDQorDQorICA1LjQuICAgIFpBUEZJTEUN
CisNCisgIDUuNS4gICAgWkFQRElSDQorDQorICA1LjYuICAgIFpBUFZOT0RF
DQorDQorICA1LjcuICAgIFBVUkdFRklEDQorDQorICA1LjguICAgIFJFUExB
Q0UNCisNCisgIDYuICAgICAgSW5pdGlhbGl6YXRpb24gYW5kIGNsZWFudXAN
CisNCisgIDYuMS4gICAgUmVxdWlyZW1lbnRzDQorICBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQorICAwd3BhZ2UNCisNCisgIDEIMS4ILiAgSQhJbghu
dAh0cghybwhvZAhkdQh1YwhjdAh0aQhpbwhvbghuDQorDQorICBBIGtleSBj
b21wb25lbnQgaW4gdGhlIENvZGEgRGlzdHJpYnV0ZWQgRmlsZSBTeXN0ZW0g
aXMgdGhlIGNhY2hlDQorICBtYW5hZ2VyLCBfCFZfCGVfCG5fCHVfCHMuDQor
DQorICBXaGVuIHByb2Nlc3NlcyBvbiBhIENvZGEgZW5hYmxlZCBzeXN0ZW0g
YWNjZXNzIGZpbGVzIGluIHRoZSBDb2RhDQorICBmaWxlc3lzdGVtLCByZXF1
ZXN0cyBhcmUgZGlyZWN0ZWQgYXQgdGhlIGZpbGVzeXN0ZW0gbGF5ZXIgaW4g
dGhlDQorICBvcGVyYXRpbmcgc3lzdGVtLiBUaGUgb3BlcmF0aW5nIHN5c3Rl
bSB3aWxsIGNvbW11bmljYXRlIHdpdGggVmVudXMgdG8NCisgIHNlcnZpY2Ug
dGhlIHJlcXVlc3QgZm9yIHRoZSBwcm9jZXNzLiAgVmVudXMgbWFuYWdlcyBh
IHBlcnNpc3RlbnQNCisgIGNsaWVudCBjYWNoZSBhbmQgbWFrZXMgcmVtb3Rl
IHByb2NlZHVyZSBjYWxscyB0byBDb2RhIGZpbGUgc2VydmVycyBhbmQNCisg
IHJlbGF0ZWQgc2VydmVycyAoc3VjaCBhcyBhdXRoZW50aWNhdGlvbiBzZXJ2
ZXJzKSB0byBzZXJ2aWNlIHRoZXNlDQorICByZXF1ZXN0cyBpdCByZWNlaXZl
cyBmcm9tIHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgV2hlbiBWZW51cyBoYXMN
CisgIHNlcnZpY2VkIGEgcmVxdWVzdCBpdCByZXBsaWVzIHRvIHRoZSBvcGVy
YXRpbmcgc3lzdGVtIHdpdGggYXBwcm9waWF0ZQ0KKyAgcmV0dXJuIGNvZGVz
LCBhbmQgb3RoZXIgZGF0YSByZWxhdGVkIHRvIHRoZSByZXF1ZXN0LiAgT3B0
aW9uYWxseSB0aGUNCisgIGtlcm5lbCBzdXBwb3J0IGZvciBDb2RhIG1heSBt
YWludGFpbiBhIG1pbmljYWNoZSBvZiByZWNlbnRseSBwcm9jZXNzZWQNCisg
IHJlcXVlc3RzIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgaW50ZXJhY3Rpb25z
IHdpdGggVmVudXMuICBWZW51cw0KKyAgcG9zc2Vzc2VzIHRoZSBmYWNpbGl0
eSB0byBpbmZvcm0gdGhlIGtlcm5lbCB3aGVuIGVsZW1lbnRzIGZyb20gaXRz
DQorICBtaW5pY2FjaGUgYXJlIG5vIGxvbmdlciB2YWxpZC4NCisNCisgIFRo
aXMgZG9jdW1lbnQgZGVzY3JpYmVzIHByZWNpc2VseSB0aGlzIGNvbW11bmlj
YXRpb24gYmV0d2VlbiB0aGUNCisgIGtlcm5lbCBhbmQgVmVudXMuICBUaGUg
ZGVmaW5pdGlvbnMgb2Ygc28gY2FsbGVkIHVwY2FsbHMgYW5kIGRvd25jYWxs
cw0KKyAgd2lsbCBiZSBnaXZlbiB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIGRh
dGEgdGhleSBoYW5kbGUuIFdlIHNoYWxsIGFsc28NCisgIGRlc2NyaWJlIHRo
ZSBzZW1hbnRpYyBpbnZhcmlhbnRzIHJlc3VsdGluZyBmcm9tIHRoZSBjYWxs
cy4NCisNCisgIEhpc3RvcmljYWxseSBDb2RhIHdhcyBpbXBsZW1lbnRlZCBp
biBhIEJTRCBmaWxlIHN5c3RlbSBpbiBNYWNoIDIuNi4NCisgIFRoZSBpbnRl
cmZhY2UgYmV0d2VlbiB0aGUga2VybmVsIGFuZCBWZW51cyBpcyB2ZXJ5IHNp
bWlsYXIgdG8gdGhlIEJTRA0KKyAgVkZTIGludGVyZmFjZS4gIFNpbWlsYXIg
ZnVuY3Rpb25hbGl0eSBpcyBwcm92aWRlZCwgYW5kIHRoZSBmb3JtYXQgb2YN
CisgIHRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm5lZCBkYXRhIGlzIHZlcnkg
c2ltaWxhciB0byB0aGUgQlNEIFZGUy4gIFRoaXMNCisgIGxlYWRzIHRvIGFu
IGFsbW9zdCBuYXR1cmFsIGVudmlyb25tZW50IGZvciBpbXBsZW1lbnRpbmcg
YSBrZXJuZWwgbGV2ZWwNCisgIGZpbGVzeXN0ZW0gZHJpdmVyIGZvciBDb2Rh
IGluIGEgQlNEIHN5c3RlbS4gIEhvd2V2ZXIsIG90aGVyIG9wZXJhdGluZw0K
KyAgc3lzdGVtcyBzdWNoIGFzIExpbnV4IGFuZCBXaW5kb3dzIDk1IGFuZCBO
VCBoYXZlIHZpcnR1YWwgZmlsZXN5c3RlbQ0KKyAgd2l0aCBkaWZmZXJlbnQg
aW50ZXJmYWNlcy4NCisNCisgIFRvIGltcGxlbWVudCBDb2RhIG9uIHRoZXNl
IHN5c3RlbXMgc29tZSByZXZlcnNlIGVuZ2luZWVyaW5nIG9mIHRoZQ0KKyAg
VmVudXMvS2VybmVsIHByb3RvY29sIGlzIG5lY2Vzc2FyeS4gIEFsc28gaXQg
Y2FtZSB0byBsaWdodCB0aGF0IG90aGVyDQorICBzeXN0ZW1zIGNvdWxkIHBy
b2ZpdCBzaWduaWZpY2FudGx5IGZyb20gY2VydGFpbiBzbWFsbCBvcHRpbWl6
YXRpb25zDQorICBhbmQgbW9kaWZpY2F0aW9ucyB0byB0aGUgcHJvdG9jb2wu
IFRvIGZhY2lsaXRhdGUgdGhpcyB3b3JrIGFzIHdlbGwgYXMNCisgIHRvIG1h
a2UgZnV0dXJlIHBvcnRzIGVhc2llciwgY29tbXVuaWNhdGlvbiBiZXR3ZWVu
IFZlbnVzIGFuZCB0aGUNCisgIGtlcm5lbCBzaG91bGQgYmUgZG9jdW1lbnRl
ZCBpbiBncmVhdCBkZXRhaWwuICBUaGlzIGlzIHRoZSBhaW0gb2YgdGhpcw0K
KyAgZG9jdW1lbnQuDQorDQorICAwd3BhZ2UNCisNCisgIDIIMi4ILiAgUwhT
ZQhlcghydgh2aQhpYwhjaQhpbghuZwhnIEMIQ28Ib2QIZGEIYSBmCGZpCGls
CGxlCGVzCHN5CHlzCHN0CHRlCGVtCG0gYwhjYQhhbAhsbAhscwhzDQorDQor
ICBUaGUgc2VydmljZSBvZiBhIHJlcXVlc3QgZm9yIGEgQ29kYSBmaWxlIHN5
c3RlbSBzZXJ2aWNlIG9yaWdpbmF0ZXMgaW4NCisgIGEgcHJvY2VzcyBQCFAg
d2hpY2ggYWNjZXNzaW5nIGEgQ29kYSBmaWxlLiBJdCBtYWtlcyBhIHN5c3Rl
bSBjYWxsIHdoaWNoDQorICB0cmFwcyB0byB0aGUgT1Mga2VybmVsLiBFeGFt
cGxlcyBvZiBzdWNoIGNhbGxzIHRyYXBwaW5nIHRvIHRoZSBrZXJuZWwNCisg
IGFyZSBfCHJfCGVfCGFfCGRfCCwgXwh3XwhyXwhpXwh0XwhlXwgsIF8Ib18I
cF8IZV8Ibl8ILCBfCGNfCGxfCG9fCHNfCGVfCCwgXwhjXwhyXwhlXwhhXwh0
XwhlXwgsIF8IbV8Ia18IZF8IaV8Icl8ILCBfCHJfCG1fCGRfCGlfCHJfCCwg
XwhjXwhoXwhtXwhvXwhkIGluIGEgVW5peA0KKyAgY29udGV4dC4gIFNpbWls
YXIgY2FsbHMgZXhpc3QgaW4gdGhlIFdpbjMyIGVudmlyb25tZW50LCBhbmQg
YXJlIG5hbWVkDQorICBfCENfCHJfCGVfCGFfCHRfCGVfCEZfCGlfCGxfCGVf
CCwgLg0KKw0KKyAgR2VuZXJhbGx5IHRoZSBvcGVyYXRpbmcgc3lzdGVtIGhh
bmRsZXMgdGhlIHJlcXVlc3QgaW4gYSB2aXJ0dWFsDQorICBmaWxlc3lzdGVt
IChWRlMpIGxheWVyLCB3aGljaCBpcyBuYW1lZCBJL08gTWFuYWdlciBpbiBO
VCBhbmQgSUZTDQorICBtYW5hZ2VyIGluIFdpbmRvd3MgOTUuICBUaGUgVkZT
IGlzIHJlc3BvbnNpYmxlIGZvciBwYXJ0aWFsIHByb2Nlc3NpbmcNCisgIG9m
IHRoZSByZXF1ZXN0IGFuZCBmb3IgbG9jYXRpbmcgdGhlIHNwZWNpZmljIGZp
bGVzeXN0ZW0ocykgd2hpY2ggd2lsbA0KKyAgc2VydmljZSBwYXJ0cyBvZiB0
aGUgcmVxdWVzdC4gIFVzdWFsbHkgdGhlIGluZm9ybWF0aW9uIGluIHRoZSBw
YXRoDQorICBhc3Npc3RzIGluIGxvY2F0aW5nIHRoZSBjb3JyZWN0IEZTIGRy
aXZlcnMuICBTb21ldGltZXMgYWZ0ZXIgZXh0ZW5zaXZlDQorICBwcmUtcHJv
Y2Vzc2luZywgdGhlIFZGUyBzdGFydHMgaW52b2tpbmcgZXhwb3J0ZWQgcm91
dGluZXMgaW4gdGhlIEZTDQorICBkcml2ZXIuICBUaGlzIGlzIHRoZSBwb2lu
dCB3aGVyZSB0aGUgRlMgc3BlY2lmaWMgcHJvY2Vzc2luZyBvZiB0aGUNCisg
IHJlcXVlc3Qgc3RhcnRzLCBhbmQgaGVyZSB0aGUgQ29kYSBzcGVjaWZpYyBr
ZXJuZWwgY29kZSBjb21lcyBpbnRvDQorICBwbGF5Lg0KKw0KKyAgVGhlIEZT
IGxheWVyIGZvciBDb2RhIG11c3QgZXhwb3NlIGFuZCBpbXBsZW1lbnQgc2V2
ZXJhbCBpbnRlcmZhY2VzLg0KKyAgRmlyc3QgYW5kIGZvcmVtb3N0IHRoZSBW
RlMgbXVzdCBiZSBhYmxlIHRvIG1ha2UgYWxsIG5lY2Vzc2FyeSBjYWxscyB0
bw0KKyAgdGhlIENvZGEgRlMgbGF5ZXIsIHNvIHRoZSBDb2RhIEZTIGRyaXZl
ciBtdXN0IGV4cG9zZSB0aGUgVkZTIGludGVyZmFjZQ0KKyAgYXMgYXBwbGlj
YWJsZSBpbiB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gVGhlc2UgZGlmZmVyIHZl
cnkgc2lnbmlmaWNhbnRseQ0KKyAgYW1vbmcgb3BlcmF0aW5nIHN5c3RlbXMs
IGJ1dCBzaGFyZSBmZWF0dXJlcyBzdWNoIGFzIGZhY2lsaXRpZXMgdG8NCisg
IHJlYWQvd3JpdGUgYW5kIGNyZWF0ZSBhbmQgcmVtb3ZlIG9iamVjdC4gIFRo
ZSBDb2RhIEZTIGxheWVyIHNlcnZpY2VzDQorICBzdWNoIFZGUyByZXF1ZXN0
cyBpbiBieSBpbnZva2luZyBvbiBvciBtb3JlIHdlbGwgZGVmaW5lZCBzZXJ2
aWNlcw0KKyAgb2ZmZXJlZCBieSB0aGUgY2FjaGUgbWFuYWdlciBWZW51cy4g
IFdoZW4gdGhlIHJlcGxpZXMgZnJvbSBWZW51cyBoYXZlDQorICBjb21lIGJh
Y2sgdG8gdGhlIEZTIGRyaXZlciwgc2VydmljaW5nIG9mIHRoZSBWRlMgY2Fs
bCBjb250aW51ZXMgYW5kDQorICBmaW5pc2hlcyB3aXRoIGEgcmVwbHkgdG8g
dGhlIGtlcm5lbHMgVkZTLiBGaW5hbGx5IHRoZSBWRlMgbGF5ZXINCisgIHJl
dHVybnMgdG8gdGhlIHByb2Nlc3MuDQorDQorICBBcyBhIHJlc3VsdCBvZiB0
aGlzIGRlc2lnbiBhIGJhc2ljIGludGVyZmFjZSBleHBvc2VkIGJ5IHRoZSBG
UyBkcml2ZXINCisgIG11c3QgYWxsb3cgVmVudXMgdG8gaGFuZGxlIG1hbmFn
ZSBtZXNzYWdlIHRyYWZmaWMuICBJbiBwYXJ0aWN1bGFyDQorICBWZW51cyBt
dXN0IGJlIGFibGUgdG8gcmV0cmlldmUgYW5kIHBsYWNlIG1lc3NhZ2VzIGFu
ZCB0byBiZSBub3RpZmllZA0KKyAgb2YgdGhlIGFycml2YWwgb2YgYSBuZXcg
bWVzc2FnZS4gVGhlIG5vdGlmaWNhdGlvbiBtdXN0IGJlIHRocm91Z2ggYQ0K
KyAgbWVjaGFuaXNtIHdoaWNoIGRvZXMgbm90IGJsb2NrIFZlbnVzIHNpbmNl
IFZlbnVzIG11c3QgYXR0ZW5kIHRvIG90aGVyDQorICB0YXNrcyBldmVuIHdo
ZW4gbm8gbWVzc2FnZXMgYXJlIHdhaXRpbmcgb3IgYmVpbmcgcHJvY2Vzc2Vk
Lg0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlcyBvZiBD
b2RhIEZTIERyaXZlcg0KKw0KKyAgRnVydGhlcm1vcmUgdGhlIEZTIGxheWVy
IHByb3ZpZGVzIGZvciBhIHNwZWNpYWwgcGF0aCBvZiBjb21tdW5pY2F0aW9u
DQorICBiZXR3ZWVuIGEgdXNlciBwcm9jZXNzIGFuZCBWZW51cywgY2FsbGVk
IHRoZSBwaW9jdGwgaW50ZXJmYWNlLiBUaGUNCisgIHBpb2N0bCBpbnRlcmZh
Y2UgaXMgdXNlZCBmb3IgQ29kYSBzcGVjaWZpYyBzZXJ2aWNlcywgc3VjaCBh
cw0KKyAgcmVxdWVzdGluZyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0
aGUgcGVyc2lzdGVudCBjYWNoZSBtYW5hZ2VkIGJ5DQorICBWZW51cy4gSGVy
ZSB0aGUgaW52b2x2ZW1lbnQgb2YgdGhlIGtlcm5lbCBpcyBtaW5pbWFsLiAg
SXQgaWRlbnRpZmllcw0KKyAgdGhlIGNhbGxpbmcgcHJvY2VzcyBhbmQgcGFz
c2VzIHRoZSBpbmZvcm1hdGlvbiBvbiB0byBWZW51cy4gIFdoZW4NCisgIFZl
bnVzIHJlcGxpZXMgdGhlIHJlc3BvbnNlIGlzIHBhc3NlZCBiYWNrIHRvIHRo
ZSBjYWxsZXIgaW4gdW5tb2RpZmllZA0KKyAgZm9ybS4NCisNCisgIEZpbmFs
bHkgVmVudXMgYWxsb3dzIHRoZSBrZXJuZWwgRlMgZHJpdmVyIHRvIGNhY2hl
IHRoZSByZXN1bHRzIGZyb20NCisgIGNlcnRhaW4gc2VydmljZXMuICBUaGlz
IGlzIGRvbmUgdG8gYXZvaWQgZXhjZXNzaXZlIGNvbnRleHQgc3dpdGNoZXMN
CisgIGFuZCByZXN1bHRzIGluIGFuIGVmZmljaWVudCBzeXN0ZW0uICBIb3dl
dmVyLCBWZW51cyBtYXkgYWNxdWlyZQ0KKyAgaW5mb3JtYXRpb24sIGZvciBl
eGFtcGxlIGZyb20gdGhlIG5ldHdvcmsgd2hpY2ggaW1wbGllcyB0aGF0IGNh
Y2hlZA0KKyAgaW5mb3JtYXRpb24gbXVzdCBiZSBmbHVzaGVkIG9yIHJlcGxh
Y2VkLiBWZW51cyB0aGVuIG1ha2VzIGEgZG93bmNhbGwNCisgIHRvIHRoZSBD
b2RhIEZTIGxheWVyIHRvIHJlcXVlc3QgZmx1c2hlcyBvciB1cGRhdGVzIGlu
IHRoZSBjYWNoZS4gIFRoZQ0KKyAga2VybmVsIEZTIGRyaXZlciBoYW5kbGVz
IHN1Y2ggcmVxdWVzdHMgc3luY2hyb25vdXNseS4NCisNCisgIEFtb25nIHRo
ZXNlIGludGVyZmFjZXMgdGhlIFZGUyBpbnRlcmZhY2UgYW5kIHRoZSBmYWNp
bGl0eSB0byBwbGFjZSwNCisgIHJlY2VpdmUgYW5kIGJlIG5vdGlmaWVkIG9m
IG1lc3NhZ2VzIGFyZSBwbGF0Zm9ybSBzcGVjaWZpYy4gIFdlIHdpbGwNCisg
IG5vdCBnbyBpbnRvIHRoZSBjYWxscyBleHBvcnRlZCB0byB0aGUgVkZTIGxh
eWVyIGJ1dCB3ZSB3aWxsIHN0YXRlIHRoZQ0KKyAgcmVxdWlyZW1lbnRzIG9m
IHRoZSBtZXNzYWdlIGV4Y2hhbmdlIG1lY2hhbmlzbS4NCisNCisgIDB3cGFn
ZQ0KKw0KKyAgMwgzLgguICBUCFRoCGhlCGUgbQhtZQhlcwhzcwhzYQhhZwhn
ZQhlIGwIbGEIYXkIeWUIZXIIcg0KKw0KKyAgQXQgdGhlIGxvd2VzdCBsZXZl
bCB0aGUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZlbnVzIGFuZCB0aGUgRlMg
ZHJpdmVyDQorICBwcm9jZWVkcyB0aHJvdWdoIG1lc3NhZ2VzLiAgVGhlIHN5
bmNocm9uaXphdGlvbiBvZiBiZXR3ZWVuIHByb2Nlc3Nlcw0KKyAgcmVxdWVz
dGluZyBDb2RhIGZpbGUgc2VydmljZSBhbmQgVmVudXMgcmVsaWVzIG9uIGJs
b2NraW5nIGFuZCB3YWtpbmcNCisgIHVwIHByb2Nlc3Nlcy4gIFRoZSBDb2Rh
IEZTIGRyaXZlciBwcm9jZXNzZXMgVkZTLSBhbmQgcGlvY3RsLXJlcXVlc3Rz
DQorICBvbiBiZWhhbGYgb2YgYSBwcm9jZXNzIFAsIGNyZWF0ZXMgbWVzc2Fn
ZXMgZm9yIFZlbnVzLCBhd2FpdHMgcmVwbGllcw0KKyAgYW5kIGZpbmFsbHkg
cmV0dXJucyB0byB0aGUgY2FsbGVyLiAgVGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBleGNoYW5nZQ0KKyAgb2YgbWVzc2FnZXMgaXMgcGxhdGZvcm0gc3Bl
Y2lmaWMsIGJ1dCB0aGUgc2VtYW50aWNzIGhhdmUgKHNvIGZhcikNCisgIGFw
cGVhcmVkIHRvIGJlIGdlbmVyYWxseSBhcHBsaWNhYmxlLiAgRGF0YSBidWZm
ZXJzIGFyZSBjcmVhdGVkIGJ5IHRoZQ0KKyAgRlMgRHJpdmVyIGluIGtlcm5l
bCBtZW1vcnkgb24gYmVoYWxmIG9mIFAgYW5kIGNvcGllZCB0byB1c2VyIG1l
bW9yeSBpbg0KKyAgVmVudXMuDQorDQorICBUaGUgRlMgRHJpdmVyIHdoaWxl
IHNlcnZpY2luZyBQIG1ha2VzIHVwY2FsbCdzIHRvIFZlbnVzLiAgU3VjaCBh
bg0KKyAgdXBjYWxsIGlzIGRpc3BhdGNoZWQgdG8gVmVudXMgYnkgY3JlYXRp
bmcgYSBtZXNzYWdlIHN0cnVjdHVyZS4gIFRoZQ0KKyAgc3RydWN0dXJlIGNv
bnRhaW5zIHRoZSBpZGVudGlmaWNhdGlvbiBvZiBQLCB0aGUgbWVzc2FnZSBz
ZXF1ZW5jZQ0KKyAgbnVtYmVyLCB0aGUgc2l6ZSBvZiB0aGUgcmVxdWVzdCBh
bmQgYSBwb2ludGVyIHRvIHRoZSBkYXRhIGluIGtlcm5lbA0KKyAgbWVtb3J5
IGZvciB0aGUgcmVxdWVzdC4gIFNpbmNlIHRoZSBkYXRhIGJ1ZmZlciBpcyBy
ZS11c2VkIHRvIGhvbGQgdGhlDQorICByZXBseSBmcm9tIFZlbnVzLCB0aGVy
ZSBpcyBhIGZpZWxkIGZvciB0aGUgc2l6ZSBvZiB0aGUgcmVwbHkuICBBIGZs
YWdzDQorICBmaWVsZCBpcyB1c2VkIGluIHRoZSBtZXNzYWdlIHRvIHByZWNp
c2VseSByZWNvcmQgdGhlIHN0YXR1cyBvZiB0aGUNCisgIG1lc3NhZ2UuICBB
ZGRpdGlvbmFsIHBsYXRmb3JtIGRlcGVuZGVudCBzdHJ1Y3R1cmVzIGludm9s
dmUgcG9pbnRlcnMgdG8NCisgIGRldGVybWluZSB0aGUgcG9zaXRpb24gb2Yg
dGhlIG1lc3NhZ2Ugb24gcXVldWVzIGFuZCBwb2ludGVycyB0bw0KKyAgc3lu
Y2hyb25pemF0aW9uIG9iamVjdHMuICBJbiB0aGUgdXBjYWxsIHJvdXRpbmUg
dGhlIG1lc3NhZ2Ugc3RydWN0dXJlDQorICBpcyBmaWxsZWQgaW4sIGZsYWdz
IGFyZSBzZXQgdG8gMCwgYW5kIGl0IGlzIHBsYWNlZCBvbiB0aGUgXwhwXwhl
XwhuXwhkXwhpXwhuXwhnDQorICBxdWV1ZS4gIFRoZSByb3V0aW5lIGNhbGxp
bmcgdXBjYWxsIGlzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIHRoZQ0K
KyAgZGF0YSBidWZmZXI7IGl0J3Mgc3RydWN0dXJlIHdpbGwgYmUgZGVzY3Jp
YmVkIGluIHRoZSBuZXh0IHNlY3Rpb24uDQorDQorICBBIGZhY2lsaXR5IG11
c3QgZXhpc3QgdG8gbm90aWZ5IFZlbnVzIHRoYXQgdGhlIG1lc3NhZ2UgaGFz
IGJlZW4NCisgIGNyZWF0ZWQsIGFuZCBpbXBsZW1lbnRlZCB1c2luZyBhdmFp
bGFibGUgc3luY2hyb25pemF0aW9uIG9iamVjdHMgaW4NCisgIHRoZSBPUy4g
VGhpcyBub3RpZmljYXRpb24gaXMgZG9uZSBpbiB0aGUgdXBjYWxsIGNvbnRl
eHQgb2YgdGhlIHByb2Nlc3MNCisgIFAuIFdoZW4gdGhlIG1lc3NhZ2UgaXMg
b24gdGhlIHBlbmRpbmcgcXVldWUsIHByb2Nlc3MgUCBjYW5ub3QgcHJvY2Vl
ZA0KKyAgaW4gdXBjYWxsLiAgVGhlIChrZXJuZWwgbW9kZSkgcHJvY2Vzc2lu
ZyBvZiBQIGluIHRoZSBmaWxlc3lzdGVtDQorICByZXF1ZXN0IHJvdXRpbmUg
bXVzdCBiZSBzdXNwZW5kZWQgdW50aWwgVmVudXMgaGFzIHJlcGxpZWQuICBU
aGVyZWZvcmUNCisgIHRoZSBjYWxsaW5nIHRocmVhZCBpbiBQIGlzIGJsb2Nr
ZWQgaW4gdXBjYWxsLiAgQSBwb2ludGVyIGluIHRoZQ0KKyAgbWVzc2FnZSBz
dHJ1Y3R1cmUgd2lsbCBsb2NhdGUgdGhlIHN5bmNocm9uaXphdGlvbiBvYmpl
Y3Qgb24gd2hpY2ggUCBpcw0KKyAgc2xlZXBpbmcuDQorDQorICBWZW51cyBk
ZXRlY3RzIHRoZSBub3RpZmljYXRpb24gdGhhdCBhIG1lc3NhZ2UgaGFzIGFy
cml2ZWQsIGFuZCB0aGUgRlMNCisgIGRyaXZlciBhbGxvdyBWZW51cyB0byBy
ZXRyaWV2ZSB0aGUgbWVzc2FnZSB3aXRoIGEgZ2V0bXNnX2Zyb21fa2VybmVs
DQorICBjYWxsLiBUaGlzIGFjdGlvbiBmaW5pc2hlcyBpbiB0aGUga2VybmVs
IGJ5IHB1dHRpbmcgdGhlIG1lc3NhZ2Ugb24gdGhlDQorICBxdWV1ZSBvZiBw
cm9jZXNzaW5nIG1lc3NhZ2VzIGFuZCBzZXR0aW5nIGZsYWdzIHRvIFJFQUQu
ICBWZW51cyBpcw0KKyAgcGFzc2VkIHRoZSBjb250ZW50cyBvZiB0aGUgZGF0
YSBidWZmZXIuIFRoZSBnZXRtc2dfZnJvbV9rZXJuZWwgY2FsbA0KKyAgbm93
IHJldHVybnMgYW5kIFZlbnVzIHByb2Nlc3NlcyB0aGUgcmVxdWVzdC4NCisN
CisgIEF0IHNvbWUgbGF0ZXIgcG9pbnQgdGhlIEZTIGRyaXZlciByZWNlaXZl
cyBhIG1lc3NhZ2UgZnJvbSBWZW51cywNCisgIG5hbWVseSB3aGVuIFZlbnVz
IGNhbGxzIHNlbmRtc2dfdG9fa2VybmVsLiAgQXQgdGhpcyBtb21lbnQgdGhl
IENvZGEgRlMNCisgIGRyaXZlciBsb29rcyBhdCB0aGUgY29udGVudHMgb2Yg
dGhlIG1lc3NhZ2UgYW5kIGRlY2lkZXMgaWY6DQorDQorICArCG8gIHRoZSBt
ZXNzYWdlIGlzIGEgcmVwbHkgZm9yIGEgc3VzcGVuZGVkIHRocmVhZCBQLiAg
SWYgc28gaXQgcmVtb3Zlcw0KKyAgICAgdGhlIG1lc3NhZ2UgZnJvbSB0aGUg
cHJvY2Vzc2luZyBxdWV1ZSBhbmQgbWFya3MgdGhlIG1lc3NhZ2UgYXMNCisg
ICAgIFdSSVRURU4uICBGaW5hbGx5LCB0aGUgRlMgZHJpdmVyIHVuYmxvY2tz
IFAgKHN0aWxsIGluIHRoZSBrZXJuZWwNCisgICAgIG1vZGUgY29udGV4dCBv
ZiBWZW51cykgYW5kIHRoZSBzZW5kbXNnX3RvX2tlcm5lbCBjYWxsIHJldHVy
bnMgdG8NCisgICAgIFZlbnVzLiAgVGhlIHByb2Nlc3MgUCB3aWxsIGJlIHNj
aGVkdWxlZCBhdCBzb21lIHBvaW50IGFuZCBjb250aW51ZXMNCisgICAgIHBy
b2Nlc3NpbmcgaXRzIHVwY2FsbCB3aXRoIHRoZSBkYXRhIGJ1ZmZlciByZXBs
YWNlZCB3aXRoIHRoZSByZXBseQ0KKyAgICAgZnJvbSBWZW51cy4NCisNCisg
ICsIbyAgVGhlIG1lc3NhZ2UgaXMgYSBfCGRfCG9fCHdfCG5fCGNfCGFfCGxf
CGwuICBBIGRvd25jYWxsIGlzIGEgcmVxdWVzdCBmcm9tIFZlbnVzIHRvDQor
ICAgICB0aGUgRlMgRHJpdmVyLiBUaGUgRlMgZHJpdmVyIHByb2Nlc3NlcyB0
aGUgcmVxdWVzdCBpbW1lZGlhdGVseQ0KKyAgICAgKHVzdWFsbHkgYSBjYWNo
IGV2aWN0aW9uIG9yIHJlcGxhY2VtZW50KSBhbmQgd2hlbiBmaW5pc2hlcw0K
KyAgICAgc2VuZG1zZ190b19rZXJuZWwgcmV0dXJucy4NCisNCisgIE5vdyBQ
IGF3YWtlcyBhbmQgY29udGludWVzIHByb2Nlc3NpbmcgdXBjYWxsLiAgVGhl
cmUgYXJlIHNvbWUNCisgIHN1YnRsZXRpZXMgdG8gdGFrZSBhY2NvdW50IG9m
Zi4gRmlyc3QgUCB3aWxsIGRldGVybWluZSBpZiBpdCB3YXMgd29rZW4NCisg
IHVwIGluIHVwY2FsbCBieSBhIHNpZ25hbCBmcm9tIHNvbWUgb3RoZXIgc291
cmNlIChmb3IgZXhhbXBsZSBhbg0KKyAgYXR0ZW1wdCB0byB0ZXJtaW5hdGUg
UCkgb3IgYXMgaXMgbm9ybWFsbHkgdGhlIGNhc2UgYnkgVmVudXMgaW4gaXRz
DQorICBzZW5kbXNnX3RvX2tlcm5lbCBjYWxsLiAgSW4gdGhlIG5vcm1hbCBj
YXNlLCB0aGUgdXBjYWxsIHJvdXRpbmUgd2lsbA0KKyAgZGVhbGxvY2F0ZSBt
ZXNzYWdlIHN0cnVjdHVyZSBhbmQgcmV0dXJuLiAgVGhlIEZTIHJvdXRpbmUg
Y2FuIHByb2NlZWQNCisgIHdpdGggaXRzIHByb2Nlc3NpbmcuDQorDQorICAg
ICAgICAgICAgICAgICAgICAgIFNsZWVwaW5nIGFuZCBJUEMgYXJyYW5nZW1l
bnRzDQorDQorICBJbiBjYXNlIFAgaXMgd29rZW4gdXAgYnkgYSBzaWduYWwg
YW5kIG5vdCBieSBWZW51cywgaXQgd2lsbCBmaXJzdCBsb29rDQorICBhdCB0
aGUgZmxhZ3MgZmllbGQuICBJZiB0aGUgbWVzc2FnZSBpcyBub3QgeWV0IFJF
QUQsIHRoZSBwcm9jZXNzIFAgY2FuDQorICBoYW5kbGUgaXQncyBzaWduYWwg
d2l0aG91dCBub3RpZnlpbmcgVmVudXMuICBJZiBWZW51cyBoYXMgUkVBRCwg
YW5kDQorICB0aGUgcmVxdWVzdCBzaG91bGQgbm90IGJlIHByb2Nlc3NlZCwg
UCBjYW4gc2VuZCBWZW51cyBhIHNpZ25hbCBtZXNzYWdlDQorICB0byBpbmRp
Y2F0ZSB0aGF0IGl0IHNob3VsZCBkaXNyZWdhcmQgdGhlIHByZXZpb3VzIG1l
c3NhZ2UuICBTdWNoDQorICBzaWduYWxzIGFyZSBwdXQgaW4gdGhlIHF1ZXVl
IGF0IHRoZSBoZWFkLCBhbmQgcmVhZCBmaXJzdCBieSBWZW51cy4gIElmDQor
ICB0aGUgbWVzc2FnZSBpcyBhbHJlYWR5IG1hcmtlZCBhcyBXUklUVEVOIGl0
IGlzIHRvbyBsYXRlIHRvIHN0b3AgdGhlDQorICBwcm9jZXNzaW5nLiAgVGhl
IFZGUyByb3V0aW5lIHdpbGwgbm93IGNvbnRpbnVlLiAgKC0tIElmIGEgVkZT
IHJlcXVlc3QNCisgIGludm9sdmVzIG1vcmUgdGhhbiBvbmUgdXBjYWxsLCB0
aGlzIGNhbiBsZWFkIHRvIGNvbXBsaWNhdGVkIHN0YXRlLCBhbg0KKyAgZXh0
cmEgZmllbGQgImhhbmRsZV9zaWduYWxzIiBjb3VsZCBiZSBhZGRlZCBpbiB0
aGUgbWVzc2FnZSBzdHJ1Y3R1cmUNCisgIHRvIGluZGljYXRlIHBvaW50cyBv
ZiBubyByZXR1cm4gaGF2ZSBiZWVuIHBhc3NlZC4tLSkNCisNCisgIDMIMy4I
LjEIMS4ILiAgSQhJbQhtcAhwbAhsZQhlbQhtZQhlbghudAh0YQhhdAh0aQhp
bwhvbghuIGQIZGUIZXQIdGEIYWkIaWwIbHMIcw0KKw0KKyAgVGhlIFVuaXgg
aW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZWNoYW5pc20gaGFzIGJlZW4gdGhy
b3VnaCB0aGUNCisgIGltcGxlbWVuYXRpb24gb2YgYSBjaGFyYWN0ZXIgZGV2
aWNlIGFzc29jaWF0ZWQgd2l0aCBDb2RhLiAgVmVudXMNCisgIHJldHJpZXZl
cyBtZXNzYWdlcyBieSBkb2luZyBhIHJlYWQgb24gdGhlIGRldmljZSwgcmVw
bGllcyBhcmUgc2VudA0KKyAgd2l0aCBhIHdyaXRlIGFuZCBub3RpZmljYXRp
b24gaXMgdGhyb3VnaCB0aGUgc2VsZWN0IHN5c3RlbSBjYWxsIG9uIHRoZQ0K
KyAgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgZGV2aWNlLiAgVGhlIHByb2Nl
c3MgUCBpcyBrZXB0IHdhaXRpbmcgb24gYW4NCisgIGludGVycnVwdGlibGUg
d2FpdCBxdWV1ZSBvYmplY3QuDQorDQorICBJbiBXaW5kb3dzIE5UIGFuZCB0
aGUgRFBNSSBXaW5kb3dzIDk1IGltcGxlbWVudGF0aW9uIGEgRGV2aWNlSW9D
b250cm9sDQorICBjYWxsIGlzIHVzZWQuICBUaGUgRGV2aWNlSW9Db250cm9s
IGNhbGwgaXMgZGVzaWduZWQgdG8gY29weSBidWZmZXJzDQorICBmcm9tIHVz
ZXIgbWVtb3J5IHRvIGtlcm5lbCBtZW1vcnkgd2l0aCBPUENPREVTLiBUaGUg
c2VuZG1zZ190b19rZXJuZWwNCisgIGlzIGlzc3VlZCBhcyBhIHN5bmNocm9u
b3VzIGNhbGwsIHdoaWxlIHRoZSBnZXRtc2dfZnJvbV9rZXJuZWwgY2FsbCBp
cw0KKyAgYXN5bmNocm91bm91cy4gIFdpbmRvd3MgRXZlbnRPYmplY3RzIGFy
ZSB1c2VkIGZvciBub3RpZmljYXRpb24gb2YNCisgIG1lc3NhZ2UgYXJyaXZh
bC4gIFRoZSBwcm9jZXNzIFAgaXMga2VwdCB3YWl0aW5nIG9uIGEgS2VybmVs
RXZlbnQNCisgIG9iamVjdCBpbiBOVCBhbmQgYSBzZW1hcGhvcmUgaW4gV2lu
ZG93cyA5NS4NCisNCisgIDB3cGFnZQ0KKw0KKyAgNAg0LgguICBUCFRoCGhl
CGUgaQhpbghudAh0ZQhlcghyZghmYQhhYwhjZQhlIGEIYXQIdCB0CHRoCGhl
CGUgYwhjYQhhbAhsbAhsIGwIbGUIZXYIdmUIZWwIbA0KKw0KKyAgVGhpcyBz
ZWN0aW9uIGRlc2NyaWJlcyB0aGUgdXBjYWxscyBhIENvZGEgRlMgZHJpdmVy
IGNhbiBtYWtlIHRvIFZlbnVzLg0KKyAgRWFjaCBvZiB0aGVzZSB1cGNhbGxz
IG1ha2UgdXNlIG9mIHR3byBzdHJ1Y3R1cmVzOiBpbnB1dEFyZ3MgYW5kDQor
ICBvdXRwdXRBcmdzLiAgIEluIHBzZXVkbyBCTkYgZm9ybSB0aGUgc3RydWN0
dXJlcyB0YWtlIHRoZSBmb2xsb3dpbmcNCisgIGZvcm06DQorDQorICBzdHJ1
Y3QgaW5wdXRBcmdzIHsNCisgICAgICB1X2xvbmcgb3Bjb2RlOw0KKyAgICAg
IHVfbG9uZyB1bmlxdWU7ICAgICAvKiBLZWVwIG11bHRpcGxlIG91dHN0YW5k
aW5nIG1zZ3MgZGlzdGluY3QgKi8NCisgICAgICB1X3Nob3J0IHBpZDsgICAg
ICAgICAgICAgICAgIC8qIENvbW1vbiB0byBhbGwgKi8NCisgICAgICB1X3No
b3J0IHBnaWQ7ICAgICAgICAgICAgICAgIC8qIENvbW1vbiB0byBhbGwgKi8N
CisgICAgICBzdHJ1Y3QgQ29kYUNyZWQgY3JlZDsgICAgICAgIC8qIENvbW1v
biB0byBhbGwgKi8NCisNCisgICAgICA8dW5pb24gImluIiBvZiBjYWxsIGRl
cGVuZGVudCBwYXJ0cyBvZiBpbnB1dEFyZ3M+DQorICB9Ow0KKw0KKyAgc3Ry
dWN0IG91dHB1dEFyZ3Mgew0KKyAgICAgIHVfbG9uZyBvcGNvZGU7DQorICAg
ICAgdV9sb25nIHVuaXF1ZTsgICAgICAgLyogS2VlcCBtdWx0aXBsZSBvdXRz
dGFuZGluZyBtc2dzIGRpc3RpbmN0ICovDQorICAgICAgdV9sb25nIHJlc3Vs
dDsNCisNCisgICAgICA8dW5pb24gIm91dCIgb2YgY2FsbCBkZXBlbmRlbnQg
cGFydHMgb2YgaW5wdXRBcmdzPg0KKyAgfTsNCisNCisgIEJlZm9yZSBnb2lu
ZyBvbiBsZXQgdXMgZWx1Y2lkYXRlIHRoZSByb2xlIG9mIHRoZSB2YXJpb3Vz
IGZpZWxkcy4gVGhlDQorICBpbnB1dEFyZ3Mgc3RhcnQgd2l0aCB0aGUgb3Bj
b2RlIHdoaWNoIGRlZmluZXMgdGhlIHR5cGUgb2Ygc2VydmljZQ0KKyAgcmVx
dWVzdGVkIGZyb20gVmVudXMuIFRoZXJlIGFyZSBhcHByb3hpbWF0ZWx5IDMw
IHVwY2FsbHMgYXQgcHJlc2VudA0KKyAgd2hpY2ggd2Ugd2lsbCBkaXNjdXNz
LiAgIFRoZSB1bmlxdWUgZmllbGQgbGFiZWxzIHRoZSBpbnB1dEFyZyB3aXRo
DQorICB1bmlxdWUgbnVtYmVyIHdoaWNoIHdpbGwgaWRlbnRpZnkgdGhlIG1l
c3NhZ2UgdW5pcXVlbHkuICBBIHByb2Nlc3MgYW5kDQorICBwcm9jZXNzIGdy
b3VwIGlkIGFyZSBwYXNzZWQuICBGaW5hbGx5IHRoZSBjcmVkZW50aWFscyBv
ZiB0aGUgY2FsbGVyDQorICBhcmUgaW5jbHVkZWQuDQorDQorICBCZWZvcmUg
ZGVsdmluZyBpbnRvIHRoZSBzcGVjaWZpYyBjYWxscyB3ZSBuZWVkIHRvIGRp
c2N1c3MgYSB2YXJpZXR5IG9mDQorICBkYXRhIHN0cnVjdHVyZXMgc2hhcmVk
IGJ5IHRoZSBrZXJuZWwgYW5kIFZlbnVzLg0KKw0KKyAgNAg0LgguMQgxLggu
ICBECERhCGF0CHRhCGEgcwhzdAh0cghydQh1YwhjdAh0dQh1cghyZQhlcwhz
IHMIc2gIaGEIYXIIcmUIZWQIZCBiCGJ5CHkgdAh0aAhoZQhlIGsIa2UIZXII
cm4IbmUIZWwIbCBhCGFuCG5kCGQgVghWZQhlbghudQh1cwhzDQorDQorICBU
aGUgQ29kYUNyZWQgc3RydWN0dXJlIGRlZmluZXMgYSB2YXJpZXR5IG9mIHVz
ZXIgYW5kIGdyb3VwIGlkJ3MgYXMNCisgIHRoZXkgYXJlIHNldCBmb3IgdGhl
IGNhbGxpbmcgcHJvY2Vzcy4gVGhlIHZ1aWRfdCBhbmQgZ3VpZF90IGFyZSAz
MiBiaXQNCisgIHVuc2lnbmVkIGludGVnZXJzLiAgSXQgYWxzbyBkZWZpbmVz
IGdyb3VwIG1lbWJlciBzaGlwIGluIGFuIGFycmF5LiAgT24NCisgIFVuaXgg
dGhlIENvZGFDcmVkIGhhcyBwcm92ZW4gc3VmZmljaWVudCB0byBpbXBsZW1l
bnQgZ29vZCBzZWN1cml0eQ0KKyAgc2VtYW50aWNzIGZvciBDb2RhIGJ1dCB0
aGUgc3RydWN0dXJlIG1heSBoYXZlIHRvIHVuZGVyZ28gbW9kaWZpY2F0aW9u
DQorICBmb3IgdGhlIFdpbmRvd3MgZW52aXJvbm1lbnQgd2hlbiB0aGVzZSBt
YXR1cmUuDQorDQorICBzdHJ1Y3QgQ29kYUNyZWQgew0KKyAgICAgIHZ1aWRf
dCBjcl91aWQsIGNyX2V1aWQsIGNyX3N1aWQsIGNyX2ZzdWlkOyAvKiBSZWFs
LCBlZmZ0dmUsIHNldCwgZnMgdWlkKi8NCisgICAgICB2Z2lkX3QgY3JfZ2lk
LCBjcl9lZ2lkLCBjcl9zZ2lkLCBjcl9mc2dpZDsgLyogc2FtZSBmb3IgZ3Jv
dXBzICovDQorICAgICAgdmdpZF90IGNyX2dyb3Vwc1tOR1JPVVBTXTsgICAg
ICAgIC8qIEdyb3VwIG1lbWJlcnNoaXAgZm9yIGNhbGxlciAqLw0KKyAgfTsN
CisNCisgIE4ITk8IT1QIVEUIRSBJdCBpcyBxdWVzdGlvbmFibGUgaWYgd2Ug
bmVlZCBDb2RhQ3JlZHMgaW4gVmVudXMuIEZpbmFsbHkgVmVudXMNCisgIGRv
ZXNuJ3Qga25vdyBhYm91dCBncm91cHMsIGFsdGhvdWdoIGl0IGRvZXMgY3Jl
YXRlIGZpbGVzIHdpdGggdGhlDQorICBkZWZhdWx0IHVpZC9naWQuICBQZXJo
YXBzIHRoZSBsaXN0IG9mIGdyb3VwIG1lbWJlcnNoaXAgaXMgc3VwZXJmbHVv
dXMuDQorDQorICBUaGUgbmV4dCBpdGVtIGlzIHRoZSBmdW5kYW1lbnRhbCBp
ZGVudGlmaWVyIHVzZWQgdG8gaWRlbnRpZnkgQ29kYQ0KKyAgZmlsZXMsIHRo
ZSBWaWNlRmlkLiAgQSBmaWQgb2YgYSBmaWxlIHVuaXF1ZWx5IGRlZmluZXMg
YSBmaWxlIG9yDQorICBkaXJlY3RvcnkgaW4gdGhlIENvZGEgZmlsZXN5c3Rl
bSB3aXRoaW4gYSBfCGNfCGVfCGxfCGwuICAgKC0tIEEgXwhjXwhlXwhsXwhs
IGlzIGENCisgIGdyb3VwIG9mIENvZGEgc2VydmVycyBhY3RpbmcgdW5kZXIg
dGhlIGFlZ2lzIG9mIGEgc2luZ2xlIHN5c3RlbQ0KKyAgY29udHJvbCBtYWNo
aW5lIG9yIFNDTS4gU2VlIHRoZSBDb2RhIEFkbWluaXN0cmF0aW9uIG1hbnVh
bCBmb3IgYQ0KKyAgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIHJvbGUg
b2YgdGhlIFNDTS4tLSkNCisNCisgIHR5cGVkZWYgc3RydWN0IFZpY2VGaWQg
ew0KKyAgICAgIFZvbHVtZUlkIFZvbHVtZTsNCisgICAgICBWbm9kZUlkIFZu
b2RlOw0KKyAgICAgIFVuaXF1ZV90IFVuaXF1ZTsNCisgIH0gVmljZUZpZDsN
CisNCisgIEVhY2ggb2YgdGhlIGNvbnN0aXR1ZW50IGZpZWxkczogVm9sdW1l
SWQsIFZub2RlSWQgYW5kIFVuaXF1ZV90IGFyZQ0KKyAgdW5zaWduZWQgMzIg
Yml0IGludGVnZXJzLiAgV2UgZW52aXNhZ2UgdGhhdCBhIGZ1cnRoZXIgZmll
bGQgd2lsbCBuZWVkDQorICB0byBiZSBwcmVmaXhlZCB0byBpZGVudGlmeSB0
aGUgQ29kYSBjZWxsOyB0aGlzIHdpbGwgcHJvYmFibHkgdGFrZSB0aGUNCisg
IGZvcm0gb2YgYSBJcHY2IHNpemUgSVAgYWRkcmVzcyBuYW1pbmcgdGhlIENv
ZGEgY2VsbCB0aHJvdWdoIEROUy4NCisNCisgIFRoZSBuZXh0IGltcG9ydGFu
dCBzdHJ1Y3R1cmUgc2hhcmVkIGJldHdlZW4gVmVudXMgYW5kIHRoZSBrZXJu
ZWwgYXJlDQorICB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZmlsZS4gIFRoZSBm
b2xsb3dpbmcgc3RydWN0dXJlIGlzIHVzZWQgdG8NCisgIGV4Y2hhbmdlIGlu
Zm9ybWF0aW9uLiAgSXQgaGFzIHJvb20gZm9yIGZ1dHVyZSBleHRlbnNpb25z
IHN1Y2ggYXMNCisgIHN1cHBvcnQgZm9yIGRldmljZSBmaWxlcyAoY3VycmVu
dGx5IG5vdCBwcmVzZW50IGluIENvZGEpLg0KKw0KKyAgc3RydWN0IGNvZGFf
dmF0dHIgew0KKyAgICAgICAgICBlbnVtIGNvZGFfdnR5cGUgdmFfdHlwZTsg
ICAgICAgIC8qIHZub2RlIHR5cGUgKGZvciBjcmVhdGUpICovDQorICAgICAg
ICAgIHVfc2hvcnQgICAgICAgICB2YV9tb2RlOyAgICAgICAgLyogZmlsZXMg
YWNjZXNzIG1vZGUgYW5kIHR5cGUgKi8NCisgICAgICAgICAgc2hvcnQgICAg
ICAgICAgIHZhX25saW5rOyAgICAgICAvKiBudW1iZXIgb2YgcmVmZXJlbmNl
cyB0byBmaWxlICovDQorICAgICAgICAgIHZ1aWRfdCAgICAgICAgICB2YV91
aWQ7ICAgICAgICAgLyogb3duZXIgdXNlciBpZCAqLw0KKyAgICAgICAgICB2
Z2lkX3QgICAgICAgICAgdmFfZ2lkOyAgICAgICAgIC8qIG93bmVyIGdyb3Vw
IGlkICovDQorICAgICAgICAgIGxvbmcgICAgICAgICAgICB2YV9mc2lkOyAg
ICAgICAgLyogZmlsZSBzeXN0ZW0gaWQgKGRldiBmb3Igbm93KSAqLw0KKyAg
ICAgICAgICBsb25nICAgICAgICAgICAgdmFfZmlsZWlkOyAgICAgIC8qIGZp
bGUgaWQgKi8NCisgICAgICAgICAgdV9xdWFkX3QgICAgICAgIHZhX3NpemU7
ICAgICAgICAvKiBmaWxlIHNpemUgaW4gYnl0ZXMgKi8NCisgICAgICAgICAg
bG9uZyAgICAgICAgICAgIHZhX2Jsb2Nrc2l6ZTsgICAvKiBibG9ja3NpemUg
cHJlZmVycmVkIGZvciBpL28gKi8NCisgICAgICAgICAgc3RydWN0IHRpbWVz
cGVjIHZhX2F0aW1lOyAgICAgICAvKiB0aW1lIG9mIGxhc3QgYWNjZXNzICov
DQorICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB2YV9tdGltZTsgICAgICAg
LyogdGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiAqLw0KKyAgICAgICAgICBz
dHJ1Y3QgdGltZXNwZWMgdmFfY3RpbWU7ICAgICAgIC8qIHRpbWUgZmlsZSBj
aGFuZ2VkICovDQorICAgICAgICAgIHVfbG9uZyAgICAgICAgICB2YV9nZW47
ICAgICAgICAgLyogZ2VuZXJhdGlvbiBudW1iZXIgb2YgZmlsZSAqLw0KKyAg
ICAgICAgICB1X2xvbmcgICAgICAgICAgdmFfZmxhZ3M7ICAgICAgIC8qIGZs
YWdzIGRlZmluZWQgZm9yIGZpbGUgKi8NCisgICAgICAgICAgZGV2X3QgICAg
ICAgICAgIHZhX3JkZXY7ICAgICAgICAvKiBkZXZpY2Ugc3BlY2lhbCBmaWxl
IHJlcHJlc2VudHMgKi8NCisgICAgICAgICAgdV9xdWFkX3QgICAgICAgIHZh
X2J5dGVzOyAgICAgICAvKiBieXRlcyBvZiBkaXNrIHNwYWNlIGhlbGQgYnkg
ZmlsZSAqLw0KKyAgICAgICAgICB1X3F1YWRfdCAgICAgICAgdmFfZmlsZXJl
djsgICAgIC8qIGZpbGUgbW9kaWZpY2F0aW9uIG51bWJlciAqLw0KKyAgICAg
ICAgICB1X2ludCAgICAgICAgICAgdmFfdmFmbGFnczsgICAgIC8qIG9wZXJh
dGlvbnMgZmxhZ3MsIHNlZSBiZWxvdyAqLw0KKyAgICAgICAgICBsb25nICAg
ICAgICAgICAgdmFfc3BhcmU7ICAgICAgIC8qIHJlbWFpbiBxdWFkIGFsaWdu
ZWQgKi8NCisgIH07DQorDQorICA0CDQuCC4yCDIuCC4gIFQIVGgIaGUIZSBw
CHBpCGlvCG9jCGN0CHRsCGwgaQhpbghudAh0ZQhlcghyZghmYQhhYwhjZQhl
DQorDQorICBDb2RhIHNwZWNpZmljIHJlcXVlc3RzIGNhbiBiZSBtYWRlIGJ5
IGFwcGxpY2F0aW9uIHRocm91Z2ggYSBwaW9jdGwNCisgIGludGVyZmFjZS4g
VGhlIHBpb2N0bCBpcyBpbXBsZW1lbnRlZCBhcyBhbiBvcmRpbmFyeSBpb2N0
bCBvbiBhDQorICBmaWN0aWNpb3VzIGZpbGUgL2NvZGEvLkNPTlRST0wuICBU
aGUgcGlvY2wgY2FsbCBvcGVucyB0aGlzIGZpbGUsIGdldHMNCisgIGEgZmls
ZSBoYW5kbGUgYW5kIG1ha2VzIHRoZSBpb2N0bCBjYWxsLiBGaW5hbGx5IGl0
IGNsb3NlcyB0aGUgZmlsZS4NCisNCisgIFRoZSBrZXJuZWwgaW52b2x2ZW1l
bnQgaW4gdGhpcyBpcyBsaW1pdGVkIHRvIHByb3ZpZGluZyB0aGUgZmFjaWxp
dHkgdG8NCisgIG9wZW4gYW5kIGNsb3NlIGFuZCBwYXNzIHRoZSBpb2N0bCBt
ZXNzYWdlIF8IYV8Ibl8IZCB0byB2ZXJpZnkgdGhhdCBhIHBhdGggaW4NCisg
IHRoZSBwaW9jdGwgZGF0YSBidWZmZXJzIGlzIGEgZmlsZSBpbiBhIENvZGEg
ZmlsZXN5c3RlbS4NCisNCisgIFRoZSBrZXJuZWwgaXMgaGFuZGVkIGEgZGF0
YSBwYWNrZXQgb2YgdGhlIGZvcm06DQorDQorICAgICAgc3RydWN0IHsNCisg
ICAgICAgICAgY29uc3QgY2hhciAqcGF0aDsNCisgICAgICAgICAgc3RydWN0
IFZpY2VJb2N0bCB2aWRhdGE7DQorICAgICAgICAgIGludCBmb2xsb3c7DQor
ICAgICAgfSBkYXRhOw0KKw0KKyAgd2hlcmUNCisNCisgIHN0cnVjdCBWaWNl
SW9jdGwgew0KKyAgICAgICAgICBjYWRkcl90IGluLCBvdXQ7ICAgICAgICAv
KiBEYXRhIHRvIGJlIHRyYW5zZmVycmVkIGluLCBvciBvdXQgKi8NCisgICAg
ICAgICAgc2hvcnQgaW5fc2l6ZTsgICAgICAgICAgLyogU2l6ZSBvZiBpbnB1
dCBidWZmZXIgPD0gMksgKi8NCisgICAgICAgICAgc2hvcnQgb3V0X3NpemU7
ICAgICAgICAgLyogTWF4aW11bSBzaXplIG9mIG91dHB1dCBidWZmZXIsIDw9
IDJLICovDQorICB9Ow0KKw0KKyAgVGhlIHBhdGggbXVzdCBiZSBhIENvZGEg
ZmlsZSwgb3RoZXJ3aXNlIHRoZSBpb2N0bCB1cGNhbGwgd2lsbCBub3QgYmUN
CisgIG1hZGUuDQorDQorICBOCE5PCE9UCFRFCEUgIFRoZSBkYXRhIHN0cnVj
dHVyZXMgYW5kIGNvZGUgYXJlIGEgbWVzcy4gIFdlIG5lZWQgdG8gY2xlYW4g
dGhpcw0KKyAgdXAuDQorDQorICBXZSBub3cgcHJvY2VlZCB0byBkb2N1bWVu
dCB0aGUgaW5kaXZpZHVhbCBjYWxsczoNCisNCisgIDB3cGFnZQ0KKw0KKyAg
NAg0LgguMwgzLgguICByCHJvCG9vCG90CHQNCisNCisgIEEIQXIIcmcIZ3UI
dW0IbWUIZW4IbnQIdHMIcw0KKw0KKyAgICAgaQhpbghuIGVtcHR5DQorDQor
ICAgICBvCG91CHV0CHQNCisNCisgICAgICAgICAgICAgICAgc3RydWN0IGNm
c19yb290X291dCB7DQorICAgICAgICAgICAgICAgICAgICBWaWNlRmlkIFZG
aWQ7DQorICAgICAgICAgICAgICAgIH0gY2ZzX3Jvb3Q7DQorDQorICBECERl
CGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gVGhpcyBjYWxsIGlzIG1h
ZGUgdG8gVmVudXMgZHVyaW5nIHRoZSBpbml0aWFsaXphdGlvbiBvZg0KKyAg
dGhlIENvZGEgZmlsZXN5c3RlbS4gSWYgdGhlIHJlc3VsdCBpcyB6ZXJvLCB0
aGUgY2ZzX3Jvb3Qgc3RydWN0dXJlDQorICBjb250YWlucyB0aGUgVmljZUZp
ZCBvZiB0aGUgcm9vdCBvZiB0aGUgQ29kYSBmaWxlc3lzdGVtLiBJZiBhIG5v
bi16ZXJvDQorICByZXN1bHQgaXMgZ2VuZXJhdGVkLCBpdHMgdmFsdWUgaXMg
YSBwbGF0Zm9ybSBkZXBlbmRlbnQgZXJyb3IgY29kZQ0KKyAgaW5kaWNhdGlu
ZyB0aGUgZGlmZmljdWx0eSBWZW51cyBlbmNvdW50ZXJlZCBpbiBsb2NhdGlu
ZyB0aGUgcm9vdCBvZg0KKyAgdGhlIENvZGEgZmlsZXN5c3RlbS4NCisNCisg
IDB3cGFnZQ0KKw0KKyAgNAg0LgguNAg0LgguICBsCGxvCG9vCG9rCGt1CHVw
CHANCisNCisgIFMIU3UIdW0IbW0IbWEIYXIIcnkIeSBGaW5kIHRoZSBWaWNl
RmlkIGFuZCB0eXBlIG9mIGFuIG9iamVjdCBpbiBhIGRpcmVjdG9yeSBpZiBp
dA0KKyAgZXhpc3RzLg0KKw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghudAh0
cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAgICAgICAgICAgc3Ry
dWN0ICBjZnNfbG9va3VwX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZp
Y2VGaWQgICAgIFZGaWQ7DQorICAgICAgICAgICAgICAgICAgICBjaGFyICAg
ICAgICAqbmFtZTsgICAgICAgICAgLyogUGxhY2UgaG9sZGVyIGZvciBkYXRh
LiAqLw0KKyAgICAgICAgICAgICAgICB9IGNmc19sb29rdXA7DQorDQorICAg
ICBvCG91CHV0CHQNCisNCisgICAgICAgICAgICAgICAgc3RydWN0IGNmc19s
b29rdXBfb3V0IHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgVkZp
ZDsNCisgICAgICAgICAgICAgICAgICAgIGludCB2dHlwZTsNCisgICAgICAg
ICAgICAgICAgfSBjZnNfbG9va3VwOw0KKw0KKyAgRAhEZQhlcwhzYwhjcghy
aQhpcAhwdAh0aQhpbwhvbghuIFRoaXMgY2FsbCBpcyBtYWRlIHRvIGRldGVy
bWluZSB0aGUgVmljZUZpZCBhbmQgZmlsZXR5cGUgb2YNCisgIGEgZGlyZWN0
b3J5IGVudHJ5LiAgVGhlIGRpcmVjdG9yeSBlbnRyeSByZXF1ZXN0ZWQgY2Fy
cmllcyBuYW1lIG5hbWUNCisgIGFuZCBWZW51cyB3aWxsIHNlYXJjaCB0aGUg
ZGlyZWN0b3J5IGlkZW50aWZpZWQgYnkgY2ZzX2xvb2t1cF9pbi5WRmlkLg0K
KyAgVGhlIHJlc3VsdCBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgbmFtZSBkb2Vz
IG5vdCBleGlzdCwgb3IgdGhhdA0KKyAgZGlmZmljdWx0eSB3YXMgZW5jb3Vu
dGVyZWQgaW4gZmluZGluZyBpdCAoZS5nLiBkdWUgdG8gZGlzY29ubmVjdGlv
bikuDQorICBJZiB0aGUgcmVzdWx0IGlzIHplcm8sIHRoZSBmaWVsZCBjZnNf
bG9va3VwX291dC5WRmlkIGNvbnRhaW5zIHRoZQ0KKyAgdGFyZ2V0cyBWaWNl
RmlkIGFuZCBjZnNfbG9va3VwX291dC52dHlwZSB0aGUgY29kYV92dHlwZSBn
aXZpbmcgdGhlDQorICB0eXBlIG9mIG9iamVjdCB0aGUgbmFtZSBkZXNpZ25h
dGVzLg0KKw0KKyAgVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBpcyBhbiA4IGJp
dCBjaGFyYWN0ZXIgc3RyaW5nIG9mIG1heGltdW0gbGVuZ3RoDQorICBDRlNf
TUFYTkFNTEVOLCBjdXJyZW50bHkgc2V0IHRvIDI1NiAoaW5jbHVkaW5nIGEg
MCB0ZXJtaW5hdG9yLikNCisNCisgIEl0IGlzIGV4dHJlbWVseSBpbXBvcnRh
bnQgdG8gcmVhbGl6ZSB0aGF0IFZlbnVzIGJpdHdpc2Ugb3IncyB0aGUgZmll
bGQNCisgIGNmc19sb29rdXAudnR5cGUgd2l0aCBDRlNfTk9DQUNIRSB0byBp
bmRpY2F0ZSB0aGF0IHRoZSBvYmplY3Qgc2hvdWxkDQorICBub3QgYmUgcHV0
IGluIHRoZSBrZXJuZWwgbmFtZSBjYWNoZS4NCisNCisgIE4ITk8IT1QIVEUI
RSBUaGUgdHlwZSBvZiB0aGUgdnR5cGUgaXMgY3VycmVudGx5IHdyb25nLiAg
SXQgc2hvdWxkIGJlDQorICBjb2RhX3Z0eXBlLiBMaW51eCBkb2VzIG5vdCB0
YWtlIG5vdGUgb2YgQ0ZTX05PQ0FDSEUuICBJdCBzaG91bGQuDQorDQorICAw
d3BhZ2UNCisNCisgIDQINC4ILjUINS4ILiAgZwhnZQhldAh0YQhhdAh0dAh0
cghyDQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgR2V0IHRoZSBhdHRy
aWJ1dGVzIG9mIGEgZmlsZS4NCisNCisgIEEIQXIIcmcIZ3UIdW0IbWUIZW4I
bnQIdHMIcw0KKw0KKyAgICAgaQhpbghuDQorDQorICAgICAgICAgICAgICAg
IHN0cnVjdCBjZnNfZ2V0YXR0cl9pbiB7DQorICAgICAgICAgICAgICAgICAg
ICBWaWNlRmlkIFZGaWQ7DQorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
Y29kYV92YXR0ciBhdHRyOyAvKiBYWFhYWCAqLw0KKyAgICAgICAgICAgICAg
ICB9IGNmc19nZXRhdHRyOw0KKw0KKyAgICAgbwhvdQh1dAh0DQorDQorICAg
ICAgICAgICAgICAgIHN0cnVjdCBjZnNfZ2V0YXR0cl9vdXQgew0KKyAgICAg
ICAgICAgICAgICAgICAgc3RydWN0IGNvZGFfdmF0dHIgYXR0cjsNCisgICAg
ICAgICAgICAgICAgfSBjZnNfZ2V0YXR0cjsNCisNCisgIEQIRGUIZXMIc2MI
Y3IIcmkIaXAIcHQIdGkIaW8Ib24IbiBUaGlzIGNhbGwgcmV0dXJucyB0aGUg
YXR0cmlidXRlcyBvZiB0aGUgZmlsZSBpZGVudGlmaWVkIGJ5DQorICBmaWQu
DQorDQorICBFCEVyCHJyCHJvCG9yCHJzCHMgRXJyb3JzIGNhbiBvY2N1ciBp
ZiB0aGUgb2JqZWN0IHdpdGggZmlkIGRvZXMgbm90IGV4aXN0LCBhcmUNCisg
IHVuYWNjZXNzaWJsZSBvciBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUg
cGVybWlzc2lvbiB0byBmZXRjaA0KKyAgYXR0cmlidXRlcy4NCisNCisgIE4I
Tm8Ib3QIdGUIZSBNYW55IGtlcm5lbCBGUyBkcml2ZXJzIChMaW51eCwgTlQg
YW5kIFdpbmRvd3MgOTUgbmVlZCB0byBhY3F1aXJlDQorICB0aGUgYXR0cmli
dXRlcyBhcyB3ZWxsIGFzIHRoZSBGaWQgZm9yIHRoZSBpbnN0YW50aWF0aW9u
IG9mIGFuIGludGVybmFsDQorICAiaW5vZGUiIG9yICJGaWxlSGFuZGxlIi4g
IEEgc2lnbmlmaWNhbnQgaW1wcm92ZW1lbnQgaW4gcGVyZm9ybWFuY2Ugb24N
CisgIHN1Y2ggc3lzdGVtcyBjb3VsZCBiZSBtYWRlIGJ5IGNvbWJpbmluZyB0
aGUgXwhsXwhvXwhvXwhrXwh1XwhwIGFuZCBfCGdfCGVfCHRfCGFfCHRfCHRf
CHIgY2FsbHMNCisgIGJvdGggYXQgdGhlIFZlbnVzL2tlcm5lbCBpbnRlcmFj
dGlvbiBsZXZlbCBhbmQgYXQgdGhlIFJQQyBsZXZlbC4NCisNCisgIFRoZSB2
YXR0ciBzdHJ1Y3R1cmUgaW5jbHVkZWQgaW4gdGhlIGlucHV0IGFyZ3VtZW50
cyBpcyBzdXBlcmZsdW91cyBhbmQNCisgIHNob3VsZCBiZSByZW1vdmVkLg0K
Kw0KKyAgMHdwYWdlDQorDQorICA0CDQuCC42CDYuCC4gIHMIc2UIZXQIdGEI
YXQIdHQIdHIIcg0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IFNldCB0
aGUgYXR0cmlidXRlcyBvZiBhIGZpbGUuDQorDQorICBBCEFyCHJnCGd1CHVt
CG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4Ibg0KKw0KKyAgICAgICAg
ICAgICAgICBzdHJ1Y3QgY2ZzX3NldGF0dHJfaW4gew0KKyAgICAgICAgICAg
ICAgICAgICAgVmljZUZpZCBWRmlkOw0KKyAgICAgICAgICAgICAgICAgICAg
c3RydWN0IGNvZGFfdmF0dHIgYXR0cjsNCisgICAgICAgICAgICAgICAgfSBj
ZnNfc2V0YXR0cjsNCisNCisgICAgIG8Ib3UIdXQIdA0KKyAgICAgICAgZW1w
dHkNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiBU
aGUgc3RydWN0dXJlIGF0dHIgaXMgZmlsbGVkIHdpdGggYXR0cmlidXRlcyB0
byBiZSBjaGFuZ2VkDQorICBpbiBCU0Qgc3R5bGUuICBBdHRyaWJ1dGVzIG5v
dCB0byBiZSBjaGFuZ2VkIGFyZSBzZXQgdG8gLTEsIGFwYXJ0IGZyb20NCisg
IHZ0eXBlIHdoaWNoIGlzIHNldCB0byBWTk9OLiBPdGhlciBhcmUgc2V0IHRv
IHRoZSB2YWx1ZSB0byBiZSBhc3NpZ25lZC4NCisgIFRoZSBvbmx5IGF0dHJp
YnV0ZXMgd2hpY2ggdGhlIEZTIGRyaXZlciBtYXkgcmVxdWVzdCB0byBjaGFu
Z2UgYXJlIHRoZQ0KKyAgbW9kZSwgb3dubmVyLCBncm91cGlkLCBhdGltZSwg
bXRpbWUgYW5kIGN0aW1lLiAgVGhlIHJldHVybiB2YWx1ZQ0KKyAgaW5kaWNh
dGVzIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4NCisNCisgIEUIRXIIcnIIcm8Ib3II
cnMIcyBBIHZhcmlldHkgb2YgZXJyb3JzIGNhbiBvY2N1ci4gIFRoZSBvYmpl
Y3QgbWF5IG5vdCBleGlzdCwgbWF5DQorICBiZSBpbmFjY2Vzc2libGUsIG9y
IHBlcm1pc3Npb24gbWF5IG5vdCBiZSBncmFudGVkIGJ5IFZlbnVzLg0KKw0K
KyAgMHdwYWdlDQorDQorICA0CDQuCC43CDcuCC4gIGEIYWMIY2MIY2UIZXMI
c3MIcw0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5DQorDQorICBBCEFy
CHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4Ibg0KKw0K
KyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX2FjY2Vzc19pbiB7DQorICAg
ICAgICAgICAgICAgICAgICBWaWNlRmlkICAgICBWRmlkOw0KKyAgICAgICAg
ICAgICAgICAgICAgaW50IGZsYWdzOw0KKyAgICAgICAgICAgICAgICB9IGNm
c19hY2Nlc3M7DQorDQorICAgICBvCG91CHV0CHQNCisgICAgICAgIGVtcHR5
DQorDQorICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gVmVy
aWZ5IGlmIGFjY2VzcyB0byB0aGUgb2JqZWN0IGlkZW50aWZpZWQgYnkgVkZp
ZCBmb3INCisgIG9wZXJldGlvbnMgZGVzY3JpYmVkIGJ5IGZsYWdzIGlzIHBl
cm1pdHRlZC4gIFRoZSByZXN1bHQgaW5kaWNhdGVzIGlmDQorICBhY2Nlc3Mg
d2lsbCBiZSBncmFudGVkLiAgSXQgaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVy
IHRoYXQgQ29kYSB1c2VzDQorICBBQ0wncyB0byBlbmZvcmNlIHByb3RlY3Rp
b24gYW5kIHRoYXQgdWx0aW1hdGVseSB0aGUgc2VydmVycywgbm90IHRoZQ0K
KyAgY2xpZW50cyBlbmZvcmNlIHRoZSBzZWN1cml0eSBvZiB0aGUgc3lzdGVt
LiAgVGhlIHJlc3VsdCBvZiB0aGlzIGNhbGwNCisgIHdpbGwgZGVwZW5kIG9u
IHdldGhlciBhIF8IdF8Ib18Ia18IZV8IbiBpcyBoZWxkIGJ5IHRoZSB1c2Vy
Lg0KKw0KKyAgRQhFcghycghybwhvcghycwhzIFRoZSBvYmplY3QgbWF5IG5v
dCBleGlzdCwgb3IgdGhlIEFDTCBkZXNjcmliaW5nIHRoZSBwcm90ZWN0aW9u
DQorICBtYXkgbm90IGJlIGFjY2Vzc2libGUuDQorDQorICAwd3BhZ2UNCisN
CisgIDQINC4ILjgIOC4ILiAgYwhjcghyZQhlYQhhdAh0ZQhlDQorDQorICBT
CFN1CHVtCG1tCG1hCGFyCHJ5CHkgSW52b2tlZCB0byBjcmVhdGUgYSBmaWxl
DQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAg
IGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX2NyZWF0
ZV9pbiB7DQorICAgICAgICAgICAgICAgICAgICBWaWNlRmlkIFZGaWQ7DQor
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY29kYV92YXR0ciBhdHRyOw0K
KyAgICAgICAgICAgICAgICAgICAgaW50IGV4Y2w7DQorICAgICAgICAgICAg
ICAgICAgICBpbnQgbW9kZTsNCisgICAgICAgICAgICAgICAgICAgIGNoYXIg
ICAgICAgICpuYW1lOyAgICAgICAgICAvKiBQbGFjZSBob2xkZXIgZm9yIGRh
dGEuICovDQorICAgICAgICAgICAgICAgIH0gY2ZzX2NyZWF0ZTsNCisNCisg
ICAgIG8Ib3UIdXQIdA0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2Zz
X2NyZWF0ZV9vdXQgew0KKyAgICAgICAgICAgICAgICAgICAgVmljZUZpZCBW
RmlkOw0KKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvZGFfdmF0dHIg
YXR0cjsNCisgICAgICAgICAgICAgICAgfSBjZnNfY3JlYXRlOw0KKw0KKyAg
RAhEZQhlcwhzYwhjcghyaQhpcAhwdAh0aQhpbwhvbghuICBUaGlzIHVwY2Fs
bCBpcyBpbnZva2VkIHRvIHJlcXVlc3QgY3JlYXRpb24gb2YgYSBmaWxlLg0K
KyAgVGhlIGZpbGUgd2lsbCBiZSBjcmVhdGVkIGluIHRoZSBkaXJlY3Rvcnkg
aWRlbnRpZmllZCBieSBWRmlkLCBpdHMgbmFtZQ0KKyAgd2lsbCBiZSBuYW1l
LCBhbmQgdGhlIG1vZGUgd2lsbCBiZSBtb2RlLiAgSWYgZXhjbCBpcyBzZXQg
YW4gZXJyb3Igd2lsbA0KKyAgYmUgcmV0dXJuZWQgaWYgdGhlIGZpbGUgYWxy
ZWFkeSBleGlzdHMuICBJZiB0aGUgc2l6ZSBmaWVsZCBpbiBhdHRyIGlzDQor
ICBzZXQgdG8gemVybyB0aGUgZmlsZSB3aWxsIGJlIHRydW5jYXRlZC4gIFRo
ZSB1aWQgYW5kIGdpZCBvZiB0aGUgZmlsZQ0KKyAgYXJlIHNldCBieSBjb252
ZXJ0aW5nIHRoZSBDb2RhQ3JlZCB0byBhIHVpZCB1c2luZyBhIG1hY3JvIENS
VE9VSUQNCisgICh0aGlzIG1hY3JvIGlzIHBsYXRmb3JtIGRlcGVuZGVudCku
ICBVcG9uIHN1Y2Nlc3MgdGhlIFZGaWQgYW5kDQorICBhdHRyaWJ1dGVzIG9m
IHRoZSBmaWxlIGFyZSByZXR1cm5lZC4gIFRoZSBDb2RhIEZTIERyaXZlciB3
aWxsIG5vcm1hbGx5DQorICBpbnN0YW50aWF0ZSBhIHZub2RlLCBpbm9kZSBv
ciBmaWxlaGFuZGxlIGF0IGtlcm5lbCBsZXZlbCBmb3IgdGhlIG5ldw0KKyAg
b2JqZWN0Lg0KKw0KKyAgRQhFcghycghybwhvcghycwhzIEEgdmFyaWV0eSBv
ZiBlcnJvcnMgY2FuIG9jY3VyLiBQZXJtaXNzaW9ucyBtYXkgYmUgaW5zdWZm
aWNpZW50Lg0KKyAgSWYgdGhlIG9iamVjdCBleGlzdHMgYW5kIGlzIG5vdCBh
IGZpbGUgdGhlIGVycm9yIEVJU0RJUiBpcyByZXR1cm5lZA0KKyAgdW5kZXIg
VW5peC4NCisNCisgIE4ITk8IT1QIVEUIRSBUaGUgcGFja2luZyBvZiBwYXJh
bWV0ZXJzIGlzIHZlcnkgaW5lZmZpY2llbnQgYW5kIGFwcGVhcnMgdG8NCisg
IGluZGljYXRlIGNvbmZ1c2lvbiBiZXR3ZWVuIHRoZSBzeXN0ZW0gY2FsbCBj
cmVhdCBhbmQgdGhlIFZGUyBvcGVyYXRpb24NCisgIGNyZWF0ZS4gVGhlIFZG
UyBvcGVyYXRpb24gY3JlYXRlIGlzIG9ubHkgY2FsbGVkIHRvIGNyZWF0ZSBu
ZXcgb2JqZWN0cy4NCisgIFRoaXMgY3JlYXRlIGNhbGwgZGlmZmVycyBmcm9t
IHRoZSBVbml4IG9uZSBpbiB0aGF0IGl0IGlzIG5vdCBpbnZva2VkDQorICB0
byByZXR1cm4gYSBmaWxlIGRlc2NyaXB0b3IuIFRoZSB0cnVuY3RhdGUgYW5k
IGV4Y2x1c2l2ZSBvcHRpb25zLA0KKyAgdG9nZXRoZXIgd2l0aCB0aGUgbW9k
ZSwgY291bGQgc2ltcGx5IGJlIHBhcnQgb2YgdGhlIG1vZGUgYXMgaXQgaXMN
CisgIHVuZGVyIFVuaXguICBUaGVyZSBzaG91bGQgYmUgbm8gZmxhZ3MgYXJn
dW1lbnQ7IHRoaXMgaXMgdXNlZCBpbiBvcGVuDQorICAoMikgdG8gcmV0dXJu
IGEgZmlsZWRlc2NyaXB0b3IgZm9yIFJFQUQgb3IgV1JJVEUgbW9kZS4NCisN
CisgIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkaXJlY3Rvcnkgc2hvdWxkIGJl
IHJldHVybmVkIHRvbywgc2luY2UgdGhlIHNpemUNCisgIGFuZCBtdGltZSBj
aGFuZ2VkLg0KKw0KKyAgMHdwYWdlDQorDQorICA0CDQuCC45CDkuCC4gIG0I
bWsIa2QIZGkIaXIIcg0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IENy
ZWF0ZSBhIG5ldyBkaXJlY3RvcnkuDQorDQorICBBCEFyCHJnCGd1CHVtCG1l
CGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4Ibg0KKw0KKyAgICAgICAgICAg
ICAgICBzdHJ1Y3QgY2ZzX21rZGlyX2luIHsNCisgICAgICAgICAgICAgICAg
ICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgY29kYV92YXR0ciBhdHRyOw0KKyAgICAgICAgICAgICAgICAgICAg
Y2hhciAgICAgICAgKm5hbWU7ICAgICAgICAgIC8qIFBsYWNlIGhvbGRlciBm
b3IgZGF0YS4gKi8NCisgICAgICAgICAgICAgICAgfSBjZnNfbWtkaXI7DQor
DQorICAgICBvCG91CHV0CHQNCisNCisgICAgICAgICAgICAgICAgc3RydWN0
IGNmc19ta2Rpcl9vdXQgew0KKyAgICAgICAgICAgICAgICAgICAgVmljZUZp
ZCBWRmlkOw0KKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNvZGFfdmF0
dHIgYXR0cjsNCisgICAgICAgICAgICAgICAgfSBjZnNfbWtkaXI7DQorDQor
ICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gVGhpcyBjYWxs
IGlzIHNpbWlsYXIgdG8gY3JlYXRlIGJ1dCBjcmVhdGVzIGEgZGlyZWN0b3J5
Lg0KKyAgT25seSB0aGUgbW9kZSBmaWVsZCBpbiB0aGUgaW5wdXQgcGFyYW1l
dGVycyBpcyB1c2VkIGZvciBjcmVhdGlvbi4NCisgIFVwb24gc3VjY2Vzc2Z1
bCBjcmVhdGlvbiwgdGhlIGF0dHIgcmV0dXJuZWQgY29udGFpbnMgdGhlIGF0
dHJpYnV0ZXMgb2YNCisgIHRoZSBuZXcgZGlyZWN0b3J5Lg0KKw0KKyAgRQhF
cghycghybwhvcghycwhzIEFzIGZvciBjcmVhdGUuDQorDQorICBOCE5PCE9U
CFRFCEUgVGhlIGlucHV0IHBhcmFtZXRlciBzaG91bGQgYmUgY2hhbmdlZCB0
byBtb2RlIGluc3RlYWQgb2YNCisgIGF0dHJpYnV0ZXMuDQorDQorICBUaGUg
YXR0cmlidXRlcyBvZiB0aGUgcGFyZW50IHNob3VsZCBiZSByZXR1cm5lZCBz
aW5jZSB0aGUgc2l6ZSBhbmQNCisgIG10aW1lIGNoYW5nZXMuDQorDQorICAw
d3BhZ2UNCisNCisgIDQINC4ILjEIMTAIMC4ILiAgbAhsaQhpbghuawhrDQor
DQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgQ3JlYXRlIGEgbGluayB0byBh
biBleGlzdGluZyBmaWxlLg0KKw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghu
dAh0cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAgICAgICAgICAg
c3RydWN0IGNmc19saW5rX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZp
Y2VGaWQgc291cmNlRmlkOyAgICAgICAgICAvKiBjbm9kZSB0byBsaW5rICp0
byogKi8NCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgZGVzdEZpZDsg
ICAgICAgICAgICAvKiBEaXJlY3RvcnkgaW4gd2hpY2ggdG8gcGxhY2UgbGlu
ayAqLw0KKyAgICAgICAgICAgICAgICAgICAgY2hhciAgICAgICAgKnRuYW1l
OyAgICAgICAgIC8qIFBsYWNlIGhvbGRlciBmb3IgZGF0YS4gKi8NCisgICAg
ICAgICAgICAgICAgfSBjZnNfbGluazsNCisNCisgICAgIG8Ib3UIdXQIdA0K
KyAgICAgICAgZW1wdHkNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQI
dGkIaW8Ib24IbiBUaGlzIGNhbGwgY3JlYXRlcyBhIGxpbmsgdG8gdGhlIHNv
dXJjZUZpZCBpbiB0aGUgZGlyZWN0b3J5DQorICBpZGVudGlmaWVkIGJ5IGRl
c3RGaWQgd2l0aCBuYW1lIHRuYW1lLiAgVGhlIHNvdXJjZSBtdXN0IHJlc2lk
ZSBpbiB0aGUNCisgIHRhcmdldHMgcGFyZW50LCBpLmUuIHRoZSBzb3VyY2Ug
bXVzdCBiZSBoYXZlIHBhcmVudCBkZXN0RmlkLCBpLmUuIENvZGENCisgIGRv
ZXMgbm90IHN1cHBvcnQgY3Jvc3MgZGlyZWN0b3J5IGhhcmQgbGlua3MuICBP
bmx5IHRoZSByZXR1cm4gdmFsdWUgaXMNCisgIHJlbGV2YW50LiAgSXQgaW5k
aWNhdGVzIHN1Y2Nlc3Mgb3IgdGhlIHR5cGUgb2YgZmFpbHVyZS4NCisNCisg
IEUIRXIIcnIIcm8Ib3IIcnMIcyBUaGUgdXN1YWwgZXJyb3JzIGNhbiBvY2N1
ci4wd3BhZ2UNCisNCisgIDQINC4ILjEIMTEIMS4ILiAgcwhzeQh5bghubAhs
aQhpbghuawhrDQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgY3JlYXRl
IGEgc3ltYm9saWMgbGluaw0KKw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghu
dAh0cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAgICAgICAgICAg
c3RydWN0IGNmc19zeW1saW5rX2luIHsNCisgICAgICAgICAgICAgICAgICAg
IFZpY2VGaWQgICAgIFZGaWQ7ICAgICAgICAgIC8qIERpcmVjdG9yeSB0byBw
dXQgc3ltbGluayBpbiAqLw0KKyAgICAgICAgICAgICAgICAgICAgY2hhciAg
ICAgICAgKnNyY25hbWU7DQorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
Y29kYV92YXR0ciBhdHRyOw0KKyAgICAgICAgICAgICAgICAgICAgY2hhciAg
ICAgICAgKnRuYW1lOw0KKyAgICAgICAgICAgICAgICB9IGNmc19zeW1saW5r
Ow0KKw0KKyAgICAgbwhvdQh1dAh0DQorICAgICAgICBub25lDQorDQorICBE
CERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gQ3JlYXRlIGEgc3lt
Ym9saWMgbGluay4gVGhlIGxpbmsgaXMgdG8gYmUgcGxhY2VkIGluIHRoZQ0K
KyAgZGlyZWN0b3J5IGlkZW50aWZpZWQgYnkgVkZpZCBhbmQgbmFtZWQgdG5h
bWUuICBJdCBzaG91bGQgcG9pbnQgdG8gdGhlDQorICBwYXRobmFtZSBzcmNu
YW1lLiAgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIG5ld2x5IGNyZWFldGVkIG9i
amVjdCBhcmUgdG8NCisgIGJlIHNldCB0byBhdHRyLg0KKw0KKyAgRQhFcghy
cghybwhvcghycwhzDQorDQorICBOCE5PCE9UCFRFCEUgVGhlIGF0dHJpYnV0
ZXMgb2YgdGhlIHRhcmdldCBkaXJlY3Rvcnkgc2hvdWxkIGJlIHJldHVybmVk
IHNpbmNlDQorICBpdHMgc2l6ZSBjaGFuZ2VkLg0KKw0KKyAgMHdwYWdlDQor
DQorICA0CDQuCC4xCDEyCDIuCC4gIHIIcmUIZW0IbW8Ib3YIdmUIZQ0KKw0K
KyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IFJlbW92ZSBhIGZpbGUNCisNCisg
IEEIQXIIcmcIZ3UIdW0IbWUIZW4IbnQIdHMIcw0KKw0KKyAgICAgaQhpbghu
DQorDQorICAgICAgICAgICAgICAgIHN0cnVjdCBjZnNfcmVtb3ZlX2luIHsN
CisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAg
ICAgICAgICAgICAgICAgICBjaGFyICAgICAgICAqbmFtZTsgICAgICAgICAg
LyogUGxhY2UgaG9sZGVyIGZvciBkYXRhLiAqLw0KKyAgICAgICAgICAgICAg
ICB9IGNmc19yZW1vdmU7DQorDQorICAgICBvCG91CHV0CHQNCisgICAgICAg
IG5vbmUNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24I
biAgUmVtb3ZlIGZpbGUgbmFtZWQgY2ZzX3JlbW92ZV9pbi5uYW1lIGluIGRp
cmVjdG9yeQ0KKyAgaWRlbnRpZmllZCBieSAgIFZGaWQuDQorDQorICBFCEVy
CHJyCHJvCG9yCHJzCHMNCisNCisgIE4ITk8IT1QIVEUIRSBUaGUgYXR0cmli
dXRlcyBvZiB0aGUgZGlyZWN0b3J5IHNob3VsZCBiZSByZXR1cm5lZCBzaW5j
ZSBpdHMNCisgIG10aW1lIGFuZCBzaXplIG1heSBjaGFuZ2UuDQorDQorICAw
d3BhZ2UNCisNCisgIDQINC4ILjEIMTMIMy4ILiAgcghybQhtZAhkaQhpcghy
DQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgUmVtb3ZlIGEgZGlyZWN0
b3J5DQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisg
ICAgIGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX3Jt
ZGlyX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgICAgIFZG
aWQ7DQorICAgICAgICAgICAgICAgICAgICBjaGFyICAgICAgICAqbmFtZTsg
ICAgICAgICAgLyogUGxhY2UgaG9sZGVyIGZvciBkYXRhLiAqLw0KKyAgICAg
ICAgICAgICAgICB9IGNmc19ybWRpcjsNCisNCisgICAgIG8Ib3UIdXQIdA0K
KyAgICAgICAgbm9uZQ0KKw0KKyAgRAhEZQhlcwhzYwhjcghyaQhpcAhwdAh0
aQhpbwhvbghuIFJlbW92ZSB0aGUgZGlyZWN0b3J5IHdpdGggbmFtZSBuYW1l
IGZyb20gdGhlIGRpcmVjdG9yeQ0KKyAgaWRlbnRpZmllZCBieSBWRmlkLg0K
Kw0KKyAgRQhFcghycghybwhvcghycwhzDQorDQorICBOCE5PCE9UCFRFCEUg
VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHBhcmVudCBkaXJlY3Rvcnkgc2hvdWxk
IGJlIHJldHVybmVkIHNpbmNlDQorICBpdHMgbXRpbWUgYW5kIHNpemUgbWF5
IGNoYW5nZS4NCisNCisgIDB3cGFnZQ0KKw0KKyAgNAg0LgguMQgxNAg0Lggu
ICByCHJlCGVhCGFkCGRsCGxpCGluCG5rCGsNCisNCisgIFMIU3UIdW0IbW0I
bWEIYXIIcnkIeSBSZWFkIHRoZSB2YWx1ZSBvZiBhIHN5bWJvbGljIGxpbmsu
DQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAg
IGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX3JlYWRs
aW5rX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgVkZpZDsN
CisgICAgICAgICAgICAgICAgfSBjZnNfcmVhZGxpbms7DQorDQorICAgICBv
CG91CHV0CHQNCisNCisgICAgICAgICAgICAgICAgc3RydWN0IGNmc19yZWFk
bGlua19vdXQgew0KKyAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Ow0K
KyAgICAgICAgICAgICAgICAgICAgY2FkZHJfdCAgICAgZGF0YTsgICAgICAg
ICAgIC8qIFBsYWNlIGhvbGRlciBmb3IgZGF0YS4gKi8NCisgICAgICAgICAg
ICAgICAgfSBjZnNfcmVhZGxpbms7DQorDQorICBECERlCGVzCHNjCGNyCHJp
CGlwCHB0CHRpCGlvCG9uCG4gVGhpcyByb3V0aW5lIHJlYWRzIHRoZSBjb250
ZW50cyBvZiBzeW1ib2xpYyBsaW5rDQorICBpZGVudGlmaWVkIGJ5IFZGaWQg
aW50byB0aGUgYnVmZmVyIGRhdGEuICBUaGUgYnVmZmVyIGRhdGEgbXVzdCBi
ZSBhYmxlDQorICB0byBob2xkIGFueSBuYW1lIHVwIHRvIENGU19NQVhOQU1M
RU4gKFBBVEggb3IgTkFNPz8pLg0KKw0KKyAgRQhFcghycghybwhvcghycwhz
IE5vIHVudXN1YWwgZXJyb3JzLg0KKw0KKyAgMHdwYWdlDQorDQorICA0CDQu
CC4xCDE1CDUuCC4gIG8Ib3AIcGUIZW4Ibg0KKw0KKyAgUwhTdQh1bQhtbQht
YQhhcghyeQh5IE9wZW4gYSBmaWxlLg0KKw0KKyAgQQhBcghyZwhndQh1bQht
ZQhlbghudAh0cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAgICAg
ICAgICAgc3RydWN0IGNmc19vcGVuX2luIHsNCisgICAgICAgICAgICAgICAg
ICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAgICAgICAgICAgICAgICAgICBp
bnQgZmxhZ3M7DQorICAgICAgICAgICAgICAgIH0gY2ZzX29wZW47DQorDQor
ICAgICBvCG91CHV0CHQNCisNCisgICAgICAgICAgICAgICAgc3RydWN0IGNm
c19vcGVuX291dCB7DQorICAgICAgICAgICAgICAgICAgICBkZXZfdCAgICAg
ICBkZXY7DQorICAgICAgICAgICAgICAgICAgICBpbm9fdCAgICAgICBpbm9k
ZTsNCisgICAgICAgICAgICAgICAgfSBjZnNfb3BlbjsNCisNCisgIEQIRGUI
ZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiAgVGhpcyByZXF1ZXN0IGFz
a3MgVmVudXMgdG8gcGxhY2UgdGhlIGZpbGUgaWRlbnRpZmllZCBieQ0KKyAg
VkZpZCBpbiBpdHMgY2FjaGUgYW5kIHRvIG5vdGUgdGhhdCB0aGUgY2FsbGlu
ZyBwcm9jZXNzIHdpc2hlcyB0byBvcGVuDQorICBpdCB3aXRoIGZsYWdzIGFz
IGluIG9wZW4oMikuICBUaGUgcmV0dXJuIHZhbHVlIHRvIHRoZSBrZXJuZWwg
ZGlmZmVycw0KKyAgZm9yIFVuaXggYW5kIFdpbmRvd3Mgc3lzdGVtcy4gIEZv
ciBVbml4IHN5c3RlbXMgdGhlIENvZGEgRlMgRHJpdmVyIGlzDQorICBpbmZv
cm1lZCBvZiB0aGUgZGV2aWNlIGFuZCBpbm9kZSBudW1iZXIgb2YgdGhlIGNv
bnRhaW5lciBmaWxlIGluIHRoZQ0KKyAgZmllbGRzIGRldiBhbmQgaW5vZGUu
ICBGb3IgV2luZG93cyB0aGUgcGF0aCBvZiB0aGUgY29udGFpbmVyIGZpbGUg
aXMNCisgIHJldHVybmVkIHRvIHRoZSBrZXJuZWwuDQorDQorICBFCEVyCHJy
CHJvCG9yCHJzCHMNCisNCisgIE4ITk8IT1QIVEUIRSBDdXJyZW50bHkgdGhl
IGNmc19vcGVuX291dCBzdHJ1Y3R1cmUgaXMgbm90IHByb3Blcmx5IGFkYXB0
ZWQgdG8NCisgIGRlYWwgd2l0aCB0aGUgd2luZG93cyBjYXNlLiAgSXQgbWln
aHQgYmUgYmVzdCB0byBpbXBsZW1lbnQgdHdvDQorICB1cGNhbGxzLCBvbmUg
dG8gb3BlbiBhaW1pbmcgYXQgYSBjb250YWluZXIgZmlsZSBuYW1lLCB0aGUg
b3RoZXIgYXQgYQ0KKyAgY29udGFpbmVyIGZpbGUgaW5vZGUuDQorDQorICAw
d3BhZ2UNCisNCisgIDQINC4ILjEIMTYINi4ILiAgYwhjbAhsbwhvcwhzZQhl
DQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgQ2xvc2UgYSBmaWxlLCB1
cGRhdGUgaXQgb24gdGhlIHNlcnZlcnMuDQorDQorICBBCEFyCHJnCGd1CHVt
CG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4Ibg0KKw0KKyAgICAgICAg
ICAgICAgICBzdHJ1Y3QgY2ZzX2Nsb3NlX2luIHsNCisgICAgICAgICAgICAg
ICAgICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAgICAgICAgICAgICAgICAg
ICBpbnQgZmxhZ3M7DQorICAgICAgICAgICAgICAgIH0gY2ZzX2Nsb3NlOw0K
Kw0KKyAgICAgbwhvdQh1dAh0DQorICAgICAgICBub25lDQorDQorICBECERl
CGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gQ2xvc2UgdGhlIGZpbGUg
aWRlbnRpZmllZCBieSBWRmlkLg0KKw0KKyAgRQhFcghycghybwhvcghycwhz
DQorDQorICBOCE5PCE9UCFRFCEUgVGhlIGZsYWdzIGFyZ3VtZW50IGlzIGJv
Z3VzIGFuZCBub3QgdXNlZC4gIEhvd2V2ZXIsIFZlbnVzJyBjb2RlDQorICBo
YXMgcm9vbSB0byBkZWFsIHdpdGggYW4gZXhlY3AgaW5wdXQgZmllbGQsIHBy
b2JhYmx5IHRoaXMgZmllbGQgc2hvdWxkDQorICBiZSB1c2VkIHRvIGluZm9y
bSBWZW51cyB0aGF0IHRoZSBmaWxlIHdhcyBjbG9zZWQgYnV0IGlzIHN0aWxs
IG1lbW9yeQ0KKyAgbWFwcGVkIGZvciBleGVjdXRpb24uICBUaGVyZSBhcmUg
Y29tbWVudHMgYWJvdXQgZmV0Y2hpbmcgdmVyc3VzIG5vdA0KKyAgZmV0Y2hp
bmcgdGhlIGRhdGEgaW4gVmVudXMgdnByb2NfdmZzY2FsbHMuICBUaGlzIHNl
ZW1zIHNpbGx5LiAgSWYgYQ0KKyAgZmlsZSBpcyBiZWluZyBjbG9zZWQsIHRo
ZSBkYXRhIGluIHRoZSBjb250YWluZXIgZmlsZSBpcyB0byBiZSB0aGUgbmV3
DQorICBkYXRhLiAgSGVyZSBhZ2FpbiB0aGUgZXhlY3AgZmxhZyBtaWdodCBi
ZSBpbiBwbGF5IHRvIGNyZWF0ZSBjb25mdXNpb246DQorICBwcmVzZW50bHkg
VmVudXMgbWlnaHQgdGhpbmsgYSBmaWxlIGNhbiBiZSBmbHVzaGVkIGZyb20g
dGhlIGNhY2hlIHdoZW4NCisgIGl0IGlzIHN0aWxsIG1lbW9yeSBtYXBwZWQu
ICBUaGlzIG5lZWRzIHRvIGJlIHVuZGVyc3Rvb2QuDQorDQorICAwd3BhZ2UN
CisNCisgIDQINC4ILjEIMTcINy4ILiAgaQhpbwhvYwhjdAh0bAhsDQorDQor
ICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgRG8gYW4gaW9jdGwgb24gYSBmaWxl
LiBUaGlzIGluY2x1ZGVzIHRoZSBwaW9jbCBpbnRlcmZhY2UuDQorDQorICBB
CEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4Ibg0K
Kw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX2lvY3RsX2luIHsNCisg
ICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgVkZpZDsNCisgICAgICAgICAg
ICAgICAgICAgIGludCBjbWQ7DQorICAgICAgICAgICAgICAgICAgICBpbnQg
bGVuOw0KKyAgICAgICAgICAgICAgICAgICAgaW50IHJ3ZmxhZzsNCisgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmRhdGE7ICAgICAgICAgICAgICAgICAv
KiBQbGFjZSBob2xkZXIgZm9yIGRhdGEuICovDQorICAgICAgICAgICAgICAg
IH0gY2ZzX2lvY3RsOw0KKw0KKyAgICAgbwhvdQh1dAh0DQorDQorICAgICAg
ICAgICAgICAgIHN0cnVjdCBjZnNfaW9jdGxfb3V0IHsNCisgICAgICAgICAg
ICAgICAgICAgIGludCBsZW47DQorICAgICAgICAgICAgICAgICAgICBjYWRk
cl90ICAgICBkYXRhOyAgICAgICAgICAgLyogUGxhY2UgaG9sZGVyIGZvciBk
YXRhLiAqLw0KKyAgICAgICAgICAgICAgICB9IGNmc19pb2N0bDsNCisNCisg
IEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiBEbyBhbiBpb2N0
bCBvcGVyYXRpb24gb24gYSBmaWxlLiAgVGhlIGNvbW1hbmQsIGxlbiBhbmQN
CisgIGRhdGEgYXJndW1lbnRzIGFyZSBmaWxsZWQgYXMgdXN1YWwuICBmbGFn
cyBpcyBub3QgdXNlZCBieSBWZW51cy4NCisNCisgIEUIRXIIcnIIcm8Ib3II
cnMIcw0KKw0KKyAgTghOTwhPVAhURQhFIEFub3RoZXIgYm9ndXMgcGFyYW1l
dGVyLiAgZmxhZ3MgaXMgbm90IHVzZWQuICBXaGF0IGlzIHRoZQ0KKyAgYnVz
aW5lc3MgYWJvdXQgUFJFRkVUQ0hJTkcgaW4gdGhlIFZlbnVzJyBjb2RlPw0K
Kw0KKyAgMHdwYWdlDQorDQorICA0CDQuCC4xCDE4CDguCC4gIHIIcmUIZW4I
bmEIYW0IbWUIZQ0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IFJlbmFt
ZSBhIGZpZC4NCisNCisgIEEIQXIIcmcIZ3UIdW0IbWUIZW4IbnQIdHMIcw0K
Kw0KKyAgICAgaQhpbghuDQorDQorICAgICAgICAgICAgICAgIHN0cnVjdCBj
ZnNfcmVuYW1lX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQg
ICAgIHNvdXJjZUZpZDsNCisgICAgICAgICAgICAgICAgICAgIGNoYXIgICAg
ICAgICpzcmNuYW1lOw0KKyAgICAgICAgICAgICAgICAgICAgVmljZUZpZCBk
ZXN0RmlkOw0KKyAgICAgICAgICAgICAgICAgICAgY2hhciAgICAgICAgKmRl
c3RuYW1lOw0KKyAgICAgICAgICAgICAgICB9IGNmc19yZW5hbWU7DQorDQor
ICAgICBvCG91CHV0CHQNCisgICAgICAgIG5vbmUNCisNCisgIEQIRGUIZXMI
c2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiAgUmVuYW1lIHRoZSBvYmplY3Qg
d2l0aCBuYW1lIHNyY25hbWUgaW4gZGlyZWN0b3J5DQorICBzb3VyY2VGaWQg
dG8gZGVzdG5hbWUgaW4gZGVzdEZpZC4gICBJdCBpcyBpbXBvcnRhbnQgdGhh
dCB0aGUgbmFtZXMNCisgIHNyY25hbWUgYW5kIGRlc3RuYW1lIGFyZSAwIHRl
cm1pbmF0ZWQgc3RyaW5ncy4gIFN0cmluZ3MgaW4gVW5peA0KKyAga2VybmVs
cyBhcmUgbm90IGFsd2F5cyBudWxsIHRlcm1pbmF0ZWQuDQorDQorICBFCEVy
CHJyCHJvCG9yCHJzCHMNCisNCisgIDB3cGFnZQ0KKw0KKyAgNAg0LgguMQgx
OQg5LgguICByCHJlCGVhCGFkCGRkCGRpCGlyCHINCisNCisgIFMIU3UIdW0I
bW0IbWEIYXIIcnkIeSBSZWFkIGRpcmVjdG9yeSBlbnRyaWVzLg0KKw0KKyAg
QQhBcghyZwhndQh1bQhtZQhlbghudAh0cwhzDQorDQorICAgICBpCGluCG4N
CisNCisgICAgICAgICAgICAgICAgc3RydWN0IGNmc19yZWFkZGlyX2luIHsN
CisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAg
ICAgICAgICAgICAgICAgICBpbnQgY291bnQ7DQorICAgICAgICAgICAgICAg
ICAgICBpbnQgb2Zmc2V0Ow0KKyAgICAgICAgICAgICAgICB9IGNmc19yZWFk
ZGlyOw0KKw0KKyAgICAgbwhvdQh1dAh0DQorDQorICAgICAgICAgICAgICAg
IHN0cnVjdCBjZnNfcmVhZGRpcl9vdXQgew0KKyAgICAgICAgICAgICAgICAg
ICAgaW50IHNpemU7DQorICAgICAgICAgICAgICAgICAgICBjYWRkcl90ICAg
ICBkYXRhOyAgICAgICAgICAgLyogUGxhY2UgaG9sZGVyIGZvciBkYXRhLiAq
Lw0KKyAgICAgICAgICAgICAgICB9IGNmc19yZWFkZGlyOw0KKw0KKyAgRAhE
ZQhlcwhzYwhjcghyaQhpcAhwdAh0aQhpbwhvbghuIFJlYWQgZGlyZWN0b3J5
IGVudHJpZXMgZnJvbSBWRmlkIHN0YXJ0aW5nIGF0IG9mZnNldCBhbmQNCisg
IHJlYWQgYXQgbW9zdCBjb3VudCBieXRlcy4gIFJldHVybnMgdGhlIGRhdGEg
aW50byBkYXRhIGFuZCBpbmRpY2F0ZXMNCisgIHRoZSBzaXplIHJldHVybmVk
IHNpemUuDQorDQorICBFCEVyCHJyCHJvCG9yCHJzCHMNCisNCisgIE4ITk8I
T1QIVEUIRSBUaGlzIGNhbGwgaXMgbm90IHVzZWQuICBSZWFkZGlyIG9wZXJh
dGlvbnMgZXhwbG9pdCBjb250YWluZXINCisgIGZpbGVzLiAgV2Ugd2lsbCBy
ZS1ldmFsdWF0ZSB0aGlzIGR1cmluZyB0aGUgZGlyZWN0b3J5IHJldmFtcCB3
aGljaCBpcw0KKyAgYWJvdXQgdG8gdGFrZSBwbGFjZS4NCisNCisgIDB3cGFn
ZQ0KKw0KKyAgNAg0LgguMggyMAgwLgguICB2CHZnCGdlCGV0CHQNCisNCisg
IFMIU3UIdW0IbW0IbWEIYXIIcnkIeSBpbnN0cnVjdHMgVmVudXMgdG8gZG8g
YW4gRlNEQi0+R2V0Lg0KKw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghudAh0
cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAgICAgICAgICAgc3Ry
dWN0IGNmc19mc3luY19pbiB7DQorICAgICAgICAgICAgICAgICAgICBWaWNl
RmlkIFZGaWQ7DQorICAgICAgICAgICAgICAgIH0gY2ZzX2ZzeW5jOw0KKw0K
KyAgICAgbwhvdQh1dAh0DQorDQorICAgICAgICAgICAgICAgIHN0cnVjdCBj
ZnNfdmdldF9vdXQgew0KKyAgICAgICAgICAgICAgICAgICAgVmljZUZpZCBW
RmlkOw0KKyAgICAgICAgICAgICAgICAgICAgaW50IHZ0eXBlOw0KKyAgICAg
ICAgICAgICAgICB9IGNmc192Z2V0Ow0KKw0KKyAgRAhEZQhlcwhzYwhjcghy
aQhpcAhwdAh0aQhpbwhvbghuIFRoaXMgdXBjYWxsIGFza3MgVmVudXMgdG8g
ZG8gYSBnZXQgb3BlcmF0aW9uIG9uIGFuIGZzb2JqDQorICBsYWJlbGxlZCBi
eSBWRmlkLg0KKw0KKyAgRQhFcghycghybwhvcghycwhzDQorDQorICBOCE5P
CE9UCFRFCEUgVGhpcyBvcGVyYXRpb24gaXMgbm90IHVzZWQuICBIb3dldmVy
LCBpdCBpcyBleHRyZW1lbHkgdXNlZnVsDQorICBzaW5jZSBpdCBjYW4gYmUg
dXNlZCB0byBkZWFsIHdpdGggcmVhZC93cml0ZSBtZW1vcnkgbWFwcGVkIGZp
bGVzLg0KKyAgVGhlc2UgY2FuIGJlICJwaW5uZWQiIGluIHRoZSBWZW51cyBj
YWNoZSB1c2luZyB2Z2V0IGFuZCByZWxlYXNlIHdpdGgNCisgIGluYWN0aXZl
Lg0KKw0KKyAgMHdwYWdlDQorDQorICA0CDQuCC4yCDIxCDEuCC4gIGYIZnMI
c3kIeW4IbmMIYw0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IFRlbGwg
VmVudXMgdG8gdXBkYXRlIHRoZSBSVk0gYXR0cmlidXRlcyBvZiBhIGZpbGUu
DQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAg
IGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY2ZzX2ZzeW5j
X2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgVkZpZDsNCisg
ICAgICAgICAgICAgICAgfSBjZnNfZnN5bmM7DQorDQorICAgICBvCG91CHV0
CHQNCisgICAgICAgIG5vbmUNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAI
cHQIdGkIaW8Ib24IbiAgQXNrIFZlbnVzIHRvIHVwZGF0ZSBSVk0gYXR0cmli
dXRlcyBvZiBvYmplY3QgVkZpZC4gVGhpcw0KKyAgc2hvdWxkIGJlIGNhbGxl
ZCBhcyAgcGFydCBvZiBrZXJuZWwgbGV2ZWwgZnN5bmMgdHlwZSBjYWxscy4g
IFRoZQ0KKyAgcmVzdWx0IGluZGljYXRlcyBpZiB0aGUgc3luY2hpbmcgd2Fz
IHN1Y2Nlc3NmdWwuDQorDQorICBFCEVyCHJyCHJvCG9yCHJzCHMNCisNCisg
IE4ITk8IT1QIVEUIRSBMaW51eCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhpcyBj
YWxsLiBJdCBzaG91bGQuDQorDQorICAwd3BhZ2UNCisNCisgIDQINC4ILjII
MjIIMi4ILiAgaQhpbghuYQhhYwhjdAh0aQhpdgh2ZQhlDQorDQorICBTCFN1
CHVtCG1tCG1hCGFyCHJ5CHkgVGVsbCBWZW51cyBhIHZub2RlIGlzIG5vIGxv
bmdlciBpbiB1c2UuDQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRz
CHMNCisNCisgICAgIGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1
Y3QgY2ZzX2luYWN0aXZlX2luIHsNCisgICAgICAgICAgICAgICAgICAgIFZp
Y2VGaWQgVkZpZDsNCisgICAgICAgICAgICAgICAgfSBjZnNfaW5hY3RpdmU7
DQorDQorICAgICBvCG91CHV0CHQNCisgICAgICAgIG5vbmUNCisNCisgIEQI
RGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiBUaGlzIG9wZXJhdGlv
biByZXR1cm5zIEVPUE5PVFNVUFAuDQorDQorICBFCEVyCHJyCHJvCG9yCHJz
CHMNCisNCisgIE4ITk8IT1QIVEUIRSBUaGlzIHNob3VsZCBwZXJoYXBzIGJl
IHJlbW92ZWQuDQorDQorICAwd3BhZ2UNCisNCisgIDQINC4ILjIIMjMIMy4I
LiAgcghyZAhkdwh3cghyDQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkg
UmVhZCBvciB3cml0ZSBmcm9tIGEgZmlsZQ0KKw0KKyAgQQhBcghyZwhndQh1
bQhtZQhlbghudAh0cwhzDQorDQorICAgICBpCGluCG4NCisNCisgICAgICAg
ICAgICAgICAgc3RydWN0IGNmc19yZHdyX2luIHsNCisgICAgICAgICAgICAg
ICAgICAgIFZpY2VGaWQgICAgIFZGaWQ7DQorICAgICAgICAgICAgICAgICAg
ICBpbnQgcndmbGFnOw0KKyAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50
Ow0KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDsNCisgICAgICAg
ICAgICAgICAgICAgIGludCBpb2ZsYWc7DQorICAgICAgICAgICAgICAgICAg
ICBjYWRkcl90ICAgICBkYXRhOyAgICAgICAgICAgLyogUGxhY2UgaG9sZGVy
IGZvciBkYXRhLiAqLw0KKyAgICAgICAgICAgICAgICB9IGNmc19yZHdyOw0K
Kw0KKyAgICAgbwhvdQh1dAh0DQorDQorICAgICAgICAgICAgICAgIHN0cnVj
dCBjZnNfcmR3cl9vdXQgew0KKyAgICAgICAgICAgICAgICAgICAgaW50IHJ3
ZmxhZzsNCisgICAgICAgICAgICAgICAgICAgIGludCBjb3VudDsNCisgICAg
ICAgICAgICAgICAgICAgIGNhZGRyX3QgICAgIGRhdGE7ICAgLyogUGxhY2Ug
aG9sZGVyIGZvciBkYXRhLiAqLw0KKyAgICAgICAgICAgICAgICB9IGNmc19y
ZHdyOw0KKw0KKyAgRAhEZQhlcwhzYwhjcghyaQhpcAhwdAh0aQhpbwhvbghu
IFRoaXMgdXBjYWxsIGFza3MgVmVudXMgdG8gcmVhZCBvciB3cml0ZSBmcm9t
IGEgZmlsZS4NCisNCisgIEUIRXIIcnIIcm8Ib3IIcnMIcw0KKw0KKyAgTghO
TwhPVAhURQhFIEl0IHNob3VsZCBiZSByZW1vdmVkIHNpbmNlIGl0IGlzIGFn
YWluc3QgdGhlIENvZGEgcGhpbG9zb3BoeSB0aGF0DQorICByZWFkL3dyaXRl
IG9wZXJhdGlvbnMgbmV2ZXIgcmVhY2ggVmVudXMuICBJIGhhdmUgYmVlbiB0
b2xkIHRoZQ0KKyAgb3BlcmF0aW9uIGRvZXMgbm90IHdvcmsuICBJdCBpcyBu
b3QgY3VycmVudGx5IHVzZWQuDQorDQorICAwd3BhZ2UNCisNCisgIDQINC4I
LjIIMjQINC4ILiAgbwhvZAhkeQh5bQhtbwhvdQh1bghudAh0DQorDQorICBT
CFN1CHVtCG1tCG1hCGFyCHJ5CHkgQWxsb3dzIG1vdW50aW5nIG11bHRpcGxl
IENvZGEgImZpbGVzeXN0ZW1zIiBvbiBvbmUgVW5peCBtb3VudA0KKyAgcG9p
bnQuDQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisg
ICAgIGkIaW4Ibg0KKw0KKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgb2R5X21v
dW50X2luIHsNCisgICAgICAgICAgICAgICAgICAgIGNoYXIgICAgICAgICpu
YW1lOyAgICAgICAgICAvKiBQbGFjZSBob2xkZXIgZm9yIGRhdGEuICovDQor
ICAgICAgICAgICAgICAgIH0gb2R5X21vdW50Ow0KKw0KKyAgICAgbwhvdQh1
dAh0DQorDQorICAgICAgICAgICAgICAgIHN0cnVjdCBvZHlfbW91bnRfb3V0
IHsNCisgICAgICAgICAgICAgICAgICAgIFZpY2VGaWQgVkZpZDsNCisgICAg
ICAgICAgICAgICAgfSBvZHlfbW91bnQ7DQorDQorICBECERlCGVzCHNjCGNy
CHJpCGlwCHB0CHRpCGlvCG9uCG4gIEFza3MgVmVudXMgdG8gcmV0dXJuIHRo
ZSByb290ZmlkIG9mIGEgQ29kYSBzeXN0ZW0gbmFtZWQNCisgIG5hbWUuICBU
aGUgZmlkIGlzIHJldHVybmVkIGluIFZGaWQuDQorDQorICBFCEVyCHJyCHJv
CG9yCHJzCHMNCisNCisgIE4ITk8IT1QIVEUIRSBUaGlzIGNhbGwgd2FzIHVz
ZWQgYnkgRGF2aWQgZm9yIGR5bmFtaWMgc2V0cy4gIEl0IHNob3VsZCBiZQ0K
KyAgcmVtb3ZlZCBzaW5jZSBpdCBjYXVzZXMgYSBqdW5nbGUgb2YgcG9pbnRl
cnMgaW4gdGhlIFZGUyBtb3VudGluZyBhcmVhLg0KKyAgSXQgaXMgbm90IHVz
ZWQgYnkgQ29kYSBwcm9wZXIuICBDYWxsIGlzIG5vdCBpbXBsZW1lbnRlZCBi
eSBWZW51cy4NCisNCisgIDB3cGFnZQ0KKw0KKyAgNAg0LgguMggyNQg1Lggu
ICBvCG9kCGR5CHlfCF9sCGxvCG9vCG9rCGt1CHVwCHANCisNCisgIFMIU3UI
dW0IbW0IbWEIYXIIcnkIeSBMb29rcyB1cCBzb21ldGhpbmcuDQorDQorICBB
CEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4IbiBp
cnJlbGV2YW50DQorDQorICAgICBvCG91CHV0CHQNCisgICAgICAgIGlycmVs
ZXZhbnQNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24I
bg0KKw0KKyAgRQhFcghycghybwhvcghycwhzDQorDQorICBOCE5PCE9UCFRF
CEUgR3V0IGl0LiBDYWxsIGlzIG5vdCBpbXBsZW1lbnRlZCBieSBWZW51cy4N
CisNCisgIDB3cGFnZQ0KKw0KKyAgNAg0LgguMggyNgg2LgguICBvCG9kCGR5
CHlfCF9lCGV4CHhwCHBhCGFuCG5kCGQNCisNCisgIFMIU3UIdW0IbW0IbWEI
YXIIcnkIeSBleHBhbmRzIHNvbWV0aGluZyBpbiBhIGR5bmFtaWMgc2V0Lg0K
Kw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghudAh0cwhzDQorDQorICAgICBp
CGluCG4gaXJyZWxldmFudA0KKw0KKyAgICAgbwhvdQh1dAh0DQorICAgICAg
ICBpcnJlbGV2YW50DQorDQorICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRp
CGlvCG9uCG4NCisNCisgIEUIRXIIcnIIcm8Ib3IIcnMIcw0KKw0KKyAgTghO
TwhPVAhURQhFIEd1dCBpdC4gIENhbGwgaXMgbm90IGltcGxlbWVudGVkIGJ5
IFZlbnVzLg0KKw0KKyAgMHdwYWdlDQorDQorICA0CDQuCC4yCDI3CDcuCC4g
IHAIcHIIcmUIZWYIZmUIZXQIdGMIY2gIaA0KKw0KKyAgUwhTdQh1bQhtbQht
YQhhcghyeQh5IFByZWZldGNoIGEgZHluYW1pYyBzZXQuDQorDQorICBBCEFy
CHJnCGd1CHVtCG1lCGVuCG50CHRzCHMNCisNCisgICAgIGkIaW4IbiBOb3Qg
ZG9jdW1lbnRlZC4NCisNCisgICAgIG8Ib3UIdXQIdA0KKyAgICAgICAgTm90
IGRvY3VtZW50ZWQuDQorDQorICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRp
CGlvCG9uCG4gIFZlbnVzIHdvcmtlci5jYyBoYXMgc3VwcG9ydCBmb3IgdGhp
cyBjYWxsLCBhbHRob3VnaCBpdCBpcw0KKyAgbm90ZWQgdGhhdCBpdCBkb2Vz
bid0IHdvcmsuICBOb3Qgc3VycHJpc2luZywgc2luY2UgdGhlIGtlcm5lbCBk
b2VzIG5vdA0KKyAgaGF2ZSBzdXBwb3J0IGZvciBpdC4gKE9EWV9QUkVGRVRD
SCBpcyBub3QgYSBkZWZpbmVkIG9wZXJhdGlvbikuDQorDQorICBFCEVyCHJy
CHJvCG9yCHJzCHMNCisNCisgIE4ITk8IT1QIVEUIRSBHdXQgaXQuIEl0IGlz
bid0IHdvcmtpbmcgYW5kIGlzbid0IHVzZWQgYnkgQ29kYS4NCisNCisgIDB3
cGFnZQ0KKw0KKyAgNAg0LgguMggyOAg4LgguICBzCHNpCGlnCGduCG5hCGFs
CGwNCisNCisgIFMIU3UIdW0IbW0IbWEIYXIIcnkIeSBTZW5kIFZlbnVzIGEg
c2lnbmFsIGFib3V0IGFuIHVwY2FsbC4NCisNCisgIEEIQXIIcmcIZ3UIdW0I
bWUIZW4IbnQIdHMIcw0KKw0KKyAgICAgaQhpbghuIG5vbmUNCisNCisgICAg
IG8Ib3UIdXQIdA0KKyAgICAgICAgbm90IGFwcGxpY2FibGUuDQorDQorICBE
CERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gIFRoaXMgaXMgYW4g
b3V0LW9mLWJhbmQgdXBjYWxsIHRvIFZlbnVzIHRvIGluZm9ybSBWZW51cw0K
KyAgdGhhdCB0aGUgY2FsbGluZyBwcm9jZXNzIHJlY2VpdmVkIGEgc2lnbmFs
IGFmdGVyIFZlbnVzIHJlYWQgdGhlDQorICBtZXNzYWdlIGZyb20gdGhlIGlu
cHV0IHF1ZXVlLiAgVmVudXMgaXMgc3VwcG9zZWQgdG8gY2xlYW4gdXAgdGhl
DQorICBvcGVyYXRpb24uDQorDQorICBFCEVyCHJyCHJvCG9yCHJzCHMgTm8g
cmVwbHkgaXMgZ2l2ZW4uDQorDQorICBOCE5PCE9UCFRFCEUgV2UgbmVlZCB0
byBiZXR0ZXIgdW5kZXJzdGFuZCB3aGF0IFZlbnVzIG5lZWRzIHRvIGNsZWFu
IHVwIGFuZCBpZg0KKyAgaXQgaXMgZG9pbmcgdGhpcyBjb3JyZWN0bHkuICBB
bHNvIHdlIG5lZWQgdG8gaGFuZGxlIG11bHRpcGxlIHVwY2FsbA0KKyAgcGVy
IHN5c3RlbSBjYWxsIHNpdHVhdGlvbnMgY29ycmVjdGx5LiAgSXQgd291bGQg
YmUgaW1wb3J0YW50IHRvIGtub3cNCisgIHdoYXQgc3RhdGUgY2hhbmdlcyBp
biBWZW51cyB0YWtlIHBsYWNlIGFmdGVyIGFuIHVwY2FsbCBmb3Igd2hpY2gg
dGhlDQorICBrZXJuZWwgaXMgcmVzcG9uc2libGUgZm9yIG5vdGlmeWluZyBW
ZW51cyB0byBjbGVhbiB1cCAoZS5nLiBvcGVuDQorICBkZWZpbml0ZWx5IGlz
IHN1Y2ggYSBzdGF0ZSBjaGFuZ2UsIGJ1dCBtYW55IG90aGVycyBhcmUgbWF5
YmUgbm90KS4NCisNCisgIDB3cGFnZQ0KKw0KKyAgNQg1LgguICBUCFRoCGhl
CGUgbQhtaQhpbghuaQhpYwhjYQhhYwhjaAhoZQhlIGEIYW4IbmQIZCBkCGRv
CG93CHduCG5jCGNhCGFsCGxsCGxzCHMNCisNCisgIFRoZSBDb2RhIEZTIERy
aXZlciBjYW4gY2FjaGUgcmVzdWx0cyBvZiBsb29rdXAgYW5kIGFjY2VzcyB1
cGNhbGxzLCB0bw0KKyAgbGltaXQgdGhlIGZyZXF1ZW5jeSBvZiB1cGNhbGxz
LiAgVXBjYWxscyBjYXJyeSBhIHByaWNlIHNpbmNlIGEgcHJvY2Vzcw0KKyAg
Y29udGV4dCBzd2l0Y2ggbmVlZHMgdG8gdGFrZSBwbGFjZS4gIFRoZSBjb3Vu
dGVycGFydCBvZiBjYWNoaW5nIHRoZQ0KKyAgaW5mb3JtYXRpb24gaXMgdGhh
dCBWZW51cyB3aWxsIG5vdGlmeSB0aGUgRlMgRHJpdmVyIHRoYXQgY2FjaGVk
DQorICBlbnRyaWVzIG11c3QgYmUgZmx1c2hlZCBvciByZW5hbWVkLg0KKw0K
KyAgVGhlIGtlcm5lbCBjb2RlIGdlbmVyYWxseSBoYXMgdG8gbWFpbnRhaW4g
YSBzdHJ1Y3R1cmUgd2hpY2ggbGlua3MgdGhlDQorICBpbnRlcm5hbCBmaWxl
IGhhbmRsZXMgKGNhbGxlZCB2bm9kZXMgaW4gQlNELCBpbm9kZXMgaW4gTGlu
dXggYW5kDQorICBGaWxlSGFuZGxlcyBpbiBXaW5kb3dzKSB3aXRoIHRoZSBW
aWNlRmlkJ3Mgd2hpY2ggVmVudXMgbWFpbnRhaW5zLg0KKyAgVGhlciByZWFz
b24gaXMgdGhhdCBmcmVxdWVudCB0cmFuc2xhdGlvbnMgYmFjayBhbmQgZm9y
dGggYXJlIG5lZWRlZCBpbg0KKyAgb3JkZXIgdG8gbWFrZSB1cGNhbGxzIGFu
ZCB1c2UgdGhlIHJlc3VsdHMgb2YgdXBjYWxscy4gIFN1Y2ggbGlua2luZw0K
KyAgb2JqZWN0cyBhcmUgY2FsbGVkIGMIY24Ibm8Ib2QIZGUIZXMIcy4NCisN
CisgIFRoZSBjdXJyZW50IG1pbmljYWNoZSBpbXBsZW1lbnRhdGlvbnMgaGF2
ZSBjYWNoZSBlbnRyaWVzIHdoaWNoIHJlY29yZA0KKyAgdGhlIGZvbGxvd2lu
ZzoNCisNCisgIDEuIHRoZSBuYW1lIG9mIHRoZSBmaWxlDQorDQorICAyLiB0
aGUgY25vZGUgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBvYmpl
Y3QNCisNCisgIDMuIGEgbGlzdCBvZiBDb2RhQ3JlZCdzIGZvciB3aGljaCB0
aGUgbG9va3VwIGlzIHBlcm1pdHRlZC4NCisNCisgIDQuIHRoZSBjbm9kZSBv
ZiB0aGUgb2JqZWN0DQorDQorICBUaGUgbG9va3VwIGNhbGwgaW4gdGhlIENv
ZGEgRlMgRHJpdmVyIG1heSByZXF1ZXN0IHRoZSBjbm9kZSBvZiB0aGUNCisg
IGRlc2lyZWQgb2JqZWN0IGZyb20gdGhlIGNhY2hlLCBieSBwYXNzaW5nIGl0
J3MgbmFtZSwgZGlyZWN0b3J5IGFuZCB0aGUNCisgIENvZGFDcmVkJ3Mgb2Yg
dGhlIGNhbGxlci4gIFRoZSBjYWNoZSB3aWxsIHJldHVybiB0aGUgY25vZGUg
b3IgaW5kaWNhdGUNCisgIGFuZCBpdCBjYW5ub3QgYmUgZm91bmQuICBUaGUg
Q29kYSBGUyBEcml2ZXIgbXVzdCBiZSBjYXJlZnVsIHRvDQorICBpbnZhbGlk
YXRlIGNhY2hlIGVudHJpZXMgd2hlbiBpdCBtb2RpZmllcyBvciByZW1vdmVz
IG9iamVjdHMuDQorDQorICBXaGVuIFZlbnVzIG9idGFpbnMgaW5mb3JtYXRp
b24gdGhhdCBpbmRpY2F0ZXMgdGhhdCBjYWNoZSBlbnRyaWVzIGFyZQ0KKyAg
bm8gbG9uZ2VyIHZhbGlkLCBpdCB3aWxsIG1ha2UgYSBkb3duY2FsbCB0byB0
aGUga2VybmVsLiAgRG93bmNhbGxzIGFyZQ0KKyAgaW50ZXJjZXB0ZWQgYnkg
dGhlIENvZGEgRlMgRHJpdmVyIGFuZCBsZWFkIHRvIGNhY2hlIGludmFsaWRh
dGlvbnMgb2YNCisgIHRoZSBraW5kIGRlc2NyaWJlZCBiZWxvdy4gIFRoZSBD
b2RhIEZTIERyaXZlciBkb2VzIG5vdCByZXR1cm4gYW4gZXJyb3INCisgIHVu
bGVzcyB0aGUgZG93bmNhbGwgZGF0YSBjb3VsZCBub3QgYmUgcmVhZCBpbnRv
IGtlcm5lbCBtZW1vcnkuDQorDQorICA1CDUuCC4xCDEuCC4gIEkISU4ITlYI
VkEIQUwITEkISUQIREEIQVQIVEUIRQ0KKw0KKyAgTm8gaW5mb3JtYXRpb24g
aXMgYXZhaWxhYmxlIG9uIHRoaXMgY2FsbC4NCisNCisgIDUINS4ILjIIMi4I
LiAgRghGTAhMVQhVUwhTSAhIDQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVu
CG50CHRzCHMgTm9uZQ0KKw0KKyAgUwhTdQh1bQhtbQhtYQhhcghyeQh5IEZs
dXNoIHRoZSBuYW1lIGNhY2hlIGVudGlyZWx5Lg0KKw0KKyAgRAhEZQhlcwhz
YwhjcghyaQhpcAhwdAh0aQhpbwhvbghuIFZlbnVzIGlzc3VlcyB0aGlzIGNh
bGwgdXBvbiBzdGFydHVwIGFuZCB3aGVuIGl0IGRpZXMuIFRoaXMNCisgIGlz
IHRvIHByZXZlbnQgc3RhbGUgY2FjaGUgaW5mb3JtYXRpb24gYmVpbmcgaGVs
ZC4gIFNvbWUgb3BlcmF0aW5nDQorICBzeXN0ZW1zIGFsbG93IHRoZSBrZXJu
ZWwgbmFtZSBjYWNoZSB0byBiZSBzd2l0Y2hlZCBvZmYgZHluYW1pY2FsbHku
DQorICBXaGVuIHRoaXMgaXMgZG9uZSwgdGhpcyBkb3duY2FsbCBpcyBtYWRl
Lg0KKw0KKyAgNQg1LgguMwgzLgguICBQCFBVCFVSCFJHCEdFCEVVCFVTCFNF
CEVSCFINCisNCisgIEEIQXIIcmcIZ3UIdW0IbWUIZW4IbnQIdHMIcw0KKw0K
KyAgICAgICAgICBzdHJ1Y3QgY2ZzX3B1cmdldXNlcl9vdXQgey8qIENGU19Q
VVJHRVVTRVIgaXMgYSB2ZW51cy0+a2VybmVsIGNhbGwgKi8NCisgICAgICAg
ICAgICAgIHN0cnVjdCBDb2RhQ3JlZCBjcmVkOw0KKyAgICAgICAgICB9IGNm
c19wdXJnZXVzZXI7DQorDQorICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRp
CGlvCG9uCG4gUmVtb3ZlIGFsbCBlbnRyaWVzIGluIHRoZSBjYWNoZSBjYXJy
eWluZyB0aGUgQ3JlZC4gIFRoaXMNCisgIGNhbGwgaXMgaXNzdWVkIHdoZW4g
dG9rZXMgZm9yIGEgdXNlciBleHBpcmUgb3IgYXJlIGZsdXNoZWQuDQorDQor
ICA1CDUuCC40CDQuCC4gIFoIWkEIQVAIUEYIRkkISUwITEUIRQ0KKw0KKyAg
QQhBcghyZwhndQh1bQhtZQhlbghudAh0cwhzDQorDQorICAgICAgICAgIHN0
cnVjdCBjZnNfemFwZmlsZV9vdXQgeyAgLyogQ0ZTX1pBUEZJTEUgaXMgYSB2
ZW51cy0+a2VybmVsIGNhbGwgKi8NCisgICAgICAgICAgICAgIFZpY2VGaWQg
Q29kYUZpZDsNCisgICAgICAgICAgfSBjZnNfemFwZmlsZTsNCisNCisgIEQI
RGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8Ib24IbiBSZW1vdmUgYWxsIGVu
dHJpZXMgd2hpY2ggaGF2ZSB0aGUgKGRpciB2bm9kZSwgbmFtZSkgcGFpci4N
CisgIFRoaXMgaXMgaXNzdWVkIGFzIGEgcmVzdWx0IG9mIGFuIGludmFsaWRh
dGlvbiBvZiBjYWNoZWQgYXR0cmlidXRlcyBvZg0KKyAgYSB2bm9kZS4NCisN
CisgIE4ITk8IT1QIVEUIRSBDYWxsIGlzIG5vdCBuYW1lZCBjb3JyZWN0bHkg
aW4gTmV0QlNEIGFuZCBNYWNoLiAgVGhlIG1pbmljYWNoZQ0KKyAgemFwZmls
ZSByb3V0aW5lIHRha2VzIGRpZmZlcmVudCBhcmd1bWVudHMuIExpbnV4IGRv
ZXMgbm90IGltcGxlbWVudA0KKyAgdGhlIGludmFsaWRhdGlvbiBvZiBhdHRy
aWJ1dGVzIGNvcnJlY3RseS4NCisNCisgIDUINS4ILjUINS4ILiAgWghaQQhB
UAhQRAhESQhJUghSDQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRz
CHMNCisNCisgICAgICAgICAgc3RydWN0IGNmc196YXBkaXJfb3V0IHsgICAv
KiBDRlNfWkFQRElSIGlzIGEgdmVudXMtPmtlcm5lbCBjYWxsICovDQorICAg
ICAgICAgICAgICBWaWNlRmlkIENvZGFGaWQ7DQorICAgICAgICAgIH0gY2Zz
X3phcGRpcjsNCisNCisgIEQIRGUIZXMIc2MIY3IIcmkIaXAIcHQIdGkIaW8I
b24IbiBSZW1vdmUgYWxsIGVudHJpZXMgaW4gdGhlIGNhY2hlIGx5aW5nIGlu
IGEgZGlyZWN0b3J5DQorICBDb2RhRmlkLCBhbmQgYWxsIGNoaWxkcmVuIG9m
IHRoaXMgZGlyZWN0b3J5LiBUaGlzIGNhbGwgaXMgaXNzZWQgd2hlbg0KKyAg
VmVudXMgcmVjZWl2ZXMgYSBjYWxsYmFjayBvbiB0aGUgdGhpcyBkaXJlY3Rv
cnkuDQorDQorICA1CDUuCC42CDYuCC4gIFoIWkEIQVAIUFYIVk4ITk8IT0QI
REUIRQ0KKw0KKyAgQQhBcghyZwhndQh1bQhtZQhlbghudAh0cwhzDQorDQor
ICAgICAgICAgIHN0cnVjdCBjZnNfemFwdm5vZGVfb3V0IHsgLyogQ0ZTX1pB
UFZOT0RFIGlzIGEgdmVudXMtPmtlcm5lbCBjYWxsICovDQorICAgICAgICAg
ICAgICBzdHJ1Y3QgQ29kYUNyZWQgY3JlZDsNCisgICAgICAgICAgICAgIFZp
Y2VGaWQgVkZpZDsNCisgICAgICAgICAgfSBjZnNfemFwdm5vZGU7DQorDQor
ICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlvCG9uCG4gUmVtb3ZlIGFs
bCBlbnRyaWVzIGluIHRoZSBjYWNoZSBjYXJyeWluZyB0aGUgY3JlZCBhbmQg
VkZpZA0KKyAgYXMgaW4gdGhlIGFyZ3VtZW50cy4gVGhpcyBkb3duY2FsbCBp
cyBwcm9iYWJseSBuZXZlciBpc3N1ZWQuDQorDQorICA1CDUuCC43CDcuCC4g
IFAIUFUIVVIIUkcIR0UIRUYIRkkISUQIRA0KKw0KKyAgUwhTdQh1bQhtbQht
YQhhcghyeQh5DQorDQorICBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMN
CisNCisgICAgICAgICAgc3RydWN0IGNmc19wdXJnZWZpZF9vdXQgeyAvKiBD
RlNfUFVSR0VGSUQgaXMgYSB2ZW51cy0+a2VybmVsIGNhbGwgKi8NCisgICAg
ICAgICAgICAgIFZpY2VGaWQgQ29kYUZpZDsNCisgICAgICAgICAgfSBjZnNf
cHVyZ2VmaWQ7DQorDQorICBECERlCGVzCHNjCGNyCHJpCGlwCHB0CHRpCGlv
CG9uCG4gRmx1c2ggdGhlIGF0dHJpYnV0ZSBmb3IgdGhlIGZpbGUuIElmIGl0
IGlzIGEgZGlyIChvZGQNCisgIHZub2RlKSwgcHVyZ2UgaXRzIGNoaWxkcmVu
IGZyb20gdGhlIG5hbWVjYWNoZSByZW1vdmUgdGhlIGZpbGUgZnJvbSB0aGUN
CisgIG5hbWVjYWNoZS4NCisNCisgIDUINS4ILjgIOC4ILiAgUghSRQhFUAhQ
TAhMQQhBQwhDRQhFDQorDQorICBTCFN1CHVtCG1tCG1hCGFyCHJ5CHkgUmVw
bGFjZSB0aGUgRmlkJ3MgZm9yIGEgY29sbGVjdGlvbiBvZiBuYW1lcy4NCisN
CisgIEEIQXIIcmcIZ3UIdW0IbWUIZW4IbnQIdHMIcw0KKw0KKyAgICAgICAg
ICBzdHJ1Y3QgY2ZzX3JlcGxhY2Vfb3V0IHsgLyogY2ZzX3JlcGxhY2UgaXMg
YSB2ZW51cy0+a2VybmVsIGNhbGwgKi8NCisgICAgICAgICAgICAgIFZpY2VG
aWQgTmV3RmlkOw0KKyAgICAgICAgICAgICAgVmljZUZpZCBPbGRGaWQ7DQor
ICAgICAgICAgIH0gY2ZzX3JlcGxhY2U7DQorDQorICBECERlCGVzCHNjCGNy
CHJpCGlwCHB0CHRpCGlvCG9uCG4gVGhpcyByb3V0aW5lIHJlcGxhY2VzIGEg
VmljZUZpZCBpbiB0aGUgbmFtZSBjYWNoZSB3aXRoDQorICBhbm90aGVyLiAg
SXQgaXMgYWRkZWQgdG8gYWxsb3cgVmVudXMgZHVyaW5nIHJlaW50ZWdyYXRp
b24gdG8gcmVwbGFjZQ0KKyAgbG9jYWxseSBhbGxvY2F0ZWQgdGVtcCBmaWRz
IHdoaWxlIGRpc2Nvbm5lY3RlZCB3aXRoIGdsb2JhbCBmaWRzIGV2ZW4NCisg
IHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBvbiB0aG9zZSBmaWRzIGFyZSBu
b3QgemVyby4NCisNCisgIDB3cGFnZQ0KKw0KKyAgNgg2LgguICBJCEluCG5p
CGl0CHRpCGlhCGFsCGxpCGl6CHphCGF0CHRpCGlvCG9uCG4gYQhhbghuZAhk
IGMIY2wIbGUIZWEIYW4IbnUIdXAIcA0KKw0KKyAgVGhpcyBzZWN0aW9uIGdp
dmVzIGJyaWVmIGhpbnRzIGFzIHRvIGRlc2lyYWJsZSBmZWF0dXJlcyBmb3Ig
dGhlIENvZGENCisgIEZTIERyaXZlciBhdCBzdGFydHVwIGFuZCB1cG9uIHNo
dXRkb3duIG9yIFZlbnVzIGZhaWx1cmVzLiAgQmVmb3JlDQorICBlbnRlcmlu
ZyB0aGUgZGlzY3Vzc2lvbiBpdCBpcyB1c2VmdWwgdG8gcmVwZWF0IHRoYXQg
dGhlIENvZGEgRlMgRHJpdmVyDQorICBtYWludGFpbnMgdGhlIGZvbGxvd2lu
ZyBkYXRhOg0KKw0KKyAgMS4gbWVzc2FnZSBxdWV1ZXMNCisNCisgIDIuIGNu
b2Rlcw0KKw0KKyAgMy4gbmFtZSBjYWNoZSBlbnRyaWVzDQorDQorICAgICBU
aGUgbmFtZSBjYWNoZSBlbnRyaWVzIGFyZSBlbnRpcmVseSBwcml2YXRlIHRv
IHRoZSBkcml2ZXIsIHNvIHRoZXkNCisgICAgIGNhbiBlYXNpbHkgYmUgbWFu
aXB1bGF0ZWQuICAgVGhlIG1lc3NhZ2UgcXVldWVzIHdpbGwgZ2VuZXJhbGx5
IGhhdmUNCisgICAgIGNsZWFyIHBvaW50cyBvZiBpbml0aWFsaXphdGlvbiBh
bmQgZGVzdHJ1Y3Rpb24uICBUaGUgY25vZGVzIGFyZQ0KKyAgICAgbXVjaCBt
b3JlIGRlbGljYXRlLiAgVXNlciBwcm9jZXNzZXMgaG9sZCByZWZlcmVuY2Ug
Y291bnRzIGluIENvZGENCisgICAgIGZpbGVzeXN0ZW1zIGFuZCBpdCBjYW4g
YmUgZGlmZmljdWx0IHRvIGNsZWFuIHVwIHRoZSBjbm9kZXMuDQorDQorICBJ
dCBjYW4gZXhwZWN0IHJlcXVlc3RzIHRocm91Z2g6DQorDQorICAxLiB0aGUg
bWVzc2FnZSBzdWJzeXN0ZW0NCisNCisgIDIuIHRoZSBWRlMgbGF5ZXINCisN
CisgIDMuIHBpb2N0bCBpbnRlcmZhY2UNCisNCisgICAgIEN1cnJlbnRseSB0
aGUgXwhwXwhpXwhvXwhjXwh0XwhsIHBhc3NlcyB0aHJvdWdoIHRoZSBWRlMg
Zm9yIENvZGEgc28gd2UgY2FuDQorICAgICB0cmVhdCB0aGVzZSBzaW1pbGFy
bHkuDQorDQorICA2CDYuCC4xCDEuCC4gIFIIUmUIZXEIcXUIdWkIaXIIcmUI
ZW0IbWUIZW4IbnQIdHMIcw0KKw0KKyAgVGhlIGZvbGxvd2luZyByZXF1aXJl
bWVudHMgc2hvdWxkIGJlIGFjY29tb2RhdGVkOg0KKw0KKyAgMS4gVGhlIG1l
c3NhZ2UgcXVldWV1cyBzaG91bGQgaGF2ZSBvcGVuIGFuZCBjbG9zZSByb3V0
aW5lcy4gIE9uIFVuaXgNCisgICAgIHRoZSBvcGVuaW5nIG9mIHRoZSBjaGFy
YWN0ZXIgZGV2aWNlcyBhcmUgc3VjaCByb3V0aW5lcy4NCisNCisgICsIbyAg
QmVmb3JlIG9wZW5pbmcsIG5vIG1lc3NhZ2VzIGNhbiBiZSBwbGFjZWQuDQor
DQorICArCG8gIE9wZW5pbmcgd2lsbCByZW1vdmUgYW55IG9sZCBtZXNzYWdl
cyBzdGlsbCBwZW5kaW5nLg0KKw0KKyAgKwhvICBDbG9zZSB3aWxsIG5vdGlm
eSBhbnkgc2xlZXBpbmcgcHJvY2Vzc2VzIHRoYXQgdGhlaXIgdXBjYWxsIGNh
bm5vdA0KKyAgICAgYmUgY29tcGxldGVkLg0KKw0KKyAgKwhvICBDbG9zZSB3
aWxsIGZyZWUgYWxsIG1lbW9yeSBhbGxvY2F0ZWQgYnkgdGhlIG1lc3NhZ2Ug
cXVldWVzLg0KKw0KKyAgMi4gQXQgb3BlbiB0aGUgbmFtZWNhY2hlIHNoYWxs
IGJlIGluaXRpYWxpemVkIHRvIGVtcHR5IHN0YXRlLg0KKw0KKyAgMy4gQmVm
b3JlIHRoZSBtZXNzYWdlIHF1ZXVlcyBhcmUgb3BlbiwgYWxsIFZGUyBvcGVy
YXRpb25zIHdpbGwgZmFpbC4NCisgICAgIEZvcnR1bmF0ZWx5IHRoaXMgY2Fu
IGJlIGFjaGlldmVkIGJ5IG1ha2luZyBzdXJlIHRoYW4gbW91bnRpbmcgdGhl
DQorICAgICBDb2RhIGZpbGVzeXN0ZW0gY2Fubm90IHN1Y2NlZWQgYmVmb3Jl
IG9wZW5pbmcuDQorDQorICA0LiBBZnRlciBjbG9zaW5nIG9mIHRoZSBxdWV1
ZXMsIG5vIFZGUyBvcGVyYXRpb25zIGNhbiBzdWNjZWVkLiAgSGVyZQ0KKyAg
ICAgb25lIG5lZWRzIHRvIGJlIGNhcmVmdWwsIHNpbmNlIGEgZmV3IG9wZXJh
dGlvbnMgKGxvb2t1cCwNCisgICAgIHJlYWQvd3JpdGUsIHJlYWRkaXIpIGNh
biBwcm9jZWVkIHdpdGhvdXQgdXBjYWxscy4gIFRoZXNlIG11c3QgYmUNCisg
ICAgIGV4cGxpY2l0bHkgYmxvY2tlZC4NCisNCisgIDUuIFVwb24gY2xvc2lu
ZyB0aGUgbmFtZWNhY2hlIHNoYWxsIGJlIGZsdXNoZWQgYW5kIGRpc2FibGVk
Lg0KKw0KKyAgNi4gQWxsIG1lbW9yeSBoZWxkIGJ5IGNub2RlcyBjYW4gYmUg
ZnJlZWQgd2l0aG91dCByZWx5aW5nIG9uIHVwY2FsbHMuDQorDQorICA3LiBV
bm1vdW50aW5nIHRoZSBmaWxlIHN5c3RlbSBjYW4gYmUgZG9uZSB3aXRob3V0
IHJlbHlpbmcgb24gdXBjYWxzcy4NCisNCisgIDguIE1vdW50aW5nIHRoZSBD
b2RhIGZpbGVzeXN0ZW0gc2hvdWxkIGZhaWwgZ3JhY2VmdWxseSBpZiBWZW51
cyBjYW5ub3QNCisgICAgIGdldCB0aGUgcm9vdGZpZCBvciB0aGUgYXR0cmli
dXRlcyBvZiB0aGUgcm9vdGZpZC4gIFRoZSBsYXR0ZXIgaXMNCisgICAgIGJl
c3QgaW1wbGVtZW50ZWQgYnkgVmVudXMgZmV0Y2hpbmcgdGhlc2Ugb2JqZWN0
cyBiZWZvcmUgYXR0ZW1wdGluZw0KKyAgICAgdG8gbW91bnQuDQorDQorICBO
CE5PCE9UCFRFCEUgIE5ldEJTRCBpbiBwYXJ0aWN1bGFyIGJ1dCBhbHNvIExp
bnV4IGhhdmUgbm90IGltcGxlbWVudGVkIHRoZQ0KKyAgYWJvdmUgcmVxdWly
ZW1lbnRzIGZ1bGx5LiAgRm9yIHNtb290aCBvcGVyYXRpb24gdGhpcyBuZWVk
cyB0byBiZQ0KKyAgY29ycmVjdGVkLg0KKw0K
--41945269-1273008710-881446976=:31248--