ZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGFyZmlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfdGFyZmlsZS5weQppbmRleCAzNTM1NTFkLi5lYjM2OGNmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RhcmZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90YXJmaWxlLnB5CkBAIC02OSw3ICs2OSw3IEBACiAgICAgICAgICAgICAgICAgImZpbGVvYmoucmVhZGxpbmVzKCkgZmFpbGVkIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihsaW5lczIpID09IDExNCwKICAgICAgICAgICAgICAgICAiZmlsZW9iai5yZWFkbGluZXMoKSBmYWlsZWQiKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGluZXMyWzgzXSA9PSBcCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lczJbODNdID09CiAgICAgICAgICAgICAgICAgIkkgd2lsbCBnbGFkbHkgYWRtaXQgdGhhdCBQeXRob24gaXMgbm90IHRoZSBmYXN0ZXN0IHJ1bm5pbmcgc2NyaXB0aW5nIGxhbmd1YWdlLlxuIiwKICAgICAgICAgICAgICAgICAiZmlsZW9iai5yZWFkbGluZXMoKSBmYWlsZWQiKQogCkBAIC03MDcsMTEgKzcwNywxMiBAQAogICAgICAgICAgICAgICAgIG5hbWUgPSBvcy5wYXRoLmpvaW4odGVtcGRpciwgbmFtZSkKICAgICAgICAgICAgICAgICBvcGVuKG5hbWUsICJ3YiIpLmNsb3NlKCkKIAotICAgICAgICAgICAgZGVmIGV4Y2x1ZGUobmFtZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNmaWxlKG5hbWUpCisgICAgICAgICAgICBleGNsdWRlID0gb3MucGF0aC5pc2ZpbGUKIAogICAgICAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKHRtcG5hbWUsIHNlbGYubW9kZSwgZW5jb2Rpbmc9Imlzbzg4NTktMSIpCi0gICAgICAgICAgICB0YXIuYWRkKHRlbXBkaXIsIGFyY25hbWU9ImVtcHR5X2RpciIsIGV4Y2x1ZGU9ZXhjbHVkZSkKKyAgICAgICAgICAgIHdpdGggdGVzdF9zdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgidXNlIHRoZSBmaWx0ZXIgYXJndW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICAgICAgICAgIHRhci5hZGQodGVtcGRpciwgYXJjbmFtZT0iZW1wdHlfZGlyIiwgZXhjbHVkZT1leGNsdWRlKQogICAgICAgICAgICAgdGFyLmNsb3NlKCkKIAogICAgICAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKHRtcG5hbWUsICJyIikKQEAgLTg4OSwxMCArODkwLDEyIEBACiAKICAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKHRtcG5hbWUpCiAgICAgICAgIG1lbWJlciA9IHRhci5uZXh0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtZW1iZXIgaXMgTm9uZSwgInVuYWJsZSB0byByZWFkIGxvbmduYW1lIG1lbWJlciIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0YXJpbmZvLm5hbWUgPT0gbWVtYmVyLm5hbWUgYW5kIFwKLSAgICAgICAgICAgICAgICAgICAgIHRhcmluZm8ubGlua25hbWUgPT0gbWVtYmVyLmxpbmtuYW1lLCBcCi0gICAgICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIHJlYWQgbG9uZ25hbWUgbWVtYmVyIikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUobWVtYmVyLAorICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gcmVhZCBsb25nbmFtZSBtZW1iZXIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhcmluZm8ubmFtZSwgbWVtYmVyLm5hbWUsCisgICAgICAgICAgICAgICAgInVuYWJsZSB0byByZWFkIGxvbmduYW1lIG1lbWJlciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFyaW5mby5saW5rbmFtZSwgbWVtYmVyLmxpbmtuYW1lLAorICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gcmVhZCBsb25nbmFtZSBtZW1iZXIiKQogCiAgICAgZGVmIHRlc3RfbG9uZ25hbWVfMTAyMyhzZWxmKToKICAgICAgICAgc2VsZi5fdGVzdCgoImxvbmduYW0vIiAqIDEyNykgKyAibG9uZ25hbSIpCkBAIC05OTQsNyArOTk3LDcgQEAKICAgICAgICAgICAgICAgICB1InRlc3QiOiB1IuT2/CIsCiAgICAgICAgICAgICAgICAgdSLk9vwiOiB1InRlc3QifQogCi0gICAgICAgIHRhciA9IHRhcmZpbGUub3Blbih0bXBuYW1lLCAidyIsIGZvcm1hdD10YXJmaWxlLlBBWF9GT1JNQVQsIFwKKyAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKHRtcG5hbWUsICJ3IiwgZm9ybWF0PXRhcmZpbGUuUEFYX0ZPUk1BVCwKICAgICAgICAgICAgICAgICBwYXhfaGVhZGVycz1wYXhfaGVhZGVycykKICAgICAgICAgdGFyLmFkZGZpbGUodGFyZmlsZS5UYXJJbmZvKCJ0ZXN0IikpCiAgICAgICAgIHRhci5jbG9zZSgpCg==