SGkgTWljaGFsLA0KDQogICAgVGhpcyBwcm9ibGVtIGlzIHRyaWdnZXJyZWQgYnkgbGlidmlydCBw
eXRob24ncyBleGFtcGxlIGV2ZW50LXRlc3QucHkuIHRoZSBvcmlnaW5hbCBleGFtcGxlcyBoYXMg
cmVzb3VjZSBsZWFrIGlzc3VlDQoNCmF0IHRoZSByZW1vdmVfaGFuZGxlIGFuZCByZW1vdmVfdGlt
ZXIuIA0KDQogICAgd2l0aCAicHl0aG9uIC11IGV2ZW50LXRlc3QucHkiIHJ1biB0aGlzIGV4YW1w
bGUgYW5kICJzeXN0ZW1jdGwgcmVzdGFydCBsaWJ2aXJ0ZC5zZXJ2aWNlIiB3aWxsIHRyaWdnZXIg
cmVzb3VyY2UgbGVhayBwcm9ibGVtLg0KDQp3aXRoIGxzb2YgLXAgPGV2ZW50LXRlc3QucGlkPiBj
YW4gc2VlIHNvY2tldCBoYW5kbGVyJ3MgbnVtYmVyIGluY3JlYXNlZCAsIGFmdGVyIHJlc3RhcnQg
bGlidmlydGQuc2VyaXZjZSBlYWNoIHRpbWUuDQoNCiAgICB0aGUgcmVhc29uIGlzIHJlbW92ZV9o
YW5kbGUgYW5kIHJlbW92ZV90aW1lciBkbyBub3QgcmV0dXJuIHRoZSByZW1vdmUgaGFuZGxlIGlu
Zm9ybWF0aW9uIHRvIGxpYnZpcnQtcHl0aG9uJ3MgZnJhbWV3b3JrLiANCg0KbGl0dGxlIHBhdGNo
IHdhcyBhcHBseSB0byB0aGlzIGV4YW1wbGUsIHRvIGZpeCB0aGlzIHByb2JsZW0uDQoNCiAgIE5v
dywgcnVuIHRoaXMgZXhhbXBsZSBhZ2FpbiBhbmQgcmVzdGFydCBsaWJ2aXJ0ZC5zZXJ2aWNlICwg
Y2FsbCBzZXF1ZW5jZSB2aXJOZXRTb2NrZXRSZW1vdmVJT0NhbGxiYWNrLT52aXJOZXRTb2NrZXRF
dmVudEZyZWUgDQoNCmNhbiBiZSBvYnNlcnZlZCAsIHRoZSBuby1yZWN1cnNpdmUgbXV0ZXgsIGxv
Y2sgd2l0aCByZWN1cnNpdmUgaXNzdWUgY2FuIGJlIHNlZW4uIA0KDQogICAgeW91IGNhbiBjaGVj
ayB0aGUgZGV0YWlsIHN0YWNrIHRyYWNlIGFuZCBvdXIgY29tbWVudHMgYWJvdXQgdGhlIGxvY2sn
cyBpc3N1ZSBpbiBmdW5jdGlvbiB2aXJOZXRTb2NrZXRFdmVudEZyZWUgIGluIHRoZSBmb2xsb3dp
bmcuDQoNCg0KDQoNCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gIA0KDQogZGVmIGFkZF90aW1lcihzZWxmLCBpbnRl
cnZhbCwgY2IsIG9wYXF1ZSk6DQoNCiAgICAgICAgdGltZXJJRCA9IHNlbGYubmV4dFRpbWVySUQg
KyAxDQoNCiAgICAgICAgc2VsZi5uZXh0VGltZXJJRCA9IHNlbGYubmV4dFRpbWVySUQgKyAxDQoN
Cg0KDQoNCiAgICAgICAgaCA9IHNlbGYudmlyRXZlbnRMb29wUHVyZVRpbWVyKHRpbWVySUQsIGlu
dGVydmFsLCBjYiwgb3BhcXVlKQ0KDQogICAgICAgIHNlbGYudGltZXJzLmFwcGVuZChoKQ0KDQot
ICAgICAgIHNlbGYudGltZXJzX29wYXF1ZVt0aW1lcklEXSA9IG9wYXF1ZQ0KDQogICAgICAgIHNl
bGYuaW50ZXJydXB0KCkNCg0KDQoNCg0KICAgICAgICBkZWJ1ZygiQWRkIHRpbWVyICVkIGludGVy
dmFsICVkIiAlICh0aW1lcklELCBpbnRlcnZhbCkpDQoNCg0KDQoNCiAgICAgICAgcmV0dXJuIHRp
bWVySUQNCg0KDQoNCg0KDQoNCg0KICAgICBkZWYgcmVtb3ZlX2hhbmRsZShzZWxmLCBoYW5kbGVJ
RCk6DQoNCiAgICAgICAgIGhhbmRsZXMgPSBbXQ0KDQotICAgICAgICBvcGFxdWUgPSBOb25lDQoN
CiAgICAgICAgIGZvciBoIGluIHNlbGYuaGFuZGxlczoNCg0KICAgICAgICAgICAgIGlmIGguZ2V0
X2lkKCkgPT0gaGFuZGxlSUQ6DQoNCiAgICAgICAgICAgICAgICAgc2VsZi5wb2xsLnVucmVnaXN0
ZXIoaC5nZXRfZmQoKSkNCg0KLSAgICAgICAgICAgICAgICBvcGFxdWUgPSBzZWxmLm9wYXF1ZXNb
aGFuZGxlSURdDQoNCi0gICAgICAgICAgICAgICAgZGVsIHNlbGYub3BhcXVlc1toYW5kbGVJRF0N
Cg0KICAgICAgICAgICAgICAgICBkZWJ1ZygiUmVtb3ZlIGhhbmRsZSAlZCBmZCAlZCIgJSAoaGFu
ZGxlSUQsIGguZ2V0X2ZkKCkpKQ0KDQogICAgICAgICAgICAgZWxzZToNCg0KICAgICAgICAgICAg
ICAgICBoYW5kbGVzLmFwcGVuZChoKQ0KDQogICAgICAgICBzZWxmLmhhbmRsZXMgPSBoYW5kbGVz
DQoNCiAgICAgICAgIHNlbGYuaW50ZXJydXB0KCkNCg0KLSAgICAgICAgcmV0dXJuIG9wYXF1ZQ0K
DQoNCg0KDQogICAgICMgU3RvcCBmaXJpbmcgdGhlIHBlcmlvZGljIHRpbWVyDQoNCiAgICAgZGVm
IHJlbW92ZV90aW1lcihzZWxmLCB0aW1lcklEKToNCg0KICAgICAgICAgdGltZXJzID0gW10NCg0K
LSAgICAgICAgb3BhcXVlID0gTm9uZQ0KDQogICAgICAgICBmb3IgaCBpbiBzZWxmLnRpbWVyczoN
Cg0KICAgICAgICAgICAgIGlmIGguZ2V0X2lkKCkgIT0gdGltZXJJRDoNCg0KICAgICAgICAgICAg
ICAgICB0aW1lcnMuYXBwZW5kKGgpDQoNCi0gICAgICAgICAgICBlbHNlOg0KDQotICAgICAgICAg
ICAgICAgIG9wYXF1ZSA9IHNlbGYudGltZXJzX29wYXF1ZVt0aW1lcklEXQ0KDQogICAgICAgICAg
ICAgICAgIGRlYnVnKCJSZW1vdmUgdGltZXIgJWQiICUgdGltZXJJRCkNCg0KICAgICAgICAgc2Vs
Zi50aW1lcnMgPSB0aW1lcnMNCg0KICAgICAgICAgc2VsZi5pbnRlcnJ1cHQoKQ0KDQotICAgICAg
ICByZXR1cm4gb3BhcXVlDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQoNCg0KDQoN
Cj4+T24gMDcvMTUvMjAxNyAwNTowMCBQTSwgUGVuZyBIYW8gd3JvdGU6DQoNCj4+IHZpck5ldFNv
Y2tldFJlbW92ZUlPQ2FsbGJhY2sgZ2V0IHNvY2sncyBPYmplY3RMb2NrIGFuZCB3aWxsIGNhbGwN
Cg0KPj4gdmlyTmV0U29ja2V0RXZlbnRGcmVlLiB2aXJOZXRTb2NrZXRFdmVudEZyZWUgbWF5IGJl
IGZyZWUgc29jaw0KDQo+PiBvYmplY3QgYW5kIHZpck5ldFNvY2tldFJlbW92ZUlPQ2FsbGJhY2sg
d2lsbCBhY2Nlc3MgYSBudWxsIHBvaW50ZXINCg0KPj4gaW4gcmVsZWFzZSBzb2NrJ3MgT2JqZWN0
TG9jay4NCg0KPj4gDQoNCj4+IFNpZ25lZC1vZmYtYnk6IExpdSBZdW4gPGxpdS55dW5oQHp0ZS5j
b20uY24+DQoNCj4+IFNpZ25lZC1vZmYtYnk6IFBlbmcgSGFvIDxwZW5nLmhhbzJAenRlLmNvbS5j
bj4NCg0KPj4gLS0tDQoNCj4+ICBzcmMvcnBjL3Zpcm5ldHNvY2tldC5jIHwgNiArKystLS0NCg0K
Pj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQoNCj4+
IA0KDQo+DQoNCj5JIGRvbid0IHRoaW5rIHRoaXMgY2FuIHdvcmsuDQoNCj4NCg0KPj4gZGlmZiAt
LWdpdCBhL3NyYy9ycGMvdmlybmV0c29ja2V0LmMgYi9zcmMvcnBjL3Zpcm5ldHNvY2tldC5jDQoN
Cj4+IGluZGV4IGQyMjhjOGEuLjhiNTUwZTggMTAwNjQ0DQoNCj4+IC0tLSBhL3NyYy9ycGMvdmly
bmV0c29ja2V0LmMNCg0KPj4gKysrIGIvc3JjL3JwYy92aXJuZXRzb2NrZXQuYw0KDQo+PiBAQCAt
MjE0MCwxNCArMjE0MCwxMiBAQCBzdGF0aWMgdm9pZCB2aXJOZXRTb2NrZXRFdmVudEZyZWUodm9p
ZCAqb3BhcXVlKQ0KDQo+PiAgICAgIHZpckZyZWVDYWxsYmFjayBmZg0KDQo+PiAgICAgIHZvaWQg
KmVvcGFxdWUNCg0KPj4gIA0KDQo+PiAtICAgIHZpck9iamVjdExvY2soc29jaykNCg0KPj4gICAg
ICBmZiA9IHNvY2stPmZmDQoNCj4+ICAgICAgZW9wYXF1ZSA9IHNvY2stPm9wYXF1ZQ0KDQo+PiAg
ICAgIHNvY2stPmZ1bmMgPSBOVUxMDQoNCj4+ICAgICAgc29jay0+ZmYgPSBOVUxMDQoNCj4+ICAg
ICAgc29jay0+b3BhcXVlID0gTlVMTA0KDQo+PiAtICAgIHZpck9iamVjdFVubG9jayhzb2NrKQ0K
DQo+DQoNCj5JIHRoaW5rIHdlIG5lZWQgdGhlIGxvY2sgaGVyZS4gVGhpcyBmdW5jdGlvbiBpcyBj
YWxsZWQgZnJvbSB0aGUgZXZlbnQNCg0KPmxvb3AgdGhyZWFkLiBTbyBldmVuIGlmIHZpck5ldFNv
Y2tldFVwZGF0ZUlPQ2FsbGJhY2soKSBsb2NrcyB0aGUgQHNvY2tldA0KDQo+dGhpcyBjb2RlIGNh
biBzZWUgaXQgdW5sb2NrZWQuIE9yIGxvY2tlZC4gQnV0IHRoZSBjcnVjaWFsIHBhcnQgaXMgaXQn
cw0KDQo+bW9kaWZ5aW5nIHRoZSBvYmplY3QgYW5kIHRodXMgc2hvdWxkIGhhdmUgbG9jayBoZWxk
Lg0KDQo+DQoNCiAgIEkgaGF2ZSBjaGVjayB0aGUgY29kZSAsIGluIGRlZmF1bHQgaW1wbGVtZW50
YXRpb24gb2YgZXZlbnRQb2xsLCB2aXJFdmVudFBvbGxSdW5PbmNlIGFsd2F5cyBkaXNwYXRjaCBh
bmQgY2xlYXIgaW4gb25lIHRocmVhZCBsb29wLA0KDQpzbywgdGhlIGxvY2sgaW4gdGhlIHZpck5l
dFNvY2tldEV2ZW50RnJlZSBtYXkgYmUgdW5uZXNzYXJ5Lg0KDQoNCg0KDQo+PiAtDQoNCj4+ICsg
IA0KDQo+PiAgICAgIGlmIChmZikNCg0KPj4gICAgICAgICAgZmYoZW9wYXF1ZSkNCg0KPj4gIA0K
DQo+PiBAQCAtMjIwNyw2ICsyMjA1LDcgQEAgdm9pZCB2aXJOZXRTb2NrZXRVcGRhdGVJT0NhbGxi
YWNrKHZpck5ldFNvY2tldFB0ciBzb2NrLA0KDQo+PiAgDQoNCj4+ICB2b2lkIHZpck5ldFNvY2tl
dFJlbW92ZUlPQ2FsbGJhY2sodmlyTmV0U29ja2V0UHRyIHNvY2spDQoNCj4+ICB7DQoNCj4+ICsg
ICAgdmlyT2JqZWN0UmVmKHNvY2spDQoNCg0KDQoNClRoaXMgc2hvdWxkIGJlIG1pc3Rha2Ugd2hl
biBnZW5lcmF0ZSB0aGUgcGF0Y2guIFRoZSBjb3JyZWN0IG9uZSBpcyANCg0KICAgICArICAgIHZp
ck9iamVjdFVucmVmKHNvY2spDQoNCj4+ICAgICAgdmlyT2JqZWN0TG9jayhzb2NrKQ0KDQo+DQoN
Cj5JIHRoaW5rIHRoaXMgaXMgd2hhdCBhY3R1YWxseSBmaXhlcyB5b3VyIHByb2JsZW0uIEhvd2V2
ZXIsIEkgYWxzbyB0aGluaw0KDQo+aXQgaW50cm9kdWNlcyB1bmV2ZW4gcmF0aW8gb2YgcmVmOnVu
cmVmIGNhbGxzLg0KDQo+DQoNCj4+ICANCg0KPj4gICAgICBpZiAoc29jay0+d2F0Y2ggPCAwKSB7
DQoNCj4+IEBAIC0yMjIwLDYgKzIyMTksNyBAQCB2b2lkIHZpck5ldFNvY2tldFJlbW92ZUlPQ2Fs
bGJhY2sodmlyTmV0U29ja2V0UHRyIHNvY2spDQoNCj4+ICAgICAgc29jay0+d2F0Y2ggPSAtMQ0K
DQo+PiAgDQoNCj4+ICAgICAgdmlyT2JqZWN0VW5sb2NrKHNvY2spDQoNCj4+ICsgICAgdmlyT2Jq
ZWN0UmVmKHNvY2spDQoNCg0KDQoNCg0KVGhpcyBzaG91bGQgYmUgbWlzdGFrZSB3aGVuIGdlbmVy
YXRlIHRoZSBwYXRjaC4gVGhlIGNvcnJlY3Qgb25lIGlzIA0KDQoNCiAgICAgKyAgICB2aXJPYmpl
Y3RVbnJlZihzb2NrKQ0KDQo+DQoNCj5JdCBkZWZpbml0ZWx5IGRvZXMgc28gYmVjYXVzZSB5b3Ug
cmVmIHR3aWNlLiBBbnl3YXksIGRvIHlvdSBwZXJoYXBzIGhhdmUNCg0KPmEgYmFja3RyYWNlIHRv
IHNoYXJlPw0KDQogICAgDQoNCiMwICBfX2xsbF9sb2NrX3dhaXQgKCkNCg0KICAgIGF0IC4uL25w
dGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2xvd2xldmVsbG9jay5TOjEzNQ0KDQoj
MSAgMHgwMDAwN2ZkZTYyMDdjZDAyIGluIF9MX2xvY2tfNzkxICgpIGZyb20gL2xpYjY0L2xpYnB0
aHJlYWQuc28uMA0KDQojMiAgMHgwMDAwN2ZkZTYyMDdjYzA4IGluIF9fR0lfX19wdGhyZWFkX211
dGV4X2xvY2sgKA0KDQogICAgbXV0ZXg9bXV0ZXhAZW50cnk9MHgxMTljM2UwKSBhdCBwdGhyZWFk
X211dGV4X2xvY2suYzo2NA0KDQojMyAgMHgwMDAwN2ZkZTVhOTdlZTE1IGluIHZpck11dGV4TG9j
ayAobT1tQGVudHJ5PTB4MTE5YzNlMCkNCg0KICAgIGF0IHV0aWwvdmlydGhyZWFkLmM6ODkNCg0K
IzQgIDB4MDAwMDdmZGU1YTk2MDhhZSBpbiB2aXJPYmplY3RMb2NrIChhbnlvYmo9YW55b2JqQGVu
dHJ5PTB4MTE5YzNkMCkNCg0KICAgIGF0IHV0aWwvdmlyb2JqZWN0LmM6MzIzDQoNCiM1ICAweDAw
MDA3ZmRlNWFhYTc1MmMgaW4gdmlyTmV0U29ja2V0RXZlbnRGcmVlIChvcGFxdWU9MHgxMTljM2Qw
KQ0KDQogICAgYXQgcnBjL3Zpcm5ldHNvY2tldC5jOjIxMzQNCg0KIzYgIDB4MDAwMDdmZGU1YWU1
N2Y4NyBpbiBsaWJ2aXJ0X3ZpckV2ZW50UmVtb3ZlSGFuZGxlRnVuYyAoDQoNCiAgICB3YXRjaD08
b3B0aW1pemVkIG91dD4pIGF0IGxpYnZpcnQtb3ZlcnJpZGUuYzo1NDk2DQoNCiM3ICAweDAwMDA3
ZmRlNWFhYWFjNjkgaW4gdmlyTmV0U29ja2V0UmVtb3ZlSU9DYWxsYmFjayAoc29jaz0weDExOWMz
ZDApDQoNCiAgICBhdCBycGMvdmlybmV0c29ja2V0LmM6MjIxMg0KDQojOCAgMHgwMDAwN2ZkZTVh
YTk2ZDc2IGluIHZpck5ldENsaWVudE1hcmtDbG9zZSAoY2xpZW50PTB4MTE5YzY1MCwgcmVhc29u
PTApDQoNCiAgICBhdCBycGMvdmlybmV0Y2xpZW50LmM6Nzc5DQoNCiM5ICAweDAwMDA3ZmRlNWFh
OTcwZWIgaW4gdmlyTmV0Q2xpZW50SW5jb21pbmdFdmVudCAoc29jaz0weDExOWMzZDAsIGV2ZW50
cz05LA0KDQogICAgb3BhcXVlPTB4MTE5YzY1MCkgYXQgcnBjL3Zpcm5ldGNsaWVudC5jOjE5ODUN
Cg0KIzEwIDB4MDAwMDdmZGU1YWU0YjM0NyBpbiBsaWJ2aXJ0X3ZpckV2ZW50SW52b2tlSGFuZGxl
Q2FsbGJhY2sgKA0KDQogICAgc2VsZj08b3B0aW1pemVkIG91dD4sIGFyZ3M9PG9wdGltaXplZCBv
dXQ+KSBhdCBsaWJ2aXJ0LW92ZXJyaWRlLmM6NTcxOA0KDQojMTEgMHgwMDAwN2ZkZTYyMzZmYWE0
IGluIFB5RXZhbF9FdmFsRnJhbWVFeCAoKSBmcm9tIC9saWI2NC9saWJweXRob24yLjcuc28uMS4w
DQoNCiMxMiAweDAwMDA3ZmRlNjIzNzEwYmQgaW4gUHlFdmFsX0V2YWxDb2RlRXggKCkgZnJvbSAv
bGliNjQvbGlicHl0aG9uMi43LnNvLjEuMA0KDQotLS1UeXBlIDxyZXR1cm4+IHRvIGNvbnRpbnVl
LCBvciBxIDxyZXR1cm4+IHRvIHF1aXQtLS0NCg0KIzEzIDB4MDAwMDdmZGU2MjM2Zjc2ZiBpbiBQ
eUV2YWxfRXZhbEZyYW1lRXggKCkgZnJvbSAvbGliNjQvbGlicHl0aG9uMi43LnNvLjEuMA0KDQoj
MTQgMHgwMDAwN2ZkZTYyMzZmODYwIGluIFB5RXZhbF9FdmFsRnJhbWVFeCAoKSBmcm9tIC9saWI2
NC9saWJweXRob24yLjcuc28uMS4wDQoNCiMxNSAweDAwMDA3ZmRlNjIzNmY4NjAgaW4gUHlFdmFs
X0V2YWxGcmFtZUV4ICgpIGZyb20gL2xpYjY0L2xpYnB5dGhvbjIuNy5zby4xLjANCg0KIzE2IDB4
MDAwMDdmZGU2MjM2Zjg2MCBpbiBQeUV2YWxfRXZhbEZyYW1lRXggKCkgZnJvbSAvbGliNjQvbGli
cHl0aG9uMi43LnNvLjEuMA0KDQojMTcgMHgwMDAwN2ZkZTYyMzcxMGJkIGluIFB5RXZhbF9FdmFs
Q29kZUV4ICgpIGZyb20gL2xpYjY0L2xpYnB5dGhvbjIuNy5zby4xLjANCg0KIzE4IDB4MDAwMDdm
ZGU2MjJmZTA1ZCBpbiBmdW5jdGlvbl9jYWxsICgpIGZyb20gL2xpYjY0L2xpYnB5dGhvbjIuNy5z
by4xLjANCg0KIzE5IDB4MDAwMDdmZGU2MjJkOTBiMyBpbiBQeU9iamVjdF9DYWxsICgpIGZyb20g
L2xpYjY0L2xpYnB5dGhvbjIuNy5zby4xLjANCg0KIzIwIDB4MDAwMDdmZGU2MjM2YzJmNyBpbiBQ
eUV2YWxfRXZhbEZyYW1lRXggKCkgZnJvbSAvbGliNjQvbGlicHl0aG9uMi43LnNvLjEuMA0KDQoj
MjEgMHgwMDAwN2ZkZTYyMzZmODYwIGluIFB5RXZhbF9FdmFsRnJhbWVFeCAoKSBmcm9tIC9saWI2
NC9saWJweXRob24yLjcuc28uMS4wDQoNCiMyMiAweDAwMDA3ZmRlNjIzNmY4NjAgaW4gUHlFdmFs
X0V2YWxGcmFtZUV4ICgpIGZyb20gL2xpYjY0L2xpYnB5dGhvbjIuNy5zby4xLjANCg0KIzIzIDB4
MDAwMDdmZGU2MjM3MTBiZCBpbiBQeUV2YWxfRXZhbENvZGVFeCAoKSBmcm9tIC9saWI2NC9saWJw
eXRob24yLjcuc28uMS4wDQoNCiMyNCAweDAwMDA3ZmRlNjIyZmRmNjggaW4gZnVuY3Rpb25fY2Fs
bCAoKSBmcm9tIC9saWI2NC9saWJweXRob24yLjcuc28uMS4wDQoNCiMyNSAweDAwMDA3ZmRlNjIy
ZDkwYjMgaW4gUHlPYmplY3RfQ2FsbCAoKSBmcm9tIC9saWI2NC9saWJweXRob24yLjcuc28uMS4w
DQoNCiMyNiAweDAwMDA3ZmRlNjIyZTgwYTUgaW4gaW5zdGFuY2VtZXRob2RfY2FsbCAoKQ0KDQoN
Cg0KDQo+DQoNCj5NaWNoYWwNCg0KDQoNCg0KDQoNCg0KDQpCZXN0UmVnYXJkcw0KDQogIExpdVl1
bg0KDQoNCg0KDQoNCg0K5Y6f5aeL6YKu5Lu2