Ly9wYWNrYWdlIFBzdDsNCg0KaW1wb3J0IGphdmEuc3FsLio7DQppbXBvcnQgc3VuLio7DQoNCmNs
YXNzIENvbmV4YW9Qc3Qgew0KDQoJcHJpdmF0ZSBTdHJpbmcgX3VybCA9IG5ldyBTdHJpbmcoKTsg
Ly8gRGVmaW5lIGEgbG9jYWxpemHn428gZG8gQkQNCglwcml2YXRlIENvbm5lY3Rpb24gX2NvbmV4
YW87DQoJcHJpdmF0ZSBTdHJpbmcgX2RyaXZlciA9IG5ldyBTdHJpbmcoKTsgIC8vIERlZmluZSBv
IERyaXZlciBwYXJhIGNvbXVuaWNh52FvIGNvbSBvIEJEDQoJcHJpdmF0ZSBTdGF0ZW1lbnQgX3N0
bXQ7DQoNCglwdWJsaWMNCgl2b2lkIENvbmV4YW9Qc3QoKSB7IC8vIENvbnN0cnV0b3INCgkJX3Vy
bCA9ICJqZGJjOm9kYmM6UGFpcHVjQkQiOw0KCQlfZHJpdmVyID0gInN1bi5qZGJjLm9kYmMuSmRi
Y09kYmNEcml2ZXIiOw0KCX0NCgkNCg0KCXB1YmxpYw0KCXN0YXRpYyB2b2lkIG1haW4oU3RyaW5n
W10gQXJncyl7DQoJCUNvbmV4YW9Qc3QgeCA9IG5ldyBDb25leGFvUHN0KCk7DQoJCXguaW5pY2lh
cigpOw0KCQl4LnRlcm1pbmFyKCk7DQoJfQ0KDQoJcHVibGljDQoJdm9pZCBpbmljaWFyKCl7DQoJ
CXRyeSB7DQoJCQlDbGFzcy5mb3JOYW1lKF9kcml2ZXIpOwkJLy8gQ2FycmVnYW5kbyBvIERyaXZl
cg0KCQl9IGNhdGNoKCBFeGNlcHRpb24gZSApew0KCQkJU3lzdGVtLm91dC5wcmludGxuKCJBdmlz
bzogRmFsaGEgYW8gY2FycmVnYXIgSkRCQy9PREJDIGRyaXZlclxuIiArIGUudG9TdHJpbmcoKSk7
DQoJCX0NCgkJdHJ5ew0KCQkJU3lzdGVtLm91dC5wcmludGxuKF91cmwpOw0KCQkJX2NvbmV4YW8g
PSBEcml2ZXJNYW5hZ2VyLmdldENvbm5lY3Rpb24oX3VybCwiIiwiIik7CS8vIENyaWFuZG8gYSBD
b25leGFvDQoJCQkJDQoJCX0gY2F0Y2goIEV4Y2VwdGlvbiBlKSB7CSAgICAgICAgDQoJICAgCVN5
c3RlbS5vdXQucHJpbnRsbigiQXZpc286IEZhbGhhIGFvIGNyaWFyIGNvbmV4YW8gY29tIEJEXG4i
ICsgZS50b1N0cmluZygpKTsNCgkJfQ0KCX0NCg0KCXB1YmxpYw0KCVN0YXRlbWVudCBvYnRlclN0
YXRlbWVudCgpew0KCQkNCgkJdHJ5IHsNCgkJCV9zdG10ID0gX2NvbmV4YW8uY3JlYXRlU3RhdGVt
ZW50KCk7DQoJCX0NCgkJY2F0Y2ggKEV4Y2VwdGlvbiBlKXsNCgkJCVN5c3RlbS5vdXQucHJpbnRs
bigiQXZpc286IEZhbGhhIGRhIENvbmV4YW8gY29tIEJEIGFvIGNyaWFyIFN0YXRlbWVudFxuIitl
LnRvU3RyaW5nKCkpOw0KCQl9DQoJcmV0dXJuIF9zdG10Ow0KCX0NCgkNCglwdWJsaWMNCgl2b2lk
IHRlcm1pbmFyKCl7DQoJCXRyeSB7DQoJCQlfY29uZXhhby5jbG9zZSgpOw0KCQl9DQoJCWNhdGNo
IChFeGNlcHRpb24gZSl7DQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkF2aXNvOiBGYWxoYSBhbyBm
ZWNoYXIgQ29uZXhhbyBjb20gQkRcbiIrZS50b1N0cmluZygpKTsNCgkJfQ0KDQoJfQ0KCQ0KfQ==

