cps & contification

Matthew Fluet fluet@CS.Cornell.EDU
Mon, 15 Jan 2001 17:51:47 -0500 (EST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-341603450-979599107=:6540
Content-Type: TEXT/PLAIN; charset=US-ASCII


> Can you mail me the raytrace benchmark?  It hasn't made it into my benchmark
> suite yet.

It's just the version from the ICFP contest that you sent me a couple of
months ago.  I hardwired it to read "DATA/fractal.pp.gml" and I modified
fractal.pp.gml (the preprocessed fractal.gml file) to output to
"DATA/fractal.ppm" and to produce a 600 x 400 image.

> > The one other inconsistency that I discovered was in the regression suite
> > with list.sml.  I got two functions determined to be call-contifiable, but
> > neither cont- nor new- contifiable.  While this is true, what really
> > happened was that the new analysis determined that those two functions had
> > no return continuation (i.e., they were never called in execution of the
> > program); interestingly, the cont-analysis did not determine that the
> > functions had an empty continuation set.
> 
> This is weird, but I'm willing to ignore it since it seems we will be going with 
> some variant of the new analysis pretty soon anyways.

Those two functions go away between the first and second contify passes,
so some other analysis is reaching the same conclusion.


---559023410-341603450-979599107=:6540
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="raytrace.sml"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95.1010115175146.6540E@hoho.cs.cornell.edu>
Content-Description: 

KCogcmF5dHJhY2Uuc21sICopDQpzaWduYXR1cmUgQ0FNTCA9DQogICBzaWcNCiAgICAgIHR5cGUg
ZmxvYXQgPSByZWFsDQogICAgICB0eXBlIGludCA9IGludA0KICAgZW5kDQoNCnN0cnVjdHVyZSBD
YW1sID0NCnN0cnVjdA0KDQp0eXBlIGludCA9IGludA0KdHlwZSBmbG9hdCA9IHJlYWwNCg0KdmFs
IG9wIGRpdiA9IEludC5kaXYNCg0KZXhjZXB0aW9uIE5vdF9mb3VuZA0KZXhjZXB0aW9uIEZhaWx1
cmUgb2Ygc3RyaW5nDQoNCmZ1biBmYWlsd2l0aCBzID0gcmFpc2UoRmFpbHVyZSBzKQ0KICAgDQpz
dHJ1Y3R1cmUgQ2hhciA9DQogICBzdHJ1Y3QNCiAgICAgIG9wZW4gQ2hhciAgIA0KICAgICAgdmFs
IGNvZGUgPSBvcmQNCiAgICAgIHZhbCBjaHIgPSBjaHINCiAgICAgIHZhbCB1bnNhZmVfY2hyID0g
Y2hyDQogICAgICB2YWwgbG93ZXJjYXNlID0gdG9Mb3dlcg0KICAgICAgdmFsIHVwcGVyY2FzZSA9
IHRvVXBwZXINCiAgIGVuZA0KDQpsb2NhbA0KICAgb3BlbiBUZXh0SU8NCmluDQogICB0eXBlIG91
dF9jaGFubmVsID0gb3V0c3RyZWFtDQogICB2YWwgb3Blbl9vdXQgPSBvcGVuT3V0DQogICB2YWwg
b3Blbl9vdXRfYmluID0gb3Blbl9vdXQNCiAgIGZ1biBvdXRwdXRfc3RyaW5nIChvdXQsIHMpID0g
b3V0cHV0KG91dCwgcykNCiAgIHZhbCBjbG9zZV9vdXQgPSBjbG9zZU91dA0KZW5kDQoNCnR5cGUg
ZmxvYXQgPSByZWFsDQoNCnN0cnVjdHVyZSBBcnJheSA9DQogICBzdHJ1Y3QNCiAgICAgIGxvY2Fs
IG9wZW4gQXJyYXkNCiAgICAgIGluDQoJIHZhbCBhcnJheSA9IGFycmF5DQoJIHZhbCBjb3B5ID0g
Y29weQ0KCSB2YWwgb2ZfbGlzdCA9IGZyb21MaXN0DQoJIHZhbCBsZW5ndGggPSBsZW5ndGgNCgkg
dmFsIHN1YiA9IHN1Yg0KCSB2YWwgdXBkYXRlID0gdXBkYXRlDQoJIHZhbCB1bnNhZmVfZ2V0ID0g
VW5zYWZlLkFycmF5LnN1Yg0KCSB2YWwgdW5zYWZlX3NldCA9IFVuc2FmZS5BcnJheS51cGRhdGUN
CgkgdmFsIG1ha2UgPSBhcnJheQ0KCSBmdW4gbWFwIGYgYSA9IEFycmF5LnRhYnVsYXRlKGxlbmd0
aCBhLCBmbiBpID0+IGYoVW5zYWZlLkFycmF5LnN1YihhLCBpKSkpDQoJIHZhbCBpbml0ID0gdGFi
dWxhdGUNCiAgICAgIGVuZA0KICAgZW5kDQoNCmZ1biBmb3IoYTogaW50LCBiLCBmKSA9DQogICBs
ZXQNCiAgICAgIGZ1biBsb29wIGEgPQ0KCSBpZiBhID4gYg0KCSAgICB0aGVuICgpDQoJIGVsc2Ug
KGYgYTsgbG9vcChhICsgMSkpDQogICBpbiBsb29wIGENCiAgIGVuZA0KDQpmdW4gZm9yRG93bihi
OiBpbnQsIGEsIGYpID0NCiAgIGxldA0KICAgICAgZnVuIGxvb3AgYiA9DQoJIGlmIGIgPCBhDQoJ
ICAgIHRoZW4gKCkNCgkgZWxzZSAoZiBiOyBsb29wKGIgLSAxKSkNCiAgIGluIGxvb3AgYg0KICAg
ZW5kDQoNCmxvY2FsDQogICBvcGVuIFJlYWwNCiAgIG9wZW4gTWF0aA0KaW4NCiAgIHZhbCBhYnNf
ZmxvYXQgPSBhYnMNCiAgIHZhbCBhY29zID0gYWNvcw0KICAgdmFsIGFzaW4gPSBhc2luDQogICB2
YWwgY29zID0gY29zDQogICB2YWwgZmxvYXQgPSBmcm9tSW50DQogICB2YWwgZmxvYXRfb2ZfaW50
ID0gZmxvYXQNCiAgIHZhbCBzaW4gPSBzaW4NCiAgIHZhbCBzcXJ0ID0gc3FydA0KICAgdmFsIHRh
biA9IHRhbg0KICAgdmFsIHRydW5jYXRlID0gdHJ1bmMNCiAgIHZhbCAqKiA9IE1hdGgucG93DQog
ICBpbmZpeCA4ICoqIA0KZW5kDQoNCigqIEEgaGFjayBmb3IgaGFzaCB0YWJsZXMgd2l0aCBzdHJp
bmcgZG9tYWluIHdoZXJlIHBlcmZvcm1hbmNlIGRvZXNuJ3QgbWF0dGVyLiAqKQ0Kc3RydWN0dXJl
IEhhc2h0Ymw6DQogICBzaWcNCiAgICAgIHR5cGUgKCdhLCAnYikgdA0KDQogICAgICB2YWwgYWRk
OiAoJ2EsICdiKSB0IC0+IHN0cmluZyAtPiAnYiAtPiB1bml0DQogICAgICB2YWwgY3JlYXRlOiBp
bnQgLT4gKCdhLCAnYikgdA0KICAgICAgdmFsIGZpbmQ6ICgnYSwgJ2IpIHQgLT4gc3RyaW5nIC0+
ICdiDQogICBlbmQgPQ0KICAgc3RydWN0DQogICAgICBkYXRhdHlwZSAoJ2EsICdiKSB0ID0gVCBv
ZiAoc3RyaW5nICogJ2IpIGxpc3QgcmVmDQoJICAgIA0KICAgICAgZnVuIGNyZWF0ZSBfID0gVCAo
cmVmIFtdKQ0KDQogICAgICBmdW4gYWRkIChUIHQpIGsgZCA9IHQgOj0gKGssIGQpIDo6ICF0DQoN
CiAgICAgIGZ1biBmaW5kIChUIChyZWYgdCkpIGsgPQ0KCSBjYXNlIExpc3QuZmluZCAoZm4gKGsn
LCBfKSA9PiBrID0gaycpIHQgb2YNCgkgICAgTk9ORSA9PiByYWlzZSBOb3RfZm91bmQNCgkgIHwg
U09NRShfLCBkKSA9PiBkDQogICBlbmQNCg0Kc3RydWN0dXJlIExpc3QgPQ0KICAgc3RydWN0DQog
ICAgICBsb2NhbCBvcGVuIExpc3QNCiAgICAgIGluDQoJIHZhbCBpdGVyID0gYXBwDQoJIHZhbCBt
YXAgPSBtYXANCgkgdmFsIGZpbHRlciA9IGZpbHRlcg0KCSB2YWwgbnRoID0gbnRoDQoJIHZhbCBy
ZXYgPSByZXYNCiAgICAgIGVuZA0KICAgZW5kDQoNCmZ1biBleGl0IGkgPSBQb3NpeC5Qcm9jZXNz
LmV4aXQoV29yZDguZnJvbUludCBpKQ0KICAgDQplbmQNCnN0cnVjdHVyZSBNYXRoID0NCnN0cnVj
dA0KDQpvcGVuIENhbWwNCiAgIA0KdmFsIGVwc2lsb24gPSAxRX41DQoNCnZhbCBkdHIgPSBhY29z
ICh+MS4wKSAvIDE4MC4wDQp2YWwgcnRkID0gMTgwLjAgLyBhY29zICh+MS4wKQ0KDQpmdW4gZGNv
cyB0ID0gY29zICh0ICogZHRyKQ0KZnVuIGRzaW4gdCA9IHNpbiAodCAqIGR0cikNCmZ1biBkdGFu
IHQgPSB0YW4gKHQgKiBkdHIpDQpmdW4gZGFjb3MgeCA9IHJ0ZCAqIGFjb3MgeA0KDQp2YWwgaW5m
aW5pdHkgPSBSZWFsLnBvc0luZg0KdmFsIG1pbnVzX2luZmluaXR5ID0gUmVhbC5uZWdJbmYNCg0K
ZnVuIG1heF9mbG9hdCAoeCwgeSA6IGZsb2F0KSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5DQoN
CmVuZA0Kc2lnbmF0dXJlIE1BVFJJWCA9DQogICBzaWcNCiAgICAgIGluY2x1ZGUgQ0FNTA0KDQog
ICAgICAoKioqKiBNYXRyaXggYXJpdGhtZXRpYyAqKioqKQ0KDQogICAgICB0eXBlIHQgPSBmbG9h
dCBhcnJheSAoKiA0LWRpbWVuc2lvbiBtYXRyaXggKikNCiAgICAgIHR5cGUgdiA9IGZsb2F0ICog
ZmxvYXQgKiBmbG9hdCAqIGZsb2F0ICgqIDQtZGltZW5zaW9uIHZlY3RvciAqKQ0KDQogICAgICAo
KiBCYXNpYyBtYXRyaWNlcyAqKQ0KICAgICAgdmFsIGlkZW50aXR5IDogdA0KICAgICAgdmFsIHRy
YW5zbGF0ZSA6ICgqeDoqKWZsb2F0ICogKCp5OiopZmxvYXQgKiAoKno6KilmbG9hdCAtPiB0DQog
ICAgICB2YWwgc2NhbGUgOiAoKng6KilmbG9hdCAqICgqeToqKWZsb2F0ICogKCp6OiopZmxvYXQg
LT4gdA0KICAgICAgdmFsIHVzY2FsZSA6IGZsb2F0IC0+IHQNCiAgICAgIHZhbCB1bnNjYWxlIDog
KCp4OiopZmxvYXQgKiAoKnk6KilmbG9hdCAqICgqejoqKWZsb2F0IC0+IHQNCiAgICAgIHZhbCB1
bnVzY2FsZSA6IGZsb2F0IC0+IHQNCiAgICAgIHZhbCByb3RhdGV4IDogZmxvYXQgLT4gdA0KICAg
ICAgdmFsIHJvdGF0ZXkgOiBmbG9hdCAtPiB0DQogICAgICB2YWwgcm90YXRleiA6IGZsb2F0IC0+
IHQNCg0KICAgICAgKCogT3BlcmF0aW9ucyBvbiBtYXRyaWNlcyAqKQ0KICAgICAgdmFsIG11bCA6
IHQgKiB0IC0+IHQNCiAgICAgIHZhbCB2bXVsIDogdCAqIHYgLT4gdg0KICAgICAgdmFsIHRyYW5z
cG9zZSA6IHQgLT4gdA0KDQogICAgICB2YWwgYWRkX3NjYWxlZCA6IHYgKiBmbG9hdCAqIHYgLT4g
dg0KICAgICAgdmFsIGFkZCA6IHYgKiB2IC0+IHYNCiAgICAgIHZhbCBzdWIgOiB2ICogdiAtPiB2
DQogICAgICB2YWwgcHJvZCA6IHYgKiB2IC0+IGZsb2F0DQogICAgICB2YWwgc3F1YXJlIDogdiAt
PiBmbG9hdA0KICAgICAgdmFsIG5vcm1hbGl6ZSA6IHYgLT4gdg0KICAgICAgdmFsIG5lZyA6IHYg
LT4gdg0KICAgZW5kDQpzdHJ1Y3R1cmUgTWF0cml4OiBNQVRSSVggPQ0Kc3RydWN0DQoNCm9wZW4g
Q2FtbA0Kb3BlbiBNYXRoDQoNCnR5cGUgdCA9IGZsb2F0IGFycmF5DQp0eXBlIHYgPSBmbG9hdCAq
IGZsb2F0ICogZmxvYXQgKiBmbG9hdA0KDQooKioqKiBCYXNpYyBtYXRyaWNlcyAqKioqKQ0KDQp2
YWwgaWRlbnRpdHkgPQ0KICAgQXJyYXkub2ZfbGlzdFsxLjAsIDAuMCwgMC4wLCAwLjAsDQoJCSAg
MC4wLCAxLjAsIDAuMCwgMC4wLA0KCQkgIDAuMCwgMC4wLCAxLjAsIDAuMCwNCgkJICAwLjAsIDAu
MCwgMC4wLCAxLjBdDQoNCmZ1biB0cmFuc2xhdGUoeCwgeSwgeikgPQ0KICAgQXJyYXkub2ZfbGlz
dFsxLjAsIDAuMCwgMC4wLCB+IHgsDQoJCSAgMC4wLCAxLjAsIDAuMCwgfiB5LA0KCQkgIDAuMCwg
MC4wLCAxLjAsIH4geiwNCgkJICAwLjAsIDAuMCwgMC4wLCAxLjBdDQoNCmZ1biB1bnNjYWxlKHgs
IHksIHopID0NCiAgIEFycmF5Lm9mX2xpc3RbIHgsICAwLjAsIDAuMCwgMC4wLA0KCQkgIDAuMCwg
eSwgIDAuMCwgMC4wLA0KCQkgIDAuMCwgMC4wLCB6LCAgMC4wLA0KCQkgIDAuMCwgMC4wLCAwLjAs
IDEuMF0NCiAgDQpmdW4gc2NhbGUoeCwgeSwgeikgPSB1bnNjYWxlICgxLjAgLyB4LCAxLjAgLyB5
LCAxLjAgLyB6KQ0KDQpmdW4gdW51c2NhbGUgcyA9IHVuc2NhbGUgKHMsIHMsIHMpDQoNCmZ1biB1
c2NhbGUgcyA9IHNjYWxlIChzLCBzLCBzKQ0KDQpmdW4gcm90YXRleCB0ID0NCiAgbGV0DQogICAg
IHZhbCBjbyA9IGRjb3MgdA0KICAgICB2YWwgc2kgPSBkc2luIHQNCiAgaW4NCiAgICAgQXJyYXku
b2ZfbGlzdFsgMS4wLCAgIDAuMCwgIDAuMCwgMC4wLA0KCQkgICAgMC4wLCAgIGNvLCAgc2ksIDAu
MCwNCgkJICAgIDAuMCwgfiBzaSwgY28sIDAuMCwNCgkJICAgIDAuMCwgICAwLjAsICAwLjAsIDEu
MCBdDQogIGVuZA0KDQpmdW4gcm90YXRleSB0ID0NCiAgbGV0DQogICAgIHZhbCBjbyA9IGRjb3Mg
dA0KICAgICB2YWwgc2kgPSBkc2luIHQNCiAgaW4NCiAgICAgQXJyYXkub2ZfbGlzdFsgY28sIDAu
MCwgfiBzaSwgMC4wLA0KCQkgICAgMC4wLCAxLjAsICAgMC4wLCAgMC4wLA0KCQkgICAgc2ksIDAu
MCwgICBjbywgIDAuMCwNCgkJICAgIDAuMCwgMC4wLCAgIDAuMCwgIDEuMCBdDQogIGVuZA0KDQpm
dW4gcm90YXRleiB0ID0NCiAgbGV0DQogICAgIHZhbCBjbyA9IGRjb3MgdA0KICAgICB2YWwgc2kg
PSBkc2luIHQNCiAgaW4NCiAgICAgQXJyYXkub2ZfbGlzdFsgICBjbywgIHNpLCAwLjAsIDAuMCwN
CgkJICAgIH4gc2ksIGNvLCAwLjAsIDAuMCwNCgkJICAgIDAuMCwgIDAuMCwgMS4wLCAwLjAsDQoJ
CSAgICAwLjAsICAwLjAsIDAuMCwgMS4wIF0NCiAgZW5kDQoNCigqKiogT3BlcmF0aW9ucyBvbiBt
YXRyaWNlcyAqKiopDQoNCmZ1biBnZXQgKG0gOiB0LCBpLCBqKSA9IEFycmF5LnVuc2FmZV9nZXQg
KG0sIGkgKiA0ICsgaikNCmZ1biBzZXQgKG0gOiB0LCBpLCBqLCB2KSA9IEFycmF5LnVuc2FmZV9z
ZXQgKG0sIGkgKiA0ICsgaiwgdikNCg0KZnVuIG11bCAobSwgbScpID0NCiAgbGV0DQogICAgIHZh
bCBtJycgPSBBcnJheS5tYWtlICgxNiwgMC4wKQ0KICBpbg0KICAgICBmb3IoMCwgMywgZm4gaSA9
Pg0KCSBmb3IoMCwgMywgZm4gaiA9PiBsZXQNCgkgICAgZnVuIGxwICg0LCBzKSA9IHMNCgkgICAg
ICB8IGxwIChrLCBzKSA9IGxwIChrKzEsIHMgKyBnZXQobSwgaSwgaykgKiBnZXQobScsIGssIGop
KQ0KCSAgICBpbg0KCSAgICAgIHNldChtJycsIGksIGosIGxwKDAsIDAuMCkpDQoJICAgIGVuZCkp
DQogICAgIDsgbScnDQogIGVuZA0KDQpmdW4gdHJhbnNwb3NlIG0gPQ0KICBsZXQgdmFsIG0nID0g
QXJyYXkubWFrZSAoMTYsIDAuMCkNCiAgaW4gZm9yKDAsIDMsIGZuIGkgPT4NCgkgZm9yKDAsIDMs
IGZuIGogPT4NCgkgICAgIHNldCAobScsIGksIGosIGdldCAobSwgaiwgaSkpKSkNCiAgICAgOyBt
Jw0KICBlbmQNCg0KZnVuIHZtdWwgKG0sICh4LCB5LCB6LCB0KSkgPQ0KICAgKHggKiBnZXQobSwg
MCwgMCkgKyB5ICogZ2V0KG0sIDAsIDEpICsgeiAqIGdldChtLCAwLCAyKSArIHQgKiBnZXQobSwg
MCwgMyksDQogICAgeCAqIGdldChtLCAxLCAwKSArIHkgKiBnZXQobSwgMSwgMSkgKyB6ICogZ2V0
KG0sIDEsIDIpICsgdCAqIGdldChtLCAxLCAzKSwNCiAgICB4ICogZ2V0KG0sIDIsIDApICsgeSAq
IGdldChtLCAyLCAxKSArIHogKiBnZXQobSwgMiwgMikgKyB0ICogZ2V0KG0sIDIsIDMpLA0KICAg
IHggKiBnZXQobSwgMywgMCkgKyB5ICogZ2V0KG0sIDMsIDEpICsgeiAqIGdldChtLCAzLCAyKSAr
IHQgKiBnZXQobSwgMywgMykpDQoNCmZ1biBhZGRfc2NhbGVkICh4OiB2LCB0LCB2OiB2KSA6IHYg
PQ0KICAgKCAjMSB4ICsgdCAqICMxIHYsDQogICAgICMyIHggKyB0ICogIzIgdiwNCiAgICAgIzMg
eCArIHQgKiAjMyB2LA0KICAgICAjNCB4ICsgdCAqICM0IHYgKQ0KDQpmdW4gYWRkICh4OiB2LCB5
OiB2KSA6IHYgPQ0KICAgKCAjMSB4ICsgIzEgeSwNCiAgICAgIzIgeCArICMyIHksDQogICAgICMz
IHggKyAjMyB5LA0KICAgICAjNCB4ICsgIzQgeSApDQoNCmZ1biBzdWIgKHg6IHYsIHk6IHYpIDog
diA9DQogICAoIzEgeCAtICMxIHksDQogICAgIzIgeCAtICMyIHksDQogICAgIzMgeCAtICMzIHks
DQogICAgIzQgeCAtICM0IHkpDQoNCmZ1biBwcm9kICh4OiB2LCB5OiB2KSA6IHJlYWwgPQ0KICAg
IzEgeCAqICMxIHkgKyAjMiB4ICogIzIgeSArICMzIHggKiAjMyB5ICsgIzQgeCAqICM0IHkNCg0K
ZnVuIHNxdWFyZSAodngsIHZ5LCB2eiwgdnQpIDogcmVhbCA9DQogICB2eCAqIHZ4ICsgdnkgKiB2
eSArIHZ6ICogdnogKyB2dCAqIHZ0DQoNCmZ1biBub3JtYWxpemUgKHg6IHYpOiB2ID0NCiAgbGV0
DQogICAgIHZhbCBueCA9IHNxcnQgKHByb2QgKHgsIHgpKQ0KICBpbg0KICAgICAoIzEgeCAvIG54
LA0KICAgICAgIzIgeCAvIG54LA0KICAgICAgIzMgeCAvIG54LA0KICAgICAgIzQgeCAvIG54KQ0K
ICBlbmQNCg0KZnVuIG5lZyAoeDogdikgOiB2ID0NCiAgICh+KCMxIHgpLA0KICAgIH4oIzIgeCks
DQogICAgfigjMyB4KSwNCiAgICB+KCM0IHgpKQ0KDQplbmQNCnNpZ25hdHVyZSBMRVhfVE9LRU5f
U1RSVUNUUyA9IA0KICAgc2lnDQogICBlbmQNCg0Kc2lnbmF0dXJlIExFWF9UT0tFTiA9IA0KICAg
c2lnDQogICAgICBpbmNsdWRlIExFWF9UT0tFTl9TVFJVQ1RTDQogICAgICANCiAgICAgIGRhdGF0
eXBlIHQgPQ0KCSBCaW5kZXIgb2Ygc3RyaW5nDQogICAgICAgfCBCb29sIG9mIGJvb2wNCiAgICAg
ICB8IEVvZg0KICAgICAgIHwgSWRlbnRpZmllciBvZiBzdHJpbmcNCiAgICAgICB8IEludCBvZiBp
bnQNCiAgICAgICB8IExicmFjZQ0KICAgICAgIHwgTGJyYWNrZXQNCiAgICAgICB8IFJicmFjZQ0K
ICAgICAgIHwgUmJyYWNrZXQNCiAgICAgICB8IFJlYWwgb2YgcmVhbA0KICAgICAgIHwgU3RyaW5n
IG9mIHN0cmluZw0KICAgZW5kDQpmdW5jdG9yIExleFRva2VuKFM6IExFWF9UT0tFTl9TVFJVQ1RT
KTogTEVYX1RPS0VOID0gDQpzdHJ1Y3QNCg0Kb3BlbiBTDQoNCmRhdGF0eXBlIHQgPQ0KICAgQmlu
ZGVyIG9mIHN0cmluZw0KIHwgQm9vbCBvZiBib29sDQogfCBFb2YNCiB8IElkZW50aWZpZXIgb2Yg
c3RyaW5nDQogfCBJbnQgb2YgaW50DQogfCBMYnJhY2UNCiB8IExicmFja2V0DQogfCBSYnJhY2UN
CiB8IFJicmFja2V0DQogfCBSZWFsIG9mIHJlYWwNCiB8IFN0cmluZyBvZiBzdHJpbmcNCiAgICAg
DQplbmQNCnR5cGUgaW50ID0gSW50LmludA0KZnVuY3RvciBMZXgoc3RydWN0dXJlIFRva2VuOiBM
RVhfVE9LRU4pPQ0KICAgc3RydWN0DQogICAgc3RydWN0dXJlIFVzZXJEZWNsYXJhdGlvbnMgPQ0K
ICAgICAgc3RydWN0DQp2YWwgY2hhcnM6IGNoYXIgbGlzdCByZWYgPSByZWYgW10NCg0KdHlwZSBs
ZXhhcmcgPSB1bml0DQoNCnR5cGUgbGV4cmVzdWx0ID0gVG9rZW4udA0KDQp2YWwgZW9mOiBsZXhh
cmcgLT4gbGV4cmVzdWx0ID0NCiAgIGZuICgpID0+IFRva2VuLkVvZg0KDQpmdW4gZmFpbCBzID0g
cmFpc2UgRmFpbCBzDQoNCmVuZCAoKiBlbmQgb2YgdXNlciByb3V0aW5lcyAqKQ0KZXhjZXB0aW9u
IExleEVycm9yICgqIHJhaXNlZCBpZiBpbGxlZ2FsIGxlYWYgYWN0aW9uIHRyaWVkICopDQpzdHJ1
Y3R1cmUgSW50ZXJuYWwgPQ0KCXN0cnVjdA0KDQpkYXRhdHlwZSB5eWZpbnN0YXRlID0gTiBvZiBp
bnQNCnR5cGUgc3RhdGVkYXRhID0ge2ZpbiA6IHl5Zmluc3RhdGUgbGlzdCwgdHJhbnM6IHN0cmlu
Z30NCigqIHRyYW5zaXRpb24gJiBmaW5hbCBzdGF0ZSB0YWJsZSAqKQ0KdmFsIHRhYiA9IGxldA0K
dmFsIHMgPSBbIA0KICgwLCANCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMCIN
CiksDQogKDEsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjZcMDI2
XDAyNlwwMDBcMDI2XDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDI2XDAwMFwwMjVcMDAwXDAwMFww
MjRcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyM1wwMDBcMDIxXA0KXFwwMTJcMDEyXDAx
MlwwMTJcMDEyXDAxMlwwMTJcMDEyXDAxMlwwMTJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpc
XDAwMFwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlc
MDA5XDAwOVwNClxcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVww
MTFcMDAwXDAxMFwwMDBcMDAwXA0KXFwwMDBcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAw
OVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcDQpcXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5
XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA4XDAwMFwwMDdcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAo
MywgDQoiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyN1wwMjlcMDI5XDAw
MFwwMjhcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdc
MDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcDQpcXDAyN1wwMjdcMDI3XDAyN1ww
MjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wNClxcMDI3XDAy
N1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3
XA0KXFwwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdc
MDI3XDAyN1wwMjdcDQpcXDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1ww
MjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wNClxcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAy
N1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDAwXA0KXFwwMDAiDQopLA0KICg1LCANCiJc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAzMFwwMzBcMDMxXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMw
XDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwNClxcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBc
MDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXA0KXFwwMzBcMDMwXDAzMFww
MzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcDQpcXDAz
MFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMw
XDAzMFwNClxcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBc
MDMwXDAzMFwwMzBcMDMwXA0KXFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFww
MzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMDBcDQpcXDAwMCINCiksDQogKDksIA0KIlwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
DQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwOVwwMDBcMDAwXA0KXFwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5
XDAwOVwwMDlcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDlcMDA5XDAwOVwwMDlc
MDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwNClxcMDA5XDAwOVww
MDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDBcMDAwXDAwMFwwMDBcMDA5XA0K
XFwwMDBcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5
XDAwOVwwMDlcDQpcXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlc
MDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMTIsIA0KIlwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMTZcMDAwXA0KXFwwMTJcMDEyXDAxMlwwMTJcMDEyXDAxMlwwMTJcMDEyXDAxMlww
MTJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDEzXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAxM1wwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMTMsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwN
ClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAx
NVwwMDBcMDAwXA0KXFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpc
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMTQsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXA0KXFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwNClxcMDAwIg0KKSwNCiAoMTYsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0K
XFwwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxc
MDAwIg0KKSwNCiAoMTcsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMTdc
MDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDE4XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxOFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0K
KSwNCiAoMTgsIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyMFwwMDBcMDAwXA0KXFwwMTlcMDE5XDAx
OVwwMTlcMDE5XDAxOVwwMTlcMDE5XDAxOVwwMTlcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpc
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAo
MTksIA0KIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMTlcMDE5XDAxOVwwMTlc
MDE5XDAxOVwwMTlcMDE5XDAxOVwwMTlcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMjEsIA0K
IlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMjJcMDIy
XDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwNClxc
MDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMDBcMDAwXDAwMFww
MDBcMDAwXA0KXFwwMDBcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAy
MlwwMjJcMDIyXDAyMlwwMjJcDQpcXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIy
XDAyMlwwMjJcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMjIsIA0KIlwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAyMlwwMDBcMDAwXA0KXFwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJc
MDIyXDAyMlwwMjJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMjJcMDIyXDAyMlww
MjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwNClxcMDIyXDAy
MlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMDBcMDAwXDAwMFwwMDBcMDIy
XA0KXFwwMDBcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJc
MDIyXDAyMlwwMjJcDQpcXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlww
MjJcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMjMsIA0KIlwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpc
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMTJcMDEyXDAxMlwwMTJcMDEyXDAxMlwwMTJcMDEyXDAx
MlwwMTJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCiAoMjgsIA0KIlwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDI5XDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwNClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcDQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwNClxcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXA0KXFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
DQpcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwNClxcMDAwIg0KKSwNCigwLCAiIildDQpmdW4gZiB4ID0geCANCnZhbCBzID0g
bWFwIGYgKHJldiAodGwgKHJldiBzKSkpIA0KZXhjZXB0aW9uIExleEhhY2tpbmdFcnJvciANCmZ1
biBsb29rICgoaix4KTo6ciwgaSkgPSBpZiBpID0gaiB0aGVuIHggZWxzZSBsb29rKHIsIGkpIA0K
ICB8IGxvb2sgKFtdLCBpKSA9IHJhaXNlIExleEhhY2tpbmdFcnJvcg0KZnVuIGcge2Zpbj14LCB0
cmFucz1pfSA9IHtmaW49eCwgdHJhbnM9bG9vayhzLGkpfSANCmluIFZlY3Rvci5mcm9tTGlzdCht
YXAgZyANClt7ZmluID0gW10sIHRyYW5zID0gMH0sDQp7ZmluID0gW10sIHRyYW5zID0gMX0sDQp7
ZmluID0gW10sIHRyYW5zID0gMX0sDQp7ZmluID0gW10sIHRyYW5zID0gM30sDQp7ZmluID0gW10s
IHRyYW5zID0gM30sDQp7ZmluID0gW10sIHRyYW5zID0gNX0sDQp7ZmluID0gW10sIHRyYW5zID0g
NX0sDQp7ZmluID0gWyhOIDEzKV0sIHRyYW5zID0gMH0sDQp7ZmluID0gWyhOIDExKV0sIHRyYW5z
ID0gMH0sDQp7ZmluID0gWyhOIDQ5KV0sIHRyYW5zID0gOX0sDQp7ZmluID0gWyhOIDkpXSwgdHJh
bnMgPSAwfSwNCntmaW4gPSBbKE4gNyldLCB0cmFucyA9IDB9LA0Ke2ZpbiA9IFsoTiAzOSldLCB0
cmFucyA9IDEyfSwNCntmaW4gPSBbXSwgdHJhbnMgPSAxM30sDQp7ZmluID0gWyhOIDM1KV0sIHRy
YW5zID0gMTR9LA0Ke2ZpbiA9IFtdLCB0cmFucyA9IDE0fSwNCntmaW4gPSBbXSwgdHJhbnMgPSAx
Nn0sDQp7ZmluID0gWyhOIDM1KV0sIHRyYW5zID0gMTd9LA0Ke2ZpbiA9IFtdLCB0cmFucyA9IDE4
fSwNCntmaW4gPSBbKE4gMzUpXSwgdHJhbnMgPSAxOX0sDQp7ZmluID0gW10sIHRyYW5zID0gMTl9
LA0Ke2ZpbiA9IFtdLCB0cmFucyA9IDIxfSwNCntmaW4gPSBbKE4gMjApXSwgdHJhbnMgPSAyMn0s
DQp7ZmluID0gW10sIHRyYW5zID0gMjN9LA0Ke2ZpbiA9IFsoTiA0MyldLCB0cmFucyA9IDB9LA0K
e2ZpbiA9IFsoTiA0MSldLCB0cmFucyA9IDB9LA0Ke2ZpbiA9IFsoTiA1KV0sIHRyYW5zID0gMH0s
DQp7ZmluID0gWyhOIDU4KV0sIHRyYW5zID0gMH0sDQp7ZmluID0gWyhOIDU1KV0sIHRyYW5zID0g
Mjh9LA0Ke2ZpbiA9IFsoTiA1NSldLCB0cmFucyA9IDB9LA0Ke2ZpbiA9IFsoTiA2MildLCB0cmFu
cyA9IDB9LA0Ke2ZpbiA9IFsoTiA2MCksKE4gNjIpXSwgdHJhbnMgPSAwfV0pDQplbmQNCnN0cnVj
dHVyZSBTdGFydFN0YXRlcyA9DQoJc3RydWN0DQoJZGF0YXR5cGUgeXlzdGFydHN0YXRlID0gU1RB
UlRTVEFURSBvZiBpbnQNCg0KKCogc3RhcnQgc3RhdGUgZGVmaW5pdGlvbnMgKikNCg0KdmFsIEMg
PSBTVEFSVFNUQVRFIDM7DQp2YWwgSU5JVElBTCA9IFNUQVJUU1RBVEUgMTsNCnZhbCBTID0gU1RB
UlRTVEFURSA1Ow0KDQplbmQNCnR5cGUgcmVzdWx0ID0gVXNlckRlY2xhcmF0aW9ucy5sZXhyZXN1
bHQNCglleGNlcHRpb24gTGV4ZXJFcnJvciAoKiByYWlzZWQgaWYgaWxsZWdhbCBsZWFmIGFjdGlv
biB0cmllZCAqKQ0KZW5kDQoNCnR5cGUgaW50ID0gSW50LmludA0KZnVuIG1ha2VMZXhlciAoeXlp
bnB1dDogaW50IC0+IHN0cmluZykgPQ0KbGV0CXZhbCB5eWdvbmUwOmludD0xDQoJdmFsIHl5YiA9
IHJlZiAiXG4iIAkJKCogYnVmZmVyICopDQoJdmFsIHl5Ymw6IGludCByZWYgPSByZWYgMQkJKCpi
dWZmZXIgbGVuZ3RoICopDQoJdmFsIHl5YnVmcG9zOiBpbnQgcmVmID0gcmVmIDEJCSgqIGxvY2F0
aW9uIG9mIG5leHQgY2hhcmFjdGVyIHRvIHVzZSAqKQ0KCXZhbCB5eWdvbmU6IGludCByZWYgPSBy
ZWYgeXlnb25lMAkoKiBwb3NpdGlvbiBpbiBmaWxlIG9mIGJlZ2lubmluZyBvZiBidWZmZXIgKikN
Cgl2YWwgeXlkb25lID0gcmVmIGZhbHNlCQkoKiBlb2YgZm91bmQgeWV0PyAqKQ0KCXZhbCB5eWJl
Z2luOiBpbnQgcmVmID0gcmVmIDEJCSgqQ3VycmVudCAnc3RhcnQgc3RhdGUnIGZvciBsZXhlciAq
KQ0KDQoJdmFsIFlZQkVHSU4gPSBmbiAoSW50ZXJuYWwuU3RhcnRTdGF0ZXMuU1RBUlRTVEFURSB4
KSA9Pg0KCQkgeXliZWdpbiA6PSB4DQoNCmZ1biBsZXggKHl5YXJnIGFzICgoKSkpID0NCmxldCBm
dW4gY29udGludWUoKSA6IEludGVybmFsLnJlc3VsdCA9IA0KICBsZXQgZnVuIHNjYW4gKHMsQWNj
ZXB0aW5nTGVhdmVzIDogSW50ZXJuYWwueXlmaW5zdGF0ZSBsaXN0IGxpc3QsbCxpMDogaW50KSA9
DQoJbGV0IGZ1biBhY3Rpb24gKGk6IGludCxuaWwpID0gcmFpc2UgTGV4RXJyb3INCgl8IGFjdGlv
biAoaSxuaWw6OmwpID0gYWN0aW9uIChpLTEsbCkNCgl8IGFjdGlvbiAoaSwobm9kZTo6YWN0cyk6
OmwpID0NCgkJY2FzZSBub2RlIG9mDQoJCSAgICBJbnRlcm5hbC5OIHl5ayA9PiANCgkJCShsZXQg
ZnVuIHl5bWt0ZXh0KCkgPSBTdHJpbmcuc3Vic3RyaW5nKCF5eWIsaTAsaS1pMCkNCgkJCSAgICAg
dmFsIHl5cG9zOiBpbnQgPSBpMCsgIXl5Z29uZQ0KCQkJZnVuIFJFSkVDVCgpID0gYWN0aW9uKGks
YWN0czo6bCkNCgkJCW9wZW4gVXNlckRlY2xhcmF0aW9ucyBJbnRlcm5hbC5TdGFydFN0YXRlcw0K
IGluICh5eWJ1ZnBvcyA6PSBpOyBjYXNlIHl5ayBvZiANCg0KCQkJKCogQXBwbGljYXRpb24gYWN0
aW9ucyAqKQ0KDQogIDExID0+IChUb2tlbi5MYnJhY2UpDQp8IDEzID0+IChUb2tlbi5SYnJhY2Up
DQp8IDIwID0+IGxldCB2YWwgeXl0ZXh0PXl5bWt0ZXh0KCkgaW4gVG9rZW4uQmluZGVyKFN0cmlu
Zy5leHRyYWN0KHl5dGV4dCwgMSwgTk9ORSkpIGVuZA0KfCAzNSA9PiBsZXQgdmFsIHl5dGV4dD15
eW1rdGV4dCgpIGluIFRva2VuLlJlYWwoY2FzZSBSZWFsLmZyb21TdHJpbmcgeXl0ZXh0IG9mDQoJ
CQkJICBOT05FID0+DQoJCQkJICAgICBmYWlsKGNvbmNhdFsiYmFkIHJlYWwgY29uc3RhbnQgIiwg
eXl0ZXh0XSkNCgkJCQl8IFNPTUUgciA9PiByKSBlbmQNCnwgMzkgPT4gbGV0IHZhbCB5eXRleHQ9
eXlta3RleHQoKSBpbiBUb2tlbi5JbnQoY2FzZSBJbnQuZnJvbVN0cmluZyB5eXRleHQgb2YNCgkJ
CQlOT05FID0+IA0KCQkJCSAgIGZhaWwoY29uY2F0WyJiYWQgaW50IGNvbnN0YW50ICIsIHl5dGV4
dF0pDQoJCQkgICAgICB8IFNPTUUgaSA9PiBpKSBlbmQNCnwgNDEgPT4gKGNoYXJzIDo9IFtdOyBZ
WUJFR0lOIFM7IGNvbnRpbnVlKCkpDQp8IDQzID0+IChZWUJFR0lOIEM7IGNvbnRpbnVlKCkpDQp8
IDQ5ID0+IGxldCB2YWwgeXl0ZXh0PXl5bWt0ZXh0KCkgaW4gVG9rZW4uSWRlbnRpZmllciB5eXRl
eHQgZW5kDQp8IDUgPT4gKGNvbnRpbnVlKCkpDQp8IDU1ID0+IChZWUJFR0lOIElOSVRJQUw7IGNv
bnRpbnVlKCkpDQp8IDU4ID0+IChjb250aW51ZSgpKQ0KfCA2MCA9PiAobGV0IHZhbCBzID0gKGlt
cGxvZGUocmV2KCFjaGFycykpIGJlZm9yZSBjaGFycyA6PSBuaWwpDQoJICAgICAgIGluIFlZQkVH
SU4gSU5JVElBTA0KCQkgIDsgVG9rZW4uU3RyaW5nIHMNCgkgICAgICAgZW5kKQ0KfCA2MiA9PiBs
ZXQgdmFsIHl5dGV4dD15eW1rdGV4dCgpIGluIGNoYXJzIDo9IFN0cmluZy5zdWIoeXl0ZXh0LCAw
KSA6OiAhY2hhcnMNCgkgICAgICAgOyBjb250aW51ZSgpIGVuZA0KfCA3ID0+IChUb2tlbi5MYnJh
Y2tldCkNCnwgOSA9PiAoVG9rZW4uUmJyYWNrZXQpDQp8IF8gPT4gcmFpc2UgSW50ZXJuYWwuTGV4
ZXJFcnJvcg0KDQoJCSkgZW5kICkNCg0KCXZhbCB7ZmluLHRyYW5zfSA9IFVuc2FmZS5WZWN0b3Iu
c3ViKEludGVybmFsLnRhYiwgcykNCgl2YWwgTmV3QWNjZXB0aW5nTGVhdmVzID0gZmluOjpBY2Nl
cHRpbmdMZWF2ZXMNCglpbiBpZiBsID0gIXl5YmwgdGhlbg0KCSAgICAgaWYgdHJhbnMgPSAjdHJh
bnMoVmVjdG9yLnN1YihJbnRlcm5hbC50YWIsMCkpDQoJICAgICAgIHRoZW4gYWN0aW9uKGwsTmV3
QWNjZXB0aW5nTGVhdmVzDQopIGVsc2UJICAgIGxldCB2YWwgbmV3Y2hhcnM9IGlmICF5eWRvbmUg
dGhlbiAiIiBlbHNlIHl5aW5wdXQgMTAyNA0KCSAgICBpbiBpZiAoU3RyaW5nLnNpemUgbmV3Y2hh
cnMpPTANCgkJICB0aGVuICh5eWRvbmUgOj0gdHJ1ZTsNCgkJICAgICAgICBpZiAobD1pMCkgdGhl
biBVc2VyRGVjbGFyYXRpb25zLmVvZiB5eWFyZw0KCQkgICAgICAgICAgICAgICAgICBlbHNlIGFj
dGlvbihsLE5ld0FjY2VwdGluZ0xlYXZlcykpDQoJCSAgZWxzZSAoaWYgaTA9bCB0aGVuIHl5YiA6
PSBuZXdjaGFycw0KCQkgICAgIGVsc2UgeXliIDo9IFN0cmluZy5zdWJzdHJpbmcoIXl5YixpMCxs
LWkwKV5uZXdjaGFyczsNCgkJICAgICB5eWdvbmUgOj0gIXl5Z29uZStpMDsNCgkJICAgICB5eWJs
IDo9IFN0cmluZy5zaXplICgheXliKTsNCgkJICAgICBzY2FuIChzLEFjY2VwdGluZ0xlYXZlcyxs
LWkwLDApKQ0KCSAgICBlbmQNCgkgIGVsc2UgbGV0IHZhbCBOZXdDaGFyID0gQ2hhci5vcmQoVW5z
YWZlLkNoYXJWZWN0b3Iuc3ViKCF5eWIsbCkpDQoJCXZhbCBOZXdDaGFyID0gaWYgTmV3Q2hhcjwx
MjggdGhlbiBOZXdDaGFyIGVsc2UgMTI4DQoJCXZhbCBOZXdTdGF0ZSA9IENoYXIub3JkKFVuc2Fm
ZS5DaGFyVmVjdG9yLnN1Yih0cmFucyxOZXdDaGFyKSkNCgkJaW4gaWYgTmV3U3RhdGU9MCB0aGVu
IGFjdGlvbihsLE5ld0FjY2VwdGluZ0xlYXZlcykNCgkJZWxzZSBzY2FuKE5ld1N0YXRlLE5ld0Fj
Y2VwdGluZ0xlYXZlcyxsKzEsaTApDQoJZW5kDQoJZW5kDQooKg0KCXZhbCBzdGFydD0gaWYgU3Ry
aW5nLnN1YnN0cmluZygheXliLCF5eWJ1ZnBvcy0xLDEpPSJcbiINCnRoZW4gIXl5YmVnaW4rMSBl
bHNlICF5eWJlZ2luDQoqKQ0KCWluIHNjYW4oIXl5YmVnaW4gKCogc3RhcnQgKiksbmlsLCF5eWJ1
ZnBvcywheXlidWZwb3MpDQogICAgZW5kDQppbiBjb250aW51ZSBlbmQNCiAgaW4gbGV4DQogIGVu
ZA0KZW5kDQpzaWduYXR1cmUgUFJPR1JBTSA9DQogICBzaWcNCiAgICAgIGluY2x1ZGUgQ0FNTA0K
ICAgICAgKCoqKiogQmFzaWMgdHlwZXM6IHByb2dyYW1zLCB2YWx1ZXMsIC4uLiAqKioqKQ0KDQog
ICAgICBkYXRhdHlwZSBrID0NCgkgQWNvcyB8IEFkZGkgfCBBZGRmIHwgQXBwbHkgfCBBc2luIHwg
Q2xhbXBmIHwgQ29uZSB8IENvcyB8IEN1YmUNCiAgICAgICB8IEN5bGluZGVyIHwgRGlmZmVyZW5j
ZSB8IERpdmkgfCBEaXZmIHwgRXFpIHwgRXFmIHwgRmxvb3IgfCBGcmFjDQogICAgICAgfCBHZXQg
fCBHZXR4IHwgR2V0eSB8IEdldHogfCBJZiB8IEludGVyc2VjdCB8IExlbmd0aCB8IExlc3NpIHwg
TGVzc2YNCiAgICAgICB8IExpZ2h0IHwgTW9kaSB8IE11bGkgfCBNdWxmIHwgTmVnaSB8IE5lZ2Yg
fCBQbGFuZSB8IFBvaW50DQogICAgICAgfCBQb2ludGxpZ2h0IHwgUmVhbCB8IFJlbmRlciB8IFJv
dGF0ZXggfCBSb3RhdGV5IHwgUm90YXRleiB8IFNjYWxlDQogICAgICAgfCBTaW4gfCBTcGhlcmUg
fCBTcG90bGlnaHQgfCBTcXJ0IHwgU3ViaSB8IFN1YmYgfCBUcmFuc2xhdGUgfCBVbmlvbg0KICAg
ICAgIHwgVXNjYWxlDQoNCiAgICAgICgqIFByb2dyYW0gdG9rZW5zICopDQogICAgICBkYXRhdHlw
ZSB0ID0NCgkgRnVuIG9mIHQgbGlzdA0KICAgICAgIHwgQXJyIG9mIHQgbGlzdA0KICAgICAgIHwg
SWRlbnQgb2Ygc3RyaW5nDQogICAgICAgfCBCaW5kZXIgb2Ygc3RyaW5nDQogICAgICAgfCBJbnQg
b2YgaW50DQogICAgICAgfCBGbG9hdCBvZiBmbG9hdA0KICAgICAgIHwgQm9vbCBvZiBib29sDQog
ICAgICAgfCBTdHJpbmcgb2Ygc3RyaW5nDQogICAgICAgfCBQcmltIG9mIGsNCg0KICAgICAgKCog
aW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgcHJvZ3JhbSB0b2tlbnMgKikNCiAgICAgIGRhdGF0
eXBlIHQnID0NCgkgRnVuJyBvZiB0JyBsaXN0DQogICAgICAgfCBBcnInIG9mIHQnIGxpc3QNCiAg
ICAgICB8IElkZW50JyBvZiBpbnQgKCogaW5kZXggdG8gZW52aXJvbm1lbnQgc3RhY2sgKikNCiAg
ICAgICB8IEJpbmRlcicNCiAgICAgICAoKg0KICAgICB8IEludCcgb2YgaW50DQogICAgIHwgRmxv
YXQnIG9mIGZsb2F0DQogICAgIHwgQm9vbCcgb2YgYm9vbA0KICAgICB8IFN0cmluZycgb2Ygc3Ry
aW5nDQoJKikNCiAgICAgICB8IFByaW0nIG9mIGsNCiAgICAgICB8IFZhbCcgb2YgdiAoKiBpbmxp
bmVkIHZhbHVlICopDQoNCiAgICAgICgqIFZhbHVlcyAqKQ0KICAgICAgYW5kIHYgPQ0KCSBWSW50
IG9mIGludA0KCXwgVkZsb2F0IG9mIGZsb2F0DQoJfCBWQm9vbCBvZiBib29sDQoJfCBWU3RyIG9m
IHN0cmluZw0KCXwgVkNsb3Mgb2YgdiBsaXN0ICogdCcgbGlzdA0KCXwgVkZ1biBvZiAodiBsaXN0
IC0+IHYgbGlzdCkgKCogWFhYIGZvciB0aGUgY29tcGlsZXIgKikNCgl8IFZBcnIgb2YgdiBhcnJh
eQ0KCXwgVlBvaW50IG9mIHYgKiB2ICogdiAoKiBYWFggTWF5YmUgdGhlc2Ugc2hvdWxkIGJlIGZs
b2F0cz8gKikNCgl8IFZPYmogb2Ygb2JqDQoJfCBWTGlnaHQgb2YgdiAqIHYNCgl8IFZQdExpZ2h0
IG9mIHYgKiB2DQoJfCBWU3RMaWdodCBvZiB2ICogdiAqIHYgKiB2ICogdg0KDQogICAgICBhbmQg
b2JqID0NCgkgT09iaiBvZiBraW5kICogY2xvc3VyZSByZWYNCgl8IE9UcmFuc2Zvcm0gb2YNCgkg
IG9iaiAqDQoJICBNYXRyaXgudCAqICAgICAoKiBXb3JsZCB0byBvYmplY3QgKikNCgkgIE1hdHJp
eC50ICogICAgICgqIE9iamVjdCB0byB3b3JsZCAqKQ0KCSAgZmxvYXQgKiAgICAgICAgKCogU2Nh
bGUgZmFjdG9yICopDQoJICBib29sICAgICAgICAgICAoKiBJc29tZXRyeT8gKikNCgl8IE9Vbmlv
biBvZiBvYmogKiBvYmoNCgl8IE9JbnRlciBvZiBvYmogKiBvYmoNCgl8IE9EaWZmIG9mIG9iaiAq
IG9iag0KDQogICAgICBhbmQga2luZCA9DQoJIE9TcGhlcmUNCgl8IE9DdWJlDQoJfCBPQ3lsaW5k
DQoJfCBPQ29uZQ0KCXwgT1BsYW5lDQoNCiAgICAgIGFuZCBjbG9zdXJlID0NCgkgVW5vcHQgb2Yg
diAoKiBVbm9wdGltaXplZCBmdW5jdGlvbiAqKQ0KCXwgT3B0IG9mIHYNCgl8IENzdCBvZiAoZmxv
YXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgKiBmbG9hdCAqIGZsb2F0KQ0KDQogICAgICAoKiBU
cmFuc2xhdGlvbiBvZiBhbiBpZGVudGlmaWVyICopDQogICAgICB2YWwgdHJhbnNsYXRlIDogc3Ry
aW5nIC0+IHQNCg0KICAgICAgKCogR2V0IHRoZSBuYW1lIG9mIGFuIGlkZW50aWZpZXIgKikNCigq
ICAgICAgdmFsIG5hbWUgOiB0JyAtPiBzdHJpbmcgKikNCg0KICAgICAgZXhjZXB0aW9uIFN0dWNr
X2NvbXB1dGF0aW9uIG9mIHYgbGlzdCAqIHYgbGlzdCAqIHQnIGxpc3QNCiAgICAgIGV4Y2VwdGlv
biBTdHVja19jb21wdXRhdGlvbicgKCogZm9yIGNvbXBpbGVyICopDQoNCiAgICAgIHZhbCByZWFk
OiBUZXh0SU8uaW5zdHJlYW0gLT4gdCBsaXN0DQogICBlbmQNCnN0cnVjdHVyZSBQcm9ncmFtOiBQ
Uk9HUkFNID0NCnN0cnVjdA0KDQpvcGVuIENhbWwNCg0KZGF0YXR5cGUgayA9DQogICAgQWNvcyB8
IEFkZGkgfCBBZGRmIHwgQXBwbHkgfCBBc2luIHwgQ2xhbXBmIHwgQ29uZSB8IENvcyB8IEN1YmUN
CiAgfCBDeWxpbmRlciB8IERpZmZlcmVuY2UgfCBEaXZpIHwgRGl2ZiB8IEVxaSB8IEVxZiB8IEZs
b29yIHwgRnJhYw0KICB8IEdldCB8IEdldHggfCBHZXR5IHwgR2V0eiB8IElmIHwgSW50ZXJzZWN0
IHwgTGVuZ3RoIHwgTGVzc2kgfCBMZXNzZg0KICB8IExpZ2h0IHwgTW9kaSB8IE11bGkgfCBNdWxm
IHwgTmVnaSB8IE5lZ2YgfCBQbGFuZSB8IFBvaW50DQogIHwgUG9pbnRsaWdodCB8IFJlYWwgfCBS
ZW5kZXIgfCBSb3RhdGV4IHwgUm90YXRleSB8IFJvdGF0ZXogfCBTY2FsZQ0KICB8IFNpbiB8IFNw
aGVyZSB8IFNwb3RsaWdodCB8IFNxcnQgfCBTdWJpIHwgU3ViZiB8IFRyYW5zbGF0ZSB8IFVuaW9u
DQogIHwgVXNjYWxlDQoNCmRhdGF0eXBlIHQgPQ0KICAgIEZ1biBvZiB0IGxpc3QNCiAgfCBBcnIg
b2YgdCBsaXN0DQogIHwgSWRlbnQgb2Ygc3RyaW5nDQogIHwgQmluZGVyIG9mIHN0cmluZw0KICB8
IEludCBvZiBpbnQNCiAgfCBGbG9hdCBvZiBmbG9hdA0KICB8IEJvb2wgb2YgYm9vbA0KICB8IFN0
cmluZyBvZiBzdHJpbmcNCiAgfCBQcmltIG9mIGsNCg0KZGF0YXR5cGUgdCcgPQ0KICAgIEZ1bicg
b2YgdCcgbGlzdA0KICB8IEFycicgb2YgdCcgbGlzdA0KICB8IElkZW50JyBvZiBpbnQgKCogaW5k
ZXggdG8gZW52aXJvbm1lbnQgc3RhY2sgKikNCiAgfCBCaW5kZXInDQooKg0KICB8IEludCcgb2Yg
aW50DQogIHwgRmxvYXQnIG9mIGZsb2F0DQogIHwgQm9vbCcgb2YgYm9vbA0KICB8IFN0cmluZycg
b2Ygc3RyaW5nDQoqKQ0KICB8IFByaW0nIG9mIGsNCiAgfCBWYWwnIG9mIHYgKCogaW5saW5lZCB2
YWx1ZSAqKQ0KDQphbmQgdiA9DQogICBWSW50IG9mIGludA0KICB8IFZGbG9hdCBvZiBmbG9hdA0K
ICB8IFZCb29sIG9mIGJvb2wNCiAgfCBWU3RyIG9mIHN0cmluZw0KICB8IFZDbG9zIG9mIHYgbGlz
dCAqIHQnIGxpc3QNCiAgfCBWRnVuIG9mICh2IGxpc3QgLT4gdiBsaXN0KSAoKiBYWFggZm9yIHRo
ZSBjb21waWxlciAqKQ0KICB8IFZBcnIgb2YgdiBhcnJheQ0KICB8IFZQb2ludCBvZiB2ICogdiAq
IHYNCiAgfCBWT2JqIG9mIG9iag0KICB8IFZMaWdodCBvZiB2ICogdg0KICB8IFZQdExpZ2h0IG9m
IHYgKiB2DQogIHwgVlN0TGlnaHQgb2YgdiAqIHYgKiB2ICogdiAqIHYNCg0KYW5kIG9iaiA9DQog
ICAgT09iaiBvZiBraW5kICogY2xvc3VyZSByZWYNCiAgfCBPVHJhbnNmb3JtIG9mDQogICAgICBv
YmogKg0KICAgICAgTWF0cml4LnQgKiAgICAgKCogV29ybGQgdG8gb2JqZWN0ICopDQogICAgICBN
YXRyaXgudCAqICAgICAoKiBPYmplY3QgdG8gd29ybGQgKikNCiAgICAgIGZsb2F0ICogICAgICAg
ICgqIFNjYWxlIGZhY3RvciAqKQ0KICAgICAgYm9vbCAgICAgICAgICAgKCogSXNvbWV0cnk/ICop
DQogIHwgT1VuaW9uIG9mIG9iaiAqIG9iag0KICB8IE9JbnRlciBvZiBvYmogKiBvYmoNCiAgfCBP
RGlmZiBvZiBvYmogKiBvYmoNCg0KYW5kIGtpbmQgPQ0KICAgIE9TcGhlcmUNCiAgfCBPQ3ViZQ0K
ICB8IE9DeWxpbmQNCiAgfCBPQ29uZQ0KICB8IE9QbGFuZQ0KDQphbmQgY2xvc3VyZSA9DQogICAg
VW5vcHQgb2Ygdg0KICB8IE9wdCBvZiB2DQogIHwgQ3N0IG9mIChmbG9hdCAqIGZsb2F0ICogZmxv
YXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQpDQoNCmZ1biBjcmVhdGVfaGFzaHRhYmxlcyBzaXpl
IGluaXQgPQ0KICAgbGV0DQogICAgICB2YWwgdGJsOiAoc3RyaW5nLCB0KSBIYXNodGJsLnQgPSBI
YXNodGJsLmNyZWF0ZSBzaXplIA0KKCogICAgICB2YWwgdGJsJyA9IEhhc2h0YmwuY3JlYXRlIHNp
emUgICopDQogICBpbg0KICAgICAgTGlzdC5pdGVyIChmbiAoa2V5LCBkYXRhKSA9PiBIYXNodGJs
LmFkZCB0Ymwga2V5IGRhdGEpIGluaXQ7DQooKiAgICAgIExpc3QuaXRlciAoZm4gKGRhdGEsIGtl
eSkgLT4gSGFzaHRibC5hZGQgdGJsJyBrZXkgZGF0YSkgaW5pdDsgKikNCiAgICAgIHRibCAoKiwg
dGJsJyAqKQ0KICAgZW5kDQoNCnZhbCBrZXl3b3JkcygqLCBrZXl3b3JkX25hbWUpKikgPQ0KICBj
cmVhdGVfaGFzaHRhYmxlcyAxMDENCigqIEJvb2xlYW5zIGFyZSBlaXRoZXIgdGhlIGxpdGVyYWwg
dHJ1ZSBvciB0aGUgbGl0ZXJhbCBmYWxzZS4gKikNCiAgICBbICgidHJ1ZSIsIEJvb2wgdHJ1ZSks
DQogICAgICAoImZhbHNlIiwgQm9vbCBmYWxzZSksDQooKiBPcGVyYXRvcnMgKHNlZSBhcHBlbmRp
eCkgKikNCiAgICAgICgiYWNvcyIsIFByaW0gQWNvcyksDQogICAgICAoImFkZGkiLCBQcmltIEFk
ZGkpLA0KICAgICAgKCJhZGRmIiwgUHJpbSBBZGRmKSwNCiAgICAgICgiYXBwbHkiLCBQcmltIEFw
cGx5KSwNCiAgICAgICgiYXNpbiIsIFByaW0gQXNpbiksDQogICAgICAoImNsYW1wZiIsIFByaW0g
Q2xhbXBmKSwNCiAgICAgICgiY29uZSIsIFByaW0gQ29uZSksDQogICAgICAoImNvcyIsIFByaW0g
Q29zKSwNCiAgICAgICgiY3ViZSIsIFByaW0gQ3ViZSksDQogICAgICAoImN5bGluZGVyIiwgUHJp
bSBDeWxpbmRlciksDQogICAgICAoImRpZmZlcmVuY2UiLCBQcmltIERpZmZlcmVuY2UpLA0KICAg
ICAgKCJkaXZpIiwgUHJpbSBEaXZpKSwNCiAgICAgICgiZGl2ZiIsIFByaW0gRGl2ZiksDQogICAg
ICAoImVxaSIsIFByaW0gRXFpKSwNCiAgICAgICgiZXFmIiwgUHJpbSBFcWYpLA0KICAgICAgKCJm
bG9vciIsIFByaW0gRmxvb3IpLA0KICAgICAgKCJmcmFjIiwgUHJpbSBGcmFjKSwNCiAgICAgICgi
Z2V0IiwgUHJpbSBHZXQpLA0KICAgICAgKCJnZXR4IiwgUHJpbSBHZXR4KSwNCiAgICAgICgiZ2V0
eSIsIFByaW0gR2V0eSksDQogICAgICAoImdldHoiLCBQcmltIEdldHopLA0KICAgICAgKCJpZiIs
IFByaW0gSWYpLA0KICAgICAgKCJpbnRlcnNlY3QiLCBQcmltIEludGVyc2VjdCksDQogICAgICAo
Imxlbmd0aCIsIFByaW0gTGVuZ3RoKSwNCiAgICAgICgibGVzc2kiLCBQcmltIExlc3NpKSwNCiAg
ICAgICgibGVzc2YiLCBQcmltIExlc3NmKSwNCiAgICAgICgibGlnaHQiLCBQcmltIExpZ2h0KSwN
CiAgICAgICgibW9kaSIsIFByaW0gTW9kaSksDQogICAgICAoIm11bGkiLCBQcmltIE11bGkpLA0K
ICAgICAgKCJtdWxmIiwgUHJpbSBNdWxmKSwNCiAgICAgICgibmVnaSIsIFByaW0gTmVnaSksDQog
ICAgICAoIm5lZ2YiLCBQcmltIE5lZ2YpLA0KICAgICAgKCJwbGFuZSIsIFByaW0gUGxhbmUpLA0K
ICAgICAgKCJwb2ludCIsIFByaW0gUG9pbnQpLA0KICAgICAgKCJwb2ludGxpZ2h0IiwgUHJpbSBQ
b2ludGxpZ2h0KSwNCiAgICAgICgicmVhbCIsIFByaW0gUmVhbCksDQogICAgICAoInJlbmRlciIs
IFByaW0gUmVuZGVyKSwNCiAgICAgICgicm90YXRleCIsIFByaW0gUm90YXRleCksDQogICAgICAo
InJvdGF0ZXkiLCBQcmltIFJvdGF0ZXkpLA0KICAgICAgKCJyb3RhdGV6IiwgUHJpbSBSb3RhdGV6
KSwNCiAgICAgICgic2NhbGUiLCBQcmltIFNjYWxlKSwNCiAgICAgICgic2luIiwgUHJpbSBTaW4p
LA0KICAgICAgKCJzcGhlcmUiLCBQcmltIFNwaGVyZSksDQogICAgICAoInNwb3RsaWdodCIsIFBy
aW0gU3BvdGxpZ2h0KSwNCiAgICAgICgic3FydCIsIFByaW0gU3FydCksDQogICAgICAoInN1Ymki
LCBQcmltIFN1YmkpLA0KICAgICAgKCJzdWJmIiwgUHJpbSBTdWJmKSwNCiAgICAgICgidHJhbnNs
YXRlIiwgUHJpbSBUcmFuc2xhdGUpLA0KICAgICAgKCJ1bmlvbiIsIFByaW0gVW5pb24pLA0KICAg
ICAgKCJ1c2NhbGUiLCBQcmltIFVzY2FsZSldDQoNCmZ1biB0cmFuc2xhdGUgaSA9DQogICBIYXNo
dGJsLmZpbmQga2V5d29yZHMgaQ0KICAgaGFuZGxlIE5vdF9mb3VuZCA9PiBJZGVudCBpDQoNCigq
IGZ1biBuYW1lIHRva2VuID0NCiAqICAgSGFzaHRibC5maW5kIGtleXdvcmRfbmFtZQ0KICogICAg
IChtYXRjaCB0b2tlbiB3aXRoDQogKiAgICAgICBQcmltJyBrIC0+IFByaW0gaw0KICogICAgIHwg
XyAgICAgICAtPiByYWlzZSBOb3RfZm91bmQpDQogKiANCiAqKQ0KZXhjZXB0aW9uIFN0dWNrX2Nv
bXB1dGF0aW9uIG9mIHYgbGlzdCAqIHYgbGlzdCAqIHQnIGxpc3QNCmV4Y2VwdGlvbiBTdHVja19j
b21wdXRhdGlvbicgKCogZm9yIGNvbXBpbGVyICopDQoNCnN0cnVjdHVyZSBMZXhUb2tlbiA9IExl
eFRva2VuKCkNCnN0cnVjdHVyZSBMZXggPSBMZXgoc3RydWN0dXJlIFRva2VuID0gTGV4VG9rZW4p
DQoNCmZ1biByZWFkKGluczogVGV4dElPLmluc3RyZWFtKTogdCBsaXN0ID0NCiAgIGxldA0KICAg
ICAgdmFsIGxleDogdW5pdCAtPiBMZXhUb2tlbi50ID0NCgkgTGV4Lm1ha2VMZXhlcihmbiBuID0+
IFRleHRJTy5pbnB1dE4oaW5zLCBuKSkoKQ0KICAgICAgbG9jYWwNCgkgdmFsIG5leHQ6IExleFRv
a2VuLnQgb3B0aW9uIHJlZiA9IHJlZiBOT05FDQogICAgICBpbg0KCSBmdW4gdG9rZW4oKTogTGV4
VG9rZW4udCA9DQoJICAgIGNhc2UgIW5leHQgb2YNCgkgICAgICAgTk9ORSA9PiBsZXgoKQ0KCSAg
ICAgfCBTT01FIHQgPT4gKG5leHQgOj0gTk9ORTsgdCkNCgkgZnVuIHNhdmUodDogTGV4VG9rZW4u
dCk6IHVuaXQgPQ0KCSAgICBuZXh0IDo9IFNPTUUgdA0KICAgICAgZW5kDQogICAgICBmdW4gYmFk
KCkgPSBmYWlsd2l0aCAiaW52YWxpZCBpbnB1dCINCiAgICAgIGZ1biBtYW55KGRvbmU6IExleFRv
a2VuLnQgLT4gYm9vbCk6IHQgbGlzdCA9DQoJIGxldA0KCSAgICBmdW4gbG9vcChhYzogdCBsaXN0
KSA9DQoJICAgICAgIGNhc2Ugb25lKCkgb2YNCgkJICBOT05FID0+IGlmIGRvbmUodG9rZW4oKSkN
CgkJCSAgICAgdGhlbiByZXYgYWMNCgkJCSAgZWxzZSBiYWQoKQ0KCQl8IFNPTUUgdCA9PiBsb29w
KHQgOjogYWMpDQoJIGluIGxvb3AgW10NCgkgZW5kDQogICAgICBhbmQgb25lKCk6IHQgb3B0aW9u
ID0NCgkgbGV0IGZ1biB0b2sgdCA9IFNPTUUgdA0KCSBpbiBjYXNlIHRva2VuKCkgb2YNCgkgICAg
TGV4VG9rZW4uQmluZGVyIHggPT4gdG9rKEJpbmRlciB4KQ0KCSAgfCBMZXhUb2tlbi5Cb29sIGIg
PT4gdG9rKEJvb2wgYikNCgkgIHwgTGV4VG9rZW4uSWRlbnRpZmllciB4ID0+IHRvayh0cmFuc2xh
dGUgeCkNCgkgIHwgTGV4VG9rZW4uSW50IGkgPT4gdG9rKEludCBpKQ0KCSAgfCBMZXhUb2tlbi5M
YnJhY2UgPT4NCgkgICAgICAgU09NRShGdW4obWFueShmbiBMZXhUb2tlbi5SYnJhY2UgPT4gdHJ1
ZSB8IF8gPT4gZmFsc2UpKSkNCgkgIHwgTGV4VG9rZW4uTGJyYWNrZXQgPT4NCgkgICAgICAgU09N
RShBcnIobWFueShmbiBMZXhUb2tlbi5SYnJhY2tldCA9PiB0cnVlIHwgXyA9PmZhbHNlKSkpDQoJ
ICB8IExleFRva2VuLlJlYWwgciA9PiB0b2soRmxvYXQgcikNCgkgIHwgTGV4VG9rZW4uU3RyaW5n
IHMgPT4gdG9rKFN0cmluZyBzKQ0KCSAgfCB0ID0+IChzYXZlIHQ7IE5PTkUpDQoJIGVuZA0KICAg
aW4gbWFueShmbiBMZXhUb2tlbi5Fb2YgPT4gdHJ1ZSB8IF8gPT4gZmFsc2UpDQogICBlbmQNCg0K
ZW5kDQpzaWduYXR1cmUgUFBNID0NCiAgIHNpZw0KICAgICAgaW5jbHVkZSBDQU1MDQoNCiAgICAg
IHR5cGUgcGl4bWFwDQoNCiAgICAgIHZhbCBpbml0IDogKCp3aWR0aDoqKWludCAqICgqaGVpZ2h0
OiopaW50IC0+IHBpeG1hcA0KICAgICAgdmFsIGR1bXAgOiBzdHJpbmcgKiBwaXhtYXAgLT4gdW5p
dA0KKCogICAgICB2YWwgbG9hZCA6IHN0cmluZyAtPiBwaXhtYXAgKikNCg0KICAgICAgdmFsIHdp
ZHRoIDogcGl4bWFwIC0+IGludA0KICAgICAgdmFsIGhlaWdodCA6IHBpeG1hcCAtPiBpbnQNCg0K
ICAgICAgdmFsIGdldCA6IHBpeG1hcCAqIGludCAqIGludCAqIGludCAtPiBpbnQNCiAgICAgIHZh
bCBzZXQgOiBwaXhtYXAgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgLT4gdW5pdA0KICAgICAgdmFs
IHNldHAgOiBwaXhtYXAgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgLT4gdW5pdA0KICAg
ZW5kDQpzdHJ1Y3R1cmUgUHBtOiBQUE0gPQ0Kc3RydWN0DQogICANCm9wZW4gQ2FtbA0KDQpzdHJ1
Y3R1cmUgQXJyYXkgPSBXb3JkOEFycmF5DQpzdHJ1Y3R1cmUgV29yZCA9IFdvcmQ4DQogICANCnR5
cGUgcGl4bWFwID0gQXJyYXkuYXJyYXkgKiBpbnQNCg0KZnVuIGdldCAoKGltZywgd2lkdGgpLCBp
LCBqLCBrKSA9DQogICBXb3JkLnRvSW50IChBcnJheS5zdWIgKGltZywgKChqICogd2lkdGgpICsg
aSkgKiAzICsgaykpDQoNCmZ1biBzZXQgKChpbWcsIHdpZHRoKSwgaSwgaiwgaywgdikgPQ0KICAg
QXJyYXkudXBkYXRlIChpbWcsICgoaiAqIHdpZHRoKSArIGkpICogMyArIGssIFdvcmQuZnJvbUlu
dCB2KQ0KDQpmdW4gc2V0cCAoKGltZywgd2lkdGgpLCBpLCBqLCByLCBnLCBiKSA9DQogIGxldCB2
YWwgcCA9ICgoaiAqIHdpZHRoKSArIGkpICogMw0KICBpbiBBcnJheS51cGRhdGUoaW1nLCBwLCBX
b3JkLmZyb21JbnQgcikNCiAgICAgOyBBcnJheS51cGRhdGUoaW1nLCBwICsgMSwgV29yZC5mcm9t
SW50IGcpDQogICAgIDsgQXJyYXkudXBkYXRlKGltZywgcCArIDIsIFdvcmQuZnJvbUludCBiKQ0K
ICBlbmQNCg0KZnVuIGluaXQgKHdpZHRoLCBoZWlnaHQpID0NCiAgIChBcnJheS5hcnJheShoZWln
aHQgKiB3aWR0aCAqIDMsIDB3MCksIHdpZHRoKQ0KDQpmdW4gd2lkdGggKHMsIHdpZHRoKSA9IHdp
ZHRoDQpmdW4gaGVpZ2h0IChzLCB3aWR0aCkgPSBBcnJheS5sZW5ndGggcyBkaXYgd2lkdGggZGl2
IDMNCg0KZnVuIGR1bXAgKGZpbGUsIChpbWcsIHdpZHRoKSkgPQ0KICBsZXQNCiAgICAgdmFsIHN6
ID0gQXJyYXkubGVuZ3RoIGltZw0KICAgICB2YWwgaGVpZ2h0ID0gc3ogZGl2IDMgZGl2IHdpZHRo
DQogICAgIHZhbCBmID0gb3Blbl9vdXRfYmluIGZpbGUNCiAgaW4gb3V0cHV0X3N0cmluZyAoZiwg
IlA2XG4jIFBMIENsdWIgLSB0cmFuc2xhdGVkIHRvIFNNTFxuIikNCiAgICAgOyBvdXRwdXRfc3Ry
aW5nIChmLCBjb25jYXRbSW50LnRvU3RyaW5nIHdpZHRoLCAiICIsDQoJCQkgICAgICAgSW50LnRv
U3RyaW5nIGhlaWdodCwgIlxuMjU1XG4iXSkNCiAgICAgOyBvdXRwdXRfc3RyaW5nIChmLCBCeXRl
LnVucGFja1N0cmluZyhpbWcsIDAsIE5PTkUpKQ0KICAgICA7IGNsb3NlX291dCBmDQogIGVuZA0K
DQooKiBmdW4gbG9hZCBmaWxlID0NCiAqICAgbGV0IGYgPSBvcGVuX2luX2JpbiBmaWxlIGluDQog
KiAgIGFzc2VydCAoaW5wdXRfbGluZSBmID0gIlA2Iik7DQogKiAgIGFzc2VydCAoKGlucHV0X2xp
bmUgZikuWzBdID0gJyMnKTsNCiAqICAgbGV0IHMgPSBpbnB1dF9saW5lIGYgaW4NCiAqICAgbGV0
IGkgPSByZWYgMCBpbg0KICogICB3aGlsZSBzLlshaV0gPj0gJzAnICYmIHMuWyFpXSA8PSAnOScg
ZG8gaW5jciBpIGRvbmU7DQogKiAgIGxldCB3aWR0aCA9IGludF9vZl9zdHJpbmcgKFN0cmluZy5z
dWIgcyAwICFpKSBpbg0KICogICBsZXQgaGVpZ2h0ID0NCiAqICAgICBpbnRfb2Zfc3RyaW5nIChT
dHJpbmcuc3ViIHMgKCFpICsgMSkgKFN0cmluZy5sZW5ndGggcyAtICFpIC0gMSkpIGluDQogKiAg
IGFzc2VydCAoaW5wdXRfbGluZSBmID0gIjI1NSIpOw0KICogICBsZXQgKHMsIF8pIGFzIGltZyA9
IGluaXQgd2lkdGggaGVpZ2h0IGluDQogKiAgIHJlYWxseV9pbnB1dCBmIHMgMCAoU3RyaW5nLmxl
bmd0aCBzKTsNCiAqICAgY2xvc2VfaW4gZjsNCiAqICAgaW1nDQogKikNCmVuZA0Kc2lnbmF0dXJl
IFJFTkRFUiA9DQogICBzaWcNCiAgICAgIGluY2x1ZGUgQ0FNTA0KCSANCiAgICAgIHZhbCBhcHBs
eSA6IChQcm9ncmFtLnYgKiBQcm9ncmFtLnYgbGlzdCAtPiBQcm9ncmFtLnYgbGlzdCkgcmVmDQog
ICAgICB2YWwgaW5saW5lX2Nsb3N1cmUgOiAoUHJvZ3JhbS52IC0+IFByb2dyYW0udikgcmVmDQoN
CiAgICAgIHZhbCBmIDoNCgkgKCphbWI6KikoZmxvYXQgKiBmbG9hdCAqIGZsb2F0KSAqICgqbGln
aHRzOiopIFByb2dyYW0udiBhcnJheSAqDQoJICgqb2JqOiopUHJvZ3JhbS5vYmogKiAoKmRlcHRo
OiopaW50ICogKCpmb3Y6KilmbG9hdCAqDQoJICgqd2lkOiopaW50ICogKCpodDoqKWludCAqDQoJ
ICgqZmlsZToqKXN0cmluZyAtPiB1bml0DQogICBlbmQNCnN0cnVjdHVyZSBSZW5kZXI6IFJFTkRF
UiA9DQpzdHJ1Y3QNCg0Kb3BlbiBDYW1sDQppbmZpeCA5ICoqDQpvcGVuIFByb2dyYW0NCg0KKCog
U2NlbmUgZGVzY3JpcHRpb24gKikNCmRhdGF0eXBlIGtpbmQgPSAoKiBzZWN0aW9uIDMuMiAqKQ0K
ICAgIFNTcGhlcmUgb2YgTWF0cml4LnYgKCogQ2VudGVyICopICogZmxvYXQgKCogU3F1YXJlIG9m
IHRoZSByYWRpdXMgKikNCiAgfCBTRWxsaXBzDQogIHwgU0N1YmUgb2YgTWF0cml4LnYgKCogTm9y
bWFsIHggPSAwICopICoNCiAgICAgICAgICAgICBNYXRyaXgudiAoKiBOb3JtYWwgeSA9IDAgKikg
Kg0KICAgICAgICAgICAgIE1hdHJpeC52ICgqIE5vcm1hbCB6ID0gMCAqKQ0KICB8IFNDeWxpbmQg
b2YgTWF0cml4LnYgKCogTm9ybWFsICopDQogIHwgU0NvbmUgb2YgTWF0cml4LnYgKCogTm9ybWFs
ICopDQogIHwgU1BsYW5lIG9mIE1hdHJpeC52ICgqIEVxdWF0aW9uICopICogTWF0cml4LnYgKCog
Tm9ybWFsICopDQoNCmRhdGF0eXBlIHNjZW5lID0gKCogc2VjdGlvbiAzLjcgKikNCiAgICBTT2Jq
IG9mIGtpbmQgKiBjbG9zdXJlIHJlZiAoKiBzdXJmYWNlIGZ1bmN0aW9uICopICogTWF0cml4LnQN
CiAgfCBTQm91bmQgb2Ygc2NlbmUgKiBNYXRyaXgudiAoKiBDZW50ZXIgKikgKiBmbG9hdCAoKiBT
cXVhcmUgb2YgdGhlIHJhZGl1cyAqKQ0KICB8IFNVbmlvbiBvZiBzY2VuZSAqIHNjZW5lDQogIHwg
U0ludGVyIG9mIHNjZW5lICogc2NlbmUNCiAgfCBTRGlmZiBvZiBzY2VuZSAqIHNjZW5lDQoNCmRh
dGF0eXBlIGxpZ2h0ID0gKCogc2VjdGlvbiAzLjUgKikNCiAgICBMaWdodCBvZiBNYXRyaXgudiAo
KiBuZWdhdGVkICYgbm9ybWFsaXplZCAqKSAqIChmbG9hdCAqIGZsb2F0ICogZmxvYXQpDQogIHwg
UHRMaWdodCBvZiBNYXRyaXgudiAqIChmbG9hdCAqIGZsb2F0ICogZmxvYXQpDQogIHwgU3RMaWdo
dCBvZiBNYXRyaXgudiAqIE1hdHJpeC52ICgqIG5lZ2F0ZWQgJiBub3JtYWxpemVkICopICoNCiAg
ICAgICAgICAgICAgIChmbG9hdCAqIGZsb2F0ICogZmxvYXQpICogZmxvYXQgKCogY29zICopICog
ZmxvYXQNCg0KdHlwZSBkZXNjID0NCiAgeyBhbWIgOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQsDQog
ICAgbGlnaHRzIDogbGlnaHQgYXJyYXksDQogICAgc2NlbmUgOiBzY2VuZSB9DQoNCm9wZW4gTWF0
aA0Kb3BlbiBNYXRyaXgNCg0KKCoqKiogU2NlbmUgY2FsY3VsYXRpb24gKioqKikNCg0KKCogUGxh
bmUgZXF1YXRpb24gYW5kIG5vcm1hbCBpbiB3b3JsZCBjb29yZGluYXRlcyAqKQ0KZnVuIHBsYW5l
X2VxKG0sIHYpID0NCiAgbGV0DQogICAgIHZhbCBuID0gdm11bCAodHJhbnNwb3NlIG0sIHYgKQ0K
ICBpbg0KICAgICAobiwgbm9ybWFsaXplKCMxIG4sICMyIG4sICMzIG4sIDAuMCkpDQogIGVuZA0K
DQp2YWwgb3JpZ2luID0gKCAwLjAsIDAuMCwgMC4wLCAxLjAgKQ0KdmFsIGN1YmVfY2VudGVyID0g
KCAwLjUsIDAuNSwgMC41LCAxLjAgKQ0KdmFsIGN5bGluZGVyX2NlbnRlciA9ICggMC4wLCAwLjUs
IDAuMCwgMS4wICkNCnZhbCBjb25lX2NlbnRlciA9ICggMC4wLCAxLjAsIDAuMCwgMS4wICkNCg0K
ZnVuIGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCBvYikgPQ0KKCogYXBwbHkgdHJhbnNm
b3JtYXRpb25zICopDQogIGNhc2Ugb2Igb2YNCiAgICBPT2JqIChPU3BoZXJlLCBmKSA9Pg0KICAg
ICAgIGlmIGlzb20NCgkgIHRoZW4NCgkgICAgIGxldA0KCQl2YWwgY2VudGVyID0gdm11bCAobTEs
IG9yaWdpbikNCgkJdmFsIHJhZGl1cyA9IHNjYWxlICogc2NhbGUNCgkgICAgIGluDQoJCVNCb3Vu
ZCAoU09iaiAoU1NwaGVyZSAoY2VudGVyLCByYWRpdXMpLCBmLCBtKSwgY2VudGVyLCByYWRpdXMp
DQoJICAgICBlbmQNCiAgICAgICBlbHNlDQoJICBsZXQNCgkgICAgIHZhbCBjZW50ZXIgPSB2bXVs
IChtMSwgb3JpZ2luKQ0KCSAgICAgdmFsIHJhZGl1cyA9IHNjYWxlICogc2NhbGUNCgkgIGluDQoJ
ICAgICBTQm91bmQgKFNPYmogKFNFbGxpcHMsIGYsIG0pLCBjZW50ZXIsIHJhZGl1cykNCgkgIGVu
ZA0KICB8IE9PYmogKE9DdWJlLCBmKSA9Pg0KICAgICAgbGV0DQoJIHZhbCAobngsIG54JykgPSBw
bGFuZV9lcShtLCAoMS4wLCAwLjAsIDAuMCwgMC4wKSkNCgkgdmFsIChueSwgbnknKSA9IHBsYW5l
X2VxKG0sICgwLjAsIDEuMCwgMC4wLCAwLjApKQ0KCSB2YWwgKG56LCBueicpID0gcGxhbmVfZXEo
bSwgKDAuMCwgMC4wLCAxLjAsIDAuMCkpDQoJIHZhbCBjID0gU09iaiAoU0N1YmUgKG54Jywgbnkn
LCBueicpLCBmLCBtKQ0KICAgICAgaW4NCgkgU0JvdW5kIChjLCB2bXVsIChtMSwgY3ViZV9jZW50
ZXIpLCBzY2FsZSAqIHNjYWxlICogMC43NSkNCiAgICAgIGVuZA0KICB8IE9PYmogKE9DeWxpbmQs
IGYpID0+DQogICAgICBsZXQNCgkgdmFsIChuLCBuJykgPSBwbGFuZV9lcShtLCAoMC4wLCAxLjAs
IDAuMCwgMC4wKSkNCgkgdmFsIGMgPSBTT2JqIChTQ3lsaW5kIG4nLCBmLCBtKQ0KICAgICAgaW4N
CgkgU0JvdW5kIChjLCB2bXVsKG0xLCBjeWxpbmRlcl9jZW50ZXIpLCBzY2FsZSAqIHNjYWxlICog
MS4yNSkNCiAgICAgIGVuZA0KICB8IE9PYmogKE9Db25lLCBmKSA9Pg0KICAgICAgbGV0DQoJIHZh
bCAobiwgbicpID0gcGxhbmVfZXEobSwgKDAuMCwgMS4wLCAwLjAsIDAuMCkpDQoJIHZhbCBjID0g
U09iaiAoU0NvbmUgbicsIGYsIG0pDQogICAgICBpbg0KCSBTQm91bmQgKGMsIHZtdWwobTEsIGNv
bmVfY2VudGVyKSwgc2NhbGUgKiBzY2FsZSkNCiAgICAgIGVuZA0KICB8IE9PYmogKE9QbGFuZSwg
ZikgPT4NCiAgICAgIGxldA0KCSB2YWwgKG4sIG4nKSA9IHBsYW5lX2VxKG0sICgwLjAsIDEuMCwg
MC4wLCAwLjApKQ0KICAgICAgaW4NCgkgU09iaiAoU1BsYW5lIChuLCBuJyksIGYsIG0pDQogICAg
ICBlbmQNCiAgfCBPVHJhbnNmb3JtIChvJywgbScsIG0nMSwgc2NhbGUnLCBpc29tJykgPT4NCiAg
ICAgIGludGVybl9vYmoNCiAgICAgICAgKE1hdHJpeC5tdWwobScsIG0pLCBNYXRyaXgubXVsKG0x
LCBtJzEpLA0KCSBzY2FsZSAqIHNjYWxlJywgaXNvbSBhbmRhbHNvIGlzb20nLCBvJykNCiAgfCBP
VW5pb24gKG8xLCBvMikgPT4NCiAgICAgIFNVbmlvbiAoaW50ZXJuX29iaihtLCBtMSwgc2NhbGUs
IGlzb20sIG8xKSwNCgkgICAgICBpbnRlcm5fb2JqKG0sIG0xLCBzY2FsZSwgaXNvbSwgbzIpKQ0K
ICB8IE9JbnRlciAobzEsIG8yKSA9Pg0KICAgICAgU0ludGVyIChpbnRlcm5fb2JqKG0sIG0xLCBz
Y2FsZSwgaXNvbSwgbzEpLA0KCSAgICAgIGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCBv
MikpDQogIHwgT0RpZmYgKE9EaWZmIChvMSwgbzIpLCBvMykgPT4NCiAgICAgICgqIEJldHRlciB0
byBoYXZlIHVuaW9ucyB0aGF0IGRpZmZzIGZvciBpbnRyb2R1Y2luZyBib3VuZHMgKikNCiAgICAg
IGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCAoT0RpZmYgKG8xLCBPVW5pb24gKG8yLCBv
MykpKSkNCiAgfCBPRGlmZiAobzEsIG8yKSA9Pg0KICAgICAgU0RpZmYgKGludGVybl9vYmoobSwg
bTEsIHNjYWxlLCBpc29tLCBvMSksDQoJICAgICBpbnRlcm5fb2JqKG0sIG0xLCBzY2FsZSwgaXNv
bSwgbzIpKQ0KDQpmdW4gaW50ZXJuX2xpZ2h0cyBhID0NCiAgQXJyYXkubWFwDQogICAgKGZuIFZM
aWdodCAoVlBvaW50IChWRmxvYXQgeCwgVkZsb2F0IHksIFZGbG9hdCB6KSwNCiAgICAgICAgICAg
ICAgICAgVlBvaW50IChWRmxvYXQgciwgVkZsb2F0IGcsIFZGbG9hdCBiKSkgPT4NCiAgICAgICAg
ICAgTGlnaHQgKG5vcm1hbGl6ZSAobmVnICh4LCB5LCB6LCAwLjApKSwgKHIsIGcsIGIpKQ0KICAg
ICAgIHwgVlB0TGlnaHQgKFZQb2ludCAoVkZsb2F0IHgsIFZGbG9hdCB5LCBWRmxvYXQgeiksDQog
ICAgICAgICAgICAgICAgICAgVlBvaW50IChWRmxvYXQgciwgVkZsb2F0IGcsIFZGbG9hdCBiKSkg
PT4NCiAgICAgICAgICAgUHRMaWdodCAoKHgsIHksIHosIDEuMCksIChyLCBnLCBiKSkNCiAgICAg
ICB8IFZTdExpZ2h0IChWUG9pbnQgKFZGbG9hdCB4LCBWRmxvYXQgeSwgVkZsb2F0IHopLA0KICAg
ICAgICAgICAgICAgICAgIFZQb2ludCAoVkZsb2F0IHgnLCBWRmxvYXQgeScsIFZGbG9hdCB6Jyks
DQogICAgICAgICAgICAgICAgICAgVlBvaW50IChWRmxvYXQgciwgVkZsb2F0IGcsIFZGbG9hdCBi
KSwNCiAgICAgICAgICAgICAgICAgICBWRmxvYXQgY3V0b2ZmLCBWRmxvYXQgZXhwKSA9Pg0KICAg
ICAgICAgICBTdExpZ2h0ICgoeCwgeSwgeiwgMS4wKSwNCiAgICAgICAgICAgICAgICAgICAgbm9y
bWFsaXplICh4IC0geCcsIHkgLSB5JywgeiAtIHonLCAwLjApLA0KICAgICAgICAgICAgICAgICAg
ICAociwgZywgYiksIGRjb3MgY3V0b2ZmLCBleHApDQogICAgICAgfCBfID0+DQogICAgICAgICAg
IHJhaXNlKEZhaWwgImFzc2VydCBmYWxzZSIpKQ0KICAgIGENCg0KKCoqKiogU2NlbmUgb3B0aW1p
emF0aW9uICoqKiopDQoNCmZ1biBmbGF0dGVuX3JlYyhzYywgcmVtKSA9DQogIGNhc2Ugc2Mgb2YN
CiAgICBTVW5pb24gKHNjMSwgc2MyKSA9PiBmbGF0dGVuX3JlYyhzYzEsIGZsYXR0ZW5fcmVjKHNj
MiwgcmVtKSkNCiAgfCBzYyAgICAgICAgICAgICAgICA9PiBzYyA6OiByZW0NCg0KZnVuIGZsYXR0
ZW5fdW5pb24gc2MgPSBmbGF0dGVuX3JlYyhzYywgW10pDQoNCmZ1biBvYmplY3RfY29zdCBrIDog
aW50ID0NCiAgY2FzZSBrIG9mDQogICAgU1NwaGVyZSBfID0+IDENCiAgfCBTRWxsaXBzICAgPT4g
Mg0KICB8IFNDdWJlIF8gICA9PiA0DQogIHwgU0N5bGluZCBfID0+IDINCiAgfCBTQ29uZSBfICAg
PT4gMg0KICB8IFNQbGFuZSBfICA9PiAwICgqIFBsYW5lcyBkbyBub3QgaGF2ZSBhIGJvdW5kaW5n
IGJveCBhbnl3YXkgKikNCg0KZnVuIGFkZF9ib3VuZCAocjAsICh4LCByLCBjb3N0LCBzYykpID0N
CiAgaWYgcjAgPCAwLjANCiAgICAgdGhlbg0KCSBpZiByIDwgMC4wIG9yZWxzZSBjb3N0IDw9IDEN
CgkgICAgdGhlbiAoY29zdCwgc2MpDQoJIGVsc2UNCgkgICAgKDEsIFNCb3VuZCAoc2MsIHgsIHIp
KQ0KICBlbHNlDQogICAgICgqIENvc3Qgb2YgYm91bmRzICopDQogICAgIGxldA0KCXZhbCBjMCA9
IHIwICsgciAqIGZsb2F0IGNvc3QgDQoJKCogQ29zdCBvZm91dCBib3VuZHMgKikNCgl2YWwgYzEg
PSByMCAqIGZsb2F0IGNvc3QNCiAgICAgaW4NCglpZiBjMCA8IGMxIHRoZW4NCgkgICAoMSwgU0Jv
dW5kIChzYywgeCwgcikpDQoJZWxzZQ0KCSAgIChjb3N0LCBzYykNCiAgICAgZW5kDQoNCmZ1biB1
bmlvbl9ib3VuZCAoZHNjMSBhcyAoeDEsIHIxLCBjb3N0MSwgc2MxKSwNCgkJIGRzYzIgYXMgKHgy
LCByMiwgY29zdDIsIHNjMikpID0NCiAgaWYgcjEgPCAwLjAgdGhlbg0KICAgIGxldA0KICAgICAg
IHZhbCAoY29zdDInLCBzYzInKSA9IGFkZF9ib3VuZChyMSwgZHNjMikNCiAgICBpbg0KICAgICAg
ICh4MSwgcjEsIGNvc3QxLCBTVW5pb24gKHNjMSwgc2MyJykpDQogICAgZW5kDQogIGVsc2UgaWYg
cjIgPCAwLjAgdGhlbg0KICAgIGxldA0KICAgICAgIHZhbCAoY29zdDEnLCBzYzEnKSA9IGFkZF9i
b3VuZCAocjIsIGRzYzEpDQogICAgaW4NCiAgICAgICAoeDIsIHIyLCBjb3N0MiwgU1VuaW9uIChz
YzEnLCBzYzIpKQ0KICAgIGVuZA0KICBlbHNlDQogICAgbGV0DQogICAgICAgdmFsIGQgPSBzcXJ0
IChzcXVhcmUgKHN1Yih4MiwgeDEpKSkNCiAgICAgICB2YWwgcjEnID0gc3FydCByMQ0KICAgICAg
IHZhbCByMicgPSBzcXJ0IHIyDQogICAgaW4NCiAgICAgICBpZiBkICsgcjInIDw9IHIxJyB0aGVu
DQoJICBsZXQNCgkgICAgIHZhbCAoY29zdDInLCBzYzInKSA9IGFkZF9ib3VuZCAocjEsIGRzYzIp
DQoJICBpbg0KCSAgICAgKHgxLCByMSwgY29zdDEgKyBjb3N0MicsIFNVbmlvbiAoc2MxLCBzYzIn
KSkNCgkgIGVuZA0KICAgICAgIGVsc2UgaWYgZCArIHIxJyA8PSByMicgdGhlbg0KCSAgbGV0DQoJ
ICAgICB2YWwgKGNvc3QxJywgc2MxJykgPSBhZGRfYm91bmQgKHIyLCBkc2MxKQ0KCSAgaW4NCgkg
ICAgICh4MiwgcjIsIGNvc3QxJyArIGNvc3QyLCBTVW5pb24gKHNjMScsIHNjMikpDQoJICBlbmQN
CgkgICAgZWxzZQ0KCSAgICAgICBsZXQNCgkJICB2YWwgcicgPSAocjEnICsgcjInICsgZCkgKiAw
LjUNCgkJICB2YWwgciA9IHInICogcicNCgkJICB2YWwgeCA9IGFkZF9zY2FsZWQgKHgxLCAocicg
LSByMScpIC8gZCwgc3ViKHgyLCB4MSkpDQoJCSAgdmFsIChjb3N0MScsIHNjMScpID0gYWRkX2Jv
dW5kIChyLCBkc2MxKQ0KCQkgIHZhbCAoY29zdDInLCBzYzInKSA9IGFkZF9ib3VuZCAociwgZHNj
MikNCgkgICAgICAgaW4NCgkJICAoeCwgciwgY29zdDEnICsgY29zdDInLCBTVW5pb24gKHNjMScs
IHNjMicpKQ0KCSAgICAgICBlbmQNCiAgICBlbmQNCiANCmZ1biB1bmlvbl9yYWRpdXMgKGRzYzEg
YXMgKHgxLCByMSwgY29zdDEsIHNjMSksDQoJCSAgZHNjMiBhcyAoeDIsIHIyLCBjb3N0Miwgc2My
KSkgPQ0KICAgIGxldA0KICAgICAgIHZhbCBkID0gc3FydCAoc3F1YXJlIChzdWIgKHgyLCB4MSkp
KQ0KICAgICAgIHZhbCByMScgPSBzcXJ0IHIxDQogICAgICAgdmFsIHIyJyA9IHNxcnQgcjINCiAg
ICBpbg0KICAgICAgIGlmIGQgKyByMicgPD0gcjEnIHRoZW4gcjEgZWxzZQ0KCSAgaWYgZCArIHIx
JyA8PSByMicgdGhlbiByMiBlbHNlDQoJICAgICBsZXQNCgkJdmFsIHInID0gKHIxJyArIHIyJyAr
IGQpICogMC41DQoJICAgICBpbg0KCQlyJyAqIHInDQoJICAgICBlbmQNCiAgICBlbmQNCg0KZnVu
IG1lcmdlMiBsID0NCiAgY2FzZSBsIG9mDQogICAgc2MxIDo6IHNjMiA6OiByID0+IHVuaW9uX2Jv
dW5kIChzYzEsIHNjMikgOjogbWVyZ2UyIHINCiAgfCBfICAgICAgICAgICAgICAgPT4gbA0KDQpm
dW4gbWVyZ2VfdW5pb24gbCA9DQogIGNhc2UgbCBvZg0KICAgIFtdICAgID0+IHJhaXNlKEZhaWwg
ImFzc2VydCBmYWxzZSIpDQogIHwgW3NjMV0gPT4gc2MxDQogIHwgbCAgICAgPT4gbWVyZ2VfdW5p
b24gKG1lcmdlMiBsKQ0KDQpmdW4gb3B0X3VuaW9uIGwgPQ0KICBjYXNlIGwgb2YNCiAgICBbXSA9
PiBsDQogIHwgW19dID0+IGwNCiAgfCBbc2MxLCBzYzJdID0+IFt1bmlvbl9ib3VuZChzYzEsIHNj
MildDQogIHwgXyA9Pg0KICAgICAgIGxldA0KCSAgdmFsIGMgPSBBcnJheS5vZl9saXN0IGwNCgkg
IHZhbCBuID0gQXJyYXkubGVuZ3RoIGMNCgkgIHZhbCBtID0gQXJyYXkyLmFycmF5KG4sIG4sIGlu
ZmluaXR5KQ0KCSAgdmFsIF8gPQ0KCSAgICAgZm9yKDAsIG4gLSAxLCBmbiBpID0+DQoJCSBmb3Io
MCwgbiAtIDEsIGZuIGogPT4NCgkJICAgICBpZiBpIDw+IGoNCgkJCXRoZW4gQXJyYXkyLnVwZGF0
ZShtLCBpLCBqLA0KCQkJCQkgICB1bmlvbl9yYWRpdXMNCgkJCQkJICAgKEFycmF5LnN1YihjLCBp
KSwgQXJyYXkuc3ViKGMsIGopKSkNCgkJICAgICBlbHNlICgpKSkNCgkgIHZhbCByZW1haW4gPSBB
cnJheS5pbml0IChuLCBmbiBpID0+IGkpDQoJICB2YWwgXyA9DQoJICAgICBmb3JEb3duDQoJICAg
ICAobiAtIDEsIDEsIGZuIGsgPT4NCgkgICAgICBsZXQNCgkJIHZhbCBnYWluID0gcmVmIGluZmlu
aXR5DQoJCSB2YWwgaTAgPSByZWYgMA0KCQkgdmFsIGowID0gcmVmIDANCgkJIHZhbCBfID0NCgkJ
ICAgIGZvcigwLCBrLCBmbiBpID0+DQoJCQlmb3IoMCwgaywgZm4gaiA9Pg0KCQkJICAgIGxldA0K
CQkJICAgICAgIHZhbCBpJyA9IEFycmF5LnN1YihyZW1haW4sIGkpDQoJCQkgICAgICAgdmFsIGon
ID0gQXJyYXkuc3ViKHJlbWFpbiwgaikNCgkJCSAgICBpbg0KCQkJICAgICAgIGlmIEFycmF5Mi5z
dWIobSwgaScsIGonKSA8ICFnYWluDQoJCQkJICB0aGVuIA0KCQkJCSAgICAgKGdhaW4gOj0gQXJy
YXkyLnN1YihtLCBpJywgaicpDQoJCQkJICAgICAgOyBpMCA6PSBpDQoJCQkJICAgICAgOyBqMCA6
PSBqKQ0KCQkJICAgICAgIGVsc2UgKCkNCgkJCSAgICBlbmQpKQ0KCQkgdmFsIGkgPSBBcnJheS5z
dWIocmVtYWluLCAhaTApDQoJCSB2YWwgaiA9IEFycmF5LnN1YihyZW1haW4sICFqMCkNCgkgICAg
ICBpbg0KCQkgQXJyYXkudXBkYXRlKHJlbWFpbiwgIWowLCBBcnJheS5zdWIocmVtYWluLCBrKSk7
DQoJCSBBcnJheS51cGRhdGUoYywgaSwNCgkJCSAgICAgIHVuaW9uX2JvdW5kIChBcnJheS5zdWIo
YywgaSksIEFycmF5LnN1YihjLCBqKSkpOw0KCQkgZm9yKDAsIGsgLSAxLCBmbiBqMCA9Pg0KCQkg
ICAgIGxldA0KCQkJdmFsIGogPSBBcnJheS5zdWIocmVtYWluLCBqMCkNCgkJICAgICBpbg0KCQkJ
aWYgaSA8PiBqDQoJCQkgICB0aGVuDQoJCQkgICAgICAoDQoJCQkgICAgICAgQXJyYXkyLnVwZGF0
ZQ0KCQkJICAgICAgIChtLCBpLCBqLA0KCQkJCXVuaW9uX3JhZGl1cw0KCQkJCShBcnJheS5zdWIo
YywgaSksIEFycmF5LnN1YihjLCBqKSkpOw0KCQkJICAgICAgIEFycmF5Mi51cGRhdGUNCgkJCSAg
ICAgICAobSwgaiwgaSwNCgkJCQl1bmlvbl9yYWRpdXMNCgkJCQkoQXJyYXkuc3ViKGMsIGkpLCBB
cnJheS5zdWIoYywgaikpKSkNCgkJCWVsc2UgKCkNCgkJICAgICBlbmQpDQoJICAgICAgZW5kKQ0K
ICAgICAgIGluIFtBcnJheS5zdWIoYywgQXJyYXkuc3ViKHJlbWFpbiwgMCkpXQ0KICAgICAgIGVu
ZA0KDQpmdW4gb3B0aW1pemVfcmVjIHNjID0NCiAgY2FzZSBzYyBvZg0KICAgIFNPYmogKGtpbmQs
IF8sIF8pID0+DQogICAgICAob3JpZ2luLCB+MS4wLCBvYmplY3RfY29zdCBraW5kLCBzYykNCiAg
fCBTVW5pb24gXyA9Pg0KICAgICAgIGxldA0KCSAgdmFsIGwgPSBMaXN0Lm1hcCBvcHRpbWl6ZV9y
ZWMgKGZsYXR0ZW5fdW5pb24gc2MpDQoJICB2YWwgdW5ib3VuZGVkID0gTGlzdC5maWx0ZXIgKGZu
IChfLCByLCBfLCBfKSA9PiByIDwgMC4wKSBsDQoJICB2YWwgYm91bmRlZCA9IExpc3QuZmlsdGVy
IChmbiAoXywgciwgXywgXykgPT4gciA+PSAwLjApIGwNCiAgICAgICBpbg0KCSAgbWVyZ2VfdW5p
b24gKG9wdF91bmlvbiBib3VuZGVkIEAgdW5ib3VuZGVkKQ0KICAgICAgIGVuZA0KICB8IFNJbnRl
ciAoc2MxLCBzYzIpID0+DQogICAgICAgbGV0DQoJICB2YWwgKHgxLCByMSwgY29zdDEsIHNjMSkg
PSBvcHRpbWl6ZV9yZWMgc2MxDQoJICB2YWwgKHgyLCByMiwgY29zdDIsIHNjMikgPSBvcHRpbWl6
ZV9yZWMgc2MyDQogICAgICAgaW4NCgkgICgqIFhYWCBXZSBjb3VsZCBoYXZlIGEgdGlnaHRlciBi
b3VuZC4uLiAqKQ0KCSAgaWYgcjIgPCAwLjAgdGhlbg0KCSAgICAgKHgyLCByMiwgY29zdDIsIFNJ
bnRlciAoc2MxLCBzYzIpKQ0KCSAgZWxzZSBpZiByMSA8IDAuMCB0aGVuDQoJICAgICAoeDEsIHIx
LCBjb3N0MSwgU0ludGVyIChzYzIsIHNjMSkpDQoJICAgICAgIGVsc2UgaWYgcjEgPCByMiB0aGVu
DQoJCSAgKHgxLCByMSwgY29zdDEsIFNJbnRlciAoc2MxLCBzYzIpKQ0KCQkgICAgZWxzZQ0KCQkg
ICAgICAgKHgyLCByMiwgY29zdDEsIFNJbnRlciAoc2MyLCBzYzEpKQ0KICAgICAgIGVuZA0KICB8
IFNEaWZmIChzYzEsIHNjMikgPT4NCiAgICAgICBsZXQNCgkgIHZhbCAoeDEsIHIxLCBjb3N0MSwg
c2MxKSA9IG9wdGltaXplX3JlYyBzYzENCgkgIHZhbCBkc2MyIGFzICh4MiwgcjIsIGNvc3QyLCBz
YzIpID0gb3B0aW1pemVfcmVjIHNjMg0KCSAgdmFsIChjb3N0MicsIHNjMicpID0gYWRkX2JvdW5k
IChyMSwgZHNjMikNCiAgICAgICBpbg0KCSAgKHgxLCByMSwgY29zdDEsIFNEaWZmIChzYzEsIHNj
MicpKQ0KICAgICAgIGVuZA0KICB8IFNCb3VuZCAoc2MxLCB4LCByKSA9Pg0KICAgICAgIGxldA0K
CSAgdmFsIChfLCBfLCBjb3N0MSwgc2MxKSA9IG9wdGltaXplX3JlYyBzYzENCiAgICAgICBpbg0K
CSAgKHgsIHIsIGNvc3QxLCBzYzEpDQogICAgICAgZW5kDQoNCmZ1biBvcHRpbWl6ZSBzYyA9ICMy
IChhZGRfYm91bmQgKH4xLjAsIG9wdGltaXplX3JlYyBzYykpDQoNCigqKioqIFJlbmRlcmluZyAq
KioqKQ0KDQooKiBvcGVyYXRpb25zIGZvciBpbnRlcnZhbHMgKikNCmZ1biB1bmlvbiAobDEsIGwy
KSA6IChmbG9hdCAqIHNjZW5lICogZmxvYXQgKiBzY2VuZSkgbGlzdCA9ICgqIEVTOiBjaGVja2Vk
ICopDQogIGNhc2UgKGwxLCBsMikgb2YNCiAgICAoW10sIF8pID0+IGwyDQogIHwgKF8sIFtdKSA9
PiBsMQ0KICB8ICgoaTEgYXMgKHQxLCBvMSwgdDEnLCBvMScpKSA6OiByMSwNCiAgICAgKGkyIGFz
ICh0MiwgbzIsIHQyJywgbzInKSkgOjogcjIpID0+DQogICAgaWYgdDEnIDwgdDINCiAgICAgICB0
aGVuIGkxIDo6IHVuaW9uKHIxLCBsMikNCiAgICBlbHNlIGlmIHQyJyA8IHQxDQoJICAgIHRoZW4g
aTIgOjogdW5pb24obDEsIHIyKQ0KCSBlbHNlDQoJICAgIGlmIHQxIDwgdDIgdGhlbg0KCSAgICAg
ICBpZiB0MScgPCB0MicgdGhlbg0KCQkgIHVuaW9uKHIxLCAodDEsIG8xLCB0MicsIG8yJyk6OnIy
KQ0KCSAgICAgICBlbHNlDQoJCSAgdW5pb24oKHQxLCBvMSwgdDEnLCBvMScpOjpyMSwgcjIpDQoJ
ICAgIGVsc2UNCgkgICAgICAgaWYgdDEnIDwgdDInIHRoZW4NCgkJICB1bmlvbihyMSwgKCh0Miwg
bzIsIHQyJywgbzInKTo6cjIpKQ0KCSAgICAgICBlbHNlDQoJCSAgdW5pb24oKHQyLCBvMiwgdDEn
LCBvMScpOjpyMSwgcjIpDQoNCmZ1biBpbnRlciAobDEsIGwyKSA6IChmbG9hdCAqIHNjZW5lICog
ZmxvYXQgKiBzY2VuZSkgbGlzdCA9ICgqIEVTOiBjaGVja2VkICopDQogIGNhc2UgKGwxLCBsMikg
b2YNCiAgICAoW10sIF8pID0+IFtdDQogIHwgKF8sIFtdKSA9PiBbXQ0KICB8ICgoaTEgYXMgKHQx
LCBvMSwgdDEnLCBvMScpKSA6OiByMSwNCiAgICAgKGkyIGFzICh0MiwgbzIsIHQyJywgbzInKSkg
OjogcjIpID0+DQogICAgaWYgdDEnIDw9IHQyDQogICAgICAgdGhlbiBpbnRlcihyMSwgbDIpDQog
ICAgZWxzZSBpZiB0MicgPD0gdDENCgkgICAgdGhlbiBpbnRlcihsMSwgcjIpDQoJIGVsc2UNCgkg
ICAgaWYgdDEgPCB0MiB0aGVuDQoJICAgICAgIGlmIHQxJyA8IHQyJyB0aGVuDQoJCSAgKHQyLCBv
MiwgdDEnLCBvMScpIDo6IGludGVyKHIxLCBsMikNCgkgICAgICAgZWxzZQ0KCQkgIGkyIDo6IGlu
dGVyKGwxLCByMikNCgkgICAgZWxzZQ0KCSAgICAgICBpZiB0MScgPCB0MicgdGhlbg0KCQkgIGkx
IDo6IGludGVyKHIxLCBsMikNCgkgICAgICAgZWxzZQ0KCQkgICh0MSwgbzEsIHQyJywgbzInKSA6
OiBpbnRlcihsMSwgcjIpDQoNCmZ1biBkaWZmIChsMSwgbDIpIDogKGZsb2F0ICogc2NlbmUgKiBm
bG9hdCAqIHNjZW5lKSBsaXN0ID0gKCogRVM6IGNoZWNrZWQgKikNCiAgY2FzZSAobDEsIGwyKSBv
Zg0KICAgICAoW10sIF8pID0+IFtdDQogICB8IChfLCBbXSkgPT4gbDENCiAgfCAoKGkxIGFzICh0
MSwgbzEsIHQxJywgbzEnKSkgOjogcjEsDQogICAgIChpMiBhcyAodDIsIG8yLCB0MicsIG8yJykp
IDo6IHIyKSA9Pg0KICAgIGlmIHQxJyA8PSB0Mg0KICAgICAgIHRoZW4gaTEgOjogZGlmZihyMSwg
bDIpDQogICAgZWxzZSBpZiB0MicgPD0gdDENCgkgICAgdGhlbiBkaWZmKGwxLCByMikNCgkgZWxz
ZQ0KCSAgICBpZiB0MSA8IHQyIHRoZW4NCgkgICAgICAgaWYgdDEnIDwgdDInIHRoZW4NCgkJICAo
dDEsIG8xLCB0MiwgbzIpIDo6IGRpZmYocjEsIGwyKQ0KCSAgICAgICBlbHNlDQoJCSAgKHQxLCBv
MSwgdDIsIG8yKSA6OiBkaWZmKCh0MicsIG8yJywgdDEnLCBvMScpIDo6IHIxLCByMikNCgkgICAg
ZWxzZQ0KCSAgICAgICBpZiB0MScgPCB0MicgdGhlbg0KCQkgIGRpZmYocjEsIGwyKQ0KCSAgICAg
ICBlbHNlDQoJCSAgZGlmZigodDInLCBvMicsIHQxJywgbzEnKSA6OiByMSwgcjIpDQoNCigqIGlu
dGVyc2VjdGlvbiBvZiByYXkgYW5kIG9iamVjdCAqKQ0KZnVuIHBsYW5lIChvcmlnLCBkaXIsIHNj
ZW5lLCBlcSkgOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3QgPQ0KICAgKCog
WFhYIE5lZWQgdG8gYmUgY2hlY2tlZCAqKQ0KICAgbGV0DQogICAgICB2YWwgcG9yaWcgPSBwcm9k
IChlcSwgb3JpZykNCiAgICAgIHZhbCBwZGlyID0gcHJvZCAoZXEsIGRpcikNCiAgICAgIHZhbCB0
ID0gfiBwb3JpZyAvIHBkaXINCiAgIGluDQogICAgICBpZiBwb3JpZyA8IDAuMCB0aGVuDQoJIGlm
IHQgPiAwLjAgdGhlbg0KCSAgICBbKDAuMCwgc2NlbmUsIHQsIHNjZW5lKV0NCgkgZWxzZQ0KCSAg
ICBbKDAuMCwgc2NlbmUsIGluZmluaXR5LCBzY2VuZSldDQogICAgICBlbHNlDQoJIGlmIHQgPiAw
LjAgdGhlbg0KCSAgICBbKHQsIHNjZW5lLCBpbmZpbml0eSwgc2NlbmUpXQ0KCSBlbHNlDQoJICAg
IFtdDQogICBlbmQNCg0KZnVuIGJhbmQgKG9iaiwgeCwgdiwgaSkgOiAoZmxvYXQgKiBzY2VuZSAq
IGZsb2F0ICogc2NlbmUpIGxpc3QgPSAoKiBFUzogY2hlY2tlZCAqKQ0KICAgbGV0DQogICAgICB2
YWwgdDEgPSB+IChpIHgpIC8gKGkgdikNCiAgICAgIHZhbCB0MiA9ICgxLjAgLSAoaSB4KSkgLyAo
aSB2KQ0KICAgICAgdmFsIHQyJyA9IGlmIHQxID49IHQyIHRoZW4gdDEgZWxzZSB0Mg0KICAgaW4N
CiAgICAgIGlmIHQyJyA8IDAuMCB0aGVuDQoJIFtdDQogICAgICBlbHNlDQoJIGxldCB2YWwgdDEn
ID0gaWYgdDEgPD0gdDIgdGhlbiB0MSBlbHNlIHQyDQoJIGluDQoJICAgIGlmIHQxJyA8IDAuMCB0
aGVuDQoJICAgICAgIFsoMC4wLCBvYmosIHQyJywgb2JqKV0NCgkgICAgZWxzZQ0KCSAgICAgICBb
KHQxJywgb2JqLCB0MicsIG9iaildDQoJIGVuZA0KICAgZW5kDQoNCmZ1biBjdWJlIChvcmlnLCBk
aXIsIHNjZW5lLCBtKTogKGZsb2F0ICogc2NlbmUgKiBmbG9hdCAqIHNjZW5lKSBsaXN0ID0NCiAg
ICgqIEVTOiBjaGVja2VkICopDQogICBsZXQNCiAgICAgIHZhbCB4ID0gdm11bCAobSwgb3JpZykN
CiAgICAgIHZhbCB2ID0gdm11bCAobSwgZGlyKQ0KICAgaW4NCiAgICAgIGNhc2UgYmFuZCAoc2Nl
bmUsIHgsIHYsICMxKSBvZg0KCSBbXSA9PiBbXQ0KICAgICAgIHwgbDAgPT4NCgkgICAgY2FzZSBp
bnRlciAobDAsIGJhbmQgKHNjZW5lLCB4LCB2LCAjMikpIG9mDQoJICAgICAgIFtdID0+IFtdDQoJ
ICAgICB8IGwxID0+IGludGVyIChsMSwgYmFuZCAoc2NlbmUsIHgsIHYsICMzKSkNCiAgIGVuZA0K
DQpmdW4gc3BoZXJlIChvcmlnLCBkaXIsIHNjZW5lLCB4LCByMik6IChmbG9hdCAqIHNjZW5lICog
ZmxvYXQgKiBzY2VuZSkgbGlzdCA9DQogICBsZXQNCiAgICAgIHZhbCB2ID0gc3ViICh4LCBvcmln
KQ0KICAgICAgKCogU3F1YXJlIG9mIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBvcmlnaW4gYW5k
IHRoZSBjZW50ZXIgb2YgdGhlIHNwaGVyZSAqKQ0KICAgICAgdmFsIHYyID0gc3F1YXJlIHYNCiAg
ICAgIHZhbCBkaXIyID0gc3F1YXJlIGRpcg0KICAgICAgdmFsIHAgPSBwcm9kICh2LCBkaXIpDQog
ICAgICAoKiBTcXVhcmUgb2YgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIHJheSBhbmQgdGhlIGNl
bnRlciAqKQ0KICAgICAgdmFsIGQyID0gdjIgLSBwICogcCAvIGRpcjINCiAgICAgIHZhbCBkZWx0
YSA9IHIyIC0gZDINCiAgIGluICBpZiBkZWx0YSA8PSAwLjANCgkgIHRoZW4gW10NCiAgICAgICBl
bHNlDQoJICBsZXQNCgkgICAgIHZhbCBzcSA9IHNxcnQgKGRlbHRhIC8gZGlyMikNCgkgICAgIHZh
bCB0MSA9IHAgLyBkaXIyIC0gc3ENCgkgICAgIHZhbCB0MiA9IHAgLyBkaXIyICsgc3ENCgkgIGlu
DQoJICAgICBpZiB0MiA8IDAuMA0KCQl0aGVuIFtdDQoJICAgICBlbHNlDQoJCVsobWF4X2Zsb2F0
ICgwLjAsIHQxKSwgc2NlbmUsIHQyLCBzY2VuZSldDQoJICBlbmQNCiAgIGVuZA0KDQpmdW4gZWxs
aXBzb2lkIChvcmlnLCBkaXIsIHNjZW5lLCBtKTogKGZsb2F0ICogc2NlbmUgKiBmbG9hdCAqIHNj
ZW5lKSBsaXN0ID0NCiAgICgqIEVTOiBjaGVja2VkICopDQogICBsZXQNCiAgICAgIHZhbCB4ID0g
dm11bCAobSwgb3JpZykNCiAgICAgIHZhbCB2ID0gdm11bCAobSwgZGlyKQ0KICAgICAgdmFsIHgy
ID0gc3F1YXJlIHgNCiAgICAgIHZhbCB2MiA9IHNxdWFyZSB2DQogICAgICB2YWwgeHYgPSBwcm9k
ICh4LCB2KQ0KICAgICAgdmFsIGRlbHRhID0geHYgKiB4diAtIHYyICogKHgyIC0gMi4wKQ0KICAg
aW4NCiAgICAgIGlmIGRlbHRhIDw9IDAuMCB0aGVuDQoJIFtdDQogICAgICBlbHNlDQoJIGxldA0K
CSAgICB2YWwgc3EgPSBzcXJ0IGRlbHRhDQoJICAgIHZhbCB0MSA9ICh+IHh2IC0gc3EpIC8gdjIN
CgkgICAgdmFsIHQyID0gKH4geHYgKyBzcSkgLyB2Mg0KCSBpbiAgICBpZiB0MiA8IDAuMCB0aGVu
DQoJICAgIFtdDQoJICAgICAgIGVsc2UNCgkJICBbKG1heF9mbG9hdCAoMC4wLCB0MSksIHNjZW5l
LCB0Miwgc2NlbmUpXQ0KCSBlbmQNCiAgIGVuZA0KDQpmdW4gY3lsaW5kZXIgKG9yaWcsIGRpciwg
c2NlbmUsIG0pOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3QgPQ0KICAgbGV0
DQogICAgICB2YWwgeCA9IHZtdWwgKG0sIG9yaWcpDQogICAgICB2YWwgdiA9IHZtdWwgKG0sIGRp
cikNCiAgICAgIHZhbCB4MiA9ICMxIHggKiAjMSB4ICsgIzMgeCAqICMzIHggLSAxLjANCiAgICAg
IHZhbCB2MiA9ICMxIHYgKiAjMSB2ICsgIzMgdiAqICMzIHYNCiAgICAgIHZhbCB4diA9ICMxIHgg
KiAjMSB2ICsgIzMgeCAqICMzIHYNCiAgICAgIHZhbCBkZWx0YSA9IHh2ICogeHYgLSB2MiAqIHgy
DQogICBpbg0KICAgICAgaWYgZGVsdGEgPD0gMC4wIHRoZW4NCgkgW10NCiAgICAgIGVsc2UNCgkg
bGV0DQoJICAgIHZhbCBzcSA9IHNxcnQgZGVsdGENCgkgICAgdmFsIHQxID0gKH4geHYgLSBzcSkg
LyB2Mg0KCSAgICB2YWwgdDIgPSAofiB4diArIHNxKSAvIHYyDQoJIGluICAgIGlmIHQyIDwgMC4w
IHRoZW4NCgkgICAgW10NCgkgICAgICAgZWxzZQ0KCQkgIGludGVyDQoJCSAgKFsobWF4X2Zsb2F0
ICgwLjAsIHQxKSwgc2NlbmUsIHQyLCBzY2VuZSldLA0KCQkgICBiYW5kIChzY2VuZSwgeCwgdiwg
IzIpKQ0KCSBlbmQNCiAgIGVuZA0KDQpmdW4gY29uZSAob3JpZywgZGlyLCBzY2VuZSwgbSk6IChm
bG9hdCAqIHNjZW5lICogZmxvYXQgKiBzY2VuZSkgbGlzdCA9IA0KICAgbGV0DQogICAgICB2YWwg
eCA9IHZtdWwgKG0sIG9yaWcpDQogICAgICB2YWwgdiA9IHZtdWwgKG0sIGRpcikNCiAgICAgIHZh
bCB4MiA9ICMxIHggKiAjMSB4ICsgIzMgeCAqICMzIHggLSAjMiB4ICogIzIgeA0KICAgICAgdmFs
IHYyID0gIzEgdiAqICMxIHYgKyAjMyB2ICogIzMgdiAtICMyIHYgKiAjMiB2DQogICAgICB2YWwg
eHYgPSAjMSB4ICogIzEgdiArICMzIHggKiAjMyB2IC0gIzIgeCAqICMyIHYNCiAgICAgIHZhbCBk
ZWx0YSA9IHh2ICogeHYgLSB2MiAqIHgyDQogICBpbg0KICAgICAgaWYgZGVsdGEgPD0gMC4wIHRo
ZW4NCgkgW10NCiAgICAgIGVsc2UNCgkgbGV0DQoJICAgIHZhbCBzcSA9IHNxcnQgZGVsdGENCgkg
ICAgdmFsIHQxID0gKH4geHYgLSBzcSkgLyB2Mg0KCSAgICB2YWwgdDIgPSAofiB4diArIHNxKSAv
IHYyDQoJIGluDQoJICAgIGlmIHQxIDw9IHQyIHRoZW4NCgkgICAgICAgaWYgdDIgPCAwLjAgdGhl
bg0KCQkgIFtdDQoJICAgICAgIGVsc2UNCgkJICBpbnRlcg0KCQkgIChbKG1heF9mbG9hdCgwLjAs
IHQxKSwgc2NlbmUsIHQyLCBzY2VuZSldLA0KCQkgICBiYW5kIChzY2VuZSwgeCwgdiwgIzIpKQ0K
CSAgICBlbHNlDQoJICAgICAgIGludGVyDQoJICAgICAgIChpZiB0MSA8PSAwLjAgdGhlbg0KCQkg
ICBbKDAuMCwgc2NlbmUsIGluZmluaXR5LCBzY2VuZSldDQoJCWVsc2UgaWYgdDIgPD0gMC4wIHRo
ZW4NCgkJICAgWyh0MSwgc2NlbmUsIGluZmluaXR5LCBzY2VuZSldDQoJCSAgICAgZWxzZQ0KCQkJ
WygwLjAsIHNjZW5lLCB0Miwgc2NlbmUpLCAodDEsIHNjZW5lLCBpbmZpbml0eSwgc2NlbmUpXSwN
CgkgICAgICAgIGJhbmQgKHNjZW5lLCB4LCB2LCAjMikpDQoJIGVuZA0KICAgZW5kDQoNCigqIFhY
WCBNYXliZSB3ZSBzaG91bGQgY2hlY2sgd2hldGhlciB0aGUgc3BoZXJlIGlzIGNvbXBsZXRlbHkg
YmVoaW5kIHVzID8gKikNCmZ1biBpbnRlcnNlY3QgKG9yaWcsIGRpciwgeCwgcjIpID0NCiAgIGxl
dA0KICAgICAgdmFsICh2eCwgdnksIHZ6LCB2dCkgPSBzdWIgKHgsIG9yaWcpDQogICgqIFNxdWFy
ZSBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgb3JpZ2luIGFuZCB0aGUgY2VudGVyIG9mIHRo
ZSBzcGhlcmUgKikNCiAgICAgIHZhbCB2MiA9IHZ4ICogdnggKyB2eSAqIHZ5ICsgdnogKiB2eiAr
IHZ0ICogdnQNCiAgICAgIHZhbCAoZHgsIGR5LCBkeiwgZHQpID0gZGlyDQogICAgICB2YWwgZGly
MiA9IGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeiArIGR0ICogZHQNCiAgICAgIHZhbCBwID0g
dnggKiBkeCArIHZ5ICogZHkgKyB2eiAqIGR6ICsgdnQgKiBkdA0KICAgICAgKCogU3F1YXJlIG9m
IHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSByYXkgYW5kIHRoZSBjZW50ZXIgKikNCiAgICAgIHZh
bCBkMiA9IHYyIC0gcCAqIHAgLyBkaXIyDQogICBpbiByMiA+IGQyDQogICBlbmQNCg0KZnVuIGZp
bmRfYWxsIChvcmlnLCBkaXIsIHNjZW5lKSA9DQogIGNhc2Ugc2NlbmUgb2YNCiAgICBTT2JqIChT
U3BoZXJlICh4LCByMiksIF8sIG0pID0+DQogICAgICBzcGhlcmUgKG9yaWcsIGRpciwgc2NlbmUs
IHgsIHIyKQ0KICB8IFNPYmogKFNFbGxpcHMsIF8sIG0pID0+DQogICAgICBlbGxpcHNvaWQgKG9y
aWcsIGRpciwgc2NlbmUsIG0pDQogIHwgU09iaiAoU0N1YmUgXywgXywgbSkgPT4NCiAgICAgIGN1
YmUgKG9yaWcsIGRpciwgc2NlbmUsIG0pDQogIHwgU09iaiAoU0N5bGluZCBfLCBfLCBtKSA9Pg0K
ICAgICAgY3lsaW5kZXIgKG9yaWcsIGRpciwgc2NlbmUsIG0pDQogIHwgU09iaiAoU0NvbmUgXywg
XywgbSkgPT4NCiAgICAgIGNvbmUgKG9yaWcsIGRpciwgc2NlbmUsIG0pDQogIHwgU09iaiAoU1Bs
YW5lIChlcSwgXyksIF8sIG0pID0+DQogICAgICBwbGFuZSAob3JpZywgZGlyLCBzY2VuZSwgZXEp
DQogIHwgU0JvdW5kIChzYywgeCwgcjIpID0+DQogICAgICBpZiBpbnRlcnNlY3QgKG9yaWcsIGRp
ciwgeCwgcjIpDQoJIHRoZW4gZmluZF9hbGwgKG9yaWcsIGRpciwgc2MpDQogICAgICBlbHNlIFtd
DQogIHwgU1VuaW9uIChzYzEsIHNjMikgPT4NCiAgICAgIHVuaW9uIChmaW5kX2FsbCAob3JpZywg
ZGlyLCBzYzEpLCBmaW5kX2FsbCAob3JpZywgZGlyLCBzYzIpKQ0KICB8IFNJbnRlciAoc2MxLCBz
YzIpID0+DQogICAgICBsZXQgdmFsIGwxID0gZmluZF9hbGwgKG9yaWcsIGRpciwgc2MxKQ0KICAg
ICAgaW4NCgkgY2FzZSBsMSBvZg0KCSAgICBbXSA9PiBbXQ0KCSAgfCBfID0+IGludGVyKGwxLCBm
aW5kX2FsbCAob3JpZywgZGlyLCBzYzIpKQ0KICAgICAgZW5kDQogIHwgU0RpZmYgKHNjMSwgc2My
KSA9Pg0KICAgICAgbGV0IHZhbCBsMSA9IGZpbmRfYWxsKG9yaWcsIGRpciwgc2MxKQ0KICAgICAg
aW4NCgkgY2FzZSBsMSBvZg0KCSAgICBbXSA9PiBbXQ0KCSAgfCBfID0+IGRpZmYobDEsIGZpbmRf
YWxsKG9yaWcsIGRpciwgc2MyKSkNCiAgICAgIGVuZA0KDQpmdW4gZmlsdGVyX2ludGVyX2xpc3Qg
bCA9DQogIGNhc2UgbCBvZg0KICAgICh0LCBfLCBfLCBfKTo6ciA9Pg0KICAgICAgIGlmIHQgPCBl
cHNpbG9uDQoJICB0aGVuIGZpbHRlcl9pbnRlcl9saXN0IHINCiAgICAgICBlbHNlIGwNCiAgfCBf
ID0+IGwNCg0KZnVuIGhpdF9mcm9tX2ludGVyIGJvdW5kZWQgbDAgPQ0KICBsZXQgdmFsIGwgPSBm
aWx0ZXJfaW50ZXJfbGlzdCBsMA0KICBpbg0KICAgICBjYXNlIGwgb2YNCglbXSA9PiBmYWxzZQ0K
ICAgICAgfCAodCwgXywgXywgXyk6OnIgPT4gKG5vdCBib3VuZGVkIG9yZWxzZSAgdCA8PSAxLjAp
DQogIGVuZA0KDQpmdW4gaGl0KG9yaWcsIGRpciwgc2NlbmUsIGJvdW5kZWQpID0NCiAgY2FzZSBz
Y2VuZSBvZg0KICAgIFNPYmogKGtpbmQsIF8sIG0pID0+DQogICAgICAgKGNhc2UNCgkgICAoY2Fz
ZSBraW5kIG9mDQoJICAgICAgIFNTcGhlcmUgKHgsIHIyKSA9PiBzcGhlcmUgKG9yaWcsIGRpciwg
c2NlbmUsIHgsIHIyKQ0KCSAgICAgfCBTRWxsaXBzICAgICAgICAgPT4gZWxsaXBzb2lkIChvcmln
LCBkaXIsIHNjZW5lLCBtKQ0KCSAgICAgfCBTQ3ViZSBfICAgICAgICAgPT4gY3ViZSAob3JpZywg
ZGlyLCBzY2VuZSwgbSkNCgkgICAgIHwgU0N5bGluZCBfICAgICAgID0+IGN5bGluZGVyIChvcmln
LCBkaXIsIHNjZW5lLCBtKQ0KCSAgICAgfCBTQ29uZSBfICAgICAgICAgPT4gY29uZSAob3JpZywg
ZGlyLCBzY2VuZSwgbSkNCgkgICAgIHwgU1BsYW5lIChlcSwgXykgID0+IHBsYW5lIChvcmlnLCBk
aXIsIHNjZW5lLCBlcSkpIG9mDQoJICAgICAgIFtdID0+IGZhbHNlDQoJICAgICB8IFsodCwgXywg
XywgXyldID0+DQoJCSAgaWYgYm91bmRlZCBhbmRhbHNvIHQgPiAxLjANCgkJICAgICB0aGVuIGZh
bHNlDQoJCSAgZWxzZSBpZiB0IDwgZXBzaWxvbg0KCQkJICB0aGVuIGZhbHNlDQoJCSAgICAgICBl
bHNlIHRydWUNCgkgICAgIHwgXyA9PiB0cnVlKQ0KICB8IFNCb3VuZCAoc2MsIHgsIHIyKSA9Pg0K
ICAgICAgaW50ZXJzZWN0IChvcmlnLCBkaXIsIHgsIHIyKSAgYW5kYWxzbyBoaXQgKG9yaWcsIGRp
ciwgc2MsIGJvdW5kZWQpDQogIHwgU1VuaW9uIChzYzEsIHNjMikgPT4NCiAgICAgIGhpdCAob3Jp
ZywgZGlyLCBzYzEsIGJvdW5kZWQpIG9yZWxzZSBoaXQgKG9yaWcsIGRpciwgc2MyLCBib3VuZGVk
KQ0KICB8IFNJbnRlciAoc2MxLCBzYzIpID0+DQogICAgICBsZXQgdmFsIGwxID0gZmluZF9hbGwg
KG9yaWcsIGRpciwgc2MxKQ0KICAgICAgaW4NCgkgY2FzZSBsMSBvZg0KCSAgICBbXSA9PiBmYWxz
ZQ0KCSAgfCBfID0+IGhpdF9mcm9tX2ludGVyIGJvdW5kZWQgKGludGVyKGwxLCBmaW5kX2FsbCAo
b3JpZywgZGlyLCBzYzIpKSkNCiAgICAgIGVuZA0KICB8IFNEaWZmIChzYzEsIHNjMikgPT4NCiAg
ICAgIGxldA0KCSB2YWwgbDEgPSBmaW5kX2FsbChvcmlnLCBkaXIsIHNjMSkNCiAgICAgIGluDQoJ
IGNhc2UgbDEgb2YNCgkgICAgW10gPT4gZmFsc2UNCgkgIHwgXyA9PiBoaXRfZnJvbV9pbnRlciBi
b3VuZGVkIChkaWZmKGwxLCBmaW5kX2FsbChvcmlnLCBkaXIsIHNjMikpKQ0KICAgICAgZW5kDQoN
CmZ1biB2aXNpYmxlIChkZXNjOiBkZXNjLCBvcmlnLCBkaXIsIGJvdW5kZWQpID0NCiAgbm90ICho
aXQob3JpZywgZGlyLCAjc2NlbmUgZGVzYywgYm91bmRlZCkpDQoNCnZhbCBibGFjayA9ICgwLjAs
IDAuMCwgMC4wKQ0KDQp2YWwgYXBwbHkgOiAoKFByb2dyYW0udiAqIFByb2dyYW0udiBsaXN0KSAt
PiBQcm9ncmFtLnYgbGlzdCkgcmVmID0NCiAgIHJlZiAoZm4gXyA9PiByYWlzZShGYWlsICJhc3Nl
cnQgZmFsc2UiKSkNCnZhbCBpbmxpbmVfY2xvc3VyZSA6IChQcm9ncmFtLnYgLT4gUHJvZ3JhbS52
KSByZWYgPQ0KICAgcmVmIChmbiBfID0+IHJhaXNlKEZhaWwgImFzc2VydCBmYWxzZSIpKQ0KDQoo
KiBWYWx1ZSBiZXR3ZWVuIDAgYW5kIDEgZnJvbSB0aGUgc2ludXMgYW5kIGNvc2ludXMgKikNCigq
IEFjdHVhbGx5LCBvbmx5IHRoZSBzaWduIG9mIHRoZSBzaW51cyBpcyB1c2VkICopDQpmdW4gYW5n
bGUgKHNpLCBjbykgPQ0KICBsZXQNCiAgICAgdmFsIHUgPSBkYWNvcyBjbyAvIDM2MC4wDQogIGlu
DQogICAgIGlmIHNpID4gMC4wIHRoZW4gdSBlbHNlIDEuMCAtIHUNCiAgZW5kDQoNCigqIFhYWCBD
aGVjayB0aGF0IDAgPD0gdSx2IDw9IDEgKikNCmZ1biB0ZXh0dXJlX2Nvb3JkIChraW5kLCB4OiB2
KSA9ICgqIHNlY3Rpb24gMy42ICopICgqIEVTOiBjaGVja2VkICopDQogICBsZXQNCiAgICAgIGZ1
biBlbGxpcHNPclNwaGVyZSgpID0NCgkgbGV0DQoJICAgIHZhbCB5ID0gIzIgeA0KCSAgICB2YWwg
diA9ICh5ICsgMS4wKSAqIDAuNQ0KCSBpbg0KCSAgICBpZiB2IDwgZXBzaWxvbg0KCSAgICAgICB0
aGVuIFtWRmxvYXQgdiwgVkZsb2F0IDAuMCwgVkludCAwXQ0KCSAgICBlbHNlDQoJICAgICAgIGxl
dA0KCQkgIHZhbCB1ID0gYW5nbGUgKCMxIHgsICMzIHggLyBzcXJ0ICgxLjAgLSB5ICogeSkpDQoJ
ICAgICAgIGluDQoJCSAgW1ZGbG9hdCB2LCBWRmxvYXQgdSwgVkludCAwXQ0KCSAgICAgICBlbmQN
CgkgZW5kDQogICBpbiAgKCogW3Y7IHU7IGZhY2VdICopDQogICAgICBjYXNlIGtpbmQgb2YNCgkg
U0VsbGlwcyA9PiBlbGxpcHNPclNwaGVyZSgpDQogICAgICAgfCBTU3BoZXJlIF8gPT4gZWxsaXBz
T3JTcGhlcmUoKQ0KICAgICAgIHwgU0N1YmUgXyA9Pg0KICAgICAgaWYgYWJzX2Zsb2F0ICgjMyB4
KSA8IGVwc2lsb24gdGhlbg0KICAgICAgICBbVkZsb2F0ICgjMiB4KSwgVkZsb2F0ICgjMSB4KSwg
VkludCAwXQ0KICAgICAgZWxzZSBpZiBhYnNfZmxvYXQgKCgjMyB4KSAtIDEuMCkgPCBlcHNpbG9u
IHRoZW4NCiAgICAgICAgW1ZGbG9hdCAoIzIgeCksIFZGbG9hdCAoIzEgeCksIFZJbnQgMV0NCiAg
ICAgIGVsc2UgaWYgYWJzX2Zsb2F0ICgjMSB4KSA8IGVwc2lsb24gdGhlbg0KICAgICAgICBbVkZs
b2F0ICgjMiB4KSwgVkZsb2F0ICgjMyB4KSwgVkludCAyXQ0KICAgICAgZWxzZSBpZiBhYnNfZmxv
YXQgKCgjMSB4KSAtIDEuMCkgPCBlcHNpbG9uIHRoZW4NCiAgICAgICAgW1ZGbG9hdCAoIzIgeCks
IFZGbG9hdCAoIzMgeCksIFZJbnQgM10NCiAgICAgIGVsc2UgaWYgYWJzX2Zsb2F0ICgoIzIgeCkg
LSAxLjApIDwgZXBzaWxvbiB0aGVuDQogICAgICAgIFtWRmxvYXQgKCMzIHgpLCBWRmxvYXQgKCMx
IHgpLCBWSW50IDRdDQogICAgICBlbHNlICgqIGlmIGFic19mbG9hdCAoIzIgeCkgPCBlcHNpbG9u
IHRoZW4gKikNCiAgICAgICAgW1ZGbG9hdCAoIzMgeCksIFZGbG9hdCAoIzEgeCksIFZJbnQgNV0N
CiAgfCBTQ3lsaW5kIF8gPT4NCiAgICAgIGlmIGFic19mbG9hdCAoIzIgeCkgPCBlcHNpbG9uIHRo
ZW4NCiAgICAgICAgW1ZGbG9hdCAoKCgjMyB4KSArIDEuMCkgKiAwLjUpLCBWRmxvYXQgKCgoIzEg
eCkgKyAxLjApICogMC41KSwgVkludCAyXQ0KICAgICAgZWxzZSBpZiBhYnNfZmxvYXQgKCgjMiB4
KSAtIDEuMCkgPCBlcHNpbG9uIHRoZW4NCiAgICAgICAgW1ZGbG9hdCAoKCgjMyB4KSArIDEuMCkg
KiAwLjUpLCBWRmxvYXQgKCgoIzEgeCkgKyAxLjApICogMC41KSwgVkludCAxXQ0KICAgICAgZWxz
ZQ0KICAgICAgICBsZXQNCgkgICB2YWwgdSA9IGFuZ2xlICgjMSB4LCAjMyB4KQ0KCWluDQoJICAg
W1ZGbG9hdCAoIzIgeCksIFZGbG9hdCB1LCBWSW50IDBdDQoJZW5kDQogIHwgU0NvbmUgXyA9Pg0K
ICAgICAgbGV0IHZhbCB2ID0gKCMyIHgpDQogICAgICBpbg0KCSBpZiBhYnNfZmxvYXQgdiA8IGVw
c2lsb24gdGhlbg0KCSAgICBbVkZsb2F0IHYsIFZGbG9hdCAwLjAsIFZJbnQgMF0NCgkgZWxzZQ0K
CSAgICBpZiBhYnNfZmxvYXQgKCgjMiB4KSAtIDEuMCkgPCBlcHNpbG9uDQoJICAgICAgIHRoZW4N
CgkJICBbVkZsb2F0ICgoKCMzIHgpICsgMS4wKSAqIDAuNSksDQoJCSAgIFZGbG9hdCAoKCgjMSB4
KSArIDEuMCkgKiAwLjUpLA0KCQkgICBWSW50IDFdDQoJICAgIGVsc2UNCgkgICAgICAgbGV0DQoJ
CSAgdmFsIHUgPSBhbmdsZSAoIzEgeCwgKCMzIHgpIC8gdikNCgkgICAgICAgaW4NCgkJICBbVkZs
b2F0IHYsIFZGbG9hdCB1LCBWSW50IDBdDQoJICAgICAgIGVuZA0KICAgICAgZW5kDQogIHwgU1Bs
YW5lIF8gPT4NCiAgICAgIFtWRmxvYXQgKCMzIHgpLCBWRmxvYXQgKCMxIHgpLCBWSW50IDBdDQog
ICBlbmQNCg0KZnVuIG5vcm1hbCAoa2luZCwgbSwgeCcsIHgpID0NCiAgY2FzZSBraW5kIG9mDQog
ICAgU1NwaGVyZSAoeDAsIF8pID0+DQogICAgICBub3JtYWxpemUgKHN1YiAoeCwgeDApKQ0KICB8
IFNFbGxpcHMgPT4NCiAgICAgIGxldCB2YWwgKG4wLCBuMSwgbjIsIF8pID0gdm11bCAodHJhbnNw
b3NlIG0sIHgnKQ0KICAgICAgaW4NCgkgbm9ybWFsaXplKG4wLCBuMSwgbjIsIDAuMCkNCiAgICAg
IGVuZA0KICB8IFNDeWxpbmQgbiA9Pg0KICAgICAgaWYgYWJzX2Zsb2F0ICgjMiB4JykgPCBlcHNp
bG9uDQoJIG9yZWxzZSBhYnNfZmxvYXQgKCMyIHgnKSAtIDEuMCA8IGVwc2lsb24gdGhlbg0KICAg
ICAgICBuDQogICAgICBlbHNlDQogICAgICAgICgqIFhYWCBDb3VsZCBiZSBvcHRpbWl6ZWQuLi4g
KikNCiAgICAgICAgbGV0DQoJICAgdmFsIChuMCwgbjEsIG4yLCBfKSA9IHZtdWwgKHRyYW5zcG9z
ZSBtLCAoIzEgeCcsIDAuMCwgIzMgeCcsIDAuMCkpDQoJaW4NCgkgICBub3JtYWxpemUobjAsIG4x
LCBuMiwgMC4wKQ0KCWVuZA0KICB8IFNDb25lIG4gPT4NCiAgICAgIGlmIGFic19mbG9hdCAoIzIg
eCcpIC0gMS4wIDwgZXBzaWxvbg0KCSB0aGVuIG4NCiAgICAgIGVsc2UNCiAgICAgICAgbGV0DQoJ
ICAgdmFsIChuMCwgbjEsIG4yLCBfKSA9DQoJICAgICAgdm11bCAodHJhbnNwb3NlIG0sICgjMSB4
JywgfigjMiB4JyksICMzIHgnLCAwLjApKQ0KCWluDQoJICAgbm9ybWFsaXplKG4wLCBuMSwgbjIs
IDAuMCkNCgllbmQNCiAgfCBTQ3ViZSAobngsIG55LCBueikgPT4NCiAgICAgIGlmIGFic19mbG9h
dCAoIzMgeCcpIDwgZXBzaWxvbg0KCSBvcmVsc2UgYWJzX2Zsb2F0ICgjMyB4JykgLSAxLjAgPCBl
cHNpbG9uDQoJIHRoZW4gbnoNCiAgICAgIGVsc2UgaWYgYWJzX2Zsb2F0ICgjMSB4JykgPCBlcHNp
bG9uDQogCSAgICAgIG9yZWxzZSBhYnNfZmxvYXQgKCMxIHgnKSAtIDEuMCA8IGVwc2lsb24NCgkg
ICAgICB0aGVuIG54DQoJICAgZWxzZSBueQ0KICB8IFNQbGFuZSAoXywgbikgPT4NCiAgICAgIG4N
Cg0KZnVuIGFwcGx5X3N1cmZhY2VfZnVuIChmLCB2KSA9DQogIGNhc2UgIWFwcGx5KGYsIHYpIG9m
DQogICAgW1ZGbG9hdCBuLCBWRmxvYXQga3MsIFZGbG9hdCBrZCwNCiAgICAgVlBvaW50IChWRmxv
YXQgY3IsIFZGbG9hdCBjZywgVkZsb2F0IGNiKV0gPT4NCiAgICAgICAobiwga3MsIGtkLCBjciwg
Y2csIGNiKQ0KICB8IF8gPT4NCiAgICAgIGZhaWx3aXRoICJBIHN1cmZhY2UgZnVuY3Rpb24gcmV0
dXJucyBzb21lIGluY29ycmVjdCB2YWx1ZXMiDQoNCmZ1biB0cmFjZSAoZGVzYzogZGVzYywgZGVw
dGg6IGludCwgb3JpZywgZGlyKSA9DQogICBsZXQNCiAgICAgIHZhbCBkaXIgPSBub3JtYWxpemUg
ZGlyDQogICBpbg0KICAgICAgY2FzZSBmaWx0ZXJfaW50ZXJfbGlzdCAoZmluZF9hbGwob3JpZywg
ZGlyLCAjc2NlbmUgZGVzYykpIG9mDQoJIFtdID0+IGJsYWNrDQogICAgICAgfCAodCwgb2IsIF8s
IF8pIDo6IF8gPT4gdHJhY2VfMihkZXNjLCBkZXB0aCwgb3JpZywgZGlyLCB0LCBvYikNCiAgIGVu
ZA0KDQphbmQgdHJhY2VfMiAoZGVzYywgZGVwdGg6IGludCwgb3JpZywgZGlyLCB0LCBvYmopID0N
CiAgIGxldA0KICAgICAgdmFsIHggPSBhZGRfc2NhbGVkIChvcmlnLCB0LCBkaXIpDQogICBpbg0K
ICAgICAgY2FzZSBvYmogb2YNCgkgU09iaiAoa2luZCwgZiwgbSkgPT4NCgkgICAgbGV0DQoJICAg
ICAgIHZhbCB4JyA9IHZtdWwgKG0sIHgpDQoJICAgICAgIHZhbCAobiwga3MsIGtkLCBjciwgY2cs
IGNiKSA9DQoJCSAgKGNhc2UgIWYgb2YNCgkJICAgICAgVW5vcHQgZyA9Pg0KCQkJICgqIEZpcnN0
IHdlIGNoZWNrIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIHdvdWxkIGZhaWwgKikNCgkJCSBsZXQNCgkJ
CSAgICB2YWwgcmVzID0gYXBwbHlfc3VyZmFjZV9mdW4oZywgdGV4dHVyZV9jb29yZChraW5kLCB4
JykpDQoJCQkgICAgZnVuIHN0dWNrKCkgPSBmIDo9IE9wdCAoIWlubGluZV9jbG9zdXJlIGcpDQoJ
CQkgaW4NCgkJCSAgICAoKiBUaGVuLCB3ZSBjaGVjayB3aGV0aGVyIGl0IGlzIGEgY29uc3RhbnQg
ZnVuY3Rpb24gKikNCgkJCSAgICAoKGlnbm9yZSAoYXBwbHlfc3VyZmFjZV9mdW4oZywgDQoJCQkJ
ICAgICAgW1ZJbnQgMCwgVkludCAwLCBWRmxvYXQgMC4wXSkpDQoJCQkgICAgICA7IGYgOj0gQ3N0
IHJlcykNCgkJCSAgICAgaGFuZGxlIFN0dWNrX2NvbXB1dGF0aW9uIF8gPT4gc3R1Y2soKQ0KCQkJ
CSAgfCBTdHVja19jb21wdXRhdGlvbicgPT4gc3R1Y2soKSkNCgkJCSAgICA7IHJlcw0KCQkJIGVu
ZA0KCQkgICAgfCBPcHQgZyA9Pg0KCQkJIGFwcGx5X3N1cmZhY2VfZnVuIChnLCB0ZXh0dXJlX2Nv
b3JkIChraW5kLCB4JykpDQoJCSAgICB8IENzdCByZXMgPT4NCgkJCSByZXMpDQogICAgICAgICAg
ICAgICB2YWwgbm0gPSBub3JtYWwgKGtpbmQsIG0sIHgnLCB4KQ0KCSAgICAgICB2YWwgcCA9IHBy
b2QgKGRpciwgbm0pDQoJICAgICAgIHZhbCBubSA9IGlmIHAgPiAwLjAgdGhlbiBuZWcgbm0gZWxz
ZSBubQ0KCSAgICAgICB2YWwgcCA9IH4oYWJzX2Zsb2F0IHApDQoJICAgICAgICgqIEFtYmllbnQg
Y29tcG9zYW50ICopDQoJICAgICAgIHZhbCAoYXIsIGFnLCBhYikgPSAjYW1iIGRlc2MNCgkgICAg
ICAgdmFsIHIgPSByZWYgKGtkICogYXIpDQoJICAgICAgIHZhbCBnID0gcmVmIChrZCAqIGFnKQ0K
CSAgICAgICB2YWwgYiA9IHJlZiAoa2QgKiBhYikNCgkJICAoKiBMaWdodHMgKikNCgkgICAgICAg
dmFsIGxpZ2h0cyA9ICNsaWdodHMgZGVzYw0KCSAgICAgICB2YWwgXyA9DQoJCSAgZm9yKDAsIEFy
cmF5Lmxlbmd0aCBsaWdodHMgLSAxLCBmbiBpID0+DQoJCSAgICAgIGNhc2UgKEFycmF5LnN1Yihs
aWdodHMsIGkpKSBvZg0KCQkJIExpZ2h0IChsZGlyLCAobHIsIGxnLCBsYikpID0+DQoJCQkgICAg
bGV0DQoJCQkgICAgICAgdmFsIHAnID0gcHJvZCAobGRpciwgbm0pDQoJCQkgICAgaW4NCgkJCSAg
ICAgICBpZiBwJyA+IDAuMCBhbmRhbHNvIHZpc2libGUgKGRlc2MsIHgsIGxkaXIsIGZhbHNlKQ0K
CQkJCSAgdGhlbg0KCQkJCSAgICAgbGV0DQoJCQkJCXZhbCBpbnQgPQ0KCQkJCQkgICBpZiBrcyA+
IGVwc2lsb24gdGhlbg0KCQkJCQkgICAgICBrZCAqIHAnICsNCgkJCQkJICAgICAga3MgKiBwcm9k
IChub3JtYWxpemUNCgkJCQkJCQkgKHN1YiAobGRpciwgZGlyKSksDQoJCQkJCQkJIG5tKSAqKiBu
DQoJCQkJCSAgIGVsc2UNCgkJCQkJICAgICAga2QgKiBwJw0KCQkJCSAgICAgaW4NCgkJCQkJciA6
PSAhciArIGludCAqIGxyOw0KCQkJCQlnIDo9ICFnICsgaW50ICogbGc7DQoJCQkJCWIgOj0gIWIg
KyBpbnQgKiBsYg0KCQkJCSAgICAgZW5kDQoJCQkgICAgICAgZWxzZSAoKQ0KCQkJICAgIGVuZA0K
CQkgICAgICAgfCBQdExpZ2h0IChzcmMsIChsciwgbGcsIGxiKSkgPT4NCgkJCSAgICBsZXQNCgkJ
CSAgICAgICB2YWwgbGRpciA9IHN1YiAoc3JjLCB4KQ0KCQkJICAgICAgIHZhbCBsZGlyJyA9IG5v
cm1hbGl6ZSBsZGlyDQoJCQkgICAgICAgdmFsIHAnID0gcHJvZCAobGRpcicsIG5tKQ0KCQkJICAg
IGluDQoJCQkgICAgICAgaWYgcCcgPiAwLjAgYW5kYWxzbyB2aXNpYmxlKGRlc2MsIHgsIGxkaXIs
IHRydWUpDQoJCQkJICB0aGVuDQoJCQkJICAgICBsZXQNCgkJCQkJdmFsIGludCA9DQoJCQkJCSAg
IGlmIGtzID4gZXBzaWxvbg0KCQkJCQkgICAgICB0aGVuDQoJCQkJCQkga2QgKiBwJyArDQoJCQkJ
CQkga3MgKiBwcm9kIChub3JtYWxpemUgKHN1YiAobGRpcicsIGRpcikpLA0KCQkJCQkJCSAgICBu
bSkgKiogbg0KCQkJCQkgICBlbHNlDQoJCQkJCSAgICAgIGtkICogcCcNCgkJCQkJdmFsIGludCA9
IDEwMC4wICogaW50IC8gKDk5LjAgKyBzcXVhcmUgbGRpcikNCgkJCQkgICAgIGluDQoJCQkJCXIg
Oj0gIXIgKyBpbnQgKiBscjsNCgkJCQkJZyA6PSAhZyArIGludCAqIGxnOw0KCQkJCQliIDo9ICFi
ICsgaW50ICogbGINCgkJCQkgICAgIGVuZA0KCQkJICAgICAgIGVsc2UgKCkNCgkJCSAgICBlbmQN
CgkJICAgICAgIHwgU3RMaWdodCAoc3JjLCBtYWluZGlyLCAobHIsIGxnLCBsYiksIGN1dG9mZiwg
ZXhwKSA9Pg0KCQkJICAgIGxldA0KCQkJICAgICAgIHZhbCBsZGlyID0gc3ViIChzcmMsIHgpDQoJ
CQkgICAgICAgdmFsIGxkaXInID0gbm9ybWFsaXplIGxkaXINCgkJCSAgICAgICB2YWwgcCcgPSBw
cm9kIChsZGlyJywgbm0pDQoJCQkgICAgICAgdmFsIHAnJyA9IHByb2QgKGxkaXInLCBtYWluZGly
KQ0KCQkJICAgIGluDQoJCQkgICAgICAgaWYgcCcgPiAwLjAgYW5kYWxzbyBwJycgPiBjdXRvZmYN
CgkJCQkgIGFuZGFsc28gdmlzaWJsZShkZXNjLCB4LCBsZGlyLCB0cnVlKQ0KCQkJCSAgdGhlbg0K
CQkJCSAgICAgbGV0DQoJCQkJCXZhbCBpbnQgPQ0KCQkJCQkgICBpZiBrcyA+IGVwc2lsb24NCgkJ
CQkJICAgICAgdGhlbg0KCQkJCQkJIGtkICogcCcgKw0KCQkJCQkJIGtzICogcHJvZCAobm9ybWFs
aXplIChzdWIobGRpcicsIGRpcikpLA0KCQkJCQkJCSAgICBubSkgKiogbg0KCQkJCQkgICBlbHNl
DQoJCQkJCSAgICAgIGtkICogcCcNCgkJCQkJdmFsIGludCA9DQoJCQkJCSAgIDEwMC4wICogaW50
IC8gKDk5LjAgKyBzcXVhcmUgbGRpcikgKg0KCQkJCQkgICAocCcnICoqIGV4cCkNCgkJCQkgICAg
IGluDQoJCQkJCXIgOj0gIXIgKyBpbnQgKiBscjsNCgkJCQkJZyA6PSAhZyArIGludCAqIGxnOw0K
CQkJCQliIDo9ICFiICsgaW50ICogbGINCgkJCQkgICAgIGVuZA0KCQkJICAgICAgIGVsc2UgKCkN
CgkJCSAgICBlbmQpDQoJICAgICAgIHZhbCBfID0NCgkJICAoKiBSZWZsZXhpb24gKikNCgkJICBp
ZiBrcyA+IGVwc2lsb24gIGFuZGFsc28gZGVwdGggPiAwDQoJCSAgICAgdGhlbg0KCQkJbGV0DQoJ
CQkgICB2YWwgZGlyJyA9IGFkZF9zY2FsZWQgKGRpciwgfjIuMCAqIHAsIG5tKQ0KCQkJICAgdmFs
IChyJywgZycsIGInKSA9IHRyYWNlKGRlc2MsIGRlcHRoIC0gMSwgeCwgZGlyJykNCgkJCWluDQoJ
CQkgICByIDo9ICFyICsga3MgKiByJzsNCgkJCSAgIGcgOj0gIWcgKyBrcyAqIGcnOw0KCQkJICAg
YiA6PSAhYiArIGtzICogYicNCgkJCWVuZA0KCQkgIGVsc2UgKCkNCgkgICAgaW4gKCFyICogY3Is
ICFnICogY2csICFiICogY2IpDQoJICAgIGVuZA0KICAgICAgIHwgXyA9PiByYWlzZShGYWlsICJh
c3NlcnQgZmFsc2UiKQ0KICAgZW5kDQoNCmZ1biBjb252IGMgOiBpbnQgPQ0KICAgbGV0DQogICAg
ICB2YWwgaSA9IHRydW5jYXRlIChjICogMjU2LjApDQogICBpbg0KICAgICAgaWYgaSA8IDAgdGhl
biAwIGVsc2UNCgkgaWYgaSA+PSAyNTYgdGhlbiAyNTUgZWxzZQ0KCSAgICBpDQogICBlbmQNCg0K
ZnVuIGYgKGFtYiwgbGlnaHRzLCBvYmosIGRlcHRoOiBpbnQsIGZvdiwgd2lkLCBodCwgZmlsZSkg
PQ0KICAgbGV0DQogICAgICB2YWwgc2NlbmUgPSBpbnRlcm5fb2JqKE1hdHJpeC5pZGVudGl0eSwg
TWF0cml4LmlkZW50aXR5LCAxLjAsIHRydWUsIG9iaikNCiAgICAgIHZhbCBzY2VuZSA9IG9wdGlt
aXplIHNjZW5lDQogICAgICB2YWwgaW1nID0gUHBtLmluaXQgKHdpZCwgaHQpDQogICAgICB2YWwg
b3JpZyA9ICggMC4wLCAwLjAsIH4xLjAsIDEuMCApDQogICAgICB2YWwgd2lkdGggPSAyLjAgKiBk
dGFuICgwLjUgKiBmb3YpDQogICAgICB2YWwgZGVsdGEgPSB3aWR0aCAvIGZsb2F0IHdpZA0KICAg
ICAgdmFsIHgwID0gfiB3aWR0aCAvIDIuMA0KICAgICAgdmFsIHkwID0gZGVsdGEgKiBmbG9hdCBo
dCAvIDIuMA0KICAgICAgdmFsIGRlc2MgPSB7IGFtYiA9IGFtYiwgbGlnaHRzID0gaW50ZXJuX2xp
Z2h0cyBsaWdodHMsIHNjZW5lID0gc2NlbmUgfQ0KICAgaW4NCiAgICAgIGZvcigwLCBodCAtIDEs
IGZuIGogPT4NCgkgIGZvcigwLCB3aWQgLSAxLCBmbiBpID0+DQoJICAgICAgbGV0DQoJCSB2YWwg
ZGlyID0NCgkJICAgICh4MCArIChmbG9hdCBpICsgMC41KSAqIGRlbHRhLA0KCQkgICAgIHkwIC0g
KGZsb2F0IGogKyAwLjUpICogZGVsdGEsDQoJCSAgICAgMS4wLA0KCQkgICAgIDAuMCkNCgkJIHZh
bCAociwgZywgYikgPSB0cmFjZShkZXNjLCBkZXB0aCwgb3JpZywgZGlyKQ0KCSAgICAgIGluDQoJ
CSBQcG0uc2V0cCAoaW1nLCBpLCBqLCBjb252IHIsIGNvbnYgZywgY29udiBiKQ0KCSAgICAgIGVu
ZCkpDQogICAgICA7IFBwbS5kdW1wIChmaWxlLCBpbWcpDQogICBlbmQNCg0KZW5kDQpzaWduYXR1
cmUgRVZBTCA9DQogICBzaWcNCiAgICAgIHZhbCBmIDogUHJvZ3JhbS50IGxpc3QgLT4gdW5pdA0K
ICAgZW5kDQpzdHJ1Y3R1cmUgRXZhbDogRVZBTCA9DQpzdHJ1Y3QNCg0Kb3BlbiBDYW1sDQpvcGVu
IFByb2dyYW0NCg0KdmFsIHJ0ZCA9IDE4MC4wIC8gYWNvcyAofjEuMCkNCnZhbCBkdHIgPSBhY29z
ICh+MS4wKSAvIDE4MC4wDQpmdW4gZGVnIHggPSBydGQgKiB4DQpmdW4gcmFkIHggPSBkdHIgKiB4
DQp2YWwgemVybyA9IFZGbG9hdCAwLjANCnZhbCBvbmUgPSBWRmxvYXQgMS4wDQoNCmZ1biBsb29r
dXAgKGVudiwgcykgOiBpbnQgPQ0KICBjYXNlIGVudiBvZg0KICAgICBbXSA9PiBmYWlsd2l0aCAo
IlVuYm91bmQgdmFyaWFibGUgXCIiIF4gcyBeICJcIiIpDQogICB8IHMnIDo6IGVudicgPT4NCglp
ZiBzID0gcycNCgkgICB0aGVuIDANCgllbHNlIDEgKyAobG9va3VwKGVudicsIHMpKQ0KDQooKiBY
WFggZW1iZWQgdmFsdWVzICopDQpmdW4gY29udiAoYWJzZW52LCBwKSA9DQogICBjYXNlIHAgb2YN
CiAgICAgIFtdID0+IFtdDQogICAgfCBGbG9hdCB4IDo6IEZsb2F0IHkgOjogRmxvYXQgeiA6OiBQ
cmltIFBvaW50IDo6IHIgPT4NCgkgVmFsJyAoVlBvaW50IChWRmxvYXQgeCwgVkZsb2F0IHksIFZG
bG9hdCB6KSkgOjogY29udihhYnNlbnYsIHIpDQogICAgfCB0IDo6IHIgPT4NCgkgKGNhc2UgdCBv
Zg0KCSAgICAgRnVuIHAnID0+IEZ1bicgKGNvbnYoYWJzZW52LCBwJykpIDo6IGNvbnYoYWJzZW52
LCByKQ0KCSAgIHwgQXJyIHAnID0+IEFycicgKGNvbnYoYWJzZW52LCBwJykpIDo6IGNvbnYoYWJz
ZW52LCByKQ0KCSAgIHwgSWRlbnQgcyA9PiBJZGVudCcgKGxvb2t1cChhYnNlbnYsIHMpKSA6OiBj
b252KGFic2VudiwgcikNCgkgICB8IEJpbmRlciBzID0+IEJpbmRlcicgOjogY29udiAocyA6OiBh
YnNlbnYsIHIpDQoJICAgfCBJbnQgaSA9PiBWYWwnIChWSW50IGkpIDo6IGNvbnYoYWJzZW52LCBy
KQ0KCSAgIHwgRmxvYXQgZiA9PiBWYWwnIChWRmxvYXQgZikgOjogY29udihhYnNlbnYsIHIpDQoJ
ICAgfCBCb29sIGIgPT4gVmFsJyAoVkJvb2wgYikgOjogY29udihhYnNlbnYsIHIpDQoJICAgfCBT
dHJpbmcgcyA9PiBWYWwnIChWU3RyIHMpIDo6IGNvbnYoYWJzZW52LCByKQ0KCSAgIHwgUHJpbSBr
ID0+IFByaW0nIGsgOjogY29udihhYnNlbnYsIHIpKQ0KDQpmdW4gaW5saW5lIChvZmZzZXQsIGVu
diwgcCkgPQ0KICAgY2FzZSBwIG9mDQogICAgICBbXSA9PiBbXQ0KICAgIHwgdCA6OiByID0+DQoJ
IGxldA0KCSAgICBmdW4gbm9ybWFsKCkgPSB0IDo6IGlubGluZShvZmZzZXQsIGVudiwgcikNCgkg
aW4gY2FzZSB0IG9mDQoJICAgIEZ1bicgcCcgPT4gRnVuJyAoaW5saW5lKG9mZnNldCwgZW52LCBw
JykpIDo6IGlubGluZShvZmZzZXQsIGVudiwgcikNCgkgIHwgQXJyJyBwJyA9PiBBcnInIChpbmxp
bmUob2Zmc2V0LCBlbnYsIHAnKSkgOjogaW5saW5lKG9mZnNldCwgZW52LCByKQ0KCSAgfCBJZGVu
dCcgaSA9Pg0KCSAgICAgICBpZiBpID49IG9mZnNldA0KCQkgIHRoZW4gVmFsJyAoTGlzdC5udGgg
KGVudiwgaSAtIG9mZnNldCkpIDo6IGlubGluZShvZmZzZXQsIGVudiwgcikNCgkgICAgICAgZWxz
ZSBub3JtYWwoKQ0KCSAgfCBCaW5kZXInID0+IEJpbmRlcicgOjogaW5saW5lICgxICsgb2Zmc2V0
LCBlbnYsIHIpDQoJICB8IFByaW0nIF8gPT4gbm9ybWFsKCkNCgkgIHwgVmFsJyBfID0+IG5vcm1h
bCgpDQoJIGVuZA0KDQp2YWwgaW5saW5lX2Nsb3N1cmUgPQ0KICAgZm4gKFZDbG9zIChlbnYsIHAp
KSA9PiBWQ2xvcyAoW10sIGlubGluZSgwLCBlbnYsIHApKQ0KICAgIHwgXyA9PiBmYWlsd2l0aCAi
YSBzdXJmYWNlIGZ1bmN0aW9uIHdhcyBhY3R1YWxseSBub3QgYSBmdW5jdGlvbiINCg0KdmFsIF8g
PSBSZW5kZXIuaW5saW5lX2Nsb3N1cmUgOj0gaW5saW5lX2Nsb3N1cmUNCg0KZnVuIGV2YWwgKGVu
diwgc3QsIHApID0NCiAgY2FzZSAoc3QsIHApIG9mDQooKiBpbmxpbmVkIHZhbHVlICopDQogICAg
KF8sIFZhbCcgdiA6OiByKSA9PiBldmFsKGVudiwgKHYgOjogc3QpLCByKQ0KKCogUnVsZSAxICop
DQooKiBSdWxlIDIgKikNCiAgfCAodjo6c3QnLCBCaW5kZXInIDo6IHIpID0+IGV2YWwoKHYgOjog
ZW52KSwgc3QnLCByKQ0KKCogUnVsZSAzICopDQogIHwgKF8sIElkZW50JyBpIDo6IHIpID0+DQog
ICAgICBsZXQgdmFsIHYgPSBMaXN0Lm50aChlbnYsIGkpDQogICAgICBpbiBldmFsKGVudiwgKHYg
Ojogc3QpLCByKQ0KICAgICAgZW5kDQooKiBSdWxlIDQgKikNCiAgfCAoXywgRnVuJyBmIDo6IHIp
ID0+IGV2YWwoZW52LCAoVkNsb3MgKGVudiwgZikgOjogc3QpLCByKQ0KKCogUnVsZSA1ICopDQog
IHwgKFZDbG9zIChlbnYnLCBmKSA6OiBzdCcsIFByaW0nIEFwcGx5IDo6IHIpID0+DQogICAgICBl
dmFsKGVudiwgZXZhbChlbnYnLCBzdCcsIGYpLCByKQ0KKCogUnVsZSA2ICopDQogIHwgKF8sIEFy
cicgYSA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYsIChWQXJyIChBcnJheS5vZl9saXN0IChMaXN0
LnJldiAoZXZhbChlbnYsIFtdLCBhKSkpKSkgOjogc3QsIHIpDQooKiBSdWxlcyA3IGFuZCA4ICop
DQogIHwgKFZDbG9zIF8gOjogVkNsb3MgKGVudicsIGlmdHJ1ZSkgOjogVkJvb2wgdHJ1ZSA6OiBz
dCcsIFByaW0nIElmIDo6IHIpID0+DQogICAgICBldmFsKGVudiwgZXZhbChlbnYnLCBzdCcsIGlm
dHJ1ZSksIHIpDQogIHwgKFZDbG9zIChlbnYnLCBpZmZhbHNlKSA6OiBWQ2xvcyBfIDo6IFZCb29s
IGZhbHNlIDo6IHN0JywgUHJpbScgSWYgOjogcikgPT4NCiAgICAgIGV2YWwoZW52LCBldmFsKGVu
dicsIHN0JywgaWZmYWxzZSksIHIpDQooKiBPcGVyYXRpb25zIG9uIG51bWJlcnMgKikNCiAgfCAo
VkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgQWRkaSA6OiByKSA9Pg0KICAgICAgIGV2
YWwoZW52LCAoVkludCAobjEgKyBuMikgOjogc3QnKSwgcikNCiAgfCAoVkZsb2F0IGYyIDo6IFZG
bG9hdCBmMSA6OiBzdCcsIFByaW0nIEFkZGYgOjogcikgPT4NCiAgICAgIGV2YWwoZW52LCAoVkZs
b2F0IChmMSArIGYyKSA6OiBzdCcpLCByKQ0KICB8IChWRmxvYXQgZiA6OiBzdCcsIFByaW0nIEFj
b3MgOjogcikgPT4NCiAgICAgICBldmFsKGVudiwgKFZGbG9hdCAoZGVnIChhY29zIGYpKSA6OiBz
dCcpLCByKQ0KICB8IChWRmxvYXQgZiA6OiBzdCcsIFByaW0nIEFzaW4gOjogcikgPT4NCiAgICAg
ICBldmFsKGVudiwgKFZGbG9hdCAoZGVnIChhc2luIGYpKSA6OiBzdCcpLCByKQ0KICB8ICgodmYg
YXMgVkZsb2F0IGYpOjogc3QnLCBQcmltJyBDbGFtcGYgOjogcikgPT4NCiAgICAgIGxldCB2YWwg
ZicgPSBpZiBmIDwgMC4wIHRoZW4gemVybyBlbHNlIGlmIGYgPiAxLjAgdGhlbiBvbmUgZWxzZSB2
Zg0KICAgICAgaW4gZXZhbChlbnYsIChmJyA6OiBzdCcpLCByKQ0KICAgICAgZW5kDQogIHwgKFZG
bG9hdCBmIDo6IHN0JywgUHJpbScgQ29zIDo6IHIpID0+DQogICAgICAgZXZhbChlbnYsIChWRmxv
YXQgKGNvcyAocmFkIGYpKSA6OiBzdCcpLCByKQ0KICB8IChWSW50IG4yIDo6IFZJbnQgbjEgOjog
c3QnLCBQcmltJyBEaXZpIDo6IHIpID0+DQogICAgICAgZXZhbChlbnYsIChWSW50IChuMSBkaXYg
bjIpIDo6IHN0JyksIHIpDQogIHwgKFZGbG9hdCBmMiA6OiBWRmxvYXQgZjEgOjogc3QnLCBQcmlt
JyBEaXZmIDo6IHIpID0+DQogICAgICBldmFsKGVudiwgKFZGbG9hdCAoZjEgLyBmMikgOjogc3Qn
KSwgcikNCiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgRXFpIDo6IHIpID0+
DQogICAgICAgZXZhbChlbnYsIChWQm9vbCAobjEgPSBuMikgOjogc3QnKSwgcikNCiAgfCAoVkZs
b2F0IGYyIDo6IFZGbG9hdCBmMSA6OiBzdCcsIFByaW0nIEVxZiA6OiByKSA9Pg0KICAgICAgZXZh
bChlbnYsIChWQm9vbCAoUmVhbC49PShmMSwgZjIpKSA6OiBzdCcpLCByKQ0KICB8IChWRmxvYXQg
ZiA6OiBzdCcsIFByaW0nIEZsb29yIDo6IHIpID0+DQogICAgICBldmFsKGVudiwgKFZJbnQgKFJl
YWwuZmxvb3IgZikgOjogc3QnKSwgcikNCiAgfCAoVkZsb2F0IGYgOjogc3QnLCBQcmltJyBGcmFj
IDo6IHIpID0+DQogICAgICAgZXZhbChlbnYsIChWRmxvYXQgKFJlYWwucmVhbE1vZCBmKSA6OiBz
dCcpLCByKQ0KICB8IChWSW50IG4yIDo6IFZJbnQgbjEgOjogc3QnLCBQcmltJyBMZXNzaSA6OiBy
KSA9Pg0KICAgICAgZXZhbChlbnYsIChWQm9vbCAobjEgPCBuMikgOjogc3QnKSwgcikNCiAgfCAo
VkZsb2F0IGYyIDo6IFZGbG9hdCBmMSA6OiBzdCcsIFByaW0nIExlc3NmIDo6IHIpID0+DQogICAg
ICBldmFsKGVudiwgKFZCb29sIChmMSA8IGYyKSA6OiBzdCcpLCByKQ0KICB8IChWSW50IG4yIDo6
IFZJbnQgbjEgOjogc3QnLCBQcmltJyBNb2RpIDo6IHIpID0+DQogICAgICBldmFsKGVudiwgKFZJ
bnQgKG4xIG1vZCBuMikgOjogc3QnKSwgcikNCiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0
JywgUHJpbScgTXVsaSA6OiByKSA9Pg0KICAgICAgIGV2YWwoZW52LCAoVkludCAobjEgKiBuMikg
Ojogc3QnKSwgcikNCiAgfCAoVkZsb2F0IGYyIDo6IFZGbG9hdCBmMSA6OiBzdCcsIFByaW0nIE11
bGYgOjogcikgPT4NCiAgICAgIGV2YWwoZW52LCAoVkZsb2F0IChmMSAqIGYyKSA6OiBzdCcpLCBy
KQ0KICB8IChWSW50IG4gOjogc3QnLCBQcmltJyBOZWdpIDo6IHIpID0+IGV2YWwoZW52LCAoVklu
dCAofiBuKSA6OiBzdCcpLCByKQ0KICB8IChWRmxvYXQgZiA6OiBzdCcsIFByaW0nIE5lZ2YgOjog
cikgPT4gZXZhbChlbnYsIChWRmxvYXQgKH4gZikgOjogc3QnKSwgcikNCiAgfCAoVkludCBuIDo6
IHN0JywgUHJpbScgUmVhbCA6OiByKSA9PiBldmFsKGVudiwgKFZGbG9hdCAoZmxvYXQgbikgOjog
c3QnKSwgcikNCiAgfCAoVkZsb2F0IGYgOjogc3QnLCBQcmltJyBTaW4gOjogcikgPT4gZXZhbChl
bnYsIChWRmxvYXQgKHNpbiAocmFkIGYpKSA6OiBzdCcpLCByKQ0KICB8IChWRmxvYXQgZiA6OiBz
dCcsIFByaW0nIFNxcnQgOjogcikgPT4gZXZhbChlbnYsIChWRmxvYXQgKHNxcnQgZikgOjogc3Qn
KSwgcikNCiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgU3ViaSA6OiByKSA9
PiBldmFsKGVudiwgKFZJbnQgKG4xIC0gbjIpIDo6IHN0JyksIHIpDQogIHwgKFZGbG9hdCBmMiA6
OiBWRmxvYXQgZjEgOjogc3QnLCBQcmltJyBTdWJmIDo6IHIpID0+DQogICAgICBldmFsKGVudiwg
KFZGbG9hdCAoZjEgLSBmMikgOjogc3QnKSwgcikNCigqIE9wZXJhdGlvbnMgb24gcG9pbnRzICop
DQogIHwgKFZQb2ludCAoeCwgXywgXykgOjogc3QnLCBQcmltJyBHZXR4IDo6IHIgKSA9PiBldmFs
KGVudiwgKHggOjogc3QnKSwgcikNCiAgfCAoVlBvaW50IChfLCB5LCBfKSA6OiBzdCcsIFByaW0n
IEdldHkgOjogciApID0+IGV2YWwoZW52LCAoeSA6OiBzdCcpLCByKQ0KICB8IChWUG9pbnQgKF8s
IF8sIHopIDo6IHN0JywgUHJpbScgR2V0eiA6OiByICkgPT4gZXZhbChlbnYsICh6IDo6IHN0Jyks
IHIpDQogIHwgKCh6IGFzIFZGbG9hdCBfKSA6OiAoeSBhcyBWRmxvYXQgXykgOjogKHggYXMgVkZs
b2F0IF8pIDo6IHN0JywNCiAgICAgUHJpbScgUG9pbnQgOjogcikgPT4NCiAgICAgIGV2YWwoZW52
LCAoVlBvaW50ICh4LCB5LCB6KSA6OiBzdCcpLCByKQ0KICB8IChWSW50IGkgOjogVkFyciBhIDo6
IHN0JywgUHJpbScgR2V0IDo6IHIpID0+DQogICAgICAoKiBpZiBjb21waWxlZCBvZiAiLXVuc2Fm
ZSIgKikNCiAgICAgIGlmIGkgPCAwIG9yZWxzZSBpID49IEFycmF5Lmxlbmd0aCBhDQogICAgICB0
aGVuIGZhaWx3aXRoICJpbGxlZ2FsIGFjY2VzcyBiZXlvbmQgYXJyYXkgYm91bmRhcnkiDQogICAg
ICBlbHNlIGV2YWwoZW52LCAoQXJyYXkuc3ViKGEsIGkpIDo6IHN0JyksIHIpDQogIHwgKFZBcnIg
YSA6OiBzdCcsIFByaW0nIExlbmd0aCA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYsIChWSW50IChB
cnJheS5sZW5ndGggYSkgOjogc3QnKSwgcikNCigqIEdlb21ldHJpYyBwcmltaXRpdmVzICopDQog
IHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScgU3BoZXJlIDo6IHIgICkgPT4NCiAgICAg
IGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT1NwaGVyZSwgcmVmIChVbm9wdCBmKSkpIDo6IHN0Jyks
IHIpDQogIHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScgQ3ViZSA6OiByICAgICkgPT4N
CiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT0N1YmUsIHJlZiAoVW5vcHQgZikpKSAgIDo6
IHN0JyksIHIpDQogIHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScgQ3lsaW5kZXIgOjog
cikgPT4NCiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT0N5bGluZCwgcmVmIChVbm9wdCBm
KSkpIDo6IHN0JyksIHIpDQogIHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScgQ29uZSA6
OiByICAgICkgPT4NCiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT0NvbmUsIHJlZiAoVW5v
cHQgZikpKSAgIDo6IHN0JyksIHIpDQogIHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScg
UGxhbmUgOjogciAgICkgPT4NCiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT1BsYW5lLCBy
ZWYgKFVub3B0IGYpKSkgIDo6IHN0JyksIHIpDQooKiBUcmFuc2Zvcm1hdGlvbnMgKikNCiAgfCAo
VkZsb2F0IHogOjogVkZsb2F0IHkgOjogVkZsb2F0IHggOjogVk9iaiBvYiA6OiBzdCcsIFByaW0n
IFRyYW5zbGF0ZSA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYsDQogICAgICAgIChWT2JqIChPVHJh
bnNmb3JtIChvYiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdHJpeC50cmFuc2xhdGUg
KHgsIHksIHopLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0cml4LnRyYW5zbGF0ZSAo
fiB4LCB+IHksIH4geiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAsIHRydWUpKSA6
OiBzdCcpLA0KICAgICAgICByKQ0KICB8IChWRmxvYXQgeiA6OiBWRmxvYXQgeSA6OiBWRmxvYXQg
eCA6OiBWT2JqIG9iIDo6IHN0JywgUHJpbScgU2NhbGUgOjogcikgPT4NCiAgICAgICBldmFsKCBl
bnYsDQogICAgICAgIChWT2JqIChPVHJhbnNmb3JtIChvYiwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1hdHJpeC5zY2FsZSAoeCwgeSwgeiksDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICBNYXRyaXgudW5zY2FsZSAoeCwgeSwgeiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZWFsLm1heCAoYWJzX2Zsb2F0IHgsDQoJCQkJICAgICAoUmVhbC5tYXggKGFic19mbG9hdCB5LCBh
YnNfZmxvYXQgeikpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkgOjogc3Qn
KSwNCiAgICAgICAgcikNCiAgfCAoVkZsb2F0IHMgOjogVk9iaiBvYiA6OiBzdCcsIFByaW0nIFVz
Y2FsZSA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYsDQogICAgICAgIChWT2JqIChPVHJhbnNmb3Jt
IChvYiwgTWF0cml4LnVzY2FsZSBzLCBNYXRyaXgudW51c2NhbGUgcywNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFic19mbG9hdCBzLCB0cnVlKSkgOjogc3QnKSwNCiAgICAgICAgcikNCiAg
fCAoVkZsb2F0IHQgOjogVk9iaiBvYiA6OiBzdCcsIFByaW0nIFJvdGF0ZXggOjogcikgPT4NCiAg
ICAgIGV2YWwoZW52LA0KICAgICAgICAoVk9iaiAoT1RyYW5zZm9ybSAob2IsIE1hdHJpeC5yb3Rh
dGV4IHQsIE1hdHJpeC5yb3RhdGV4ICh+IHQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
MS4wLCB0cnVlKSkgOjogc3QnKSwNCiAgICAgICAgcikNCiAgfCAoVkZsb2F0IHQgOjogVk9iaiBv
YiA6OiBzdCcsIFByaW0nIFJvdGF0ZXkgOjogcikgPT4NCiAgICAgIGV2YWwoZW52LA0KICAgICAg
ICAoVk9iaiAoT1RyYW5zZm9ybSAob2IsIE1hdHJpeC5yb3RhdGV5IHQsIE1hdHJpeC5yb3RhdGV5
ICh+IHQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wLCB0cnVlKSkgOjogc3QnKSwN
CiAgICAgICAgcikNCiAgfCAoVkZsb2F0IHQgOjogVk9iaiBvYiA6OiBzdCcsIFByaW0nIFJvdGF0
ZXogOjogcikgPT4NCiAgICAgIGV2YWwoZW52LA0KICAgICAgICAoVk9iaiAoT1RyYW5zZm9ybSAo
b2IsIE1hdHJpeC5yb3RhdGV6IHQsIE1hdHJpeC5yb3RhdGV6ICh+IHQpLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS4wLCB0cnVlKSkgOjogc3QnKSwNCiAgICAgICAgcikNCigqIExpZ2h0
cyAqKQ0KICB8ICgoY29sb3IgYXMgVlBvaW50IF8pIDo6IChkaXIgYXMgVlBvaW50IF8pIDo6IHN0
JywgUHJpbScgTGlnaHQgOjogcikgPT4NCiAgICAgIGV2YWwoZW52LCAoVkxpZ2h0IChkaXIsIGNv
bG9yKSA6OiBzdCcpLCByKQ0KICB8ICgoY29sb3IgYXMgVlBvaW50IF8pIDo6IChwb3MgYXMgVlBv
aW50IF8pIDo6IHN0JywgUHJpbScgUG9pbnRsaWdodCA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYs
IChWUHRMaWdodCAocG9zLCBjb2xvcikgOjogc3QnKSwgcikNCiAgfCAoKGV4cG9uIGFzIFZGbG9h
dCBfKSA6OiAoY3V0b2ZmIGFzIFZGbG9hdCBfKSA6OiAoY29sb3IgYXMgVlBvaW50IF8pIDo6DQog
ICAgKGF0IGFzIFZQb2ludCBfKSA6OiAocG9zIGFzIFZQb2ludCBfKSA6OiBzdCcsIFByaW0nIFNw
b3RsaWdodCA6OiByKSA9Pg0KICAgICAgZXZhbChlbnYsIChWU3RMaWdodCAocG9zLCBhdCwgY29s
b3IsIGN1dG9mZiwgZXhwb24pIDo6IHN0JyksIHIpDQooKiBDb25zdHJ1Y3RpdmUgZ2VvbWV0cnkg
KikNCiAgfCAoKFZPYmogbzIpIDo6IChWT2JqIG8xKSA6OiBzdCcsIFByaW0nIFVuaW9uIDo6IHIp
ID0+DQogICAgICBldmFsKGVudiwgKFZPYmogKE9VbmlvbiAobzEsIG8yKSkgOjogc3QnKSwgcikN
CiAgfCAoKFZPYmogbzIpIDo6IChWT2JqIG8xKSA6OiBzdCcsIFByaW0nIEludGVyc2VjdCA6OiBy
KSA9Pg0KICAgICAgZXZhbChlbnYsIChWT2JqIChPSW50ZXIgKG8xLCBvMikpIDo6IHN0JyksIHIp
DQogIHwgKChWT2JqIG8yKSA6OiAoVk9iaiBvMSkgOjogc3QnLCBQcmltJyBEaWZmZXJlbmNlIDo6
IHIpID0+DQogICAgICBldmFsKGVudiwgKFZPYmogKE9EaWZmIChvMSwgbzIpKSA6OiBzdCcpLCBy
KQ0KKCogUmVuZGVyaW5nICopDQogIHwgKFZTdHIgZmlsZSA6OiBWSW50IGh0IDo6IFZJbnQgd2lk
IDo6IFZGbG9hdCBmb3YgOjogVkludCBkZXB0aCA6Og0KICAgIFZPYmogb2JqIDo6IFZBcnIgbGln
aHRzIDo6IFZQb2ludCAoVkZsb2F0IGF4LCBWRmxvYXQgYXksIFZGbG9hdCBheikgOjoNCiAgICBz
dCcsIFByaW0nIFJlbmRlciA6OiByKSA9Pg0KKCoNCmFtYiB0aGUgaW50ZW5zaXR5IG9mIGFtYmll
bnQgbGlnaHQgKGEgcG9pbnQpLiANCmxpZ2h0cyBpcyBhbiBhcnJheSBvZiBsaWdodHMgdXNlZCB0
byBpbGx1bWluYXRlIHRoZSBzY2VuZS4gDQpvYmogaXMgdGhlIHNjZW5lIHRvIHJlbmRlci4gDQpk
ZXB0aCBpcyBhbiBpbnRlZ2VyIGxpbWl0IG9uIHRoZSByZWN1cnNpdmUgZGVwdGggb2YgdGhlIHJh
eSB0cmFjaW5nLiANCmZvdiBpcyB0aGUgaG9yaXpvbnRhbCBmaWVsZCBvZiB2aWV3IGluIGRlZ3Jl
ZXMgKGEgcmVhbCBudW1iZXIpLiANCndpZCBpcyB0aGUgd2lkdGggb2YgdGhlIHJlbmRlcmVkIGlt
YWdlIGluIHBpeGVscyAoYW4gaW50ZWdlcikuIA0KaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgcmVu
ZGVyZWQgaW1hZ2UgaW4gcGl4ZWxzIChhbiBpbnRlZ2VyKS4gDQpmaWxlIGlzIGEgc3RyaW5nIHNw
ZWNpZnlpbmcgb3V0cHV0IGZpbGUgZm9yIHRoZSByZW5kZXJlZCBpbWFnZS4gDQoqKQ0KICAgIChS
ZW5kZXIuZiAoKGF4LCBheSwgYXopLCBsaWdodHMsIG9iaiwgZGVwdGgsIGZvdiwgd2lkLCBodCwg
ZmlsZSkNCiAgICAgOyBldmFsKGVudiwgc3QnLCByKSkNCigqIFRlcm1pbmF0aW9uICopDQogIHwg
KF8sIFtdKSA9PiBzdA0KKCogRmFpbHVyZSAqKQ0KICB8IF8gPT4NCiAgICAgIHJhaXNlIChTdHVj
a19jb21wdXRhdGlvbiAoZW52LCBzdCwgcCkpDQoNCmZ1biBhcHBseSAoZiwgc3QpID0NCiAgY2Fz
ZSBmIG9mDQogICAgVkNsb3MgKGVudiwgcCkgPT4gZXZhbChlbnYsIHN0LCBwKQ0KICB8IF8gPT4g
cmFpc2UgRmFpbCAiYXNzZXJ0IGZhbHNlIg0KDQp2YWwgXyA9IFJlbmRlci5hcHBseSA6PSBhcHBs
eQ0KDQpmdW4gZiBwID0NCiAgIGxldA0KICAgICAgdmFsIHN0ID0gZXZhbChbXSwgW10sIChjb252
KFtdLCBwKSkpDQogICBpbg0KICAgICAgY2FzZSBzdCBvZg0KCSBbXSA9PiAoKQ0KICAgICAgIHwg
XyA9PiBmYWlsd2l0aCAiZXJyb3IiDQogICBlbmQgaGFuZGxlIFN0dWNrX2NvbXB1dGF0aW9uIChl
bnYsIHN0LCBwKSA9PiBmYWlsd2l0aCAic3R1Y2siDQogICAgICANCmVuZA0Kc3RydWN0dXJlIE1h
aW4gPQ0KICAgc3RydWN0DQogICAgICBmdW4gbWFpbigpID0NCgkgRXZhbC5mIChQcm9ncmFtLnJl
YWQgKFRleHRJTy5vcGVuSW4gIkRBVEEvZnJhY3RhbC5wcC5nbWwiKSkNCgkgaGFuZGxlIF8gPT4g
KCkNCg0KICAgICAgZnVuIGV4cG9ydE5KKCkgPQ0KCSBTTUxvZk5KLmV4cG9ydEZuKCJpbXByb3Zl
ZC1ydCIsIGZuIF8gPT4gKG1haW4oKTsgMCkpDQogICBlbmQNCg0KdmFsIF8gPSBNYWluLm1haW4o
KTsNCg0K

---559023410-341603450-979599107=:6540
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="fractal.pp.gml"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95.1010115175147.6540F@hoho.cs.cornell.edu>
Content-Description: 

JSBmcmFjdGFsLmdtbA0KJQ0KJSBPVVRQVVRTIGZyYWN0YWwucHBtDQolDQolIEZyYWN0YWwgdGhp
bmdpZSB3aXRoIHNwaGVyZXMuDQolDQoNCiANCg0KDQoNCg0KDQoNCg0KJSUlJSUlJSUlJSBpbmNs
dWRlIHN1cmZhY2UuaW5zICUlJSUlJSUlJSUNCg0KIA0KDQoNCg0KDQoNCg0KDQoNCg0KJSUlJSUl
JSUlJSBpbmNsdWRlIHV0aWwuaW5zICUlJSUlJSUlJSUNCg0KeyAveCB9IC9wb3AJCSUgcG9wIGEg
c3RhY2sgaXRlbQ0KeyAveCB4IHggfSAvZHVwCQklIGR1cGxpY2F0ZSBhIHN0YWNrIGl0ZW0NCg0K
JSBwb3AgbiBpdGVtcyBvZmYgdGhlIHN0YWNrDQp7IC9uDQogIHsgL3NlbGYgL2kNCiAgICBpIDEg
bGVzc2kNCiAgICB7IH0NCiAgICB7IC94IGkgMSBzdWJpIHNlbGYgc2VsZiBhcHBseSB9DQogICAg
aWYNCiAgfSAvbG9vcA0KICBuIGxvb3AgbG9vcCBhcHBseQ0KfSAvcG9wbg0KDQolIGRvdCBwcm9k
dWN0DQolIC4uLiB2MiB2MSAgZG90ICA9PT4gLi4uIHINCnsgL3YxIC92Mg0KICB2MSBnZXR4IHYy
IGdldHggbXVsZg0KICB2MSBnZXR5IHYyIGdldHkgbXVsZiBhZGRmDQogIHYxIGdldHogdjIgZ2V0
eiBtdWxmIGFkZGYNCn0gL2RvdA0KDQolIGludGVnZXIgYWJzb2x1dGUgdmFsdWUNCnsgL2kgaSAw
IGxlc3NpIHsgaSBuZWdpIH0geyBpIH0gaWYgfSAvYWJzaQ0KDQolIGZsb2F0aW5nLXBvaW50IGFi
c29sdXRlIHZhbHVlDQp7IC9mIGYgMC4wIGxlc3NmIHsgZiBuZWdmIH0geyBmIH0gaWYgfSAvYWJz
Zg0KDQolIG5vcm1hbGl6ZQ0KJSAuLi4gdjEgIG5vcm1hbGl6ZSAgPT0+IC4uLiB2Mg0KeyAvdg0K
ICAxLjAgdiB2IGRvdCBhcHBseSBzcXJ0IGRpdmYgL3MJJSBzID0gc3FydCgxLjAvdiBkb3QgdikN
CiAgcyB2IGdldHggbXVsZgkJCQklIHB1c2ggcyp4DQogIHMgdiBnZXR5IG11bGYJCQkJJSBwdXNo
IHMqeQ0KICBzIHYgZ2V0eiBtdWxmCQkJCSUgcHVzaCBzKnoNCiAgcG9pbnQJCQkJCSUgbWFrZSBu
b3JtYWxpemVkIHZlY3Rvcg0KfSAvbm9ybWFsaXplDQoNCiUgYWRkcA0KeyAvdjIgL3YxDQogIHYx
IGdldHggdjIgZ2V0eCBhZGRmDQogIHYxIGdldHkgdjIgZ2V0eSBhZGRmDQogIHYxIGdldHogdjIg
Z2V0eiBhZGRmIHBvaW50DQp9IC9hZGRwDQoNCiUgc3VicA0KeyAvdjIgL3YxDQogIHYxIGdldHgg
djIgZ2V0eCBzdWJmDQogIHYxIGdldHkgdjIgZ2V0eSBzdWJmDQogIHYxIGdldHogdjIgZ2V0eiBz
dWJmIHBvaW50DQp9IC9zdWJwDQoNCiUgbXVscA0KeyAvdjIgL3YxDQogIHYxIGdldHggdjIgZ2V0
eCBtdWxmDQogIHYxIGdldHkgdjIgZ2V0eSBtdWxmDQogIHYxIGdldHogdjIgZ2V0eiBtdWxmIHBv
aW50DQp9IC9tdWxwDQoNCiUgbmVncA0KeyAvdg0KICB2IGdldHggbmVnZg0KICB2IGdldHkgbmVn
Zg0KICB2IGdldHogbmVnZiBwb2ludA0KfSAvbmVncA0KDQoNCiUgQSBzaW1wbGUgcHNldWRvLXJh
bmRvbSBudW1iZXIgZ2VuZXJhdG9yIChmcm9tIEdyYXBoaWNzIEdlbXMgSUk7IHAuIDEzNykNCiUg
V2UgaGF2ZSB0byBkbyB0aGUgY29tcHV0YXRpb24gaW4gRlAsIHNpbmNlIGl0IG92ZXJmbG93cyBp
biBpbnRlZ2VyIGFyaXRobWV0aWMuDQp7IHJlYWwgMjUxNzMuMCBtdWxmIDEzODQ5LjAgYWRkZiA2
NTUzNi4wIGRpdmYgZnJhYyA2NTUzNi4wIG11bGYgZmxvb3IgfSAvcmFuZG9tDQoNCiUgQSByYW5k
b20gbnVtYmVyIGluIFswLi4xXS4NCiUNCiUgc2VlZCAgcmFuZG9tZiAgPT0+IGYgc2VlZA0KeyAN
CiAgcmFuZG9tIGFwcGx5IC9zZWVkDQogIHNlZWQgcmVhbCA2NTUzNS4wIGRpdmYgc2VlZA0KfSAv
cmFuZG9tZg0KDQolJSUlJSUlJSUlIHV0aWwuaW5zICUlJSUlJSUlJSUNCg0KDQoNCg0KIA0KDQoN
Cg0KDQoNCg0KDQolJSUlJSUlJSUlIGluY2x1ZGUgY29sb3JzLmlucyAlJSUlJSUlJSUlDQoNCjAu
MCAgMC4wICAwLjAgIHBvaW50IC9ibGFjaw0KMS4wICAxLjAgIDEuMCAgcG9pbnQgL3doaXRlDQox
LjAgIDAuMCAgMC4wICBwb2ludCAvcmVkDQowLjAgIDEuMCAgMC4wICBwb2ludCAvZ3JlZW4NCjAu
MCAgMC4wICAxLjAgIHBvaW50IC9ibHVlDQoxLjAgIDAuMCAgMS4wICBwb2ludCAvbWFnZW50YQ0K
MS4wICAxLjAgIDAuMCAgcG9pbnQgL3llbGxvdw0KMC4wICAxLjAgIDEuMCAgcG9pbnQgL2N5YW4N
Cg0KJSAuLi4gPGxldmVsPiAgZ3JleSAgPT0+ICA8Y29sb3I+DQp7IGNsYW1wZiAvbGV2ZWwgbGV2
ZWwgbGV2ZWwgbGV2ZWwgcG9pbnQgfSAvZ3JleQ0KDQolJSUlJSUlJSUlIGNvbG9ycy5pbnMgJSUl
JSUlJSUlJQ0KDQoNCg0KDQolIC4uLiA8Y29sb3I+IG1hdHRlICA9PT4gIC4uLiA8c3VyZmFjZT4N
CnsgL2NvbG9yDQogIHsgL3YgL3UgL2ZhY2UNCiAgICBjb2xvciAxLjAgMC4wIDEuMA0KICB9DQp9
IC9tYXR0ZQ0KDQolIC4uLiA8Y29sb3I+IDxrZD4gPGtzPiA8bj4gID09PiAgLi4uIDxzdXJmYWNl
Pg0KeyAvbiAva3MgL2tkIC9jb2xvcg0KICB7IC92IC91IC9mYWNlDQogICAgY29sb3Iga2Qga3Mg
bg0KICB9DQp9IC9jb25zdC1zdXJmYWNlDQoNCiUlJSUlJSUlJSUgc3VyZmFjZS5pbnMgJSUlJSUl
JSUlJQ0KDQoNCg0KDQoNCjAuNCAwLjUgMC42IHBvaW50IDEuMCAwLjEgMS4wIGNvbnN0LXN1cmZh
Y2UgYXBwbHkgcGxhbmUgL3ANCg0KeyAvY29sDQogIHsgL3YgL3UgL2ZhY2UNCiAgICBjb2wNCiAg
ICAwLjEgMC45OSA2LjANCiAgfSBzcGhlcmUgMC45IHVzY2FsZQ0KfSAvbWtzcGhlcmUNCg0KWw0K
ICAwLjUgMC43IDAuOSBwb2ludA0KICAwLjUgMC45IDAuNSBwb2ludA0KICAwLjYgMC42IDAuNyBw
b2ludA0KICAxLjAgMC43IDAuNSBwb2ludA0KICAwLjkgMS4wIDAuNiBwb2ludA0KICAxLjAgMC41
IDAuMyBwb2ludA0KICAxLjAgMC44IDAuOSBwb2ludA0KICAxLjAgMS4wIDAuNiBwb2ludA0KICAx
LjAgMS4wIDEuMCBwb2ludA0KXSAvY29sb3JzDQoNCnsgMSBhZGRpIGNvbG9ycyBsZW5ndGggbW9k
aSB9IC9pbmNybW9kDQoNCnsNCiAgL3NlbGYgL2NvbCAvZGVwdGggL2Jhc2UNCiAgZGVwdGggMCBl
cWkNCiAgeyBjb2xvcnMgY29sIGdldCBiYXNlIGFwcGx5IDAuOSB1c2NhbGUgfQ0KICB7IA0KICAg
IGNvbCBpbmNybW9kIGFwcGx5IC9jb2wNCiAgICBjb2xvcnMgY29sIGdldCBiYXNlIGFwcGx5DQog
ICAgY29sIGluY3Jtb2QgYXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJpIGNvbCBzZWxm
IHNlbGYgYXBwbHkgMi41IDAuMCAwLjAgdHJhbnNsYXRlIHVuaW9uDQogICAgY29sIGluY3Jtb2Qg
YXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJpIGNvbCBzZWxmIHNlbGYgYXBwbHkNCiAg
ICAyLjUgMC4wIDAuMCB0cmFuc2xhdGUgNjAuMCByb3RhdGV6IHVuaW9uDQogICAgY29sIGluY3Jt
b2QgYXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJpIGNvbCBzZWxmIHNlbGYgYXBwbHkN
CiAgICAyLjUgMC4wIDAuMCB0cmFuc2xhdGUgMTIwLjAgcm90YXRleiB1bmlvbg0KICAgIGNvbCBp
bmNybW9kIGFwcGx5IC9jb2wNCiAgICBiYXNlIGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFw
cGx5DQogICAgMi41IDAuMCAwLjAgdHJhbnNsYXRlIDE4MC4wIHJvdGF0ZXogdW5pb24NCiAgICBj
b2wgaW5jcm1vZCBhcHBseSAvY29sDQogICAgYmFzZSBkZXB0aCAxIHN1YmkgY29sIHNlbGYgc2Vs
ZiBhcHBseQ0KICAgIDIuNSAwLjAgMC4wIHRyYW5zbGF0ZSAyNDAuMCByb3RhdGV6IHVuaW9uDQog
ICAgY29sIGluY3Jtb2QgYXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJpIGNvbCBzZWxm
IHNlbGYgYXBwbHkNCiAgICAyLjUgMC4wIDAuMCB0cmFuc2xhdGUgMzAwLjAgcm90YXRleiB1bmlv
bg0KDQogICAgY29sIGluY3Jtb2QgYXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJpIGNv
bCBzZWxmIHNlbGYgYXBwbHkNCiAgICAzLjAgMC4wIDAuMCB0cmFuc2xhdGUgOTAuMCByb3RhdGV5
IHVuaW9uDQogICAgY29sIGluY3Jtb2QgYXBwbHkgL2NvbA0KICAgIGJhc2UgZGVwdGggMSBzdWJp
IGNvbCBzZWxmIHNlbGYgYXBwbHkNCiAgICAzLjAgMC4wIDAuMCB0cmFuc2xhdGUgLTkwLjAgcm90
YXRleSB1bmlvbg0KDQogICAgMS4wIDMuMCBkaXZmIHVzY2FsZQ0KICB9DQogIGlmDQp9IC9yZWMN
Cg0KbWtzcGhlcmUgMyAwIHJlYyByZWMgYXBwbHkgMzAuMCByb3RhdGV4IDQwLjAgcm90YXRleQ0K
MC44IHVzY2FsZSAwLjAgMC4zIDAuNSB0cmFuc2xhdGUNCg0KcCAwLjAgLTEuMCAwLjAgdHJhbnNs
YXRlIHVuaW9uDQowLjAgLTAuMiAwLjMgdHJhbnNsYXRlDQogL3NjZW5lDQoNCgkJCQklIGRpcmVj
dGlvbmFsIGxpZ2h0DQowLjggLTEuMCAwLjQgcG9pbnQJCSAgJSBkaXJlY3Rpb24NCjEuMCAgMS4w
IDEuMCBwb2ludCBsaWdodCAvbDEJICAlIGRpcmVjdGlvbmFsIGxpZ2h0DQoNCjAuNCAwLjQgMC40
IHBvaW50CQkgICUgYW1iaWVudCBsaWdodA0KWyBsMSBdCQkJCSAgJSBsaWdodHMNCnNjZW5lCQkJ
CSAgJSBzY2VuZSB0byByZW5kZXINCjMJCQkJICAlIHRyYWNpbmcgZGVwdGgNCjEwMC4wCQkJCSAg
JSBmaWVsZCBvZiB2aWV3DQo2MDAgNDAwCQkJCSAgJSBpbWFnZSB3aWQgYW5kIGhlaWdodA0KIkRB
VEEvZnJhY3RhbC5wcG0iCQkgICUgb3V0cHV0IGZpbGUNCnJlbmRlcg0KDQo=

---559023410-341603450-979599107=:6540--