ZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcGVwMjYzLnB5IGIvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKaW5kZXggMWE4NWYzYi4uZjNmZjgzNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wZXAyNjMucHkKQEAgLTEsMzEgKzEsMzAgQEAKLSMhIC0qLSBjb2Rpbmc6IGtvaTgtciAtKi0NCi0jIFRoaXMgZmlsZSBpcyBtYXJrZWQgYXMgYmluYXJ5IGluIFNWTiwgdG8gcHJldmVudCBNYWNDVlMgZnJvbSByZWNvZGluZyBpdC4NCi0NCi1pbXBvcnQgdW5pdHRlc3QNCi1mcm9tIHRlc3QgaW1wb3J0IHRlc3Rfc3VwcG9ydA0KLQ0KLWNsYXNzIFBFUDI2M1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOg0KLQ0KLSAgICBkZWYgdGVzdF9wZXAyNjMoc2VsZik6DQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKA0KLSAgICAgICAgICAgIHUi8MnUz84iLmVuY29kZSgidXRmLTgiKSwNCi0gICAgICAgICAgICAnXHhkMFx4OWZceGQwXHhiOFx4ZDFceDgyXHhkMFx4YmVceGQwXHhiZCcNCi0gICAgICAgICkNCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoDQotICAgICAgICAgICAgdSJc8CIuZW5jb2RlKCJ1dGYtOCIpLA0KLSAgICAgICAgICAgICdcXFx4ZDBceDlmJw0KLSAgICAgICAgKQ0KLQ0KLSAgICBkZWYgdGVzdF9jb21waWxlc3RyaW5nKHNlbGYpOg0KLSAgICAgICAgIyBzZWUgIzE4ODINCi0gICAgICAgIGMgPSBjb21waWxlKCJcbiMgY29kaW5nOiB1dGYtOFxudSA9IHUnXHhjM1x4YjMnXG4iLCAiZHVtbXkiLCAiZXhlYyIpDQotICAgICAgICBkID0ge30NCi0gICAgICAgIGV4ZWMgYyBpbiBkDQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRbJ3UnXSwgdSdceGYzJykNCi0NCi0NCi1kZWYgdGVzdF9tYWluKCk6DQotICAgIHRlc3Rfc3VwcG9ydC5ydW5fdW5pdHRlc3QoUEVQMjYzVGVzdCkNCi0NCi1pZiBfX25hbWVfXz09Il9fbWFpbl9fIjoNCi0gICAgdGVzdF9tYWluKCkNCisjISAtKi0gY29kaW5nOiBrb2k4LXIgLSotCisKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X3N1cHBvcnQKKworY2xhc3MgUEVQMjYzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9wZXAyNjMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICB1IvDJ1M/OIi5lbmNvZGUoInV0Zi04IiksCisgICAgICAgICAgICAnXHhkMFx4OWZceGQwXHhiOFx4ZDFceDgyXHhkMFx4YmVceGQwXHhiZCcKKyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgdSJc8CIuZW5jb2RlKCJ1dGYtOCIpLAorICAgICAgICAgICAgJ1xcXHhkMFx4OWYnCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2NvbXBpbGVzdHJpbmcoc2VsZik6CisgICAgICAgICMgc2VlICMxODgyCisgICAgICAgIGMgPSBjb21waWxlKCJcbiMgY29kaW5nOiB1dGYtOFxudSA9IHUnXHhjM1x4YjMnXG4iLCAiZHVtbXkiLCAiZXhlYyIpCisgICAgICAgIGQgPSB7fQorICAgICAgICBleGVjIGMgaW4gZAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRbJ3UnXSwgdSdceGYzJykKKworCitkZWYgdGVzdF9tYWluKCk6CisgICAgdGVzdF9zdXBwb3J0LnJ1bl91bml0dGVzdChQRVAyNjNUZXN0KQorCitpZiBfX25hbWVfXz09Il9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQo=